@charset "UTF-8";
@font-face {
  font-family: "GlacialRegular";
  src: url("../fonts/GlacialIndifference-Regular.woff2") format("woff2"), url("../fonts/GlacialIndifference-Regular.woff") format("woff"), url("../fonts/GlacialIndifference-Regular.eot") format("eot");
  font-weight: normal;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: "GlacialBold";
  src: url("../fonts/GlacialIndifference-Bold.woff2") format("woff2"), url("../fonts/GlacialIndifference-Bold.woff") format("woff"), url("../fonts/GlacialIndifference-Bold.eot") format("eot");
  font-weight: bold;
  font-style: normal;
  font-display: swap; }

/**
 * Foundation for Sites by ZURB
 * Version 6.5.1
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
@media print, screen and (min-width: 40em) {
  .reveal, .reveal.tiny, .reveal.small, .reveal.large {
    right: auto;
    left: auto;
    margin: 0 auto; } }

/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%; }

body {
  margin: 0; }

h1, .h1 {
  font-size: 2em;
  margin: 0.67em 0; }

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible; }

pre {
  font-family: monospace, monospace;
  font-size: 1em; }

a {
  background-color: transparent; }

abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted; }

b,
strong {
  font-weight: bolder; }

code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

small {
  font-size: 80%; }

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

img {
  border-style: none; }

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0; }

button,
input {
  overflow: visible; }

button,
select {
  text-transform: none; }

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button; }

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0; }

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText; }

fieldset {
  padding: 0.35em 0.75em 0.625em; }

legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal; }

progress {
  vertical-align: baseline; }

textarea {
  overflow: auto; }

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  padding: 0; }

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto; }

[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px; }

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit; }

details {
  display: block; }

summary {
  display: list-item; }

template {
  display: none; }

[hidden] {
  display: none; }

.foundation-mq {
  font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"; }

html {
  box-sizing: border-box;
  font-size: 100%; }

*,
*::before,
*::after {
  box-sizing: inherit; }

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #3c3c3b;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic; }

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 50px; }

select {
  box-sizing: border-box;
  width: 100%;
  border-radius: 50px; }

.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important; }

button {
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 50px;
  background: transparent;
  line-height: 1;
  cursor: auto; }
  [data-whatinput='mouse'] button {
    outline: 0; }

pre {
  overflow: auto; }

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; }

.is-visible {
  display: block !important; }

.is-hidden {
  display: none !important; }

div,
dl,
dt,
dd,
ul,
ol,
li, h1, .h1,
h2,
.h2,
.stats__item--content,
h3,
.h3,
.search-snippet__title,
.related.products > h2,
.related.products > .h2,
.related.products > .stats__item--content,
.card__title,
.block__heading--small,
.repeater-icon__item-heading,
.signpost__title,
h4,
.h4,
.card--resource__title,
.signpost__grid--col-3 .signpost__title,
.woocommerce-checkout-payment h2,
.woocommerce-checkout-payment .h2,
.woocommerce-checkout-payment .stats__item--content,
.woocommerce-order h2,
.woocommerce-order .h2,
.woocommerce-order .stats__item--content,
h5,
.h5,
h6,
.h6,
.widget-title,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

p {
  margin-bottom: 2rem;
  font-size: inherit;
  line-height: 1.8;
  text-rendering: optimizeLegibility; }

em,
i {
  font-style: italic;
  line-height: inherit; }

strong,
b {
  font-weight: bold;
  line-height: inherit; }

small {
  font-size: 80%;
  line-height: inherit; }

h1, .h1, .h1,
h2,
.h2,
.stats__item--content, .h2,
h3,
.h3,
.search-snippet__title,
.related.products > h2,
.related.products > .h2,
.related.products > .stats__item--content,
.card__title,
.block__heading--small,
.repeater-icon__item-heading,
.signpost__title, .h3, .search-snippet__title, .related.products > h2, .related.products > .h2, .related.products > .stats__item--content,
h4,
.h4,
.card--resource__title,
.signpost__grid--col-3 .signpost__title,
.woocommerce-checkout-payment h2,
.woocommerce-checkout-payment .h2,
.woocommerce-checkout-payment .stats__item--content,
.woocommerce-order h2,
.woocommerce-order .h2,
.woocommerce-order .stats__item--content, .h4,
h5,
.h5, .h5,
h6,
.h6,
.widget-title, .h6 {
  font-family: "GlacialBold", "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  font-style: normal;
  font-weight: normal;
  color: #3c3c3b;
  text-rendering: optimizeLegibility; }
  h1 small, .h1 small, .h1 small,
  h2 small,
  .h2 small,
  .stats__item--content small, .h2 small,
  h3 small,
  .h3 small,
  .search-snippet__title small,
  .related.products > h2 small,
  .related.products > .h2 small,
  .related.products > .stats__item--content small,
  .card__title small,
  .block__heading--small small,
  .repeater-icon__item-heading small,
  .signpost__title small, .h3 small, .search-snippet__title small, .related.products > h2 small, .related.products > .h2 small, .related.products > .stats__item--content small,
  h4 small,
  .h4 small,
  .card--resource__title small,
  .signpost__grid--col-3 .signpost__title small,
  .woocommerce-checkout-payment h2 small,
  .woocommerce-checkout-payment .h2 small,
  .woocommerce-checkout-payment .stats__item--content small,
  .woocommerce-order h2 small,
  .woocommerce-order .h2 small,
  .woocommerce-order .stats__item--content small, .h4 small,
  h5 small,
  .h5 small, .h5 small,
  h6 small,
  .h6 small,
  .widget-title small, .h6 small {
    line-height: 0;
    color: #4e4e4e; }

h1, .h1, .h1 {
  font-size: 1.5rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 2rem; }


h2,
.h2,
.stats__item--content, .h2 {
  font-size: 1.25rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 2rem; }


h3,
.h3,
.search-snippet__title,
.related.products > h2,
.related.products > .h2,
.related.products > .stats__item--content,
.card__title,
.block__heading--small,
.repeater-icon__item-heading,
.signpost__title, .h3, .search-snippet__title, .related.products > h2, .related.products > .h2, .related.products > .stats__item--content {
  font-size: 1.1875rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 2rem; }


h4,
.h4,
.card--resource__title,
.signpost__grid--col-3 .signpost__title,
.woocommerce-checkout-payment h2,
.woocommerce-checkout-payment .h2,
.woocommerce-checkout-payment .stats__item--content,
.woocommerce-order h2,
.woocommerce-order .h2,
.woocommerce-order .stats__item--content, .h4 {
  font-size: 1.125rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 2rem; }


h5,
.h5, .h5 {
  font-size: 1.0625rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 2rem; }


h6,
.h6,
.widget-title, .h6 {
  font-size: 1rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 2rem; }

@media print, screen and (min-width: 40em) {
  h1, .h1, .h1 {
    font-size: 3rem; }
  
  h2,
  .h2,
  .stats__item--content, .h2 {
    font-size: 2.5rem; }
  
  h3,
  .h3,
  .search-snippet__title,
  .related.products > h2,
  .related.products > .h2,
  .related.products > .stats__item--content,
  .card__title,
  .block__heading--small,
  .repeater-icon__item-heading,
  .signpost__title, .h3, .search-snippet__title, .related.products > h2, .related.products > .h2, .related.products > .stats__item--content {
    font-size: 1.9375rem; }
  
  h4,
  .h4,
  .card--resource__title,
  .signpost__grid--col-3 .signpost__title,
  .woocommerce-checkout-payment h2,
  .woocommerce-checkout-payment .h2,
  .woocommerce-checkout-payment .stats__item--content,
  .woocommerce-order h2,
  .woocommerce-order .h2,
  .woocommerce-order .stats__item--content, .h4 {
    font-size: 1.5625rem; }
  
  h5,
  .h5, .h5 {
    font-size: 1.25rem; }
  
  h6,
  .h6,
  .widget-title, .h6 {
    font-size: 1rem; } }

a {
  line-height: inherit;
  color: #346046;
  text-decoration: none;
  cursor: pointer; }
  a:hover, a:focus {
    color: #2d533c; }
  a img {
    border: 0; }

hr {
  clear: both;
  max-width: 75rem;
  height: 0;
  margin: 1.25rem auto;
  border-top: 0;
  border-right: 0;
  border-bottom: 1px solid #4e4e4e;
  border-left: 0; }

ul,
ol,
dl {
  margin-bottom: 2rem;
  list-style-position: outside;
  line-height: 1.8; }

li {
  font-size: inherit; }

ul {
  margin-left: 1.25rem;
  list-style-type: disc; }

ol {
  margin-left: 1.25rem; }

ul ul, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0; }

dl {
  margin-bottom: 1rem; }
  dl dt {
    margin-bottom: 0.3rem;
    font-weight: bold; }

blockquote {
  margin: 0 0 2rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 0; }
  blockquote, blockquote p {
    line-height: 1.8;
    color: #8a8a8a; }

cite {
  display: block;
  font-size: 1.125rem;
  color: #8a8a8a; }
  cite:before {
    content: ""; }

abbr, abbr[title] {
  border-bottom: 1px dotted #3c3c3b;
  cursor: help;
  text-decoration: none; }

figure {
  margin: 0; }

code {
  padding: 0.125rem 0.3125rem 0.0625rem;
  border: 1px solid #4e4e4e;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #3c3c3b; }

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  color: #3c3c3b;
  border-radius: 50px; }

.subheader {
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  font-weight: normal;
  line-height: 1.4;
  color: #8a8a8a; }

.lead {
  font-size: 125%;
  line-height: 1.6; }

.stat {
  font-size: 2.5rem;
  line-height: 1; }
  p + .stat {
    margin-top: -1rem; }

ul.no-bullet, ol.no-bullet {
  margin-left: 0;
  list-style: none; }

.text-left {
  text-align: left; }

.text-right {
  text-align: right; }

.text-center {
  text-align: center; }

.text-justify {
  text-align: justify; }

@media print, screen and (min-width: 40em) {
  .medium-text-left {
    text-align: left; }
  .medium-text-right {
    text-align: right; }
  .medium-text-center {
    text-align: center; }
  .medium-text-justify {
    text-align: justify; } }

@media print, screen and (min-width: 64em) {
  .large-text-left {
    text-align: left; }
  .large-text-right {
    text-align: right; }
  .large-text-center {
    text-align: center; }
  .large-text-justify {
    text-align: justify; } }

@media screen and (min-width: 75em) {
  .xlarge-text-left {
    text-align: left; }
  .xlarge-text-right {
    text-align: right; }
  .xlarge-text-center {
    text-align: center; }
  .xlarge-text-justify {
    text-align: justify; } }

@media screen and (min-width: 90em) {
  .xxlarge-text-left {
    text-align: left; }
  .xxlarge-text-right {
    text-align: right; }
  .xxlarge-text-center {
    text-align: center; }
  .xxlarge-text-justify {
    text-align: justify; } }

.show-for-print {
  display: none !important; }

@media print {
  * {
    background: transparent !important;
    box-shadow: none !important;
    color: black !important;
    text-shadow: none !important; }
  .show-for-print {
    display: block !important; }
  .hide-for-print {
    display: none !important; }
  table.show-for-print {
    display: table !important; }
  thead.show-for-print {
    display: table-header-group !important; }
  tbody.show-for-print {
    display: table-row-group !important; }
  tr.show-for-print {
    display: table-row !important; }
  td.show-for-print {
    display: table-cell !important; }
  th.show-for-print {
    display: table-cell !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: ''; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  pre,
  blockquote {
    border: 1px solid #8a8a8a;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  p,
  h2,
  .h2,
  .stats__item--content,
  h3,
  .h3,
  .search-snippet__title,
  .related.products > h2,
  .related.products > .h2,
  .related.products > .stats__item--content,
  .card__title,
  .block__heading--small,
  .repeater-icon__item-heading,
  .signpost__title {
    orphans: 3;
    widows: 3; }
  
  h2,
  .h2,
  .stats__item--content,
  h3,
  .h3,
  .search-snippet__title,
  .related.products > h2,
  .related.products > .h2,
  .related.products > .stats__item--content,
  .card__title,
  .block__heading--small,
  .repeater-icon__item-heading,
  .signpost__title {
    page-break-after: avoid; }
  .print-break-inside {
    page-break-inside: auto; } }

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 2.8125rem;
  margin: 0 0 1.375rem;
  padding: 0.6875rem;
  border: 1px solid #e6e6e6;
  border-radius: calc(50px / 4);
  background-color: #fefefe;
  box-shadow: 0;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #3c3c3b;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    outline: none;
    border: 1px solid #8a8a8a;
    background-color: #fefefe;
    box-shadow: 0 0 5px #4e4e4e;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }

textarea {
  max-width: 100%; }
  textarea[rows] {
    height: auto; }

input:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #e6e6e6;
  cursor: not-allowed; }

[type='submit'],
[type='button'] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border-radius: 50px; }

input[type='search'] {
  box-sizing: border-box; }

::-webkit-input-placeholder {
  color: #3c3c3b; }

:-ms-input-placeholder {
  color: #3c3c3b; }

::placeholder {
  color: #3c3c3b; }

[type='file'],
[type='checkbox'],
[type='radio'] {
  margin: 0 0 1.375rem; }

[type='checkbox'] + label,
[type='radio'] + label {
  display: inline-block;
  vertical-align: baseline;
  margin-left: 0.6875rem;
  margin-right: 1.375rem;
  margin-bottom: 0; }
  [type='checkbox'] + label[for],
  [type='radio'] + label[for] {
    cursor: pointer; }

label > [type='checkbox'],
label > [type='radio'] {
  margin-right: 0.6875rem; }

[type='file'] {
  width: 100%; }

label {
  display: block;
  margin: 0;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.8;
  color: #4e4e4e; }
  label.middle {
    margin: 0 0 1.375rem;
    padding: 0.75rem 0; }

.help-text {
  margin-top: -0.6875rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: #3c3c3b; }

.input-group {
  display: flex;
  width: 100%;
  margin-bottom: 1.375rem;
  align-items: stretch; }
  .input-group > :first-child, .input-group > :first-child.input-group-button > * {
    border-radius: calc(50px / 4) 0 0 calc(50px / 4); }
  .input-group > :last-child, .input-group > :last-child.input-group-button > * {
    border-radius: 0 calc(50px / 4) calc(50px / 4) 0; }

.input-group-label, .input-group-field, .input-group-button, .input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  margin: 0;
  white-space: nowrap; }

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #4e4e4e;
  background: #e6e6e6;
  color: #3c3c3b;
  text-align: center;
  white-space: nowrap;
  display: flex;
  flex: 0 0 auto;
  align-items: center; }
  .input-group-label:first-child {
    border-right: 0; }
  .input-group-label:last-child {
    border-left: 0; }

.input-group-field {
  border-radius: 0;
  flex: 1 1 0px;
  min-width: 0; }

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  display: flex;
  flex: 0 0 auto; }
  .input-group-button a,
  .input-group-button input,
  .input-group-button button,
  .input-group-button label {
    -ms-grid-row-align: stretch;
        align-self: stretch;
    height: auto;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 1rem; }

fieldset {
  margin: 0;
  padding: 0;
  border: 0; }

legend {
  max-width: 100%;
  margin-bottom: 0.6875rem; }

.fieldset {
  margin: 1.125rem 0;
  padding: 1.25rem;
  border: 1px solid #4e4e4e; }
  .fieldset legend {
    margin: 0;
    margin-left: -0.1875rem;
    padding: 0 0.1875rem; }

select {
  height: 2.8125rem;
  margin: 0 0 1.375rem;
  padding: 0.6875rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #e6e6e6;
  border-radius: calc(50px / 4);
  background-color: #fefefe;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #3c3c3b;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");
  background-origin: content-box;
  background-position: right -1.375rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 2.0625rem;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }
  @media screen and (min-width: 0\0) {
    select {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
  select:focus {
    outline: none;
    border: 1px solid #8a8a8a;
    background-color: #fefefe;
    box-shadow: 0 0 5px #4e4e4e;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }
  select:disabled {
    background-color: #e6e6e6;
    cursor: not-allowed; }
  select::-ms-expand {
    display: none; }
  select[multiple] {
    height: auto;
    background-image: none; }

.is-invalid-input:not(:focus) {
  border-color: #cc4b37;
  background-color: #f9ecea; }
  .is-invalid-input:not(:focus)::-webkit-input-placeholder {
    color: #cc4b37; }
  .is-invalid-input:not(:focus):-ms-input-placeholder {
    color: #cc4b37; }
  .is-invalid-input:not(:focus)::placeholder {
    color: #cc4b37; }

.is-invalid-label {
  color: #cc4b37; }

.form-error {
  display: none;
  margin-top: -0.6875rem;
  margin-bottom: 1.375rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: #cc4b37; }
  .form-error.is-visible {
    display: block; }

.accordion {
  margin-left: 0;
  background: #fefefe;
  list-style-type: none; }
  .accordion[disabled] .accordion-title {
    cursor: not-allowed; }

.accordion-item:first-child > :first-child {
  border-radius: 50px 50px 0 0; }

.accordion-item:last-child > :last-child {
  border-radius: 0 0 50px 50px; }

.accordion-title {
  position: relative;
  display: block;
  padding: 1.25rem 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  font-size: 1.125rem;
  line-height: 1;
  color: #3c3c3b; }
  :last-child:not(.is-active) > .accordion-title {
    border-bottom: 1px solid #e6e6e6;
    border-radius: 0 0 50px 50px; }
  .accordion-title:hover, .accordion-title:focus {
    background-color: #e6e6e6; }
  .accordion-title::before {
    position: absolute;
    top: 50%;
    right: 1rem;
    margin-top: -0.5rem;
    content: '+'; }
  .is-active > .accordion-title::before {
    content: '\2013'; }

.accordion-content {
  display: none;
  padding: 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  background-color: #fefefe;
  color: #3c3c3b; }
  :last-child > .accordion-content:last-child {
    border-bottom: 1px solid #e6e6e6; }

.breadcrumbs {
  margin: 0 0 1rem 0;
  list-style: none; }
  .breadcrumbs::before, .breadcrumbs::after {
    display: table;
    content: ' ';
    flex-basis: 0;
    order: 1; }
  .breadcrumbs::after {
    clear: both; }
  .breadcrumbs li {
    float: left;
    font-size: 0.6875rem;
    color: #3c3c3b;
    cursor: default;
    text-transform: uppercase; }
    .breadcrumbs li:not(:last-child)::after {
      position: relative;
      margin: 0 0.75rem;
      opacity: 1;
      content: "/";
      color: #4e4e4e; }
  .breadcrumbs a {
    color: #346046; }
    .breadcrumbs a:hover {
      text-decoration: underline; }
  .breadcrumbs .disabled {
    color: #4e4e4e;
    cursor: not-allowed; }

.callout {
  position: relative;
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 0px;
  border-radius: 50px;
  background-color: white;
  color: #3c3c3b; }
  .callout > :first-child {
    margin-top: 0; }
  .callout > :last-child {
    margin-bottom: 0; }
  .callout.primary {
    background-color: #dcece2;
    color: #3c3c3b; }
  .callout.secondary {
    background-color: #fefbed;
    color: #3c3c3b; }
  .callout.success {
    background-color: #e1faea;
    color: #3c3c3b; }
  .callout.warning {
    background-color: #fff3d9;
    color: #3c3c3b; }
  .callout.alert {
    background-color: #f7e4e1;
    color: #3c3c3b; }
  .callout.small {
    padding-top: 0.5rem;
    padding-right: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 0.5rem; }
  .callout.large {
    padding-top: 3rem;
    padding-right: 3rem;
    padding-bottom: 3rem;
    padding-left: 3rem; }

.close-button {
  position: absolute;
  color: #8a8a8a;
  cursor: pointer; }
  [data-whatinput='mouse'] .close-button {
    outline: 0; }
  .close-button:hover, .close-button:focus {
    color: #3c3c3b; }
  .close-button.small {
    right: 0.66rem;
    top: 0.33em;
    font-size: 1.5em;
    line-height: 1; }
  .close-button, .close-button.medium {
    right: 1rem;
    top: 0.5rem;
    font-size: 2em;
    line-height: 1; }

.is-drilldown {
  position: relative;
  overflow: hidden; }
  .is-drilldown li {
    display: block; }
  .is-drilldown.animate-height {
    transition: height 0.5s; }

.drilldown a {
  padding: 0.7rem 1rem;
  background: #fefefe; }

.drilldown .is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  width: 100%;
  background: #fefefe;
  transition: transform 0.15s linear; }
  .drilldown .is-drilldown-submenu.is-active {
    z-index: 1;
    display: block;
    transform: translateX(-100%); }
  .drilldown .is-drilldown-submenu.is-closing {
    transform: translateX(100%); }
  .drilldown .is-drilldown-submenu a {
    padding: 0.7rem 1rem; }

.drilldown .nested.is-drilldown-submenu {
  margin-right: 0;
  margin-left: 0; }

.drilldown .drilldown-submenu-cover-previous {
  min-height: 100%; }

.drilldown .is-drilldown-submenu-parent > a {
  position: relative; }
  .drilldown .is-drilldown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #346046;
    position: absolute;
    top: 50%;
    margin-top: -6px;
    right: 1rem; }

.drilldown.align-left .is-drilldown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #346046;
  right: 1rem;
  left: auto; }

.drilldown.align-right .is-drilldown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #346046 transparent transparent;
  right: auto;
  left: 1rem; }

.drilldown .js-drilldown-back > a::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #346046 transparent transparent;
  border-left-width: 0;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.75rem; }

.responsive-embed, .is-type-video .wp-block-embed__wrapper, .is-type-video .wp-block-embed__wrapper .container-lazyload,
.flex-video {
  position: relative;
  height: 0;
  margin-bottom: 1rem;
  padding-bottom: 75%;
  overflow: hidden; }
  .responsive-embed iframe, .is-type-video .wp-block-embed__wrapper iframe, .is-type-video .wp-block-embed__wrapper .container-lazyload iframe,
  .responsive-embed object,
  .is-type-video .wp-block-embed__wrapper object,
  .is-type-video .wp-block-embed__wrapper .container-lazyload object,
  .responsive-embed embed,
  .is-type-video .wp-block-embed__wrapper embed,
  .is-type-video .wp-block-embed__wrapper .container-lazyload embed,
  .responsive-embed video,
  .is-type-video .wp-block-embed__wrapper video,
  .is-type-video .wp-block-embed__wrapper .container-lazyload video,
  .flex-video iframe,
  .flex-video object,
  .flex-video embed,
  .flex-video video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }
  .responsive-embed.widescreen, .is-type-video .wp-block-embed__wrapper, .is-type-video .wp-block-embed__wrapper .container-lazyload,
  .flex-video.widescreen,
  .is-type-video .flex-video.wp-block-embed__wrapper,
  .is-type-video .wp-block-embed__wrapper .flex-video.container-lazyload {
    padding-bottom: 56.25%; }

.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  border-radius: 50px;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  background: #346046;
  color: #fefefe; }
  .label.primary {
    background: #346046;
    color: #fefefe; }
  .label.secondary {
    background: #f8e287;
    color: #3c3c3b; }
  .label.success {
    background: #3adb76;
    color: #3c3c3b; }
  .label.warning {
    background: #ffae00;
    color: #3c3c3b; }
  .label.alert {
    background: #cc4b37;
    color: #fefefe; }

.is-off-canvas-open {
  overflow: hidden; }

.js-off-canvas-overlay {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 11;
  width: 100%;
  height: 100%;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  background: rgba(254, 254, 254, 0.25);
  opacity: 0;
  visibility: hidden;
  overflow: hidden; }
  .js-off-canvas-overlay.is-visible {
    opacity: 1;
    visibility: visible; }
  .js-off-canvas-overlay.is-closable {
    cursor: pointer; }
  .js-off-canvas-overlay.is-overlay-absolute {
    position: absolute; }
  .js-off-canvas-overlay.is-overlay-fixed {
    position: fixed; }

.off-canvas-wrapper {
  position: relative;
  overflow: hidden; }

.off-canvas {
  position: fixed;
  z-index: 12;
  transition: transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #2C3840; }
  [data-whatinput='mouse'] .off-canvas {
    outline: 0; }
  .off-canvas.is-transition-push {
    z-index: 12; }
  .off-canvas.is-closed {
    visibility: hidden; }
  .off-canvas.is-transition-overlap {
    z-index: 13; }
    .off-canvas.is-transition-overlap.is-open {
      box-shadow: 0; }
  .off-canvas.is-open {
    transform: translate(0, 0); }

.off-canvas-absolute {
  position: absolute;
  z-index: 12;
  transition: transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #2C3840; }
  [data-whatinput='mouse'] .off-canvas-absolute {
    outline: 0; }
  .off-canvas-absolute.is-transition-push {
    z-index: 12; }
  .off-canvas-absolute.is-closed {
    visibility: hidden; }
  .off-canvas-absolute.is-transition-overlap {
    z-index: 13; }
    .off-canvas-absolute.is-transition-overlap.is-open {
      box-shadow: 0; }
  .off-canvas-absolute.is-open {
    transform: translate(0, 0); }

.position-left {
  top: 0;
  left: 0;
  height: 100%;
  overflow-y: auto;
  width: 100vw;
  transform: translateX(-100vw); }
  .off-canvas-content .off-canvas.position-left {
    transform: translateX(-100vw); }
    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {
      transform: translate(0, 0); }
  .off-canvas-content.is-open-left.has-transition-push {
    transform: translateX(100vw); }
  .position-left.is-transition-push {
    box-shadow: inset -13px 0 20px -13px 0; }

.position-right {
  top: 0;
  right: 0;
  height: 100%;
  overflow-y: auto;
  width: 100vw;
  transform: translateX(100vw); }
  .off-canvas-content .off-canvas.position-right {
    transform: translateX(100vw); }
    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {
      transform: translate(0, 0); }
  .off-canvas-content.is-open-right.has-transition-push {
    transform: translateX(-100vw); }
  .position-right.is-transition-push {
    box-shadow: inset 13px 0 20px -13px 0; }

.position-top {
  top: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  transform: translateY(-250px); }
  .off-canvas-content .off-canvas.position-top {
    transform: translateY(-250px); }
    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {
      transform: translate(0, 0); }
  .off-canvas-content.is-open-top.has-transition-push {
    transform: translateY(250px); }
  .position-top.is-transition-push {
    box-shadow: inset 0 -13px 20px -13px 0; }

.position-bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  transform: translateY(250px); }
  .off-canvas-content .off-canvas.position-bottom {
    transform: translateY(250px); }
    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {
      transform: translate(0, 0); }
  .off-canvas-content.is-open-bottom.has-transition-push {
    transform: translateY(-250px); }
  .position-bottom.is-transition-push {
    box-shadow: inset 0 13px 20px -13px 0; }

.off-canvas-content {
  transform: none;
  transition: transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }
  .off-canvas-content.has-transition-push {
    transform: translate(0, 0); }
  .off-canvas-content .off-canvas.is-open {
    transform: translate(0, 0); }

@media print, screen and (min-width: 40em) {
  .position-left.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-left.reveal-for-medium .close-button {
      display: none; }
    .off-canvas-content .position-left.reveal-for-medium {
      transform: none; }
    .off-canvas-content.has-reveal-left {
      margin-left: 100vw; }
    .position-left.reveal-for-medium ~ .off-canvas-content {
      margin-left: 100vw; }
  .position-right.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-right.reveal-for-medium .close-button {
      display: none; }
    .off-canvas-content .position-right.reveal-for-medium {
      transform: none; }
    .off-canvas-content.has-reveal-right {
      margin-right: 100vw; }
    .position-right.reveal-for-medium ~ .off-canvas-content {
      margin-right: 100vw; }
  .position-top.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-top.reveal-for-medium .close-button {
      display: none; }
    .off-canvas-content .position-top.reveal-for-medium {
      transform: none; }
    .off-canvas-content.has-reveal-top {
      margin-top: 100vw; }
    .position-top.reveal-for-medium ~ .off-canvas-content {
      margin-top: 100vw; }
  .position-bottom.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-bottom.reveal-for-medium .close-button {
      display: none; }
    .off-canvas-content .position-bottom.reveal-for-medium {
      transform: none; }
    .off-canvas-content.has-reveal-bottom {
      margin-bottom: 100vw; }
    .position-bottom.reveal-for-medium ~ .off-canvas-content {
      margin-bottom: 100vw; } }

@media print, screen and (min-width: 64em) {
  .position-left.reveal-for-large {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-left.reveal-for-large .close-button {
      display: none; }
    .off-canvas-content .position-left.reveal-for-large {
      transform: none; }
    .off-canvas-content.has-reveal-left {
      margin-left: 100vw; }
    .position-left.reveal-for-large ~ .off-canvas-content {
      margin-left: 100vw; }
  .position-right.reveal-for-large {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-right.reveal-for-large .close-button {
      display: none; }
    .off-canvas-content .position-right.reveal-for-large {
      transform: none; }
    .off-canvas-content.has-reveal-right {
      margin-right: 100vw; }
    .position-right.reveal-for-large ~ .off-canvas-content {
      margin-right: 100vw; }
  .position-top.reveal-for-large {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-top.reveal-for-large .close-button {
      display: none; }
    .off-canvas-content .position-top.reveal-for-large {
      transform: none; }
    .off-canvas-content.has-reveal-top {
      margin-top: 100vw; }
    .position-top.reveal-for-large ~ .off-canvas-content {
      margin-top: 100vw; }
  .position-bottom.reveal-for-large {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-bottom.reveal-for-large .close-button {
      display: none; }
    .off-canvas-content .position-bottom.reveal-for-large {
      transform: none; }
    .off-canvas-content.has-reveal-bottom {
      margin-bottom: 100vw; }
    .position-bottom.reveal-for-large ~ .off-canvas-content {
      margin-bottom: 100vw; } }

@media screen and (min-width: 75em) {
  .position-left.reveal-for-xlarge {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-left.reveal-for-xlarge .close-button {
      display: none; }
    .off-canvas-content .position-left.reveal-for-xlarge {
      transform: none; }
    .off-canvas-content.has-reveal-left {
      margin-left: 100vw; }
    .position-left.reveal-for-xlarge ~ .off-canvas-content {
      margin-left: 100vw; }
  .position-right.reveal-for-xlarge {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-right.reveal-for-xlarge .close-button {
      display: none; }
    .off-canvas-content .position-right.reveal-for-xlarge {
      transform: none; }
    .off-canvas-content.has-reveal-right {
      margin-right: 100vw; }
    .position-right.reveal-for-xlarge ~ .off-canvas-content {
      margin-right: 100vw; }
  .position-top.reveal-for-xlarge {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-top.reveal-for-xlarge .close-button {
      display: none; }
    .off-canvas-content .position-top.reveal-for-xlarge {
      transform: none; }
    .off-canvas-content.has-reveal-top {
      margin-top: 100vw; }
    .position-top.reveal-for-xlarge ~ .off-canvas-content {
      margin-top: 100vw; }
  .position-bottom.reveal-for-xlarge {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-bottom.reveal-for-xlarge .close-button {
      display: none; }
    .off-canvas-content .position-bottom.reveal-for-xlarge {
      transform: none; }
    .off-canvas-content.has-reveal-bottom {
      margin-bottom: 100vw; }
    .position-bottom.reveal-for-xlarge ~ .off-canvas-content {
      margin-bottom: 100vw; } }

@media screen and (min-width: 90em) {
  .position-left.reveal-for-xxlarge {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-left.reveal-for-xxlarge .close-button {
      display: none; }
    .off-canvas-content .position-left.reveal-for-xxlarge {
      transform: none; }
    .off-canvas-content.has-reveal-left {
      margin-left: 100vw; }
    .position-left.reveal-for-xxlarge ~ .off-canvas-content {
      margin-left: 100vw; }
  .position-right.reveal-for-xxlarge {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-right.reveal-for-xxlarge .close-button {
      display: none; }
    .off-canvas-content .position-right.reveal-for-xxlarge {
      transform: none; }
    .off-canvas-content.has-reveal-right {
      margin-right: 100vw; }
    .position-right.reveal-for-xxlarge ~ .off-canvas-content {
      margin-right: 100vw; }
  .position-top.reveal-for-xxlarge {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-top.reveal-for-xxlarge .close-button {
      display: none; }
    .off-canvas-content .position-top.reveal-for-xxlarge {
      transform: none; }
    .off-canvas-content.has-reveal-top {
      margin-top: 100vw; }
    .position-top.reveal-for-xxlarge ~ .off-canvas-content {
      margin-top: 100vw; }
  .position-bottom.reveal-for-xxlarge {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-bottom.reveal-for-xxlarge .close-button {
      display: none; }
    .off-canvas-content .position-bottom.reveal-for-xxlarge {
      transform: none; }
    .off-canvas-content.has-reveal-bottom {
      margin-bottom: 100vw; }
    .position-bottom.reveal-for-xxlarge ~ .off-canvas-content {
      margin-bottom: 100vw; } }

@media print, screen and (min-width: 40em) {
  .off-canvas.in-canvas-for-medium {
    visibility: visible;
    height: auto;
    position: static;
    background: none;
    width: auto;
    overflow: visible;
    transition: none; }
    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {
      box-shadow: none;
      transform: none; }
    .off-canvas.in-canvas-for-medium .close-button {
      display: none; } }

@media print, screen and (min-width: 64em) {
  .off-canvas.in-canvas-for-large {
    visibility: visible;
    height: auto;
    position: static;
    background: none;
    width: auto;
    overflow: visible;
    transition: none; }
    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {
      box-shadow: none;
      transform: none; }
    .off-canvas.in-canvas-for-large .close-button {
      display: none; } }

@media screen and (min-width: 75em) {
  .off-canvas.in-canvas-for-xlarge {
    visibility: visible;
    height: auto;
    position: static;
    background: none;
    width: auto;
    overflow: visible;
    transition: none; }
    .off-canvas.in-canvas-for-xlarge.position-left, .off-canvas.in-canvas-for-xlarge.position-right, .off-canvas.in-canvas-for-xlarge.position-top, .off-canvas.in-canvas-for-xlarge.position-bottom {
      box-shadow: none;
      transform: none; }
    .off-canvas.in-canvas-for-xlarge .close-button {
      display: none; } }

@media screen and (min-width: 90em) {
  .off-canvas.in-canvas-for-xxlarge {
    visibility: visible;
    height: auto;
    position: static;
    background: none;
    width: auto;
    overflow: visible;
    transition: none; }
    .off-canvas.in-canvas-for-xxlarge.position-left, .off-canvas.in-canvas-for-xxlarge.position-right, .off-canvas.in-canvas-for-xxlarge.position-top, .off-canvas.in-canvas-for-xxlarge.position-bottom {
      box-shadow: none;
      transform: none; }
    .off-canvas.in-canvas-for-xxlarge .close-button {
      display: none; } }

.pagination, ul.page-numbers {
  margin-left: 0;
  margin-bottom: 1rem; }
  .pagination::before, ul.page-numbers::before, .pagination::after, ul.page-numbers::after {
    display: table;
    content: ' ';
    flex-basis: 0;
    order: 1; }
  .pagination::after, ul.page-numbers::after {
    clear: both; }
  .pagination li, ul.page-numbers li {
    margin-right: 0.625rem;
    border-radius: 50px;
    font-size: 1rem;
    display: none; }
    .pagination li:last-child, ul.page-numbers li:last-child, .pagination li:first-child, ul.page-numbers li:first-child {
      display: inline-block; }
    @media print, screen and (min-width: 40em) {
      .pagination li, ul.page-numbers li {
        display: inline-block; } }
  .pagination a, ul.page-numbers a,
  .pagination button,
  ul.page-numbers button {
    display: block;
    padding: 0.1875rem 0.625rem;
    border-radius: 50px;
    color: #3c3c3b; }
    .pagination a:hover, ul.page-numbers a:hover,
    .pagination button:hover,
    ul.page-numbers button:hover {
      background: #e6e6e6; }
  .pagination .current, ul.page-numbers .current {
    padding: 0.1875rem 0.625rem;
    background: transparent;
    color: #3c3c3b;
    cursor: default; }
  .pagination .disabled, ul.page-numbers .disabled {
    padding: 0.1875rem 0.625rem;
    color: #4e4e4e;
    cursor: not-allowed; }
    .pagination .disabled:hover, ul.page-numbers .disabled:hover {
      background: transparent; }
  .pagination .ellipsis::after, ul.page-numbers .ellipsis::after {
    padding: 0.1875rem 0.625rem;
    content: '\2026';
    color: #3c3c3b; }

.pagination-previous a::before,
.pagination-previous.disabled::before {
  display: inline-block;
  margin-right: 0.5rem;
  content: '\00ab'; }

.pagination-next a::after,
.pagination-next.disabled::after {
  display: inline-block;
  margin-left: 0.5rem;
  content: '\00bb'; }

.sticky-container {
  position: relative; }

.sticky {
  position: relative;
  z-index: 0;
  transform: translate3d(0, 0, 0); }

.sticky.is-stuck {
  position: fixed;
  z-index: 5;
  width: 100%; }
  .sticky.is-stuck.is-at-top {
    top: 0; }
  .sticky.is-stuck.is-at-bottom {
    bottom: 0; }

.sticky.is-anchored {
  position: relative;
  right: auto;
  left: auto; }
  .sticky.is-anchored.is-at-bottom {
    bottom: 0; }

html.is-reveal-open {
  position: fixed;
  width: 100%;
  overflow-y: hidden; }
  html.is-reveal-open.zf-has-scroll {
    overflow-y: scroll; }
  html.is-reveal-open body {
    overflow-y: hidden; }

.reveal-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1005;
  display: none;
  background-color: rgba(60, 60, 59, 0.45);
  overflow-y: auto; }

.reveal {
  z-index: 1006;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  display: none;
  padding: 1rem;
  border: 1px solid #4e4e4e;
  border-radius: 50px;
  background-color: #fefefe;
  position: relative;
  top: 100px;
  margin-right: auto;
  margin-left: auto;
  overflow-y: auto; }
  [data-whatinput='mouse'] .reveal {
    outline: 0; }
  @media print, screen and (min-width: 40em) {
    .reveal {
      min-height: 0; } }
  .reveal .column {
    min-width: 0; }
  .reveal > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    .reveal {
      width: 600px;
      max-width: 75rem; } }
  .reveal.collapse {
    padding: 0; }
  @media print, screen and (min-width: 40em) {
    .reveal.tiny {
      width: 30%;
      max-width: 75rem; } }
  @media print, screen and (min-width: 40em) {
    .reveal.small {
      width: 50%;
      max-width: 75rem; } }
  @media print, screen and (min-width: 40em) {
    .reveal.large {
      width: 90%;
      max-width: 75rem; } }
  .reveal.full {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 100%;
    margin-left: 0;
    border: 0;
    border-radius: 0; }
  @media screen and (max-width: 39.99875em) {
    .reveal {
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      width: 100%;
      max-width: none;
      height: 100%;
      min-height: 100%;
      margin-left: 0;
      border: 0;
      border-radius: 0; } }
  .reveal.without-overlay {
    position: fixed; }

table {
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 50px; }
  thead,
  tbody,
  tfoot {
    border: 1px solid #f6f6f6;
    background-color: #fefefe; }
  caption {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold; }
  thead {
    background: #e6e6e6;
    color: #3c3c3b; }
  tfoot {
    background: #f6f6f6;
    color: #3c3c3b; }
  thead tr,
  tfoot tr {
    background: transparent; }
  thead th,
  thead td,
  tfoot th,
  tfoot td {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold;
    text-align: left; }
  tbody th,
  tbody td {
    padding: 0.5rem 0.625rem 0.625rem; }
  tbody tr:nth-child(even) {
    border-bottom: 0;
    background-color: #f6f6f6; }
  table.unstriped tbody {
    background-color: #fefefe; }
    table.unstriped tbody tr {
      border-bottom: 0;
      border-bottom: 1px solid #f6f6f6;
      background-color: #fefefe; }

@media screen and (max-width: 63.99875em) {
  table.stack thead {
    display: none; }
  table.stack tfoot {
    display: none; }
  table.stack tr,
  table.stack th,
  table.stack td {
    display: block; }
  table.stack td {
    border-top: 0; } }

table.scroll {
  display: block;
  width: 100%;
  overflow-x: auto; }

table.hover thead tr:hover {
  background-color: #e1e1e1; }

table.hover tfoot tr:hover {
  background-color: #f1f1f1; }

table.hover tbody tr:hover {
  background-color: #f9f9f9; }

table.hover:not(.unstriped) tr:nth-of-type(even):hover {
  background-color: #f1f1f1; }

.table-scroll {
  overflow-x: auto; }

.thumbnail {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 1rem;
  border: solid 4px #fefefe;
  border-radius: 50px;
  box-shadow: 0 0 0 1px rgba(60, 60, 59, 0.2);
  line-height: 0; }

a.thumbnail {
  transition: box-shadow 200ms ease-out; }
  a.thumbnail:hover, a.thumbnail:focus {
    box-shadow: 0 0 6px 1px rgba(52, 96, 70, 0.5); }
  a.thumbnail image {
    box-shadow: none; }

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

@media screen and (max-width: 39.99875em) {
  .hide-for-small-only {
    display: none !important; } }

@media screen and (max-width: 0em), screen and (min-width: 40em) {
  .show-for-small-only {
    display: none !important; } }

@media print, screen and (min-width: 40em) {
  .hide-for-medium {
    display: none !important; } }

@media screen and (max-width: 39.99875em) {
  .show-for-medium {
    display: none !important; } }

@media screen and (min-width: 40em) and (max-width: 63.99875em) {
  .hide-for-medium-only {
    display: none !important; } }

@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {
  .show-for-medium-only {
    display: none !important; } }

@media print, screen and (min-width: 64em) {
  .hide-for-large {
    display: none !important; } }

@media screen and (max-width: 63.99875em) {
  .show-for-large {
    display: none !important; } }

@media screen and (min-width: 64em) and (max-width: 74.99875em) {
  .hide-for-large-only {
    display: none !important; } }

@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {
  .show-for-large-only {
    display: none !important; } }

@media screen and (min-width: 75em) {
  .hide-for-xlarge {
    display: none !important; } }

@media screen and (max-width: 74.99875em) {
  .show-for-xlarge {
    display: none !important; } }

@media screen and (min-width: 75em) and (max-width: 89.99875em) {
  .hide-for-xlarge-only {
    display: none !important; } }

@media screen and (max-width: 74.99875em), screen and (min-width: 90em) {
  .show-for-xlarge-only {
    display: none !important; } }

@media screen and (min-width: 90em) {
  .hide-for-xxlarge {
    display: none !important; } }

@media screen and (max-width: 89.99875em) {
  .show-for-xxlarge {
    display: none !important; } }

@media screen and (min-width: 90em) {
  .hide-for-xxlarge-only {
    display: none !important; } }

@media screen and (max-width: 89.99875em) {
  .show-for-xxlarge-only {
    display: none !important; } }

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0; }

.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  white-space: normal; }

.show-for-landscape,
.hide-for-portrait {
  display: block !important; }
  @media screen and (orientation: landscape) {
    .show-for-landscape,
    .hide-for-portrait {
      display: block !important; } }
  @media screen and (orientation: portrait) {
    .show-for-landscape,
    .hide-for-portrait {
      display: none !important; } }

.hide-for-landscape,
.show-for-portrait {
  display: none !important; }
  @media screen and (orientation: landscape) {
    .hide-for-landscape,
    .show-for-portrait {
      display: none !important; } }
  @media screen and (orientation: portrait) {
    .hide-for-landscape,
    .show-for-portrait {
      display: block !important; } }

/*
  My custom styles:
  Add your scss files below to structure your project styles
*/
/************************************************

Stylesheet: Dev Helper

By creating a new constant called ENVIRONMENT in wp-config.php
we can do things like enable certain styles only when the site is
running locally.

The way this works is the header file looks for the constant and adds a class of 
.mode-{ENVIRONMENT} to the body. So if you set the constant to 'local' you'll have 
body class="mode-local" available to you. 

You could also use this CONSTANT to enable certain bits of code in specific environments.

If it's not already included in wp-config.php, add the following:

/** Used for turning things like GA tracking off in local env */
/** Set to local, staging, or live */
/*************************************************/
.mode-local footer:after {
  position: fixed;
  background: red;
  padding: 5px 10px;
  color: white;
  bottom: 0;
  right: 0;
  content: "LOCAL / BP: small";
  font-size: 0.875rem; }
  @media print, screen and (min-width: 40em) {
    .mode-local footer:after {
      content: "LOCAL / BP: medium"; } }
  @media print, screen and (min-width: 64em) {
    .mode-local footer:after {
      content: "LOCAL / BP: large"; } }
  @media screen and (min-width: 75em) {
    .mode-local footer:after {
      content: "LOCAL / BP: xlarge"; } }
  @media screen and (min-width: 90em) {
    .mode-local footer:after {
      content: "LOCAL / BP: xxlarge"; } }

.mode-development footer:after {
  position: fixed;
  background: orange;
  padding: 5px 10px;
  color: black;
  bottom: 0;
  right: 0;
  content: "STAGING / BP: small";
  font-size: 0.875rem; }
  @media print, screen and (min-width: 40em) {
    .mode-development footer:after {
      content: "STAGING / BP: medium"; } }
  @media print, screen and (min-width: 64em) {
    .mode-development footer:after {
      content: "STAGING / BP: large"; } }
  @media screen and (min-width: 75em) {
    .mode-development footer:after {
      content: "STAGING / BP: xlarge"; } }
  @media screen and (min-width: 90em) {
    .mode-development footer:after {
      content: "STAGING / BP: xxlarge"; } }

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden; }

.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  color: #21759b;
  display: block;
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: bold;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000; }

@media (prefers-reduced-motion: reduce) {
  *,
  ::before,
  ::after {
    animation-delay: -1ms !important;
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    background-attachment: initial !important;
    scroll-behavior: auto !important;
    transition-duration: 0s !important;
    transition-delay: 0s !important; } }

.heading-underline, .block__heading--underline {
  position: relative; }
  .heading-underline::after, .block__heading--underline::after {
    background: #3c3c3b;
    content: "";
    display: block;
    height: 3px;
    margin: 2rem 0;
    width: 80px; }

.heading-underline--center, .block__heading--underline-center {
  position: relative;
  text-align: center; }
  .heading-underline--center::after, .block__heading--underline-center::after {
    background: #3c3c3b;
    content: "";
    display: block;
    height: 3px;
    margin: 2rem auto 2rem;
    width: 80px; }

.sub-heading {
  font-size: 1.375rem;
  font-weight: bold; }
  @media (max-width: 1200px) {
    .sub-heading {
      font-size: calc(1.2625rem + 0.15vw) ; } }

.lead {
  font-size: 1.6875rem; }
  @media (max-width: 1200px) {
    .lead {
      font-size: calc(1.29375rem + 0.525vw) ; } }

strong,
b {
  font-family: "GlacialBold", "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }

h1, .h1, .h1 {
  font-size: 3rem; }
  @media (max-width: 1200px) {
    h1, .h1, .h1 {
      font-size: calc(1.425rem + 2.1vw) ; } }


h2,
.h2,
.stats__item--content, .h2 {
  font-size: 2.5rem; }
  @media (max-width: 1200px) {
    
    h2,
    .h2,
    .stats__item--content, .h2 {
      font-size: calc(1.375rem + 1.5vw) ; } }


h3,
.h3,
.search-snippet__title,
.related.products > h2,
.related.products > .h2,
.related.products > .stats__item--content,
.card__title,
.block__heading--small,
.repeater-icon__item-heading,
.signpost__title, .h3, .search-snippet__title, .related.products > h2, .related.products > .h2, .related.products > .stats__item--content {
  font-size: 1.9375rem; }
  @media (max-width: 1200px) {
    
    h3,
    .h3,
    .search-snippet__title,
    .related.products > h2,
    .related.products > .h2,
    .related.products > .stats__item--content,
    .card__title,
    .block__heading--small,
    .repeater-icon__item-heading,
    .signpost__title, .h3, .search-snippet__title, .related.products > h2, .related.products > .h2, .related.products > .stats__item--content {
      font-size: calc(1.31875rem + 0.825vw) ; } }


h4,
.h4,
.card--resource__title,
.signpost__grid--col-3 .signpost__title,
.woocommerce-checkout-payment h2,
.woocommerce-checkout-payment .h2,
.woocommerce-checkout-payment .stats__item--content,
.woocommerce-order h2,
.woocommerce-order .h2,
.woocommerce-order .stats__item--content, .h4 {
  font-size: 1.5625rem; }
  @media (max-width: 1200px) {
    
    h4,
    .h4,
    .card--resource__title,
    .signpost__grid--col-3 .signpost__title,
    .woocommerce-checkout-payment h2,
    .woocommerce-checkout-payment .h2,
    .woocommerce-checkout-payment .stats__item--content,
    .woocommerce-order h2,
    .woocommerce-order .h2,
    .woocommerce-order .stats__item--content, .h4 {
      font-size: calc(1.28125rem + 0.375vw) ; } }


h5,
.h5, .h5 {
  font-size: 1.25rem; }


h6,
.h6,
.widget-title, .h6 {
  font-size: 1rem; }

blockquote p {
  font-size: 1.5625rem; }
  @media (max-width: 1200px) {
    blockquote p {
      font-size: calc(1.28125rem + 0.375vw) ; } }

figcaption {
  max-width: 100%;
  font-size: 0.8rem;
  color: #4e4e4e;
  padding: 1rem 0; }

table thead th {
  font-family: "GlacialBold", "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  font-weight: normal; }

table tfoot th,
table tfoot td {
  font-family: "GlacialBold", "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  font-weight: normal; }

#wpadminbar {
  position: fixed !important; }

body.admin-bar.f-topbar-fixed .sticky.fixed {
  margin-top: 2rem; }

body.admin-bar.offcanvas .off-canvas.is-open {
  top: 2.875rem; }
  @media screen and (min-width: 48.9375em) {
    body.admin-bar.offcanvas .off-canvas.is-open {
      top: 2rem; } }

@media screen and (max-width: 39.99875em) {
  .wp-caption.alignleft, .wp-caption.alignright, .wp-caption.aligncenter {
    padding: 0;
    width: 100% !important; } }

@media screen and (max-width: 39.99875em) {
  .wp-caption.alignleft img, .wp-caption.alignright img, .wp-caption.aligncenter img {
    width: 100%; } }

p.wp-caption-text {
  font-size: 90%;
  color: #666;
  padding: 0.625rem 0; }

.alignleft {
  float: left;
  padding-right: 1rem;
  margin: 0; }

.alignright {
  float: right;
  padding-left: 1rem;
  margin: 0; }

.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto; }

.gallery {
  display: flex;
  flex-flow: row wrap;
  margin-right: -0.625rem;
  margin-left: -0.625rem; }
  @media print, screen and (min-width: 40em) {
    .gallery {
      margin-right: -0.9375rem;
      margin-left: -0.9375rem; } }
  .gallery.gallery-columns-1 > .gallery-item {
    width: calc(50% - 1.25rem);
    margin-right: 0.625rem;
    margin-left: 0.625rem; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-1 > .gallery-item {
      width: calc(25% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-1 > .gallery-item {
      width: calc(100% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  .gallery.gallery-columns-2 > .gallery-item {
    width: calc(50% - 1.25rem);
    margin-right: 0.625rem;
    margin-left: 0.625rem; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-2 > .gallery-item {
      width: calc(25% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-2 > .gallery-item {
      width: calc(50% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  .gallery.gallery-columns-3 > .gallery-item {
    width: calc(50% - 1.25rem);
    margin-right: 0.625rem;
    margin-left: 0.625rem; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-3 > .gallery-item {
      width: calc(25% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-3 > .gallery-item {
      width: calc(33.33333% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  .gallery.gallery-columns-4 > .gallery-item {
    width: calc(50% - 1.25rem);
    margin-right: 0.625rem;
    margin-left: 0.625rem; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-4 > .gallery-item {
      width: calc(25% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-4 > .gallery-item {
      width: calc(25% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  .gallery.gallery-columns-5 > .gallery-item {
    width: calc(50% - 1.25rem);
    margin-right: 0.625rem;
    margin-left: 0.625rem; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-5 > .gallery-item {
      width: calc(25% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-5 > .gallery-item {
      width: calc(20% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  .gallery.gallery-columns-6 > .gallery-item {
    width: calc(50% - 1.25rem);
    margin-right: 0.625rem;
    margin-left: 0.625rem; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-6 > .gallery-item {
      width: calc(25% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-6 > .gallery-item {
      width: calc(16.66667% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  .gallery.gallery-columns-7 > .gallery-item {
    width: calc(50% - 1.25rem);
    margin-right: 0.625rem;
    margin-left: 0.625rem; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-7 > .gallery-item {
      width: calc(25% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-7 > .gallery-item {
      width: calc(14.28571% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  .gallery.gallery-columns-8 > .gallery-item {
    width: calc(50% - 1.25rem);
    margin-right: 0.625rem;
    margin-left: 0.625rem; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-8 > .gallery-item {
      width: calc(25% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-8 > .gallery-item {
      width: calc(12.5% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  .gallery.gallery-columns-9 > .gallery-item {
    width: calc(50% - 1.25rem);
    margin-right: 0.625rem;
    margin-left: 0.625rem; }
  @media print, screen and (min-width: 40em) {
    .gallery.gallery-columns-9 > .gallery-item {
      width: calc(25% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  @media print, screen and (min-width: 64em) {
    .gallery.gallery-columns-9 > .gallery-item {
      width: calc(11.11111% - 1.875rem);
      margin-right: 0.9375rem;
      margin-left: 0.9375rem; } }
  .gallery .gallery-icon > a {
    display: inline-block;
    max-width: 100%;
    margin-bottom: 1rem;
    border: solid 4px #fefefe;
    border-radius: 50px;
    box-shadow: 0 0 0 1px rgba(60, 60, 59, 0.2);
    line-height: 0;
    transition: box-shadow 200ms ease-out; }
    .gallery .gallery-icon > a:hover, .gallery .gallery-icon > a:focus {
      box-shadow: 0 0 6px 1px rgba(52, 96, 70, 0.5); }
    .gallery .gallery-icon > a image {
      box-shadow: none; }
  .gallery .gallery-icon > img {
    display: inline-block;
    max-width: 100%;
    margin-bottom: 1rem;
    border: solid 4px #fefefe;
    border-radius: 50px;
    box-shadow: 0 0 0 1px rgba(60, 60, 59, 0.2);
    line-height: 0; }

/*
Frontend styles for gutenberg blocks
*/
/** === Base Color Palatte === */
.has-primary-background-color {
  background-color: #346046; }

.has-primary-color {
  color: #346046; }

.has-secondary-background-color {
  background-color: #f8e287; }

.has-secondary-color {
  color: #f8e287; }

.has-success-background-color {
  background-color: #3adb76; }

.has-success-color {
  color: #3adb76; }

.has-warning-background-color {
  background-color: #ffae00; }

.has-warning-color {
  color: #ffae00; }

.has-alert-background-color {
  background-color: #cc4b37; }

.has-alert-color {
  color: #cc4b37; }

/** === Button === */
.wp-block-button .wp-block-button__link.has-primary-background-color {
  background-color: #346046; }

.wp-block-button .wp-block-button__link.has-primary-color {
  color: #346046; }

.wp-block-button .wp-block-button__link.has-secondary-background-color {
  background-color: #f8e287; }

.wp-block-button .wp-block-button__link.has-secondary-color {
  color: #f8e287; }

.wp-block-button .wp-block-button__link.has-success-background-color {
  background-color: #3adb76; }

.wp-block-button .wp-block-button__link.has-success-color {
  color: #3adb76; }

.wp-block-button .wp-block-button__link.has-warning-background-color {
  background-color: #ffae00; }

.wp-block-button .wp-block-button__link.has-warning-color {
  color: #ffae00; }

.wp-block-button .wp-block-button__link.has-alert-background-color {
  background-color: #cc4b37; }

.wp-block-button .wp-block-button__link.has-alert-color {
  color: #cc4b37; }

.wp-block-button.is-style-squared .wp-block-button__link {
  border-radius: 0; }

/** === File === */
.wp-block-file .wp-block-file__button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  padding: 0.85em 1em;
  border: 1px solid transparent;
  border-radius: 50px;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-family: inherit;
  font-size: 0.9rem;
  -webkit-appearance: none;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  background-color: #346046;
  color: #fefefe; }
  [data-whatinput='mouse'] .wp-block-file .wp-block-file__button {
    outline: 0; }
  .wp-block-file .wp-block-file__button:hover, .wp-block-file .wp-block-file__button:focus {
    background-color: #2c523c;
    color: #fefefe; }

.footer {
  color: #3c3c3b;
  text-align: center; }
  @media print, screen and (min-width: 40em) {
    .footer {
      text-align: left; } }
  .footer p,
  .footer li,
  .footer a {
    font-size: 14px; }
  .footer__top {
    background-color: #346046;
    color: #fefefe;
    padding: 2rem 0; }
  .footer__bottom {
    background-color: #346046;
    color: #fefefe;
    font-size: 12px;
    padding: 2rem 0; }
    @media print, screen and (min-width: 40em) {
      .footer__bottom {
        display: flex; } }
    .footer__bottom p,
    .footer__bottom li,
    .footer__bottom a {
      color: #fefefe;
      font-size: 12px; }
  @media print, screen and (min-width: 40em) {
    .footer__bottom-row {
      display: flex;
      justify-content: space-between; } }
  @media print, screen and (min-width: 40em) {
    .footer__bottom-left-portion {
      display: flex;
      flex-basis: 50%; }
      .footer__bottom-left-portion > *:last-child {
        margin-left: 1rem; } }
  .footer__bottom-right-portion {
    margin-top: 1rem; }
    @media print, screen and (min-width: 40em) {
      .footer__bottom-right-portion {
        display: flex;
        flex-basis: 50%;
        justify-content: flex-end;
        margin: 0; } }
  @media print, screen and (min-width: 40em) {
    .footer__legal-text, .footer__credits {
      margin-bottom: 0; } }
  .footer__item {
    display: flex;
    flex-direction: column; }
    @media print, screen and (min-width: 40em) {
      .footer__item {
        flex-direction: row; } }
    .footer__item span {
      display: block;
      padding: 3px 0;
      font-family: "GlacialBold", "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }
      @media print, screen and (min-width: 40em) {
        .footer__item span {
          padding: 0 1rem; } }
  .footer__widgets > *:last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    .footer__widgets {
      align-items: center;
      display: flex;
      flex-direction: column;
      flex-wrap: wrap; }
      .footer__widgets > * {
        flex: 1 0 auto;
        margin: 0 1rem 0 0; } }
  .footer ul {
    list-style-type: none;
    margin: 0; }
    .footer ul.footer-legal-menu {
      display: flex;
      justify-content: center; }
      @media print, screen and (min-width: 40em) {
        .footer ul.footer-legal-menu {
          justify-content: flex-start; } }
      .footer ul.footer-legal-menu li {
        margin: 0 0.5rem; }
        @media print, screen and (min-width: 40em) {
          .footer ul.footer-legal-menu li {
            margin-left: 1rem; } }
  .footer__social {
    margin-top: 1rem; }
  .footer a {
    text-decoration: none; }

.mon-grid, .signpost__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 100%; }
  @supports ((display: -ms-grid) or (display: grid)) {
    .mon-grid, .signpost__grid {
      display: -ms-grid;
      display: grid;
      grid-gap: 30px;
      -ms-grid-columns: (1fr)[1];
          grid-template-columns: repeat(1, 1fr); } }
  .mon-grid > *, .signpost__grid > * {
    margin-bottom: 1rem; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .mon-grid > *, .signpost__grid > * {
        margin-bottom: 0;
        max-width: 100% !important; } }
  @media print, screen and (min-width: 40em) {
    .mon-grid--2, .signpost__grid--col-2 {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      margin: 0 auto;
      max-width: 100%; }
      @supports ((display: -ms-grid) or (display: grid)) {
        .mon-grid--2, .signpost__grid--col-2 {
          display: -ms-grid;
          display: grid;
          grid-gap: 30px;
          -ms-grid-columns: (1fr)[2];
              grid-template-columns: repeat(2, 1fr); } }
      .mon-grid--2 > *, .signpost__grid--col-2 > * {
        flex-basis: calc(50% - 1rem);
        max-width: calc(50% - 1rem); } }
  @media print, screen and (min-width: 40em) {
    .mon-grid--3, .mon-grid--archive, .signpost__grid--col-3 {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      margin: 0 auto;
      max-width: 100%; }
      @supports ((display: -ms-grid) or (display: grid)) {
        .mon-grid--3, .mon-grid--archive, .signpost__grid--col-3 {
          display: -ms-grid;
          display: grid;
          grid-gap: 30px;
          -ms-grid-columns: (1fr)[3];
              grid-template-columns: repeat(3, 1fr); } }
      .mon-grid--3 > *, .mon-grid--archive > *, .signpost__grid--col-3 > * {
        flex-basis: calc(33.33% - 1rem);
        max-width: calc(33.33% - 1rem); } }
  @media print, screen and (min-width: 40em) {
    .mon-grid--4 {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      margin: 0 auto;
      max-width: 100%; }
      @supports ((display: -ms-grid) or (display: grid)) {
        .mon-grid--4 {
          display: -ms-grid;
          display: grid;
          grid-gap: 30px;
          -ms-grid-columns: (1fr)[4];
              grid-template-columns: repeat(4, 1fr); } }
      .mon-grid--4 > * {
        flex-basis: calc(25% - 1rem);
        max-width: calc(25% - 1rem); } }
  @media print, screen and (min-width: 40em) {
    .mon-grid--team {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      margin: 0 auto;
      max-width: 100%; }
      @supports ((display: -ms-grid) or (display: grid)) {
        .mon-grid--team {
          display: -ms-grid;
          display: grid;
          grid-gap: 30px;
          -ms-grid-columns: (1fr)[2];
              grid-template-columns: repeat(2, 1fr); } }
      .mon-grid--team > * {
        flex-basis: calc(50% - 1rem); } }
  @media print, screen and (min-width: 64em) {
    .mon-grid--team {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      margin: 0 auto;
      max-width: 100%; }
      @supports ((display: -ms-grid) or (display: grid)) {
        .mon-grid--team {
          display: -ms-grid;
          display: grid;
          grid-gap: 30px;
          -ms-grid-columns: (1fr)[4];
              grid-template-columns: repeat(4, 1fr); } }
      .mon-grid--team > * {
        flex-basis: calc(25% - 1rem); } }

@media print, screen and (min-width: 64em) {
  .main-content--classic {
    width: 100%;
    max-width: calc(8 / 12 * 100%);
    margin-left: auto;
    margin-right: auto; } }

html,
body,
.off-canvas-wrapper {
  height: 100%; }

.off-canvas-wrapper {
  align-items: stretch;
  display: flex;
  flex-direction: column; }

.off-canvas-content,
.sticky-nav-padding {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column; }

.main-container {
  flex: 1 1 auto; }

.button--loading::after {
  content: "";
  position: absolute;
  width: 16px;
  height: 16px;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  border: 4px solid transparent;
  border-top-color: #ffffff;
  border-radius: 50%;
  animation: button-loading-spinner 1s ease infinite; }

.breadcrumbs .current-item {
  font-weight: bold; }

.button, .wp-block-button .wp-block-button__link, #searchform .input-group .input-group-button .button, .repeater-logo__link {
  background-color: #346046;
  border-color: #346046;
  border-radius: 50px;
  border-width: 2px;
  border-style: solid;
  color: #fefefe;
  cursor: pointer;
  display: inline-block;
  font-family: "GlacialBold", "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  font-size: 19px;
  line-height: 1;
  margin-bottom: 1rem;
  padding: 0.8rem 2rem 1rem;
  position: relative;
  text-align: center;
  transition: all 0.25s ease-out;
  vertical-align: center;
  width: auto; }
  @media print, screen and (min-width: 40em) {
    .button, .wp-block-button .wp-block-button__link, #searchform .input-group .input-group-button .button, .repeater-logo__link {
      width: auto; } }
  .button:hover, .wp-block-button .wp-block-button__link:hover, #searchform .input-group .input-group-button .button:hover, .repeater-logo__link:hover, .button:active, .wp-block-button .wp-block-button__link:active, #searchform .input-group .input-group-button .button:active, .repeater-logo__link:active, .button:focus, .wp-block-button .wp-block-button__link:focus, #searchform .input-group .input-group-button .button:focus, .repeater-logo__link:focus {
    background-color: #fefefe;
    border-color: #346046;
    color: #3c3c3b; }
  .button.primary, .wp-block-button .primary.wp-block-button__link, #searchform .input-group .input-group-button .primary.button, .primary.repeater-logo__link, .button--primary, .top-bar__button-one, .repeater-logo__link, .pricing-table__table:nth-of-type(even) .pricing-table__button .button, .pricing-table__table:nth-of-type(even) .pricing-table__button .wp-block-button .wp-block-button__link, .wp-block-button .pricing-table__table:nth-of-type(even) .pricing-table__button .wp-block-button__link, .pricing-table__table:nth-of-type(even) .pricing-table__button #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .pricing-table__table:nth-of-type(even) .pricing-table__button .button, .pricing-table__table:nth-of-type(even) .pricing-table__button .repeater-logo__link {
    border-color: #346046;
    background-color: #346046;
    color: #fefefe; }
    .button.primary:hover, .wp-block-button .primary.wp-block-button__link:hover, #searchform .input-group .input-group-button .primary.button:hover, .primary.repeater-logo__link:hover, .button.primary:active, .wp-block-button .primary.wp-block-button__link:active, #searchform .input-group .input-group-button .primary.button:active, .primary.repeater-logo__link:active, .button.primary:focus, .wp-block-button .primary.wp-block-button__link:focus, #searchform .input-group .input-group-button .primary.button:focus, .primary.repeater-logo__link:focus, .button--primary:hover, .top-bar__button-one:hover, .repeater-logo__link:hover, .pricing-table__table:nth-of-type(even) .pricing-table__button .button:hover, .pricing-table__table:nth-of-type(even) .pricing-table__button .wp-block-button .wp-block-button__link:hover, .wp-block-button .pricing-table__table:nth-of-type(even) .pricing-table__button .wp-block-button__link:hover, .pricing-table__table:nth-of-type(even) .pricing-table__button #searchform .input-group .input-group-button .button:hover, #searchform .input-group .input-group-button .pricing-table__table:nth-of-type(even) .pricing-table__button .button:hover, .pricing-table__table:nth-of-type(even) .pricing-table__button .repeater-logo__link:hover, .button--primary:active, .top-bar__button-one:active, .repeater-logo__link:active, .pricing-table__table:nth-of-type(even) .pricing-table__button .button:active, .pricing-table__table:nth-of-type(even) .pricing-table__button .wp-block-button .wp-block-button__link:active, .wp-block-button .pricing-table__table:nth-of-type(even) .pricing-table__button .wp-block-button__link:active, .pricing-table__table:nth-of-type(even) .pricing-table__button #searchform .input-group .input-group-button .button:active, #searchform .input-group .input-group-button .pricing-table__table:nth-of-type(even) .pricing-table__button .button:active, .pricing-table__table:nth-of-type(even) .pricing-table__button .repeater-logo__link:active, .button--primary:focus, .top-bar__button-one:focus, .repeater-logo__link:focus, .pricing-table__table:nth-of-type(even) .pricing-table__button .button:focus, .pricing-table__table:nth-of-type(even) .pricing-table__button .wp-block-button .wp-block-button__link:focus, .wp-block-button .pricing-table__table:nth-of-type(even) .pricing-table__button .wp-block-button__link:focus, .pricing-table__table:nth-of-type(even) .pricing-table__button #searchform .input-group .input-group-button .button:focus, #searchform .input-group .input-group-button .pricing-table__table:nth-of-type(even) .pricing-table__button .button:focus, .pricing-table__table:nth-of-type(even) .pricing-table__button .repeater-logo__link:focus {
      background-color: #223f2e;
      border-color: #223f2e;
      color: #fefefe; }
  .button--outline-primary {
    background-color: transparent;
    border-color: #346046;
    color: #346046; }
    .button--outline-primary:hover, .button--outline-primary:active, .button--outline-primary:focus {
      border-color: #346046;
      background-color: #346046;
      color: #fefefe; }
  .button--secondary, .button.cc-send-modal, .wp-block-button .cc-send-modal.wp-block-button__link, #searchform .input-group .input-group-button .cc-send-modal.button, .cc-send-modal.repeater-logo__link, .button.secondary, .wp-block-button .secondary.wp-block-button__link, #searchform .input-group .input-group-button .secondary.button, .secondary.repeater-logo__link {
    background-color: #f8e287;
    border-color: #f8e287;
    color: #fefefe; }
    .button--secondary:hover, .button.cc-send-modal:hover, .wp-block-button .cc-send-modal.wp-block-button__link:hover, #searchform .input-group .input-group-button .cc-send-modal.button:hover, .cc-send-modal.repeater-logo__link:hover, .button--secondary:active, .button.cc-send-modal:active, .wp-block-button .cc-send-modal.wp-block-button__link:active, #searchform .input-group .input-group-button .cc-send-modal.button:active, .cc-send-modal.repeater-logo__link:active, .button--secondary:focus, .button.cc-send-modal:focus, .wp-block-button .cc-send-modal.wp-block-button__link:focus, #searchform .input-group .input-group-button .cc-send-modal.button:focus, .cc-send-modal.repeater-logo__link:focus, .button.secondary:hover, .wp-block-button .secondary.wp-block-button__link:hover, #searchform .input-group .input-group-button .secondary.button:hover, .secondary.repeater-logo__link:hover, .button.secondary:active, .wp-block-button .secondary.wp-block-button__link:active, #searchform .input-group .input-group-button .secondary.button:active, .secondary.repeater-logo__link:active, .button.secondary:focus, .wp-block-button .secondary.wp-block-button__link:focus, #searchform .input-group .input-group-button .secondary.button:focus, .secondary.repeater-logo__link:focus {
      background-color: #f4d13f;
      border-color: #f4d13f;
      color: #fefefe; }
  .button--outline-secondary {
    background-color: transparent;
    border-color: #f8e287;
    color: #f8e287; }
    .button--outline-secondary:hover, .button--outline-secondary:active, .button--outline-secondary:focus {
      background-color: #f8e287;
      border-color: #f8e287;
      color: #fefefe; }
  .button--outline-alert {
    background-color: transparent;
    border-color: #cc4b37;
    color: #cc4b37; }
    .button--outline-alert:hover, .button--outline-alert:active, .button--outline-alert:focus {
      background-color: #cc4b37;
      border-color: #cc4b37;
      color: #fefefe; }
  .button--white {
    background-color: #fefefe;
    color: #3c3c3b; }
    .button--white:hover, .button--white:active, .button--white:focus {
      background-color: transparent;
      border-color: #fefefe;
      color: #fefefe; }
  .button--outline-white {
    background-color: transparent;
    border-color: #fefefe;
    color: #fefefe; }
    .button--outline-white:hover, .button--outline-white:active, .button--outline-white:focus {
      background-color: #fefefe;
      color: #3c3c3b; }
  .button--small, .cc-dashboard__content table .button, .cc-dashboard__content table .wp-block-button .wp-block-button__link, .wp-block-button .cc-dashboard__content table .wp-block-button__link, .cc-dashboard__content table #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .cc-dashboard__content table .button, .cc-dashboard__content table .repeater-logo__link {
    font-size: 14px;
    padding-top: 0.8rem;
    padding-bottom: 0.8rem;
    padding-left: 1rem;
    padding-right: 1rem;
    min-height: 1.875rem; }
  .button.cc-cancel, .wp-block-button .cc-cancel.wp-block-button__link, #searchform .input-group .input-group-button .cc-cancel.button, .cc-cancel.repeater-logo__link {
    border-color: #cc4b37;
    background-color: #cc4b37; }
    .button.cc-cancel:hover, .wp-block-button .cc-cancel.wp-block-button__link:hover, #searchform .input-group .input-group-button .cc-cancel.button:hover, .cc-cancel.repeater-logo__link:hover {
      background-color: #d15d4b;
      border-color: #d15d4b; }
  .button--loading .button__text {
    visibility: hidden;
    opacity: 0; }
  .button--loading::after {
    content: "";
    position: absolute;
    width: 16px;
    height: 16px;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    border: 4px solid transparent;
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: button-loading-spinner 1s ease infinite; }

@keyframes button-loading-spinner {
  from {
    transform: rotate(0turn); }
  to {
    transform: rotate(1turn); } }

.callout * {
  margin-bottom: 1rem; }

.callout h5, .callout .h5 {
  align-items: center;
  display: flex; }
  .callout h5 svg, .callout .h5 svg {
    margin-right: 0.33333rem; }

.callout .close-button {
  color: #f8e287; }

.card {
  border-radius: calc(50px / 4);
  box-shadow: 0 0 20px 0 rgba(100, 47, 47, 0.15);
  display: flex;
  flex-direction: column;
  transition: all 0.3s ease-in-out;
  position: relative;
  z-index: 1; }
  .card:hover {
    position: relative;
    transform: scale(1.05);
    z-index: 1; }
  .card__image-container {
    position: relative;
    padding-top: 56.25%; }
  .card__image,
  .card picture {
    bottom: 0;
    height: 100%;
    left: 0;
    object-fit: cover;
    position: absolute;
    right: 0;
    top: 0;
    width: 100%; }
  .card__content {
    color: #3c3c3b;
    height: 100%;
    padding: 2rem; }
    .card__content p {
      line-height: 1.3;
      margin-bottom: 1rem; }
    .card__content > *:last-child {
      margin-bottom: 0; }
  .card__title {
    margin-bottom: 1rem; }
  .card__excerpt {
    margin-bottom: 0; }
  .card__category {
    color: #8a8a8a; }
  .card__location, .card__specialism {
    margin: 0; }
  .card__footer {
    align-items: flex-end;
    display: flex;
    flex: 1 0 auto;
    padding: 2rem; }

.card--event__event-venue {
  font-weight: bold; }

.card--event__event-date {
  color: #4e4e4e; }

.card--resource {
  padding: 1rem; }
  .card--resource__heading {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 1rem; }
  .card--resource__icon {
    flex: 0 0 10%;
    margin-left: 1rem; }
    @media print, screen and (min-width: 40em) {
      .card--resource__icon {
        margin-left: 3rem; } }
  .card--resource__title {
    line-height: 1;
    margin: 0;
    transition: color 0.3s ease; }

.card--note .card__footer {
  display: block;
  padding-top: 0; }
  .card--note .card__footer p {
    margin-bottom: 0.5rem; }

.dotted {
  border-style: dashed;
  margin: 2rem 0; }

.block--featured {
  height: 0;
  padding-top: 56%;
  position: relative;
  width: 100%; }
  @media print, screen and (min-width: 64em) {
    .block--featured {
      width: 100%;
      max-width: calc(8 / 12 * 100%);
      margin-left: auto;
      margin-right: auto; } }
  @media print, screen and (min-width: 40em) {
    .block--featured {
      padding-top: 36%; } }
  .block--featured img {
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    width: 100%; }

.social-link {
  background-color: #fefefe;
  border-radius: 50%;
  display: inline-block;
  height: 2rem;
  margin: 0 0.1875rem 0 0.1875rem;
  padding: 0.375rem 0 0;
  text-align: center;
  transition: all 0.2s ease-out;
  width: 2rem; }
  .social-link:hover {
    opacity: 0.8; }
  .social-link .icon-linkedin {
    margin-top: -1px; }

.svg-icon {
  display: inline-block;
  height: 1rem;
  transition: fill 0.2s ease-out;
  vertical-align: top;
  width: 1rem;
  stroke-width: 0;
  stroke: #346046;
  fill: #346046; }
  .svg-icon--social {
    height: 1.25rem;
    margin: auto;
    width: 1.25rem;
    stroke: #346046;
    fill: #346046; }

.cc-form {
  background-color: #e6e6e6;
  border-radius: calc(50px / 4);
  padding: 2rem; }
  .cc-form__grid {
    align-items: end;
    display: -ms-grid;
    display: grid;
    grid-gap: 1rem;
    -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr); }
    .cc-form__grid--4 {
      -ms-grid-columns: (1fr)[4];
          grid-template-columns: repeat(4, 1fr); }
  .cc-form input,
  .cc-form button,
  .cc-form select {
    margin-bottom: 0;
    height: 50px; }
  .cc-form button {
    justify-self: start; }

.user-delete {
  background-color: #cc4b37;
  border-radius: 50px;
  color: #fefefe;
  margin-bottom: 0;
  padding: 1rem; }

.cc-notification--is-active {
  background-color: #3adb76;
  font-size: 18px;
  margin-bottom: 1rem;
  padding: 1rem; }

[data-whatinput="mouse"] a:focus,
button:focus [data-whatinput="touch"] a:focus,
button:focus {
  outline: none; }

.link-inline, #cookie-law-info-bar #CONSTANT_OPEN_URL,
#cookie-law-info-bar .cli_settings_button {
  border-bottom: 2px solid #346046;
  color: #346046;
  font-weight: 600;
  position: relative;
  text-decoration: none;
  transition: border-bottom 0.2s ease-in; }
  .link-inline:hover, #cookie-law-info-bar #CONSTANT_OPEN_URL:hover,
  #cookie-law-info-bar .cli_settings_button:hover {
    border-bottom: 2px solid rgba(52, 96, 70, 0); }
  .link-inline--secondary {
    border-bottom: 2px solid #f8e287;
    color: #f8e287;
    transition: border-bottom 0.2s ease-in; }
    .link-inline--secondary:hover {
      border-bottom: 2px solid rgba(248, 226, 135, 0);
      color: #f8e287; }

.skip-to-content-link {
  background: #346046;
  color: #fefefe;
  height: 40px;
  left: 10px;
  padding: 8px;
  position: absolute;
  top: 40px;
  transform: translateY(-100%);
  transition: transform 0.3s; }
  @media print, screen and (min-width: 40em) {
    .skip-to-content-link {
      top: 0; } }
  .skip-to-content-link:focus {
    color: #fefefe;
    transform: translateY(0%);
    z-index: 2; }

p a {
  font-family: "GlacialBold", "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }

.list {
  list-style: none;
  margin-left: 0; }
  @media print, screen and (min-width: 40em) {
    .list {
      break-inside: avoid;
      column-fill: balance;
      column-gap: 2rem;
      page-break-inside: avoid; } }
  .list li {
    margin-bottom: 0.83333rem; }
  @media print, screen and (min-width: 40em) {
    .list--two {
      columns: 2; } }
  .list--download li {
    align-items: center;
    display: flex; }
    .list--download li::before {
      content: '';
      background-repeat: no-repeat;
      background-size: auto;
      background-position: left center;
      background-image: url("../images/icons/download-icon.svg");
      height: 20px;
      margin-right: 0.5rem;
      width: 20px; }
  .list--tick li {
    align-items: center;
    display: flex; }
    .list--tick li::before {
      content: '';
      background-repeat: no-repeat;
      background-size: auto;
      background-position: left center;
      background-image: url("../images/icons/tick.svg");
      height: 20px;
      width: 20px; }
  .list--styled-bullet li {
    align-items: flex-start;
    display: flex;
    line-height: 1.3; }
    .list--styled-bullet li::before {
      background-color: #346046;
      border-radius: 50%;
      content: '';
      height: 10px;
      margin-right: 0.57143rem;
      margin-top: 5px;
      width: 10px;
      flex: 0 0 10px; }

.pagination, ul.page-numbers {
  margin-top: 2rem; }
  .pagination a, ul.page-numbers a {
    transition: color 0.4s ease; }
    .pagination a:hover, ul.page-numbers a:hover {
      color: #f8e287; }
  .pagination .prev, ul.page-numbers .prev,
  .pagination .next,
  ul.page-numbers .next {
    background-color: #346046;
    padding: 0 1rem;
    font-size: 30px; }
  .pagination .current, ul.page-numbers .current {
    border-bottom: 1px solid #f8e287; }

.reveal {
  border: 1px solid #fefefe; }

#searchform {
  background-color: #fefefe;
  border-top: 1px solid #8a8a8a;
  left: 0;
  padding: 1.5rem;
  position: absolute;
  top: -150px;
  width: 100%;
  z-index: 2; }
  #searchform:focus {
    outline: none;
    box-shadow: none; }
  #searchform .input-group {
    margin: 0; }

@media print, screen and (min-width: 40em) and (min-width: 64em) {
  #searchform .input-group {
    width: 100%;
    max-width: calc(5 / 12 * 100%);
    margin-left: auto;
    margin-right: auto; } }
    #searchform .input-group .input-group-field {
      background-color: #fefefe;
      border-right: 0;
      border: 1px solid #4e4e4e;
      color: #3c3c3b; }
      #searchform .input-group .input-group-field::-webkit-input-placeholder {
        color: #8a8a8a; }
      #searchform .input-group .input-group-field:-ms-input-placeholder {
        color: #8a8a8a; }
      #searchform .input-group .input-group-field::placeholder {
        color: #8a8a8a; }
    #searchform .input-group .input-group-button .wp-block-button .wp-block-button__link, .wp-block-button #searchform .input-group .input-group-button .wp-block-button__link, #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .repeater-logo__link {
      margin-bottom: 0;
      min-width: inherit !important;
      padding-left: 2rem;
      padding-right: 2rem; }
  #searchform.is-active {
    top: 48px; }
    @media print, screen and (min-width: 64em) {
      #searchform.is-active {
        top: 72px; } }
  #searchform input[type='text'] {
    height: 3.2rem;
    line-height: 2; }
    #searchform input[type='text']:focus {
      box-shadow: none; }

.search-snippet {
  border-bottom: 1px solid #4e4e4e;
  margin-bottom: 2rem;
  padding-bottom: 2rem; }
  .search-snippet:last-of-type {
    border-bottom: 0;
    margin-bottom: 0;
    padding-bottom: 0; }
  .search-snippet__label {
    font-size: 14px; }
  .search-snippet__title {
    margin: 1rem 0; }
  .search-snippet__title-link {
    color: #3c3c3b;
    transition: .2s linear color; }
    .search-snippet__title-link:hover {
      color: #346046; }

.site-title-bar {
  padding: 0.3125rem 1rem; }

.widget {
  margin-bottom: 2rem; }

.widget-title {
  display: block;
  font-weight: bold; }

.archive__taxonomy-filter {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end; }
  @media print, screen and (min-width: 40em) {
    .archive__taxonomy-filter {
      flex-wrap: nowrap; } }
  .archive__taxonomy-filter #dynamic_searchform {
    flex: 0 0 100%;
    margin-bottom: 1rem;
    max-width: 100%; }
    @media print, screen and (min-width: 40em) {
      .archive__taxonomy-filter #dynamic_searchform {
        flex: 0 0 50%;
        margin: 0 0 0 1rem;
        max-width: 50%; } }
    @media print, screen and (min-width: 64em) {
      .archive__taxonomy-filter #dynamic_searchform {
        flex: 0 0 35%;
        max-width: 35%; } }
  .archive__taxonomy-filter .dynamic-taxonomy-filter {
    flex: 0 0 100%;
    margin-bottom: 1rem;
    max-width: 100%; }
    @media print, screen and (min-width: 40em) {
      .archive__taxonomy-filter .dynamic-taxonomy-filter {
        flex: 0 0 30%;
        margin: 0 0 0 1rem;
        max-width: 30%; } }
    @media print, screen and (min-width: 64em) {
      .archive__taxonomy-filter .dynamic-taxonomy-filter {
        flex: 0 0 20%;
        max-width: 20%; } }
  .archive__taxonomy-filter select,
  .archive__taxonomy-filter input {
    height: 50px;
    margin-bottom: 0; }
  .archive__taxonomy-filter select {
    padding: 0 2rem 0 1.25rem; }

.new-note-container {
  border-radius: calc(50px / 4);
  box-shadow: 0 0 20px 0 rgba(100, 47, 47, 0.15);
  padding: 2rem; }
  .new-note-container form label {
    font-family: "GlacialBold", "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
    font-size: 20px;
    margin-bottom: 0.5rem; }
  .new-note-container form .checkboxes,
  .new-note-container form .radio-buttons {
    display: flex;
    flex-wrap: wrap; }
    .new-note-container form .checkboxes label,
    .new-note-container form .radio-buttons label {
      font-family: "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
      font-size: 16px; }
  .new-note-container form .form-group-container {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[3];
        grid-template-columns: repeat(3, 1fr);
    grid-gap: 1rem; }
  .new-note-container form .form-group--rabi_note_reasons {
    grid-column: 1 / -1; }
  .new-note-container form .form-group--rabi_note_age_group, .new-note-container form .form-group--rabi_note_gender, .new-note-container form .form-group--rabi_note_location {
    -ms-grid-row: 1;
        grid-row: 1; }
  .new-note-container form .form-group--rabi_note_type_of_farming_person {
    -ms-grid-row: 2;
        grid-row: 2;
    -ms-grid-column-span: 2;
    -ms-grid-column: 1;
        grid-column: 1 / span 2; }
  .new-note-container form .form-group--rabi_note_type_of_farming {
    -ms-grid-row: 2;
        grid-row: 2;
    grid-column: 3 / -1; }
  .new-note-container form .form-group--rabi_note_type_of_counselling {
    grid-column: 1 / -1; }
  .new-note-container form .form-group--note {
    grid-column: 1 / -1; }
  .new-note-container form .footer {
    margin-top: 2rem; }

.single-note__button-group {
  display: flex;
  margin: 2rem 0; }
  .single-note__button-group > * {
    margin-right: 0.5rem; }

.event-panel {
  border: 1px solid #e6e6e6;
  padding: 2rem; }

@media print, screen and (min-width: 40em) {
  .event-panel {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[3];
        grid-template-columns: repeat(3, 1fr);
    grid-gap: 1rem; } }

.event-panel__list {
  list-style: none;
  margin: 0 0 1rem; }

.event-panel__list-item {
  margin-bottom: 0.5rem; }

.event-panel__subheading {
  display: block;
  font-weight: bold; }

.event-panel__details {
  -ms-grid-column-span: 1;
  -ms-grid-column: 1;
      grid-column: 1 / span 1; }

.event-panel__venue {
  -ms-grid-column-span: 1;
  -ms-grid-column: 2;
      grid-column: 2 / span 1; }

.event-panel__organiser {
  -ms-grid-column-span: 1;
  -ms-grid-column: 3;
      grid-column: 3 / span 1; }

.event-panel__map {
  -ms-grid-row: 2;
      grid-row: 2;
  grid-column: 1 / -1; }

.event-map-container {
  position: relative;
  overflow: hidden;
  padding-top: 56.25%; }

.event-map-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0; }

.single-team__header {
  margin-left: auto;
  margin-right: auto;
  max-width: 75rem;
  padding: 0 1rem; }
  @supports ((display: -ms-grid) or (display: grid)) {
    .single-team__header {
      display: -ms-grid;
      display: grid;
      grid-row-gap: 1rem;
      -ms-grid-columns: 1rem (1fr)[12] 1rem;
          grid-template-columns: 1rem repeat(12, 1fr) 1rem;
      -ms-grid-rows: min-content auto 1fr;
          grid-template-rows: min-content auto 1fr;
      margin-left: 0;
      margin-right: 0;
      max-width: 100%;
      padding: 0; }
      @media screen and (min-width: 75em) {
        .single-team__header {
          -ms-grid-columns: calc( ( 100vw - 73rem ) / 2) (1fr)[12] calc( ( 100vw - 73rem ) / 2);
              grid-template-columns: calc( ( 100vw - 73rem ) / 2) repeat(12, 1fr) calc( ( 100vw - 73rem ) / 2); } } }
  .single-team__header.vertical .single-team__title {
    background-color: #346046;
    grid-column: 1 / -1;
    padding: 2rem 0;
    text-align: center; }
  .single-team__header.vertical .single-team__image {
    grid-row: 2 / 3; }
    @media print, screen and (min-width: 40em) {
      .single-team__header.vertical .single-team__image {
        grid-row: 2 / -1; } }

.single-team__title {
  -ms-grid-column-span: 6;
  -ms-grid-column: 2;
      grid-column: 2 / span 6;
  -ms-grid-row: 1;
      grid-row: 1; }

.single-team__details {
  -ms-grid-column-span: 6;
  -ms-grid-column: 2;
      grid-column: 2 / span 6;
  -ms-grid-row: 2;
      grid-row: 2;
  padding-right: 1rem; }

.single-team__image {
  -ms-grid-column-span: 6;
  -ms-grid-column: 8;
      grid-column: 8 / span 6;
  grid-row: 1 / 3;
  height: 100%;
  object-fit: cover; }
  @media print, screen and (min-width: 40em) {
    .single-team__image {
      grid-row: 1 / -1; } }

.single-team__excerpt {
  -ms-grid-column-span: 12;
  -ms-grid-column: 2;
      grid-column: 2 / span 12;
  -ms-grid-row: 3;
      grid-row: 3;
  padding-right: 1rem; }
  @media print, screen and (min-width: 40em) {
    .single-team__excerpt {
      -ms-grid-column-span: 6;
      -ms-grid-column: 2;
          grid-column: 2 / span 6; } }

.site-header {
  background-color: #fefefe;
  border-bottom: 1px solid #e6e6e6;
  display: flex;
  height: auto;
  position: relative;
  transition: all linear 0.3s;
  width: 100%; }
  .site-header--fixed {
    left: 0;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 99; }
  .site-header--scrolled {
    box-shadow: 0 0 20px 0 rgba(100, 47, 47, 0.15); }

body.admin-bar .site-header--fixed {
  top: 46px; }
  @media print, screen and (min-width: 64em) {
    body.admin-bar .site-header--fixed {
      top: 32px; } }

.top-bar {
  align-items: stretch;
  display: flex;
  margin: auto;
  max-width: 75rem;
  padding: 0.5rem 1rem;
  width: 100%; }
  @media print, screen and (min-width: 64em) {
    .top-bar {
      padding: 0 1rem; } }
  .top-bar__left {
    align-items: stretch;
    display: flex;
    margin-right: auto; }
  .top-bar__right {
    display: flex;
    flex: 1 0 auto;
    align-items: stretch; }
  .top-bar__logo {
    align-items: center;
    display: flex;
    height: 100%;
    max-width: 200px; }
  .top-bar__elements {
    flex: 1 0 auto;
    display: flex;
    align-items: stretch;
    padding: 0 1rem; }
    .top-bar__elements.right {
      justify-content: flex-end;
      padding-right: 0; }
    .top-bar__elements.justified {
      justify-content: space-between; }
  .top-bar__desktop-phone {
    align-items: center;
    display: flex;
    order: 1; }
  .top-bar__desktop-menu {
    order: 2; }
  .top-bar__search-icon {
    align-items: center;
    display: flex;
    order: 3;
    padding: 0.5rem; }
  .top-bar__buttons {
    align-items: center;
    display: flex; }
    @media print, screen and (min-width: 64em) {
      .top-bar__buttons {
        margin: 0 -1rem 0 0; } }
    .top-bar__buttons .button, .top-bar__buttons .wp-block-button .wp-block-button__link, .wp-block-button .top-bar__buttons .wp-block-button__link, .top-bar__buttons #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .top-bar__buttons .button, .top-bar__buttons .repeater-logo__link {
      align-items: center;
      display: flex;
      justify-content: center;
      margin: 0 1rem 0 0; }
  .top-bar__button-one {
    padding-left: 1rem;
    padding-right: 1rem; }

.site-navigation__button {
  align-items: center;
  display: flex;
  flex-direction: column;
  height: 3rem;
  justify-content: center;
  padding: 0 0.3125rem;
  position: relative;
  width: 3rem; }
  .site-navigation__button-label {
    align-items: center;
    color: #f8e287;
    font-size: 0.5rem;
    font-weight: bold;
    justify-content: center;
    line-height: 0.5rem; }
  .site-navigation__button--phone {
    text-decoration: none; }
    .site-navigation__button--phone::before {
      background-position: center center;
      background-repeat: no-repeat;
      content: "";
      display: block;
      height: 1rem;
      margin: 0 auto 0.3125rem;
      width: 1rem;
      background-image: url("../images/icons/phone.svg"); }

.header-login-link {
  align-items: center;
  color: #346046;
  display: flex;
  margin-left: 1rem;
  padding: 0 0.66667rem;
  text-decoration: underline; }

/*
	Hamburger Styles with animated lines. _hamburger.scss
	*/
.hamburger {
  align-items: center;
  display: flex;
  flex-direction: column;
  height: auto;
  justify-content: center;
  padding: 0.5rem;
  width: auto;
  z-index: 9; }
  .hamburger .line {
    background-color: #f8e287;
    display: block;
    height: 3px;
    margin: 3px 0;
    width: 32px;
    z-index: 2; }

.mobile-hamburger {
  padding: 1rem; }

@media print, screen and (min-width: 40em) {
  .off-canvas-wrapper {
    overflow: visible; } }

.off-canvas {
  background-color: #f8e287;
  display: flex;
  flex-direction: column;
  overflow-x: hidden; }
  .off-canvas__header {
    display: flex;
    justify-content: flex-end;
    padding: 1rem 1rem 3rem; }
  .off-canvas__footer {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    flex: 1 0 auto;
    justify-content: flex-end;
    padding: 0 1rem 4rem; }
    .off-canvas__footer .phone-number {
      color: #fefefe;
      font-size: 32px;
      font-family: "GlacialBold", "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }
  .off-canvas__phone-number {
    color: #fefefe;
    display: block;
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 1rem; }
  .off-canvas__button {
    font-size: 100%;
    margin-bottom: 0; }

.js-off-canvas-overlay {
  background-color: rgba(10, 10, 10, 0.5); }

/*
	Navigation styles for dropdown & mega menu variation
	*/
.dropdown {
  display: flex;
  list-style: none;
  margin-bottom: 0; }
  @media screen and (max-width: 63.99875em) {
    .dropdown {
      display: none !important; } }
  .dropdown li {
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative; }
    .dropdown li > a {
      color: #3c3c3b;
      font-size: 18px;
      padding: 1.5rem 1rem; }
      .dropdown li > a:hover {
        color: #346046; }
    .dropdown li:hover ul {
      display: flex;
      flex-wrap: wrap; }
      @supports ((display: -ms-grid) or (display: grid)) {
        .dropdown li:hover ul {
          display: -ms-grid;
          display: grid; } }
    .dropdown li.current-menu-item > a, .dropdown li.current-page-parent > a {
      color: #346046; }
    .dropdown li.is-dropdown-submenu-parent > a {
      position: relative;
      padding-right: 2rem; }
      .dropdown li.is-dropdown-submenu-parent > a::after {
        border-style: solid;
        border-width: 2px 2px 0 0;
        content: "";
        display: inline-block;
        height: 8px;
        position: absolute;
        right: 1rem;
        top: calc(50% - 5px);
        transform: rotate(135deg);
        vertical-align: top;
        width: 8px; }
  .dropdown ul {
    background-color: #e6e6e6;
    display: none;
    left: 0;
    margin: 0;
    opacity: 0;
    position: absolute;
    top: 100%;
    transition: opacity ease-out 0.2s;
    width: 17.5rem;
    z-index: 2; }
    .dropdown ul li {
      width: 100%; }
      .dropdown ul li a {
        display: block;
        padding: 0.5rem 1rem; }
    .dropdown ul.js-dropdown-active {
      display: -ms-grid;
      display: grid;
      opacity: 1; }
  .dropdown.mega-menu li {
    position: static; }
  .dropdown.mega-menu ul {
    background-color: #fefefe;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
    left: 0;
    margin: auto;
    padding: 1rem;
    right: 0;
    top: 100%;
    width: 75rem;
    grid-gap: 1rem;
    -ms-grid-columns: 1fr 1fr 1fr;
        grid-template-columns: 1fr 1fr 1fr;
    z-index: 10; }
    .dropdown.mega-menu ul li {
      flex: 0 0 33.33%; }
      .dropdown.mega-menu ul li a {
        color: #346046; }
        .dropdown.mega-menu ul li a:hover {
          color: #3c3c3b; }
      .dropdown.mega-menu ul li .menu-description {
        display: block;
        padding: 0 1rem 0.5rem 1rem; }
  .dropdown.underlined-links > li {
    margin: 0 1rem; }
    .dropdown.underlined-links > li > a {
      border-bottom: 5px solid transparent;
      padding-left: 0;
      padding-right: 0; }
      .dropdown.underlined-links > li > a:hover {
        border-bottom-color: #346046; }
    .dropdown.underlined-links > li.current-menu-item > a, .dropdown.underlined-links > li.current-page-parent > a {
      border-bottom-color: #346046; }

/*
	Navigation styles for accordion menu
	*/
.mobile-menu {
  background-color: #fefefe;
  display: none;
  left: 0;
  min-height: calc(100vh - 60px);
  position: absolute;
  top: 100%;
  width: 100%; }
  @media print, screen and (min-width: 64em) {
    .mobile-menu {
      display: none !important; } }
  .mobile-menu.is-active {
    display: block; }
  .mobile-menu li {
    position: relative;
    width: 100%; }
    .mobile-menu li a {
      background-color: #fefefe;
      border-bottom: 1px solid #e6e6e6;
      display: block;
      padding: 0.7rem 1rem;
      width: 100%; }
  .mobile-menu ul {
    list-style: none;
    margin: 0;
    width: 100%; }
  .mobile-menu .submenu-toggle {
    border-left: 1px solid #e6e6e6;
    cursor: pointer;
    height: 100%;
    position: absolute;
    right: 0;
    top: 0;
    width: 40px; }
  .mobile-menu .submenu-toggle-text {
    border: 0;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px; }
  .mobile-menu .submenu-toggle:after {
    color: #346046;
    content: '+';
    font-size: 140%;
    left: .8rem;
    position: absolute;
    top: .6rem; }
  .mobile-menu .submenu-toggle[aria-expanded='true']:after {
    content: '-'; }

/*
	Navigation styles for drilldown menu. _mobile-drilldown-menu.scss
	@TODO remove reliance on foundation press drilldown menu.
	*/
.is-drilldown {
  min-height: auto !important;
  max-width: 100% !important;
  overflow: initial; }
  .is-drilldown ul {
    margin-left: 0; }
  .is-drilldown li {
    position: static;
    width: 100%; }
    .is-drilldown li a {
      align-items: center;
      background-color: transparent;
      color: #fefefe;
      display: flex;
      font-size: 28px;
      font-weight: 600;
      justify-content: space-between;
      padding: 0.5rem 1.5rem;
      width: 100%; }
    .is-drilldown li.js-drilldown-back a {
      font-size: 1rem;
      justify-content: flex-start; }
      .is-drilldown li.js-drilldown-back a::before {
        border: none;
        content: url("../images/icons/white-chevron-right.svg");
        height: auto;
        margin: 0 1rem 0 0;
        width: 6px;
        position: relative;
        top: 0;
        transform: rotate(180deg); }

.drilldown .is-drilldown-submenu {
  background-color: #f8e287; }

.drilldown .is-drilldown-submenu-parent > a::after {
  border: none;
  content: url("../images/icons/white-chevron-right.svg");
  height: auto;
  width: 6px;
  position: static; }

.header-basic {
  text-align: center;
  margin: 0 auto;
  max-width: 75rem;
  padding: 2rem 0; }
  @media print, screen and (min-width: 40em) {
    .header-basic {
      padding: 4rem 0; } }

@media print, screen and (min-width: 40em) {
  .cc-dashboard {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    justify-content: space-between; } }

.cc-dashboard__sidebar {
  border: 1px solid #e6e6e6;
  flex: 0 1 20%;
  margin-bottom: 1rem;
  padding: 1rem; }

.cc-dashboard__content {
  flex: 0 1 75%; }
  .cc-dashboard__content table {
    box-shadow: 0 0 20px 0 rgba(100, 47, 47, 0.15); }
    .cc-dashboard__content table thead {
      background: #34378a; }
    .cc-dashboard__content table th {
      color: #fefefe;
      font-family: "GlacialBold", "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }
    .cc-dashboard__content table tbody tr td:last-child {
      text-align: right; }
    .cc-dashboard__content table tbody tr td span.user-display-name {
      display: block;
      font-family: "GlacialBold", "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }
    .cc-dashboard__content table .button, .cc-dashboard__content table .wp-block-button .wp-block-button__link, .wp-block-button .cc-dashboard__content table .wp-block-button__link, .cc-dashboard__content table #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .cc-dashboard__content table .button, .cc-dashboard__content table .repeater-logo__link {
      margin-bottom: 0; }

.cc-dashboard__nav {
  list-style-type: none;
  margin-left: 0; }
  .cc-dashboard__nav li {
    color: #346046;
    font-family: "GlacialBold", "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
    margin-bottom: 0.5rem; }
    .cc-dashboard__nav li::before {
      content: "";
      margin-right: 0.5rem; }
    .cc-dashboard__nav li.purchased::before {
      content: "👍"; }
    .cc-dashboard__nav li.sent::before {
      content: "📤"; }
    .cc-dashboard__nav li.received::before {
      content: "📨"; }
    .cc-dashboard__nav li.pending::before {
      content: "⏳"; }
    .cc-dashboard__nav li.assigned::before {
      content: "💼"; }
    .cc-dashboard__nav li.spent::before {
      content: "💸"; }
    .cc-dashboard__nav li a {
      color: #3c3c3b; }
      .cc-dashboard__nav li a:hover {
        text-decoration: underline; }

.cc-notifications .callout {
  margin-bottom: 1rem !important; }

table#userSearchTable {
  display: none; }
  table#userSearchTable.has-results {
    display: table; }

.date-range-picker-form {
  align-items: center;
  background-color: #e6e6e6;
  border-radius: calc(50px / 4);
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  padding: 1rem 2rem; }
  .date-range-picker-form button {
    flex: 0 0 auto;
    margin-bottom: 0; }
  .date-range-picker-form .date-range-picker {
    align-items: center;
    flex: 0 0 auto;
    display: flex;
    margin-right: 1rem; }
    .date-range-picker-form .date-range-picker span {
      display: inline-block;
      margin: 0 1rem; }

.note-charts {
  display: -ms-grid;
  display: grid;
  grid-gap: 4rem 2rem;
  -ms-grid-columns: (1fr)[2];
      grid-template-columns: repeat(2, 1fr); }
  .note-charts__item {
    text-align: center; }
    .note-charts__item h4, .note-charts__item .h4, .note-charts__item .card--resource__title, .note-charts__item .signpost__grid--col-3 .signpost__title, .signpost__grid--col-3 .note-charts__item .signpost__title, .note-charts__item .woocommerce-checkout-payment h2, .woocommerce-checkout-payment .note-charts__item h2, .note-charts__item .woocommerce-checkout-payment .h2, .woocommerce-checkout-payment .note-charts__item .h2, .note-charts__item .woocommerce-checkout-payment .stats__item--content, .woocommerce-checkout-payment .note-charts__item .stats__item--content,
    .note-charts__item .woocommerce-order h2, .woocommerce-order .note-charts__item h2, .note-charts__item .woocommerce-order .h2, .woocommerce-order .note-charts__item .h2, .note-charts__item .woocommerce-order .stats__item--content, .woocommerce-order .note-charts__item .stats__item--content {
      text-transform: capitalize; }

.datepicker {
  display: none; }
  .datepicker.active {
    display: block; }

.datepicker-dropdown {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 20;
  padding-top: 4px; }
  .datepicker-dropdown.datepicker-orient-top {
    padding-top: 0;
    padding-bottom: 4px; }

.datepicker-picker {
  display: inline-block;
  border-radius: 4px;
  background-color: #fefefe; }
  .datepicker-dropdown .datepicker-picker {
    box-shadow: 0 2px 3px rgba(60, 60, 59, 0.1), 0 0 0 1px rgba(60, 60, 59, 0.1); }
  .datepicker-picker span {
    display: block;
    flex: 1;
    border: 0;
    border-radius: 4px;
    cursor: default;
    text-align: center;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none; }

.datepicker-main {
  padding: 2px; }

.datepicker-footer {
  box-shadow: inset 0 1px 1px rgba(60, 60, 59, 0.1);
  background-color: whitesmoke; }

.datepicker-controls, .datepicker-view, .datepicker-view .days-of-week, .datepicker-grid {
  display: flex; }

.datepicker-grid {
  flex-wrap: wrap; }

.datepicker-view .dow, .datepicker-view .days .datepicker-cell {
  flex-basis: 14.28571%; }

.datepicker-view.datepicker-grid .datepicker-cell {
  flex-basis: 25%; }

.datepicker-view .week, .datepicker-cell {
  height: 2.25rem;
  line-height: 2.25rem; }

.datepicker-title {
  box-shadow: inset 0 -1px 1px rgba(60, 60, 59, 0.1);
  background-color: whitesmoke;
  padding: 0.375rem 0.75rem;
  text-align: center;
  font-weight: 700; }

.datepicker-header .datepicker-controls {
  padding: 2px 2px 0; }

.datepicker-controls .button, .datepicker-controls .wp-block-button .wp-block-button__link, .wp-block-button .datepicker-controls .wp-block-button__link, .datepicker-controls #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .datepicker-controls .button, .datepicker-controls .repeater-logo__link {
  display: inline-flex;
  position: relative;
  align-items: center;
  justify-content: center;
  margin: 0;
  border: 1px solid #dbdbdb;
  border-radius: 4px;
  box-shadow: none;
  background-color: #fefefe;
  cursor: pointer;
  padding: calc(0.375em - 1px) 0.75em;
  height: 2.25em;
  vertical-align: top;
  text-align: center;
  line-height: 1.5;
  white-space: nowrap;
  color: #363636;
  font-size: 1rem; }
  .datepicker-controls .button:focus, .datepicker-controls .wp-block-button .wp-block-button__link:focus, .wp-block-button .datepicker-controls .wp-block-button__link:focus, .datepicker-controls #searchform .input-group .input-group-button .button:focus, #searchform .input-group .input-group-button .datepicker-controls .button:focus, .datepicker-controls .repeater-logo__link:focus, .datepicker-controls .button:active, .datepicker-controls .wp-block-button .wp-block-button__link:active, .wp-block-button .datepicker-controls .wp-block-button__link:active, .datepicker-controls #searchform .input-group .input-group-button .button:active, #searchform .input-group .input-group-button .datepicker-controls .button:active, .datepicker-controls .repeater-logo__link:active {
    outline: none; }
  .datepicker-controls .button:hover, .datepicker-controls .wp-block-button .wp-block-button__link:hover, .wp-block-button .datepicker-controls .wp-block-button__link:hover, .datepicker-controls #searchform .input-group .input-group-button .button:hover, #searchform .input-group .input-group-button .datepicker-controls .button:hover, .datepicker-controls .repeater-logo__link:hover {
    border-color: #b5b5b5;
    color: #363636; }
  .datepicker-controls .button:focus, .datepicker-controls .wp-block-button .wp-block-button__link:focus, .wp-block-button .datepicker-controls .wp-block-button__link:focus, .datepicker-controls #searchform .input-group .input-group-button .button:focus, #searchform .input-group .input-group-button .datepicker-controls .button:focus, .datepicker-controls .repeater-logo__link:focus {
    border-color: #3273dc;
    color: #363636; }
    .datepicker-controls .button:focus:not(:active), .datepicker-controls .wp-block-button .wp-block-button__link:focus:not(:active), .wp-block-button .datepicker-controls .wp-block-button__link:focus:not(:active), .datepicker-controls #searchform .input-group .input-group-button .button:focus:not(:active), #searchform .input-group .input-group-button .datepicker-controls .button:focus:not(:active), .datepicker-controls .repeater-logo__link:focus:not(:active) {
      box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); }
  .datepicker-controls .button:active, .datepicker-controls .wp-block-button .wp-block-button__link:active, .wp-block-button .datepicker-controls .wp-block-button__link:active, .datepicker-controls #searchform .input-group .input-group-button .button:active, #searchform .input-group .input-group-button .datepicker-controls .button:active, .datepicker-controls .repeater-logo__link:active {
    border-color: #7c7c7a;
    color: #363636; }
  .datepicker-controls .button[disabled], .datepicker-controls .wp-block-button .wp-block-button__link[disabled], .wp-block-button .datepicker-controls .wp-block-button__link[disabled], .datepicker-controls #searchform .input-group .input-group-button .button[disabled], #searchform .input-group .input-group-button .datepicker-controls .button[disabled], .datepicker-controls .repeater-logo__link[disabled] {
    cursor: not-allowed; }
  .datepicker-header .datepicker-controls .button, .datepicker-header .datepicker-controls .wp-block-button .wp-block-button__link, .wp-block-button .datepicker-header .datepicker-controls .wp-block-button__link, .datepicker-header .datepicker-controls #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .datepicker-header .datepicker-controls .button, .datepicker-header .datepicker-controls .repeater-logo__link {
    border-color: transparent;
    font-weight: bold; }
    .datepicker-header .datepicker-controls .button:hover, .datepicker-header .datepicker-controls .wp-block-button .wp-block-button__link:hover, .wp-block-button .datepicker-header .datepicker-controls .wp-block-button__link:hover, .datepicker-header .datepicker-controls #searchform .input-group .input-group-button .button:hover, #searchform .input-group .input-group-button .datepicker-header .datepicker-controls .button:hover, .datepicker-header .datepicker-controls .repeater-logo__link:hover {
      background-color: #f8f8f8; }
    .datepicker-header .datepicker-controls .button:focus:not(:active), .datepicker-header .datepicker-controls .wp-block-button .wp-block-button__link:focus:not(:active), .wp-block-button .datepicker-header .datepicker-controls .wp-block-button__link:focus:not(:active), .datepicker-header .datepicker-controls #searchform .input-group .input-group-button .button:focus:not(:active), #searchform .input-group .input-group-button .datepicker-header .datepicker-controls .button:focus:not(:active), .datepicker-header .datepicker-controls .repeater-logo__link:focus:not(:active) {
      box-shadow: 0 0 0 0.125em rgba(254, 254, 254, 0.25); }
    .datepicker-header .datepicker-controls .button:active, .datepicker-header .datepicker-controls .wp-block-button .wp-block-button__link:active, .wp-block-button .datepicker-header .datepicker-controls .wp-block-button__link:active, .datepicker-header .datepicker-controls #searchform .input-group .input-group-button .button:active, #searchform .input-group .input-group-button .datepicker-header .datepicker-controls .button:active, .datepicker-header .datepicker-controls .repeater-logo__link:active {
      background-color: #f1f1f1; }
    .datepicker-header .datepicker-controls .button[disabled], .datepicker-header .datepicker-controls .wp-block-button .wp-block-button__link[disabled], .wp-block-button .datepicker-header .datepicker-controls .wp-block-button__link[disabled], .datepicker-header .datepicker-controls #searchform .input-group .input-group-button .button[disabled], #searchform .input-group .input-group-button .datepicker-header .datepicker-controls .button[disabled], .datepicker-header .datepicker-controls .repeater-logo__link[disabled] {
      box-shadow: none; }
  .datepicker-footer .datepicker-controls .button, .datepicker-footer .datepicker-controls .wp-block-button .wp-block-button__link, .wp-block-button .datepicker-footer .datepicker-controls .wp-block-button__link, .datepicker-footer .datepicker-controls #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .datepicker-footer .datepicker-controls .button, .datepicker-footer .datepicker-controls .repeater-logo__link {
    margin: calc(0.375rem - 1px) 0.375rem;
    border-radius: 2px;
    width: 100%;
    font-size: 0.75rem; }

.datepicker-controls .view-switch {
  flex: auto; }

.datepicker-controls .prev-btn,
.datepicker-controls .next-btn {
  padding-right: 0.375rem;
  padding-left: 0.375rem;
  width: 2.25rem; }
  .datepicker-controls .prev-btn.disabled,
  .datepicker-controls .next-btn.disabled {
    visibility: hidden; }

.datepicker-view .dow {
  height: 1.5rem;
  line-height: 1.5rem;
  font-size: 0.875rem;
  font-weight: 700; }

.datepicker-view .week {
  width: 2.25rem;
  color: #b5b5b5;
  font-size: 0.75rem; }
  @media (max-width: 22.5rem) {
    .datepicker-view .week {
      width: 1.96875rem; } }

.datepicker-grid {
  width: 15.75rem; }
  @media (max-width: 22.5rem) {
    .calendar-weeks + .days .datepicker-grid {
      width: 13.78125rem; } }

.datepicker-cell:not(.disabled):hover {
  background-color: #f8f8f8;
  cursor: pointer; }

.datepicker-cell.focused:not(.selected) {
  background-color: #e8e8e8; }

.datepicker-cell.selected, .datepicker-cell.selected:hover {
  background-color: #3273dc;
  color: #fff;
  font-weight: 600; }

.datepicker-cell.disabled {
  color: #dbdbdb; }

.datepicker-cell.prev:not(.disabled), .datepicker-cell.next:not(.disabled) {
  color: #7a7a7a; }

.datepicker-cell.prev.selected, .datepicker-cell.next.selected {
  color: #e6e6e6; }

.datepicker-cell.highlighted:not(.selected):not(.range):not(.today) {
  border-radius: 0;
  background-color: whitesmoke; }
  .datepicker-cell.highlighted:not(.selected):not(.range):not(.today):not(.disabled):hover {
    background-color: #eeeeee; }
  .datepicker-cell.highlighted:not(.selected):not(.range):not(.today).focused {
    background-color: #e8e8e8; }

.datepicker-cell.today:not(.selected) {
  background-color: #00d1b2; }
  .datepicker-cell.today:not(.selected):not(.disabled) {
    color: #fff; }

.datepicker-cell.today.focused:not(.selected) {
  background-color: #00c4a7; }

.datepicker-cell.range-start:not(.selected), .datepicker-cell.range-end:not(.selected) {
  background-color: #b5b5b5;
  color: #fff; }

.datepicker-cell.range-start.focused:not(.selected), .datepicker-cell.range-end.focused:not(.selected) {
  background-color: #afafaf; }

.datepicker-cell.range-start {
  border-radius: 4px 0 0 4px; }

.datepicker-cell.range-end {
  border-radius: 0 4px 4px 0; }

.datepicker-cell.range {
  border-radius: 0;
  background-color: #dbdbdb; }
  .datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover {
    background-color: #d5d5d5; }
  .datepicker-cell.range.disabled {
    color: #c2c2c2; }
  .datepicker-cell.range.focused {
    background-color: #cfcfcf; }

.datepicker-view.datepicker-grid .datepicker-cell {
  height: 4.5rem;
  line-height: 4.5rem; }

.datepicker-input.in-edit {
  border-color: #2366d1; }
  .datepicker-input.in-edit:focus, .datepicker-input.in-edit:active {
    box-shadow: 0 0 0.25em 0.25em rgba(35, 102, 209, 0.2); }

.datepicker {
  display: none; }
  .datepicker.active {
    display: block; }

.datepicker-dropdown {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 20;
  padding-top: 4px; }
  .datepicker-dropdown.datepicker-orient-top {
    padding-top: 0;
    padding-bottom: 4px; }

.datepicker-picker {
  display: inline-block;
  border-radius: 4px;
  background-color: #fefefe; }
  .datepicker-dropdown .datepicker-picker {
    box-shadow: 0 2px 3px rgba(60, 60, 59, 0.1), 0 0 0 1px rgba(60, 60, 59, 0.1); }
  .datepicker-picker span {
    display: block;
    flex: 1;
    border: 0;
    border-radius: 4px;
    cursor: default;
    text-align: center;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none; }

.datepicker-main {
  padding: 2px; }

.datepicker-footer {
  box-shadow: inset 0 1px 1px rgba(60, 60, 59, 0.1);
  background-color: whitesmoke; }

.datepicker-controls, .datepicker-view, .datepicker-view .days-of-week, .datepicker-grid {
  display: flex; }

.datepicker-grid {
  flex-wrap: wrap; }

.datepicker-view .dow, .datepicker-view .days .datepicker-cell {
  flex-basis: 14.28571%; }

.datepicker-view.datepicker-grid .datepicker-cell {
  flex-basis: 25%; }

.datepicker-view .week, .datepicker-cell {
  height: 2.25rem;
  line-height: 2.25rem; }

.datepicker-title {
  box-shadow: inset 0 -1px 1px rgba(60, 60, 59, 0.1);
  background-color: whitesmoke;
  padding: 0.375rem 0.75rem;
  text-align: center;
  font-weight: 700; }

.datepicker-header .datepicker-controls {
  padding: 2px 2px 0; }

.datepicker-controls .button, .datepicker-controls .wp-block-button .wp-block-button__link, .wp-block-button .datepicker-controls .wp-block-button__link, .datepicker-controls #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .datepicker-controls .button, .datepicker-controls .repeater-logo__link {
  margin: 0;
  background-color: #fefefe;
  color: #3c3c3b; }
  .datepicker-controls .button:hover, .datepicker-controls .wp-block-button .wp-block-button__link:hover, .wp-block-button .datepicker-controls .wp-block-button__link:hover, .datepicker-controls #searchform .input-group .input-group-button .button:hover, #searchform .input-group .input-group-button .datepicker-controls .button:hover, .datepicker-controls .repeater-logo__link:hover, .datepicker-controls .button:focus, .datepicker-controls .wp-block-button .wp-block-button__link:focus, .wp-block-button .datepicker-controls .wp-block-button__link:focus, .datepicker-controls #searchform .input-group .input-group-button .button:focus, #searchform .input-group .input-group-button .datepicker-controls .button:focus, .datepicker-controls .repeater-logo__link:focus {
    background-color: #d8d8d8; }
    .datepicker-controls .button:hover[disabled], .datepicker-controls .wp-block-button .wp-block-button__link:hover[disabled], .wp-block-button .datepicker-controls .wp-block-button__link:hover[disabled], .datepicker-controls #searchform .input-group .input-group-button .button:hover[disabled], #searchform .input-group .input-group-button .datepicker-controls .button:hover[disabled], .datepicker-controls .repeater-logo__link:hover[disabled], .datepicker-controls .button:focus[disabled], .datepicker-controls .wp-block-button .wp-block-button__link:focus[disabled], .wp-block-button .datepicker-controls .wp-block-button__link:focus[disabled], .datepicker-controls #searchform .input-group .input-group-button .button:focus[disabled], #searchform .input-group .input-group-button .datepicker-controls .button:focus[disabled], .datepicker-controls .repeater-logo__link:focus[disabled] {
      opacity: 0.25;
      background-color: #fefefe;
      color: #3c3c3b; }
  .datepicker-header .datepicker-controls .button, .datepicker-header .datepicker-controls .wp-block-button .wp-block-button__link, .wp-block-button .datepicker-header .datepicker-controls .wp-block-button__link, .datepicker-header .datepicker-controls #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .datepicker-header .datepicker-controls .button, .datepicker-header .datepicker-controls .repeater-logo__link {
    border-color: transparent;
    font-weight: bold; }
  .datepicker-footer .datepicker-controls .button, .datepicker-footer .datepicker-controls .wp-block-button .wp-block-button__link, .wp-block-button .datepicker-footer .datepicker-controls .wp-block-button__link, .datepicker-footer .datepicker-controls #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .datepicker-footer .datepicker-controls .button, .datepicker-footer .datepicker-controls .repeater-logo__link {
    margin: calc(0.375rem - 1px) 0.375rem;
    border-radius: 2px;
    width: 100%;
    font-size: 0.75rem; }

.datepicker-controls .view-switch {
  flex: auto; }

.datepicker-controls .prev-btn,
.datepicker-controls .next-btn {
  padding-right: 0.375rem;
  padding-left: 0.375rem;
  width: 2.25rem; }
  .datepicker-controls .prev-btn.disabled,
  .datepicker-controls .next-btn.disabled {
    visibility: hidden; }

.datepicker-view .dow {
  height: 1.5rem;
  line-height: 1.5rem;
  font-size: 0.875rem;
  font-weight: 700; }

.datepicker-view .week {
  width: 2.25rem;
  color: #b5b5b5;
  font-size: 0.75rem; }
  @media (max-width: 22.5rem) {
    .datepicker-view .week {
      width: 1.96875rem; } }

.datepicker-grid {
  width: 15.75rem; }
  @media (max-width: 22.5rem) {
    .calendar-weeks + .days .datepicker-grid {
      width: 13.78125rem; } }

.datepicker-cell:not(.disabled):hover {
  background-color: #f8f8f8;
  cursor: pointer; }

.datepicker-cell.focused:not(.selected) {
  background-color: #e8e8e8; }

.datepicker-cell.selected, .datepicker-cell.selected:hover {
  background-color: #3273dc;
  color: #fff;
  font-weight: 600; }

.datepicker-cell.disabled {
  color: #dbdbdb; }

.datepicker-cell.prev:not(.disabled), .datepicker-cell.next:not(.disabled) {
  color: #7a7a7a; }

.datepicker-cell.prev.selected, .datepicker-cell.next.selected {
  color: #e6e6e6; }

.datepicker-cell.highlighted:not(.selected):not(.range):not(.today) {
  border-radius: 0;
  background-color: whitesmoke; }
  .datepicker-cell.highlighted:not(.selected):not(.range):not(.today):not(.disabled):hover {
    background-color: #eeeeee; }
  .datepicker-cell.highlighted:not(.selected):not(.range):not(.today).focused {
    background-color: #e8e8e8; }

.datepicker-cell.today:not(.selected) {
  background-color: #00d1b2; }
  .datepicker-cell.today:not(.selected):not(.disabled) {
    color: #fff; }

.datepicker-cell.today.focused:not(.selected) {
  background-color: #00c4a7; }

.datepicker-cell.range-start:not(.selected), .datepicker-cell.range-end:not(.selected) {
  background-color: #b5b5b5;
  color: #fff; }

.datepicker-cell.range-start.focused:not(.selected), .datepicker-cell.range-end.focused:not(.selected) {
  background-color: #afafaf; }

.datepicker-cell.range-start {
  border-radius: 4px 0 0 4px; }

.datepicker-cell.range-end {
  border-radius: 0 4px 4px 0; }

.datepicker-cell.range {
  border-radius: 0;
  background-color: #dbdbdb; }
  .datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover {
    background-color: #d5d5d5; }
  .datepicker-cell.range.disabled {
    color: #c2c2c2; }
  .datepicker-cell.range.focused {
    background-color: #cfcfcf; }

.datepicker-view.datepicker-grid .datepicker-cell {
  height: 4.5rem;
  line-height: 4.5rem; }

.datepicker-input.in-edit {
  border-color: #2366d1; }
  .datepicker-input.in-edit:focus, .datepicker-input.in-edit:active {
    box-shadow: 0 0 0.25em 0.25em rgba(35, 102, 209, 0.2); }

.block, .breadcrumbs, .new-note-container, .event-header, .event-panel, .single-team__header, .date-range-picker-form, .block__heading-row, .wp-block-video,
.wp-block-embed.wp-block-embed-vimeo,
.wp-block-embed.wp-block-embed-youtube, .woocommerce-archive-wrap ul.products, .woocommerce-cart main, .woocommerce-checkout main, .woocommerce-checkout-payment,
.woocommerce-order, .woocommerce-account main, .woocommerce-account .woocommerce-MyAccount-navigation {
  margin-bottom: 4rem; }
  @media print, screen and (min-width: 40em) {
    .block, .breadcrumbs, .new-note-container, .event-header, .event-panel, .single-team__header, .date-range-picker-form, .block__heading-row, .wp-block-video,
    .wp-block-embed.wp-block-embed-vimeo,
    .wp-block-embed.wp-block-embed-youtube, .woocommerce-archive-wrap ul.products, .woocommerce-cart main, .woocommerce-checkout main, .woocommerce-checkout-payment,
    .woocommerce-order, .woocommerce-account main, .woocommerce-account .woocommerce-MyAccount-navigation {
      margin-bottom: 5rem; } }
  .block:focus, .breadcrumbs:focus, .new-note-container:focus, .event-header:focus, .event-panel:focus, .single-team__header:focus, .date-range-picker-form:focus, .block__heading-row:focus, .wp-block-video:focus,
  .wp-block-embed.wp-block-embed-vimeo:focus,
  .wp-block-embed.wp-block-embed-youtube:focus, .woocommerce-archive-wrap ul.products:focus, .woocommerce-cart main:focus, .woocommerce-checkout main:focus, .woocommerce-checkout-payment:focus,
  .woocommerce-order:focus, .woocommerce-account main:focus, .woocommerce-account .woocommerce-MyAccount-navigation:focus {
    outline-color: transparent; }
  .block--small, .cc-form, .archive__taxonomy-filter, .pricing-table__heading {
    margin-bottom: 2rem; }
  .block.no-margin, .no-margin.breadcrumbs, .no-margin.new-note-container, .no-margin.event-header, .no-margin.event-panel, .no-margin.single-team__header, .no-margin.date-range-picker-form, .no-margin.block__heading-row, .no-margin.wp-block-video,
  .no-margin.wp-block-embed.wp-block-embed-vimeo,
  .no-margin.wp-block-embed.wp-block-embed-youtube, .woocommerce-archive-wrap ul.no-margin.products, .woocommerce-cart main.no-margin, .woocommerce-checkout main.no-margin, .no-margin.woocommerce-checkout-payment,
  .no-margin.woocommerce-order, .woocommerce-account main.no-margin, .woocommerce-account .no-margin.woocommerce-MyAccount-navigation {
    margin-bottom: 0; }
  .block--padding {
    padding: 3rem 0; }
    @media print, screen and (min-width: 40em) {
      .block--padding {
        padding: 5rem 0; } }
  .block--padding-hero {
    padding: 6rem 0; }
    @media print, screen and (min-width: 40em) {
      .block--padding-hero {
        padding: 10rem 0; } }
  .block--padding-small {
    padding: 1.5rem 0; }
    @media print, screen and (min-width: 40em) {
      .block--padding-small {
        padding: 2.5rem 0; } }
  .block--default {
    background-color: #fefefe; }
  .block--white {
    background-color: #fefefe; }
    .block--white h1, .block--white .h1,
    .block--white h2,
    .block--white .h2,
    .block--white .stats__item--content,
    .block--white h3,
    .block--white .h3,
    .block--white .search-snippet__title,
    .block--white .related.products > h2,
    .block--white .related.products > .h2,
    .block--white .related.products > .stats__item--content,
    .block--white .card__title,
    .block--white .block__heading--small,
    .block--white .repeater-icon__item-heading,
    .block--white .signpost__title,
    .block--white h4,
    .block--white .h4,
    .block--white .card--resource__title,
    .block--white .signpost__grid--col-3 .signpost__title,
    .signpost__grid--col-3 .block--white .signpost__title,
    .block--white .woocommerce-checkout-payment h2,
    .woocommerce-checkout-payment .block--white h2,
    .block--white .woocommerce-checkout-payment .h2,
    .woocommerce-checkout-payment .block--white .h2,
    .block--white .woocommerce-checkout-payment .stats__item--content,
    .woocommerce-checkout-payment .block--white .stats__item--content,
    .block--white .woocommerce-order h2,
    .woocommerce-order .block--white h2,
    .block--white .woocommerce-order .h2,
    .woocommerce-order .block--white .h2,
    .block--white .woocommerce-order .stats__item--content,
    .woocommerce-order .block--white .stats__item--content,
    .block--white h5,
    .block--white .h5,
    .block--white h6,
    .block--white .h6,
    .block--white .widget-title,
    .block--white p,
    .block--white label,
    .block--white span {
      color: #3c3c3b !important; }
  .block--gray {
    background-color: #6b91c3; }
  .block--blue {
    background-color: #f8e287; }
  .block--green {
    background-color: #37d5b0; }
  .block--colored-text h1, .block--gray h1, .block--colored-text .h1, .block--gray .h1,
  .block--colored-text h2,
  .block--gray h2,
  .block--colored-text .h2,
  .block--gray .h2,
  .block--colored-text .stats__item--content,
  .block--gray .stats__item--content,
  .block--colored-text h3,
  .block--gray h3,
  .block--colored-text .h3,
  .block--gray .h3,
  .block--colored-text .search-snippet__title,
  .block--gray .search-snippet__title,
  .block--colored-text .related.products > h2,
  .block--gray .related.products > h2,
  .block--colored-text .related.products > .h2,
  .block--gray .related.products > .h2,
  .block--colored-text .related.products > .stats__item--content,
  .block--gray .related.products > .stats__item--content,
  .block--colored-text .card__title,
  .block--gray .card__title,
  .block--colored-text .block__heading--small,
  .block--gray .block__heading--small,
  .block--colored-text .repeater-icon__item-heading,
  .block--gray .repeater-icon__item-heading,
  .block--colored-text .signpost__title,
  .block--gray .signpost__title,
  .block--colored-text h4,
  .block--gray h4,
  .block--colored-text .h4,
  .block--gray .h4,
  .block--colored-text .card--resource__title,
  .block--gray .card--resource__title,
  .block--colored-text .signpost__grid--col-3 .signpost__title,
  .signpost__grid--col-3 .block--colored-text .signpost__title,
  .block--gray .signpost__grid--col-3 .signpost__title,
  .signpost__grid--col-3 .block--gray .signpost__title,
  .block--colored-text .woocommerce-checkout-payment h2,
  .woocommerce-checkout-payment .block--colored-text h2,
  .block--gray .woocommerce-checkout-payment h2,
  .woocommerce-checkout-payment .block--gray h2,
  .block--colored-text .woocommerce-checkout-payment .h2,
  .woocommerce-checkout-payment .block--colored-text .h2,
  .block--gray .woocommerce-checkout-payment .h2,
  .woocommerce-checkout-payment .block--gray .h2,
  .block--colored-text .woocommerce-checkout-payment .stats__item--content,
  .woocommerce-checkout-payment .block--colored-text .stats__item--content,
  .block--gray .woocommerce-checkout-payment .stats__item--content,
  .woocommerce-checkout-payment .block--gray .stats__item--content,
  .block--colored-text .woocommerce-order h2,
  .woocommerce-order .block--colored-text h2,
  .block--gray .woocommerce-order h2,
  .woocommerce-order .block--gray h2,
  .block--colored-text .woocommerce-order .h2,
  .woocommerce-order .block--colored-text .h2,
  .block--gray .woocommerce-order .h2,
  .woocommerce-order .block--gray .h2,
  .block--colored-text .woocommerce-order .stats__item--content,
  .woocommerce-order .block--colored-text .stats__item--content,
  .block--gray .woocommerce-order .stats__item--content,
  .woocommerce-order .block--gray .stats__item--content,
  .block--colored-text h5,
  .block--gray h5,
  .block--colored-text .h5,
  .block--gray .h5,
  .block--colored-text h6,
  .block--gray h6,
  .block--colored-text .h6,
  .block--gray .h6,
  .block--colored-text .widget-title,
  .block--gray .widget-title,
  .block--colored-text p,
  .block--gray p,
  .block--colored-text li,
  .block--gray li,
  .block--colored-text label,
  .block--gray label {
    color: #fefefe; }
  .block__heading {
    margin-bottom: 0; }
    .block__heading--center {
      text-align: center; }
  .block__subheading {
    margin: 1rem 0 0;
    text-align: center; }
  .block__heading-wysywig > *:last-child {
    margin-bottom: 0; }

.mon-row, .footer__row, .hero__content, .hero-featured__content, .wp-block-embed, .woocommerce-notices-wrapper, .woocommerce-cart .woocommerce, .woocommerce-checkout .woocommerce, .woocommerce-account .woocommerce, .single-product__container {
  margin: 0 auto;
  max-width: 75rem;
  padding: 0 1rem;
  width: 100%; }

footer {
  content-visibility: auto; }

.mon-accordion .accordion__view-all {
  margin-top: 3rem;
  text-align: center; }

@media print, screen and (min-width: 40em) {
  .columns__grid {
    display: flex;
    justify-content: space-between; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .columns__grid {
        display: -ms-grid;
        display: grid;
        grid-gap: 30px;
        -ms-grid-columns: (1fr)[12];
            grid-template-columns: repeat(12, 1fr); } }
    .columns__grid .columns__content {
      flex-grow: 0;
      flex-shrink: 0;
      flex-basis: calc(50% - 30px); }
      @supports ((display: -ms-grid) or (display: grid)) {
        .columns__grid .columns__content {
          -ms-grid-column-span: 6;
          -ms-grid-column: auto;
              grid-column: auto / span 6; } } }

@media print, screen and (min-width: 40em) {
  .columns__grid--3 .columns__content {
    flex-grow: 0;
    flex-shrink: 0;
    flex-basis: calc(33.33% - 30px); }
    @supports ((display: -ms-grid) or (display: grid)) {
      .columns__grid--3 .columns__content {
        -ms-grid-column-span: 4;
        -ms-grid-column: auto;
            grid-column: auto / span 4; } } }

@media print, screen and (min-width: 40em) {
  .columns__grid--4 .columns__content {
    flex-grow: 0;
    flex-shrink: 0;
    flex-basis: calc(25% - 30px); }
    @supports ((display: -ms-grid) or (display: grid)) {
      .columns__grid--4 .columns__content {
        -ms-grid-column-span: 3;
        -ms-grid-column: auto;
            grid-column: auto / span 3; } } }

@media print, screen and (min-width: 40em) {
  .columns__grid--1-3 .columns__content {
    flex-grow: 0;
    flex-shrink: 0;
    flex-basis: calc(33.33% - 30px); }
    @supports ((display: -ms-grid) or (display: grid)) {
      .columns__grid--1-3 .columns__content {
        -ms-grid-column-span: 4;
        -ms-grid-column: auto;
            grid-column: auto / span 4; } }
    .columns__grid--1-3 .columns__content:last-child {
      flex-grow: 0;
      flex-shrink: 0;
      flex-basis: calc(66% - 30px); }
      @supports ((display: -ms-grid) or (display: grid)) {
        .columns__grid--1-3 .columns__content:last-child {
          -ms-grid-column-span: 8;
          -ms-grid-column: auto;
              grid-column: auto / span 8; } } }

@media print, screen and (min-width: 40em) {
  .columns__grid--3-1 .columns__content {
    flex-grow: 0;
    flex-shrink: 0;
    flex-basis: calc(66% - 30px); }
    @supports ((display: -ms-grid) or (display: grid)) {
      .columns__grid--3-1 .columns__content {
        -ms-grid-column-span: 8;
        -ms-grid-column: auto;
            grid-column: auto / span 8; } }
    .columns__grid--3-1 .columns__content:last-child {
      flex-grow: 0;
      flex-shrink: 0;
      flex-basis: calc(33.33% - 30px); }
      @supports ((display: -ms-grid) or (display: grid)) {
        .columns__grid--3-1 .columns__content:last-child {
          -ms-grid-column-span: 4;
          -ms-grid-column: auto;
              grid-column: auto / span 4; } } }

@media screen and (max-width: 39.99875em) {
  .content-image + .content-image {
    margin-top: 3rem; } }

.content-image__grid {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between; }
  @supports ((display: -ms-grid) or (display: grid)) {
    .content-image__grid {
      display: -ms-grid;
      display: grid;
      -ms-grid-columns: 1fr;
          grid-template-columns: 1fr;
      grid-row-gap: 15px; } }
  @media print, screen and (min-width: 40em) {
    @supports ((display: -ms-grid) or (display: grid)) {
      .content-image__grid {
        grid-gap: 60px;
        -ms-grid-columns: (1fr)[12];
            grid-template-columns: repeat(12, 1fr); } } }

.content-image__content {
  align-content: center;
  flex: 0 0 100%;
  max-width: 100%; }
  @media print, screen and (min-width: 40em) {
    .content-image__content {
      flex-basis: calc(50% - 3rem);
      max-width: calc(50% - 3rem); } }
  @supports ((display: -ms-grid) or (display: grid)) {
    .content-image__content {
      display: -ms-grid;
      display: grid;
      max-width: 100%; } }
  .content-image__content > *:last-child {
    margin-bottom: 0; }
    .content-image__content > *:last-child *:last-child {
      margin-bottom: 0; }

.content-image__container {
  flex: 0 0 100%;
  height: 0;
  max-width: 100%;
  padding-top: 50%;
  position: relative;
  width: 100%; }
  @media print, screen and (min-width: 40em) {
    .content-image__container {
      flex-basis: calc(50% - 3rem);
      max-width: calc(50% - 3rem); } }
  @supports ((display: -ms-grid) or (display: grid)) {
    .content-image__container {
      max-width: 100%;
      padding-top: 100%; } }

.content-image__figure {
  flex: 0 0 100%;
  max-width: 100%;
  width: 100%; }
  @media print, screen and (min-width: 40em) {
    .content-image__figure {
      flex-basis: calc(50% - 3rem);
      max-width: calc(50% - 3rem); } }
  @supports ((display: -ms-grid) or (display: grid)) {
    .content-image__figure {
      max-width: 100%; } }
  .content-image__figure .content-image__image {
    position: initial; }

.content-image__image {
  height: 100%;
  left: 0;
  object-fit: cover;
  position: absolute;
  top: 0;
  width: 100%; }

@media print, screen and (min-width: 40em) {
  .content-image--left .content-image__container,
  .content-image--left .content-image__figure {
    grid-column: 1 / 7; }
  .content-image--left .content-image__content {
    grid-column: 7 / -1;
    grid-row: 1 / 1; } }

@media print, screen and (min-width: 40em) {
  .content-image--right .content-image__content {
    grid-column: 1 / 7;
    order: 1; }
  .content-image--right .content-image__container,
  .content-image--right .content-image__figure {
    grid-column: 7 / -1;
    grid-row: 1 / 1;
    order: 2; } }

.content-image--full-bleed .content-image__content {
  padding: 1rem; }
  @media print, screen and (min-width: 40em) {
    .content-image--full-bleed .content-image__content {
      padding: 4rem 1rem; } }
  @media screen and (min-width: 75em) {
    .content-image--full-bleed .content-image__content {
      padding: 6rem 1rem; } }

.content-image--full-bleed .content-image__container {
  height: 100%;
  max-width: 1000px;
  padding-top: 100%; }
  @media print, screen and (min-width: 40em) {
    .content-image--full-bleed .content-image__container {
      padding-top: 0; } }

@media screen and (min-width: 90em) {
  .content-image--full-bleed .content-image--left .content-image__container {
    margin-left: auto; } }

@media print, screen and (min-width: 64em) {
  .content-image--full-bleed .content-image--left .content-image__content {
    padding-left: 3.875rem; } }

@media screen and (min-width: 75em) {
  .content-image--full-bleed .content-image--left .content-image__content {
    margin-right: calc((100% - (37.5rem - (1rem)))); } }

@media screen and (min-width: 90em) {
  .content-image--full-bleed .content-image--right .content-image__container {
    margin-right: auto; } }

@media print, screen and (min-width: 64em) {
  .content-image--full-bleed .content-image--right .content-image__content {
    padding-right: 3.875rem; } }

@media screen and (min-width: 75em) {
  .content-image--full-bleed .content-image--right .content-image__content {
    margin-left: calc( ( 100% - ( 37.5rem - ( 1rem ) ) )); } }

.cta__grid {
  text-align: center; }

.cta__buttons .button, .cta__buttons .wp-block-button .wp-block-button__link, .wp-block-button .cta__buttons .wp-block-button__link, .cta__buttons #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .cta__buttons .button, .cta__buttons .repeater-logo__link {
  margin-bottom: 0; }

.cta__buttons .button--cta--two {
  margin-top: 1rem; }
  @media print, screen and (min-width: 40em) {
    .cta__buttons .button--cta--two {
      margin-top: 0;
      margin-left: 0.5rem; } }

.cta--global {
  background-color: #34378a;
  color: #fefefe; }
  .cta--global *:not(.button):not(.repeater-logo__link) {
    color: #fefefe; }
  @media print, screen and (min-width: 64em) {
    .cta--global .cta__content {
      width: 100%;
      max-width: calc(7 / 12 * 100%);
      margin-left: auto;
      margin-right: auto; } }

.hero {
  align-items: flex-end;
  display: flex;
  max-height: 700px;
  padding: 25% 0;
  position: relative; }
  @supports ((display: -ms-grid) or (display: grid)) {
    .hero {
      display: -ms-grid;
      display: grid;
      grid-gap: 1rem;
      -ms-grid-columns: 1fr;
          grid-template-columns: 1fr;
      -ms-grid-rows: minmax(2rem, 4rem) min-content minmax(2rem, 4rem);
          grid-template-rows: minmax(2rem, 4rem) min-content minmax(2rem, 4rem);
      max-height: inherit;
      padding: 0; } }
  .hero__image,
  .hero picture {
    bottom: 0;
    height: 100%;
    left: 0;
    object-fit: cover;
    position: absolute;
    right: 0;
    top: 0;
    width: 100%;
    z-index: 0; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .hero__image,
      .hero picture {
        grid-column: 1 / -1;
        grid-row: 1 / -1; } }
  .hero__content {
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 2; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .hero__content {
        grid-column: 1 / -1;
        grid-row: 2 / 3;
        z-index: 2; } }
    @media print, screen and (min-width: 40em) {
      @supports ((display: -ms-grid) or (display: grid)) {
        .hero__content {
          display: -ms-grid;
          display: grid;
          -ms-grid-columns: (1fr)[12];
              grid-template-columns: repeat(12, 1fr);
          -ms-grid-rows: (auto)[2];
              grid-template-rows: repeat(2, auto); } } }
  .hero .entry-title,
  .hero .hero__title {
    width: 66%;
    line-height: 1.1;
    margin-bottom: 0; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .hero .entry-title,
      .hero .hero__title {
        grid-column: 1 / 7;
        width: 100%; } }
  .hero__excerpt {
    margin-top: 1rem;
    width: 66%; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .hero__excerpt {
        grid-column: 1 / 7;
        grid-row: 2 / 3;
        width: 100%; } }
    .hero__excerpt > *:last-child {
      margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    @supports ((display: -ms-grid) or (display: grid)) {
      .hero--padding-large {
        -ms-grid-rows: minmax(2rem, 10rem) min-content minmax(2rem, 10rem);
            grid-template-rows: minmax(2rem, 10rem) min-content minmax(2rem, 10rem); } } }
  @media print, screen and (min-width: 64em) {
    @supports ((display: -ms-grid) or (display: grid)) {
      .hero--padding-large {
        -ms-grid-rows: minmax(2rem, 15rem) min-content minmax(2rem, 15rem);
            grid-template-rows: minmax(2rem, 15rem) min-content minmax(2rem, 15rem); } } }
  @media screen and (max-width: 39.99875em) {
    .hero--stack-on-mobile {
      -ms-grid-rows: 50vw min-content;
          grid-template-rows: 50vw min-content; }
      .hero--stack-on-mobile .hero__image,
      .hero--stack-on-mobile picture {
        -ms-grid-row-span: 1;
        -ms-grid-row: 1;
            grid-row: 1 / span 1; }
      .hero--stack-on-mobile .hero__content {
        -ms-grid-row-span: 1;
        -ms-grid-row: 2;
            grid-row: 2 / span 1; } }

@media print, screen and (min-width: 40em) {
  @supports ((display: -ms-grid) or (display: grid)) {
    .hero--left .entry-title,
    .hero--left .hero__title {
      grid-column: 1 / 7; } } }

@media print, screen and (min-width: 40em) {
  @supports ((display: -ms-grid) or (display: grid)) {
    .hero--left .hero__excerpt {
      grid-column: 1 / 7; } } }

.hero--right .hero__content {
  align-items: flex-end; }

@media print, screen and (min-width: 40em) {
  @supports ((display: -ms-grid) or (display: grid)) {
    .hero--right .entry-title,
    .hero--right .hero__title {
      grid-column: 7 / -1; } } }

@media print, screen and (min-width: 40em) {
  @supports ((display: -ms-grid) or (display: grid)) {
    .hero--right .hero__excerpt {
      grid-column: 7 / -1;
      grid-row: 2 / 3; } } }

.hero--center {
  text-align: center; }
  .hero--center .hero__content {
    align-items: center; }
  @media print, screen and (min-width: 40em) {
    @supports ((display: -ms-grid) or (display: grid)) {
      .hero--center .entry-title,
      .hero--center .hero__title {
        -ms-grid-column-span: 6;
        -ms-grid-column: 4;
            grid-column: 4 / span 6;
        grid-row: 1 / 2; } } }
  @media print, screen and (min-width: 40em) {
    @supports ((display: -ms-grid) or (display: grid)) {
      .hero--center .hero__excerpt {
        -ms-grid-column-span: 6;
        -ms-grid-column: 4;
            grid-column: 4 / span 6;
        grid-row: 2 / 3; } } }

.hero-featured {
  align-items: flex-end;
  display: flex;
  max-height: 700px;
  padding: 25% 0;
  position: relative; }
  @supports ((display: -ms-grid) or (display: grid)) {
    .hero-featured {
      display: -ms-grid;
      display: grid;
      grid-gap: 1rem;
      -ms-grid-columns: 1fr;
          grid-template-columns: 1fr;
      -ms-grid-rows: minmax(2rem, 4rem) min-content minmax(2rem, 4rem);
          grid-template-rows: minmax(2rem, 4rem) min-content minmax(2rem, 4rem);
      max-height: inherit;
      padding: 0; } }
  .hero-featured__image,
  .hero-featured picture {
    bottom: 0;
    height: 100%;
    left: 0;
    object-fit: cover;
    position: absolute;
    right: 0;
    top: 0;
    width: 100%;
    z-index: 0; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .hero-featured__image,
      .hero-featured picture {
        grid-column: 1 / -1;
        grid-row: 1 / -1; } }
  .hero-featured__content {
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 2; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .hero-featured__content {
        grid-column: 1 / -1;
        grid-row: 2 / 3;
        z-index: 2; } }
    @media print, screen and (min-width: 40em) {
      @supports ((display: -ms-grid) or (display: grid)) {
        .hero-featured__content {
          display: -ms-grid;
          display: grid;
          -ms-grid-columns: (1fr)[12];
              grid-template-columns: repeat(12, 1fr);
          -ms-grid-rows: (auto)[2];
              grid-template-rows: repeat(2, auto); } } }
  .hero-featured .entry-title,
  .hero-featured .hero-featured__title {
    width: 66%;
    line-height: 1.1;
    margin-bottom: 0; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .hero-featured .entry-title,
      .hero-featured .hero-featured__title {
        grid-column: 1 / 7;
        width: 100%; } }
  .hero-featured__excerpt {
    margin-top: 1rem;
    width: 66%; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .hero-featured__excerpt {
        grid-column: 1 / 7;
        grid-row: 2 / 3;
        width: 100%; } }
    .hero-featured__excerpt > *:last-child {
      margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    @supports ((display: -ms-grid) or (display: grid)) {
      .hero-featured--padding-large {
        -ms-grid-rows: minmax(2rem, 10rem) min-content minmax(2rem, 10rem);
            grid-template-rows: minmax(2rem, 10rem) min-content minmax(2rem, 10rem); } } }
  @media print, screen and (min-width: 64em) {
    @supports ((display: -ms-grid) or (display: grid)) {
      .hero-featured--padding-large {
        -ms-grid-rows: minmax(2rem, 15rem) min-content minmax(2rem, 15rem);
            grid-template-rows: minmax(2rem, 15rem) min-content minmax(2rem, 15rem); } } }
  @media screen and (max-width: 39.99875em) {
    .hero-featured--stack-on-mobile {
      -ms-grid-rows: 50vw min-content;
          grid-template-rows: 50vw min-content; }
      .hero-featured--stack-on-mobile .hero-featured__image,
      .hero-featured--stack-on-mobile picture {
        -ms-grid-row-span: 1;
        -ms-grid-row: 1;
            grid-row: 1 / span 1; }
      .hero-featured--stack-on-mobile .hero-featured__content {
        -ms-grid-row-span: 1;
        -ms-grid-row: 2;
            grid-row: 2 / span 1; } }

@media print, screen and (min-width: 40em) {
  @supports ((display: -ms-grid) or (display: grid)) {
    .hero-featured--left .entry-title,
    .hero-featured--left .hero-featured__title {
      grid-column: 1 / 7; } } }

@media print, screen and (min-width: 40em) {
  @supports ((display: -ms-grid) or (display: grid)) {
    .hero-featured--left .hero-featured__excerpt {
      grid-column: 1 / 7; } } }

.hero-featured--right .hero-featured__content {
  align-items: flex-end; }

@media print, screen and (min-width: 40em) {
  @supports ((display: -ms-grid) or (display: grid)) {
    .hero-featured--right .entry-title,
    .hero-featured--right .hero-featured__title {
      grid-column: 7 / -1; } } }

@media print, screen and (min-width: 40em) {
  @supports ((display: -ms-grid) or (display: grid)) {
    .hero-featured--right .hero-featured__excerpt {
      grid-column: 7 / -1;
      grid-row: 2 / 3; } } }

.hero-featured--center {
  text-align: center; }
  .hero-featured--center .hero-featured__content {
    align-items: center; }
  @media print, screen and (min-width: 40em) {
    @supports ((display: -ms-grid) or (display: grid)) {
      .hero-featured--center .entry-title,
      .hero-featured--center .hero-featured__title {
        -ms-grid-column-span: 6;
        -ms-grid-column: 4;
            grid-column: 4 / span 6;
        grid-row: 1 / 2; } } }
  @media print, screen and (min-width: 40em) {
    @supports ((display: -ms-grid) or (display: grid)) {
      .hero-featured--center .hero-featured__excerpt {
        -ms-grid-column-span: 6;
        -ms-grid-column: 4;
            grid-column: 4 / span 6;
        grid-row: 2 / 3; } } }

.hero--video.hero--colored-text .hero__content *:not(.button):not(.repeater-logo__link) {
  color: #fefefe; }

@media screen and (max-width: 39.99875em) {
  .hero--video.hero--stack-on-mobile .hero__content *:not(.button):not(.repeater-logo__link) {
    color: #3c3c3b; } }

.repeater-icon__item {
  margin-bottom: 30px;
  flex-grow: 1;
  flex-shrink: 0;
  margin: 0 15px 30px;
  text-align: center; }
  @media print, screen and (min-width: 40em) {
    @supports ((display: -ms-grid) or (display: grid)) {
      .repeater-icon__item {
        margin: 0;
        max-width: 100% !important;
        width: 100%; } }
    .repeater-icon__item:nth-child(n+4) {
      flex-grow: 0; } }

.repeater-icon__item-heading {
  margin: 1rem 0;
  transition: .25s linear all; }

.repeater-icon__image {
  text-align: center; }

.repeater-icon__text {
  -ms-grid-row-align: center;
      align-self: center; }

@media print, screen and (min-width: 40em) {
  .repeater-icon__grid {
    display: flex;
    flex-wrap: wrap;
    margin: -0.5rem; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .repeater-icon__grid {
        display: -ms-grid;
        display: grid;
        grid-gap: 30px;
        -ms-grid-columns: (1fr)[12];
            grid-template-columns: repeat(12, 1fr);
        margin: 0; } } }

.repeater-icon__grid--center {
  justify-content: center;
  text-align: center; }

.repeater-icon__grid--left .repeater-icon__item,
.repeater-icon__grid--left .repeater-icon__image,
.repeater-icon__grid--left .repeater-icon__item-heading,
.repeater-icon__grid--left .repeater-icon__text {
  text-align: left; }

.repeater-icon__grid--card .repeater-icon__item {
  border: 1px solid lightgray;
  padding: 2rem; }

.repeater-icon__grid--card .repeater-icon__image,
.repeater-icon__grid--card .repeater-icon__item-heading,
.repeater-icon__grid--card .repeater-icon__text {
  text-align: left; }

.repeater-icon__grid--card .repeater-icon__heading {
  -ms-grid-row-align: start;
      align-self: start; }

@media print, screen and (min-width: 40em) {
  .repeater-icon__grid--2 .repeater-icon__item {
    flex-basis: calc(50% - 30px);
    max-width: calc(50% - 30px); }
    @supports ((display: -ms-grid) or (display: grid)) {
      .repeater-icon__grid--2 .repeater-icon__item {
        -ms-grid-column-span: 6;
        -ms-grid-column: auto;
            grid-column: auto / span 6; } } }

@media print, screen and (min-width: 40em) {
  .repeater-icon__grid--3 .repeater-icon__item {
    flex-basis: calc(33.33% - 30px);
    max-width: calc(33.33% - 30px); }
    @supports ((display: -ms-grid) or (display: grid)) {
      .repeater-icon__grid--3 .repeater-icon__item {
        -ms-grid-column-span: 4;
        -ms-grid-column: auto;
            grid-column: auto / span 4; } } }

@media print, screen and (min-width: 40em) {
  .repeater-icon__grid--4 .repeater-icon__item {
    flex-basis: calc(25% - 30px);
    max-width: calc(25% - 30px); }
    @supports ((display: -ms-grid) or (display: grid)) {
      .repeater-icon__grid--4 .repeater-icon__item {
        -ms-grid-column-span: 3;
        -ms-grid-column: auto;
            grid-column: auto / span 3; } } }

a.repeater-icon__item {
  display: block;
  transition: .25s linear all; }
  a.repeater-icon__item .repeater-icon__text {
    color: #3c3c3b; }
  a.repeater-icon__item:hover {
    border-color: #346046; }
    a.repeater-icon__item:hover .repeater-icon__item-heading {
      color: #346046; }

.standard-image {
  margin-left: auto;
  margin-right: auto;
  max-width: 75rem;
  padding: 0 1rem;
  text-align: center; }
  @supports ((display: -ms-grid) or (display: grid)) {
    .standard-image {
      display: -ms-grid;
      display: grid;
      grid-gap: 30px; }
      @media print, screen and (min-width: 40em) {
        .standard-image {
          -ms-grid-columns: auto minmax(auto, calc(12 / 12 * 100%)) auto;
              grid-template-columns: auto minmax(auto, calc(12 / 12 * 100%)) auto; } } }
  .standard-image img,
  .standard-image figure,
  .standard-image picture {
    object-fit: cover;
    width: 100%; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .standard-image img,
      .standard-image figure,
      .standard-image picture {
        -ms-grid-column-span: 1;
        -ms-grid-column: 2;
            grid-column: 2 / span 1; } }
  @supports ((display: -ms-grid) or (display: grid)) {
    .standard-image--center {
      -ms-grid-columns: auto minmax(auto, calc(10 / 12 * 100%)) auto;
          grid-template-columns: auto minmax(auto, calc(10 / 12 * 100%)) auto; }
      @media print, screen and (min-width: 40em) {
        .standard-image--center {
          -ms-grid-columns: auto minmax(auto, calc(8 / 12 * 100%)) auto;
              grid-template-columns: auto minmax(auto, calc(8 / 12 * 100%)) auto; } } }
  .standard-image--center img,
  .standard-image--center figure,
  .standard-image--center picture {
    object-fit: cover;
    width: 80%; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .standard-image--center img,
      .standard-image--center figure,
      .standard-image--center picture {
        -ms-grid-column-span: 1;
        -ms-grid-column: 2;
            grid-column: 2 / span 1;
        width: 100%; } }
  .standard-image--wide {
    max-width: 100%;
    padding: 0; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .standard-image--wide {
        grid-gap: 0;
        -ms-grid-columns: 1fr;
            grid-template-columns: 1fr; } }
    .standard-image--wide img,
    .standard-image--wide figure,
    .standard-image--wide picture {
      max-height: 700px; }
      @supports ((display: -ms-grid) or (display: grid)) {
        .standard-image--wide img,
        .standard-image--wide figure,
        .standard-image--wide picture {
          -ms-grid-column-span: 1;
          -ms-grid-column: 1;
              grid-column: 1 / span 1; } }
  .standard-image figcaption {
    font-size: 0.8rem;
    color: #999;
    padding: 0.25rem 0;
    text-align: left; }

.repeater-logo {
  text-align: center; }
  .repeater-logo__items {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: -2rem; }
    @media print, screen and (min-width: 40em) {
      .repeater-logo__items {
        margin-bottom: 0; } }
  .repeater-logo__item {
    align-items: center;
    display: flex;
    flex: 0 1 calc( 50% - 1rem);
    justify-content: center;
    padding: 0 0.5rem 2rem; }
    @media print, screen and (min-width: 40em) {
      .repeater-logo__item {
        flex: 0 0 20%;
        max-width: 20%;
        padding: 1rem; } }

@media print, screen and (min-width: 40em) {
  .pricing-table__grid, .pricing-table__grid--horizontal {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between; } }

@media print, screen and (min-width: 40em) {
  .pricing-table__grid--horizontal .pricing-table__table {
    flex-basis: calc( 50% - 1rem);
    margin-bottom: 2rem;
    max-width: calc( 50% - 1rem); }
    .pricing-table__grid--horizontal .pricing-table__table:last-child, .pricing-table__grid--horizontal .pricing-table__table:nth-last-child(2) {
      margin-bottom: 0; } }

@media print, screen and (min-width: 64em) {
  .pricing-table__grid--horizontal .pricing-table__table {
    flex-basis: calc( 25% - 1rem);
    margin-bottom: 0;
    max-width: calc( 25% - 1rem); } }

.pricing-table__table {
  align-content: center;
  background-color: #e6e6e6;
  flex-direction: column;
  display: flex;
  padding: 2rem;
  margin-bottom: 1rem; }
  .pricing-table__table:last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    .pricing-table__table {
      flex-basis: calc( 50% - 1rem);
      margin-bottom: 2rem;
      max-width: calc( 50% - 1rem); }
      .pricing-table__table:nth-last-child(2) {
        margin-bottom: 0; } }

.pricing-table__button {
  align-items: flex-end;
  display: flex;
  flex-grow: 1;
  justify-content: center;
  margin-bottom: 0;
  text-align: center; }
  .pricing-table__button .button, .pricing-table__button .wp-block-button .wp-block-button__link, .wp-block-button .pricing-table__button .wp-block-button__link, .pricing-table__button #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .pricing-table__button .button, .pricing-table__button .repeater-logo__link {
    margin-bottom: 0; }

.pricing-table__highlight {
  text-align: center; }

.pricing-table__link {
  display: block;
  text-align: center; }

.pricing-table__table:nth-of-type(even) {
  background-color: #346046;
  color: #fefefe; }
  .pricing-table__table:nth-of-type(even) .h4,
  .pricing-table__table:nth-of-type(even) .pricing-table__highlight {
    color: #fefefe; }

.signpost__heading {
  margin-bottom: 2rem; }

@media print, screen and (min-width: 40em) {
  .signpost__grid--col-2 {
    -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr); } }

.signpost__grid--col-3 {
  grid-gap: 1rem; }
  @media print, screen and (min-width: 40em) {
    .signpost__grid--col-3 {
      -ms-grid-columns: (1fr)[3];
          grid-template-columns: repeat(3, 1fr); } }

.signpost__item {
  border: 1px solid #4e4e4e;
  box-shadow: 0 0 20px 0 rgba(100, 47, 47, 0.15);
  color: #3c3c3b;
  display: block;
  padding: 1rem 4rem 1rem 1rem;
  position: relative;
  transition: border-color ease-out .2s; }
  .signpost__item:after {
    background-repeat: no-repeat;
    content: url(../images/icons/chevron-right.svg);
    margin-top: -8px;
    position: absolute;
    right: 2rem;
    top: 50%;
    transform: scale(1.4); }
  .signpost__item:hover {
    border-color: #f8e287; }
    .signpost__item:hover .signpost__title {
      color: #346046; }
    .signpost__item:hover .signpost__text {
      color: #3c3c3b; }

.signpost__title {
  transition: color ease-out .2s; }

.signpost__text {
  margin-bottom: 0; }

.stats {
  padding: 3rem 0; }
  .stats__wrapper {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: center; }
    @media print, screen and (min-width: 40em) {
      .stats__wrapper {
        flex-direction: row;
        flex-wrap: wrap; } }
  .stats__item {
    flex: 1 0 auto;
    padding: 1rem;
    position: relative;
    text-align: center; }
    @media print, screen and (min-width: 40em) {
      .stats__item {
        flex: 1 0 50%; } }
    @media print, screen and (min-width: 64em) {
      .stats__item {
        flex: 1 0 25%; } }
    .stats__item--heading {
      margin-bottom: 0; }
    .stats__item-prefix {
      margin-right: -8px; }
    .stats__item-symbol {
      margin-left: -8px; }

@media print, screen and (min-width: 64em) {
  .testimonial__grid {
    width: 100%;
    max-width: calc(8 / 12 * 100%);
    margin-left: auto;
    margin-right: auto; } }

.testimonial__card {
  text-align: center; }

.testimonial__icon {
  background-image: url(../images/icons/quote-mark.svg);
  background-repeat: no-repeat;
  background-size: contain;
  display: block;
  height: 30px;
  margin: 0 auto 1.5rem;
  width: 30px; }

.video {
  position: relative; }
  .video__image {
    object-fit: cover;
    width: 100%; }
    @media screen and (min-width: 75em) {
      .video__image {
        max-height: 700px; } }
  .video__video {
    object-fit: cover;
    width: 100%; }
    @media print, screen and (min-width: 40em) {
      .video__video {
        left: 0;
        right: 0; } }
    @media screen and (min-width: 75em) {
      .video__video {
        max-height: 700px; } }
    .video__video--responsive {
      position: relative;
      height: 0;
      margin-bottom: 1rem;
      padding-bottom: 56.25%;
      overflow: hidden; }
      .video__video--responsive iframe,
      .video__video--responsive object,
      .video__video--responsive embed,
      .video__video--responsive video {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%; }

@media print, screen and (min-width: 64em) {
  .wysiwyg__content {
    width: 100%;
    max-width: calc(8 / 12 * 100%);
    margin-left: auto;
    margin-right: auto; } }

@media print, screen and (min-width: 64em) {
  .wysiwyg__content--wide {
    width: 100%;
    max-width: calc(10 / 12 * 100%);
    margin-left: auto;
    margin-right: auto; } }

@media print, screen and (min-width: 64em) {
  .wysiwyg__content--full {
    width: 100%;
    max-width: calc(12 / 12 * 100%);
    margin-left: auto;
    margin-right: auto; } }

.wysiwyg__content > *:last-child {
  margin-bottom: 0; }
  .wysiwyg__content > *:last-child *:last-child {
    margin-bottom: 0; }

.wysiwyg__content figure {
  width: 100% !important; }

.wp-block-video {
  margin-left: auto;
  margin-right: auto;
  max-width: 75rem;
  padding: 0 1rem;
  width: 100%;
  text-align: center; }
  .wp-block-video video {
    margin: auto;
    width: 100%; }
    @media print, screen and (min-width: 64em) {
      .wp-block-video video {
        width: 100%;
        max-width: calc(10 / 12 * 100%);
        margin-left: auto;
        margin-right: auto; } }

@media print, screen and (min-width: 64em) {
  .wp-block-video .wp-block-embed__wrapper,
  .wp-block-embed.wp-block-embed-vimeo .wp-block-embed__wrapper,
  .wp-block-embed.wp-block-embed-youtube .wp-block-embed__wrapper {
    width: 100%;
    max-width: calc(10 / 12 * 100%);
    margin-left: auto;
    margin-right: auto; } }

.mon-iframe iframe {
  height: 350px;
  width: 100%; }
  @media print, screen and (min-width: 40em) {
    .mon-iframe iframe {
      height: 400px; } }
  @media print, screen and (min-width: 64em) {
    .mon-iframe iframe {
      height: 550px; } }

.woocommerce-loop-product__link {
  border: 1px solid #e6e6e6;
  display: block;
  padding: 1rem;
  position: relative;
  text-align: center;
  width: 100%; }
  .woocommerce-loop-product__link .price {
    color: #3c3c3b;
    font-size: 18px; }
    .woocommerce-loop-product__link .price del {
      color: #cc4b37;
      margin-right: 0.5rem; }
    .woocommerce-loop-product__link .price ins {
      text-decoration: none; }

.woocommerce-loop-product__title {
  color: #34378a;
  font-family: "GlacialBold", "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  font-size: 1.375rem;
  margin-top: 2rem; }

@media print, screen and (min-width: 40em) {
  .woocommerce-archive-wrap__filtering {
    align-items: center;
    display: flex;
    justify-content: space-between; } }

.header-basket-link {
  align-items: center;
  display: flex;
  padding: 1rem; }

.woocommerce-shipping-methods {
  list-style-type: none;
  margin: 0; }

.woocommerce-MyAccount-navigation ul,
ul.woocommerce-SavedPaymentMethods {
  list-style-type: none;
  margin-left: 0; }

.woocommerce-info {
  background: #e6e6e6;
  border-top: 3px solid #346046;
  margin: 1rem auto;
  padding: 1rem;
  text-align: center; }
  .woocommerce-info.cart-empty {
    flex: 1 0 100%; }

.woocommerce-message {
  background: #e6e6e6;
  border-top: 3px solid #346046;
  margin: 1rem auto;
  padding: 1rem;
  text-align: center;
  align-items: center;
  display: flex;
  flex-flow: column-reverse;
  justify-content: center; }
  @media print, screen and (min-width: 40em) {
    .woocommerce-message {
      flex-flow: row-reverse; } }
  .woocommerce-message .button, .woocommerce-message .wp-block-button .wp-block-button__link, .wp-block-button .woocommerce-message .wp-block-button__link, .woocommerce-message #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .woocommerce-message .button, .woocommerce-message .repeater-logo__link {
    margin: 1rem 0 0; }
    @media print, screen and (min-width: 40em) {
      .woocommerce-message .button, .woocommerce-message .wp-block-button .wp-block-button__link, .wp-block-button .woocommerce-message .wp-block-button__link, .woocommerce-message #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .woocommerce-message .button, .woocommerce-message .repeater-logo__link {
        margin: 0 0 0 1rem; } }

.woocommerce-error {
  background: #e6e6e6;
  border-top: 3px solid #346046;
  margin: 1rem auto;
  padding: 1rem;
  text-align: center;
  border-top-color: #cc4b37;
  list-style-type: none; }

ul.page-numbers {
  text-align: center; }

ul.products {
  list-style-type: none;
  margin: 1rem 0 0;
  display: flex;
  flex-wrap: wrap; }
  @supports ((display: -ms-grid) or (display: grid)) {
    ul.products {
      display: -ms-grid;
      display: grid;
      grid-gap: 1rem;
      -ms-grid-columns: (minmax(188px, 1fr))[auto-fit];
          grid-template-columns: repeat(auto-fit, minmax(188px, 1fr)); } }
  ul.products .product {
    flex: 1 0 auto;
    margin-bottom: 1rem; }
    @media print, screen and (min-width: 40em) {
      ul.products .product {
        flex: 0 0 31%;
        margin-left: 1%;
        margin-right: 1%; } }
    @media print, screen and (min-width: 40em) {
      ul.products .product {
        flex: 0 0 23%; } }
    @supports ((display: -ms-grid) or (display: grid)) {
      ul.products .product {
        display: flex;
        margin: 0;
        width: 100%; } }

.onsale {
  align-items: center;
  background-color: #346046;
  border-radius: 100%;
  color: #fefefe;
  display: flex;
  height: 3.4375rem;
  justify-content: center;
  right: 0.5rem;
  position: absolute;
  top: 0.5rem;
  width: 3.4375rem;
  z-index: 1; }

@media screen and (max-width: 39.99875em) {
  table.cart {
    font-size: 0.875rem; }
    @supports ((display: -ms-grid) or (display: grid)) {
      table.cart thead {
        display: none; }
      table.cart tbody tr {
        display: -ms-grid;
        display: grid;
        grid-gap: 1rem;
        -ms-grid-columns: 1fr 2fr;
            grid-template-columns: 1fr 2fr;
        -ms-grid-rows: (auto)[6];
            grid-template-rows: repeat(6, auto);
        padding: 0.5rem; }
        table.cart tbody tr:last-of-type {
          -ms-grid-rows: auto;
              grid-template-rows: auto; }
      table.cart td {
        padding: 0; }
        table.cart td.product-remove {
          -ms-grid-column: 2;
              grid-column: 2;
          -ms-grid-row: -1;
              grid-row: -1; }
          table.cart td.product-remove a.remove {
            margin: 0; }
            table.cart td.product-remove a.remove:before {
              content: "Remove item";
              margin-right: 5px; }
        table.cart td.product-name {
          -ms-grid-row-align: center;
              align-self: center; }
          table.cart td.product-name dl.variation {
            display: flex;
            margin-bottom: 0; }
            table.cart td.product-name dl.variation dd {
              margin-left: 5px; }
        table.cart td.product-price, table.cart td.product-quantity, table.cart td.product-subtotal {
          -ms-grid-column: 2;
              grid-column: 2; }
        table.cart td.product-price:before {
          content: "Price";
          font-weight: bold;
          margin-right: 5px; }
        table.cart td.product-quantity:before {
          content: "Quantity";
          font-weight: bold;
          margin-right: 5px; }
        table.cart td.product-quantity .quantity input {
          margin: 0; }
        table.cart td.product-subtotal:before {
          content: "Total";
          font-weight: bold;
          margin-right: 5px; } }
    table.cart .button, table.cart .wp-block-button .wp-block-button__link, .wp-block-button table.cart .wp-block-button__link, table.cart #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button table.cart .button, table.cart .repeater-logo__link {
      width: 100%; } }

@media print, screen and (min-width: 40em) {
  table.cart td.product-remove a.remove {
    align-items: center;
    background-color: #346046;
    border-radius: 100%;
    color: #fefefe;
    display: flex;
    font-weight: bold;
    height: 1.5rem;
    line-height: 0;
    justify-content: center;
    width: 1.5rem; }
    table.cart td.product-remove a.remove:hover {
      background-color: #2c523c; }
  table.cart .product-thumbnail {
    max-width: 4.6875rem; }
  table.cart .product-name dl {
    display: flex;
    margin-bottom: 0; }
    table.cart .product-name dl p {
      margin-bottom: 0; }
  table.cart .product-name dt {
    margin: 0 0.5rem 0 0; }
  table.cart .product-quantity input {
    margin-bottom: 0; } }

table.cart .actions {
  grid-column: 1 / -1; }
  @media print, screen and (min-width: 40em) {
    table.cart .actions .coupon {
      display: flex;
      float: left; } }
  table.cart .actions .coupon label {
    display: none; }
  table.cart .actions .coupon input,
  table.cart .actions .coupon .button,
  table.cart .actions .coupon .wp-block-button .wp-block-button__link,
  .wp-block-button table.cart .actions .coupon .wp-block-button__link,
  table.cart .actions .coupon #searchform .input-group .input-group-button .button,
  #searchform .input-group .input-group-button table.cart .actions .coupon .button,
  table.cart .actions .coupon .repeater-logo__link {
    width: 100%; }
  table.cart .actions .coupon input {
    margin-bottom: 1rem; }
    @media print, screen and (min-width: 40em) {
      table.cart .actions .coupon input {
        margin: 0; } }
  
  table.cart .actions .coupon .button,
  table.cart .actions .coupon .wp-block-button .wp-block-button__link,
  .wp-block-button table.cart .actions .coupon .wp-block-button__link,
  table.cart .actions .coupon #searchform .input-group .input-group-button .button,
  #searchform .input-group .input-group-button table.cart .actions .coupon .button,
  table.cart .actions .coupon .repeater-logo__link {
    margin: 0; }
    @media print, screen and (min-width: 40em) {
      
      table.cart .actions .coupon .button,
      table.cart .actions .coupon .wp-block-button .wp-block-button__link,
      .wp-block-button table.cart .actions .coupon .wp-block-button__link,
      table.cart .actions .coupon #searchform .input-group .input-group-button .button,
      #searchform .input-group .input-group-button table.cart .actions .coupon .button,
      table.cart .actions .coupon .repeater-logo__link {
        margin-left: 0.5rem;
        min-width: 10rem; } }
  table.cart .actions .button, table.cart .actions .wp-block-button .wp-block-button__link, .wp-block-button table.cart .actions .wp-block-button__link, table.cart .actions #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button table.cart .actions .button, table.cart .actions .repeater-logo__link {
    margin: 1rem 0 0; }
    @media print, screen and (min-width: 40em) {
      table.cart .actions .button, table.cart .actions .wp-block-button .wp-block-button__link, .wp-block-button table.cart .actions .wp-block-button__link, table.cart .actions #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button table.cart .actions .button, table.cart .actions .repeater-logo__link {
        float: right;
        margin: 0; } }

table.variations thead,
table.variations tbody,
table.variations tfoot,
table.variations tr {
  background-color: transparent;
  border: 0; }

table.variations tr {
  align-items: flex-start;
  display: flex;
  justify-content: flex-start; }

table.variations td.label {
  background-color: transparent;
  font-size: 1rem;
  margin-top: 1rem;
  min-width: 3rem;
  padding: 0; }

table.variations td.value select {
  margin: 0; }

table.variations tbody tr {
  border: 0; }

@supports ((display: -ms-grid) or (display: grid)) {
  @media print, screen and (min-width: 40em) {
    .woocommerce-archive-wrap {
      display: -ms-grid;
      display: grid;
      grid-gap: 2rem;
      -ms-grid-columns: 1fr 3fr;
          grid-template-columns: 1fr 3fr; } } }

.woocommerce-archive-wrap__content {
  grid-column: 1 / -1;
  order: 2; }

@media print, screen and (min-width: 64em) {
  .woocommerce-cart .woocommerce {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between; } }

.woocommerce-cart .woocommerce .woocommerce-notices-wrapper .woocommerce-message {
  display: none; }

@media print, screen and (min-width: 64em) {
  .woocommerce-cart .woocommerce .woocommerce-notices-wrapper {
    flex: 0 0 100%;
    max-width: 100%; } }

.woocommerce-cart .woocommerce .woocommerce-cart-form {
  margin-top: 1rem; }
  @media print, screen and (min-width: 64em) {
    .woocommerce-cart .woocommerce .woocommerce-cart-form {
      flex: 0 0 calc(66% - 1rem);
      max-width: calc(66% - 1rem);
      margin-top: 0; } }

@media print, screen and (min-width: 64em) {
  .woocommerce-cart .woocommerce .cart-collaterals {
    flex: 0 0 calc(33% - 1rem);
    max-width: calc(33% - 1rem); } }

.custom-cart__row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding-bottom: 1rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid #e6e6e6; }
  @media print, screen and (min-width: 64em) {
    .custom-cart__row {
      padding-bottom: 1.75rem;
      margin-bottom: 1.75rem; } }
  .custom-cart__row:last-of-type {
    border-bottom: 0;
    margin-bottom: 0;
    padding-bottom: 0; }

.custom-cart__item.product-name a,
.custom-cart__item.product-name span, .custom-cart__item.product-price a,
.custom-cart__item.product-price span {
  color: #3c3c3b;
  font-weight: 600;
  font-size: 18px; }

@media print, screen and (min-width: 64em) {
  .custom-cart__item.product-name {
    padding-right: 8rem; } }

.custom-cart__item .product-variation-name {
  display: block;
  text-transform: capitalize;
  margin-top: 0.5rem; }

.custom-cart__item dl.variation {
  display: flex; }
  .custom-cart__item dl.variation dt {
    margin-right: 0.5rem; }

@media print, screen and (min-width: 64em) {
  .custom-cart__item.product-price {
    position: absolute;
    right: 0;
    top: 0; } }

.custom-cart__item a.remove {
  font-family: "GlacialBold", "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  text-decoration: underline; }
  @media print, screen and (min-width: 64em) {
    .custom-cart__item a.remove {
      display: block;
      margin: 0 0 0.75rem 1rem; } }

.custom-cart__image-container {
  flex: 0 0 23%;
  max-width: 23%; }

.custom-cart__content-container {
  flex: 0 0 calc(77% - 1rem);
  max-width: calc(77% - 1rem); }
  @media print, screen and (min-width: 64em) {
    .custom-cart__content-container {
      display: flex;
      flex-direction: column;
      flex-wrap: wrap;
      position: relative; } }

.custom-cart__product-price-quantity {
  flex: 1 0 auto;
  margin-top: 1rem; }
  @media print, screen and (min-width: 64em) {
    .custom-cart__product-price-quantity {
      align-items: flex-end;
      display: flex;
      flex-direction: row;
      justify-content: flex-start; } }
  .custom-cart__product-price-quantity .quantity__block {
    margin-top: 1rem; }

.custom-cart .coupon-toggle {
  color: #3c3c3b;
  display: block;
  flex: 1 0 100%;
  margin-bottom: 0.5rem; }
  @media print, screen and (min-width: 64em) {
    .custom-cart .coupon-toggle {
      text-align: right; } }

.cart-collaterals {
  margin-top: 1rem; }
  @media print, screen and (min-width: 64em) {
    .cart-collaterals {
      margin: 0; } }

@media print, screen and (min-width: 64em) {
  .cart_totals {
    border: 1px solid #e6e6e6;
    padding: 2rem; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .cart_totals {
        position: -webkit-sticky;
        position: sticky;
        top: 100px; } } }

.cart_totals > h2, .cart_totals > .h2, .cart_totals > .stats__item--content {
  font-size: 1rem;
  font-family: "GlacialBold", "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }
  @media print, screen and (min-width: 64em) {
    .cart_totals > h2, .cart_totals > .h2, .cart_totals > .stats__item--content {
      font-size: 1.375rem; } }

.cart_totals table tbody {
  border: 1px solid #e6e6e6;
  border-right: 0;
  border-left: 0; }

.cart_totals table tr:nth-child(2n) {
  background-color: #fefefe; }

.cart_totals table tr th {
  padding: 0.5rem 0;
  text-align: left; }

.cart_totals table tr td {
  padding: 0.5rem 0;
  text-align: right; }

.checkout-button.button, .wp-block-button .checkout-button.wp-block-button__link, #searchform .input-group .input-group-button .checkout-button.button, .checkout-button.repeater-logo__link {
  padding-right: 1em;
  text-align: center;
  width: 100%; }
  .checkout-button.button::after, .wp-block-button .checkout-button.wp-block-button__link::after, #searchform .input-group .input-group-button .checkout-button.button::after, .checkout-button.repeater-logo__link::after {
    content: none; }

.cart-collaterals--top .cart_totals {
  border-bottom: 1px solid #e6e6e6;
  margin-bottom: 1rem;
  padding-bottom: 1rem; }
  .cart-collaterals--top .cart_totals table tbody {
    border-bottom: 0; }

.cart-collaterals--top .cart_totals > h2, .cart-collaterals--top .cart_totals > .h2, .cart-collaterals--top .cart_totals > .stats__item--content,
.cart-collaterals--top .cart-subtotal,
.cart-collaterals--top .delivery-message,
.cart-collaterals--top .cart-payment-logos {
  display: none; }

.link--continue-shopping {
  color: #3c3c3b;
  display: block;
  font-family: "GlacialBold", "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  margin-bottom: 1rem;
  text-align: center;
  text-decoration: underline;
  width: 100%; }
  @media print, screen and (min-width: 64em) {
    .link--continue-shopping {
      width: auto; } }

.cart-payment-logos {
  display: block;
  margin: 0 auto;
  text-align: center; }

.wc-proceed-to-checkout--top {
  background-color: #fefefe;
  border-bottom: 1px solid #e6e6e6;
  margin-left: -1rem;
  margin-right: -1rem;
  margin-top: -1rem;
  padding: 1rem;
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 1; }
  .wc-proceed-to-checkout--top .button, .wc-proceed-to-checkout--top .wp-block-button .wp-block-button__link, .wp-block-button .wc-proceed-to-checkout--top .wp-block-button__link, .wc-proceed-to-checkout--top #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .wc-proceed-to-checkout--top .button, .wc-proceed-to-checkout--top .repeater-logo__link {
    margin-bottom: 0; }

.coupon-block {
  width: 100%; }
  @media print, screen and (min-width: 40em) {
    .coupon-block {
      flex: 0 0 50%;
      margin-left: 1rem; } }

@media print, screen and (min-width: 64em) {
  .woocommerce-checkout .woocommerce > * {
    width: 100%;
    max-width: calc(6 / 12 * 100%);
    margin-left: auto;
    margin-right: auto; } }

.woocommerce-checkout-payment > ul,
.woocommerce-order > ul {
  list-style: none;
  margin: 0; }

.woocommerce-order-details {
  margin: 2rem 0; }

.woocommerce-account .woocommerce {
  margin-top: 2rem; }
  @supports ((display: -ms-grid) or (display: grid)) {
    @media print, screen and (min-width: 40em) {
      .woocommerce-account .woocommerce #customer_login {
        display: -ms-grid;
        display: grid;
        grid-gap: 4rem;
        -ms-grid-columns: 1fr 1fr;
            grid-template-columns: 1fr 1fr; } } }

.woocommerce-account.logged-in .woocommerce {
  margin-top: 0; }
  @supports ((display: -ms-grid) or (display: grid)) {
    @media print, screen and (min-width: 40em) {
      .woocommerce-account.logged-in .woocommerce {
        display: -ms-grid;
        display: grid;
        grid-gap: 4rem;
        -ms-grid-columns: 1fr 3fr;
            grid-template-columns: 1fr 3fr; } } }

.woocommerce-account .header-basic {
  grid-column: 1 / -1;
  width: 100%; }

.woocommerce-account .woocommerce-MyAccount-navigation {
  border: 1px solid #e6e6e6;
  padding: 1rem; }
  @media print, screen and (min-width: 40em) {
    .woocommerce-account .woocommerce-MyAccount-navigation {
      margin-bottom: 0; } }
  .woocommerce-account .woocommerce-MyAccount-navigation ul li {
    align-items: center;
    display: flex; }
    .woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child a {
      padding-bottom: 0; }
    .woocommerce-account .woocommerce-MyAccount-navigation ul li::before {
      content: "🗄️";
      margin-right: 0.5rem; }
    .woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--orders::before {
      content: "🛒"; }
    .woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--edit-address::before {
      content: "✍️"; }
    .woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--edit-account::before {
      content: "🗂️"; }
    .woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout::before {
      content: "👋"; }
    .woocommerce-account .woocommerce-MyAccount-navigation ul li a {
      color: #3c3c3b;
      display: block;
      font-family: "GlacialBold", "GlacialRegular", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
      padding: 0.5rem; }
      .woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
        color: #346046; }

.single-product__container {
  padding-top: 3rem; }

@supports ((display: -ms-grid) or (display: grid)) {
  .single-product__header {
    display: -ms-grid;
    display: grid;
    grid-gap: 1rem;
    grid-template-areas: "image" "summary";
    -ms-grid-columns: 1fr;
        grid-template-columns: 1fr;
    margin-left: 0;
    margin-right: 0; }
    @media print, screen and (min-width: 40em) {
      .single-product__header {
        -ms-grid-columns: 1fr 1fr;
            grid-template-columns: 1fr 1fr;
        grid-template-areas: "image summary"; } }
    @media print, screen and (min-width: 64em) {
      .single-product__header {
        grid-gap: 3rem; } } }

.single-product__header-image-wrap {
  position: relative; }
  @supports ((display: -ms-grid) or (display: grid)) {
    .single-product__header-image-wrap {
      grid-area: image;
      margin-left: 0;
      margin-right: 0;
      width: 100%; } }
  @media print, screen and (min-width: 40em) {
    @supports ((display: -ms-grid) or (display: grid)) {
      .single-product__header-image-wrap {
        margin-left: 0;
        margin-right: 0;
        width: 100%; } } }

@supports ((display: -ms-grid) or (display: grid)) {
  .single-product .summary.entry-summary {
    grid-area: summary;
    margin-left: 0;
    margin-right: 0;
    width: 100%; } }

@media print, screen and (min-width: 40em) {
  @supports ((display: -ms-grid) or (display: grid)) {
    .single-product .summary.entry-summary {
      margin-left: 0;
      margin-right: 0;
      width: 100%; } } }

.single-product__header-content .price {
  align-content: center;
  align-items: center;
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    .single-product__header-content .price {
      font-size: 2rem; } }
  .single-product__header-content .price del {
    font-size: 1rem;
    margin-left: 1rem;
    text-decoration: none; }
    .single-product__header-content .price del > span:before {
      content: "WAS";
      margin-right: 0.25rem; }
  .single-product__header-content .price ins {
    text-decoration: none; }

.single-product__content {
  margin-top: 2rem; }

.woocommerce-product-gallery .flex-control-nav {
  display: flex;
  flex-wrap: wrap;
  list-style-type: none;
  margin: 1rem 0 -1rem; }
  @supports ((display: -ms-grid) or (display: grid)) {
    .woocommerce-product-gallery .flex-control-nav {
      display: -ms-grid;
      display: grid;
      grid-gap: 0.5rem;
      -ms-grid-columns: (minmax(92px, 1fr))[auto-fill];
          grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
      margin: 0.5rem 0 0; } }
  .woocommerce-product-gallery .flex-control-nav li {
    margin: 0 0 1rem 1rem; }
    .woocommerce-product-gallery .flex-control-nav li:first-child {
      margin-left: 0; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .woocommerce-product-gallery .flex-control-nav li {
        margin: 0; } }
    .woocommerce-product-gallery .flex-control-nav li img {
      width: 100%; }

.woocommerce-product-gallery__trigger {
  left: 0;
  padding: 0.5rem;
  position: absolute;
  top: 0;
  z-index: 1; }

.related.products {
  margin-top: 2rem;
  max-width: 75rem; }
  .related.products > h2, .related.products > .h2, .related.products > .stats__item--content {
    line-height: 1;
    margin: 0; }
  .related.products ul.products {
    border-top: 1px solid #e6e6e6;
    -ms-grid-columns: (minmax(140px, 1fr))[auto-fit];
        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    margin-top: 1rem;
    padding-top: 1rem; }
    @media print, screen and (min-width: 40em) {
      .related.products ul.products {
        -ms-grid-columns: (1fr)[4];
            grid-template-columns: repeat(4, 1fr); } }

.woocommerce-variation-add-to-cart button,
form.cart button {
  margin-left: 0; }

form.variations_form, form.grouped_form {
  margin: 0; }

form.grouped_form .quantity input {
  margin-bottom: 0; }

.quantity__block {
  align-items: stretch;
  display: flex;
  margin: 0; }
  @media print, screen and (min-width: 64em) {
    .quantity__block {
      margin-bottom: 0; } }
  .quantity__block input[type=number] {
    -webkit-appearance: none;
    appearance: none;
    -moz-appearance: textfield; }
  .quantity__block input[type=number]::-webkit-inner-spin-button,
  .quantity__block input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    appearance: none; }
  .quantity__block input {
    align-items: center;
    border-radius: 0;
    border: 1px solid #e6e6e6;
    box-shadow: none;
    display: flex;
    height: 3rem;
    justify-content: center;
    padding: 0;
    text-align: center;
    vertical-align: middle;
    width: 3rem; }

.quantity__minus, .quantity__plus {
  align-items: center;
  background: #fefefe;
  border-radius: 0;
  border: 1px solid #e6e6e6;
  cursor: pointer;
  display: flex;
  font-size: 22px;
  height: 3rem;
  justify-content: center;
  padding: 0;
  text-align: center;
  vertical-align: middle;
  width: 3rem; }
  .quantity__minus:hover, .quantity__minus:focus, .quantity__minus:active, .quantity__plus:hover, .quantity__plus:focus, .quantity__plus:active {
    background-color: #e6e6e6; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jc3MiLCJfc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3JldmVhbC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy92ZW5kb3Ivbm9ybWFsaXplLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL19nbG9iYWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdW5pdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19oZWxwZXJzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fdGV4dC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fY2hlY2tib3guc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2xhYmVsLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19oZWxwLXRleHQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2lucHV0LWdyb3VwLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19maWVsZHNldC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fc2VsZWN0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19lcnJvci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2FsbG91dC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jbG9zZS1idXR0b24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJpbGxkb3duLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcmVzcG9uc2l2ZS1lbWJlZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19tYXRoLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2xhYmVsLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29mZi1jYW52YXMuc2NzcyIsImdsb2JhbC9fY29sb3JzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc3RpY2t5LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYmxlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2NvbG9yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RodW1ibmFpbC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCJhcHAuc2NzcyIsInRvb2xzL19kZXYtaGVscGVyLnNjc3MiLCJnbG9iYWwvX2FjY2Vzc2liaWxpdHkuc2NzcyIsImdsb2JhbC9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Jmcy9zY3NzLnNjc3MiLCJnbG9iYWwvX3dwLWFkbWluLnNjc3MiLCJnbG9iYWwvX3dwLW92ZXJyaWRlcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19ncmlkLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2d1dHRlcnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fbGF5b3V0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2NlbGwuc2NzcyIsImdsb2JhbC9fZ3V0ZW5iZXJnLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwibW9kdWxlcy9fZm9vdGVyLnNjc3MiLCJtb2R1bGVzL19tb24tZ3JpZC5zY3NzIiwibW9kdWxlcy9fY29udGVudC5zY3NzIiwiYW5pbWF0aW9ucy9fc3Bpbm5lci5zY3NzIiwiY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsImNvbXBvbmVudHMvX2J1dHRvbnMuc2NzcyIsImNvbXBvbmVudHMvX2NhbGxvdXQuc2NzcyIsImNvbXBvbmVudHMvX2NhcmRzLnNjc3MiLCJjb21wb25lbnRzL19kaXZpZGVycy5zY3NzIiwiY29tcG9uZW50cy9fZmVhdHVyZWQtaW1hZ2Uuc2NzcyIsImNvbXBvbmVudHMvX2ljb25zLnNjc3MiLCJjb21wb25lbnRzL19mb3Jtcy5zY3NzIiwiY29tcG9uZW50cy9fbGlua3Muc2NzcyIsImNvbXBvbmVudHMvX2xpc3Quc2NzcyIsImNvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsImNvbXBvbmVudHMvX3JldmVhbC5zY3NzIiwiY29tcG9uZW50cy9fc2VhcmNoLWZvcm0uc2NzcyIsImNvbXBvbmVudHMvX3NlYXJjaC1zbmlwcGV0LnNjc3MiLCJjb21wb25lbnRzL190aXRsZS1iYXIuc2NzcyIsImNvbXBvbmVudHMvX3dpZGdldC5zY3NzIiwidGVtcGxhdGVzL19hcmNoaXZlLnNjc3MiLCJ0ZW1wbGF0ZXMvX2FyY2hpdmUtbm90ZS5zY3NzIiwidGVtcGxhdGVzL19zaW5nbGUtbm90ZS5zY3NzIiwidGVtcGxhdGVzL19zaW5nbGUtZXZlbnQuc2NzcyIsInRlbXBsYXRlcy9fc2luZ2xlLXRlYW0uc2NzcyIsImhlYWRlci9fdG9wLWJhci5zY3NzIiwiaGVhZGVyL19oYW1idXJnZXIuc2NzcyIsImhlYWRlci9fb2ZmY2FudmFzLnNjc3MiLCJoZWFkZXIvX2Rlc2t0b3AtZHJvcGRvd24tbWVudS5zY3NzIiwiaGVhZGVyL19tb2JpbGUtYWNjb3JkaW9uLW1lbnUuc2NzcyIsImhlYWRlci9fbW9iaWxlLWRyaWxsZG93bi1tZW51LnNjc3MiLCJoZWFkZXIvX2hlYWRlci1iYXNpYy5zY3NzIiwiY2FyZS1jb2lucy1tYW5hZ2VyL19kYXNoYm9hcmQuc2NzcyIsImNhcmUtY29pbnMtbWFuYWdlci9fbm90ZS1yZXBvcnRpbmcuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy92YW5pbGxhanMtZGF0ZXBpY2tlci9zYXNzL2RhdGVwaWNrZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy92YW5pbGxhanMtZGF0ZXBpY2tlci9zYXNzL19taXhpbnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy92YW5pbGxhanMtZGF0ZXBpY2tlci9zYXNzL2RhdGVwaWNrZXItZm91bmRhdGlvbi5zY3NzIiwiYmxvY2tzL19ibG9ja3Muc2NzcyIsImJsb2Nrcy9fY29udGVudC12aXNpYmlsaXR5LnNjc3MiLCJibG9ja3MvX2Jsb2NrLWFjY29yZGlvbi5zY3NzIiwiYmxvY2tzL19ibG9jay1jb2x1bW5zLnNjc3MiLCJibG9ja3MvX2Jsb2NrLWNvbnRlbnQtaW1hZ2Uuc2NzcyIsImJsb2Nrcy9fYmxvY2stY3RhLnNjc3MiLCJibG9ja3MvX2Jsb2NrLWhlcm8uc2NzcyIsImJsb2Nrcy9fYmxvY2staGVyby1mZWF0dXJlZC5zY3NzIiwiYmxvY2tzL19ibG9jay1oZXJvLXZpZGVvLnNjc3MiLCJibG9ja3MvX2Jsb2NrLXJlcGVhdGVyLWljb24uc2NzcyIsImJsb2Nrcy9fYmxvY2staW1hZ2Uuc2NzcyIsImJsb2Nrcy9fYmxvY2stcmVwZWF0ZXItbG9nby5zY3NzIiwiYmxvY2tzL19ibG9jay1wcmljaW5nLXRhYmxlLnNjc3MiLCJibG9ja3MvX2Jsb2NrLXNpZ25wb3N0LnNjc3MiLCJibG9ja3MvX2Jsb2NrLXN0YXRpc3RpY3Muc2NzcyIsImJsb2Nrcy9fYmxvY2stdGVzdGltb25pYWwuc2NzcyIsImJsb2Nrcy9fYmxvY2stdmlkZW8uc2NzcyIsImJsb2Nrcy9fYmxvY2std3lzaXd5Zy5zY3NzIiwiYmxvY2tzL2NvcmUvX2NvcmUtZGVmYXVsdHMuc2NzcyIsIndvb2NvbW1lcmNlL2NvbXBvbmVudHMvX2NhcmQuc2NzcyIsIndvb2NvbW1lcmNlL2NvbXBvbmVudHMvX2ZpbHRlcmluZy5zY3NzIiwid29vY29tbWVyY2UvY29tcG9uZW50cy9faGVhZGVyLWJhc2tldC1saW5rLnNjc3MiLCJ3b29jb21tZXJjZS9jb21wb25lbnRzL19saXN0cy5zY3NzIiwid29vY29tbWVyY2UvY29tcG9uZW50cy9fbWVzc2FnZXMuc2NzcyIsIndvb2NvbW1lcmNlL2NvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsIndvb2NvbW1lcmNlL2NvbXBvbmVudHMvX3Byb2R1Y3QtbG9vcC5zY3NzIiwid29vY29tbWVyY2UvY29tcG9uZW50cy9fc2FsZS1idWJibGUuc2NzcyIsIndvb2NvbW1lcmNlL2NvbXBvbmVudHMvdGFibGVzL19jYXJ0LXRhYmxlLnNjc3MiLCJ3b29jb21tZXJjZS9jb21wb25lbnRzL3RhYmxlcy9fdmFyaWF0aW9ucy10YWJsZS5zY3NzIiwid29vY29tbWVyY2UvdGVtcGxhdGVzL19hcmNoaXZlLXByb2R1Y3Quc2NzcyIsIndvb2NvbW1lcmNlL3RlbXBsYXRlcy9fY2FydC5zY3NzIiwid29vY29tbWVyY2UvdGVtcGxhdGVzL19jaGVja291dC5zY3NzIiwid29vY29tbWVyY2UvdGVtcGxhdGVzL19teS1hY2NvdW50LnNjc3MiLCJ3b29jb21tZXJjZS90ZW1wbGF0ZXMvX3NpbmdsZS1wcm9kdWN0LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDa0VqQjtFQUNFLDhCQUE2QjtFQUM3Qix1TUFFK0Q7RUFDL0Qsb0JBQW1CO0VBQ25CLG1CQUFrQjtFQUNsQixtQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSwyQkFBMEI7RUFDMUIsOExBRTREO0VBQzVELGtCQUFpQjtFQUNqQixtQkFBa0I7RUFDbEIsbUJBQWtCLEVBQUE7O0FDbkZwQjs7Ozs7R0FLRztBQ2lLRztFQ3pISjtJQUNFLFlBQVc7SUFDWCxXQUFVO0lBQ1YsZUFBYyxFQUNmLEVBQUE7O0FDaERELDRFQUE0RTtBQVE1RTtFQUNFLGtCQUFpQjtFQUNqQiwrQkFBOEIsRUFDL0I7O0FBT0Q7RUFDRSxVQUFTLEVBQ1Y7O0FBS0Q7RUFDRSxlQUFjO0VBQ2QsaUJBQWdCLEVBQ2pCOztBQVFEO0VBQ0Usd0JBQXVCO0VBQ3ZCLFVBQVM7RUFDVCxrQkFBaUIsRUFDbEI7O0FBS0Q7RUFDRSxrQ0FBaUM7RUFDakMsZUFBYyxFQUNmOztBQU9EO0VBQ0UsOEJBQTZCLEVBQzlCOztBQUtEO0VBQ0Usb0JBQW1CO0VBQ25CLDJCQUEwQjtFQUMxQixrQ0FBaUMsRUFDbEM7O0FBSUQ7O0VBRUUsb0JBQW1CLEVBQ3BCOztBQUtEOzs7RUFHRSxrQ0FBaUM7RUFDakMsZUFBYyxFQUNmOztBQUlEO0VBQ0UsZUFBYyxFQUNmOztBQUtEOztFQUVFLGVBQWM7RUFDZCxlQUFjO0VBQ2QsbUJBQWtCO0VBQ2xCLHlCQUF3QixFQUN6Qjs7QUFFRDtFQUNFLGdCQUFlLEVBQ2hCOztBQUVEO0VBQ0UsWUFBVyxFQUNaOztBQU9EO0VBQ0UsbUJBQWtCLEVBQ25COztBQVFEOzs7OztFQUtFLHFCQUFvQjtFQUNwQixnQkFBZTtFQUNmLGtCQUFpQjtFQUNqQixVQUFTLEVBQ1Y7O0FBS0Q7O0VBRUUsa0JBQWlCLEVBQ2xCOztBQUtEOztFQUVFLHFCQUFvQixFQUNyQjs7QUFJRDs7OztFQUlFLDJCQUEwQixFQUMzQjs7QUFJRDs7OztFQUlFLG1CQUFrQjtFQUNsQixXQUFVLEVBQ1g7O0FBSUQ7Ozs7RUFJRSwrQkFBOEIsRUFDL0I7O0FBSUQ7RUFDRSwrQkFBOEIsRUFDL0I7O0FBT0Q7RUFDRSx1QkFBc0I7RUFDdEIsZUFBYztFQUNkLGVBQWM7RUFDZCxnQkFBZTtFQUNmLFdBQVU7RUFDVixvQkFBbUIsRUFDcEI7O0FBSUQ7RUFDRSx5QkFBd0IsRUFDekI7O0FBSUQ7RUFDRSxlQUFjLEVBQ2Y7O0FMeEVIOztFSytFSSx1QkFBc0I7RUFDdEIsV0FBVSxFQUNYOztBTDVFSDs7RUtrRkksYUFBWSxFQUNiOztBTC9FSDtFS3FGSSw4QkFBNkI7RUFDN0IscUJBQW9CLEVBQ3JCOztBTG5GSDtFS3dGSSx5QkFBd0IsRUFDekI7O0FBS0Q7RUFDRSwyQkFBMEI7RUFDMUIsY0FBYSxFQUNkOztBQU9EO0VBQ0UsZUFBYyxFQUNmOztBQUlEO0VBQ0UsbUJBQWtCLEVBQ25COztBQU9EO0VBQ0UsY0FBYSxFQUNkOztBTHpHSDtFSzhHSSxjQUFhLEVBQ2Q7O0FDNUlEO0VBQ0UseUVBQWdELEVBQ2pEOztBRHBJRDtFQ3VJRSx1QkFBc0I7RUFDdEIsZ0JMeERtQixFS3lEcEI7O0FBR0Q7OztFQUdFLG9CQUFtQixFQUNwQjs7QUR0SUQ7RUMwSUUsVUFBUztFQUNULFdBQVU7RUFFVixvQkxqRFc7RUttRFgsaUxMOUN3QztFSytDeEMsb0JMMUN5QjtFSzJDekIsaUJMekVtQjtFSzBFbkIsZUx2RFc7RUswRFQsb0NBQW1DO0VBQ25DLG1DQUFrQyxFQUVyQzs7QUR2REQ7RUMyREUsc0JBQXFCO0VBQ3JCLHVCQUFzQjtFQUd0QixnQkFBZTtFQUNmLGFBQVk7RUFDWixnQ0FBK0IsRUFDaEM7O0FEMkJEO0VDdkJFLGFBQVk7RUFDWixpQkFBZ0I7RUFDaEIsb0JMaEVnQixFS2lFakI7O0FBR0Q7RUFDRSx1QkFBc0I7RUFDdEIsWUFBVztFQUNYLG9CTHZFZ0IsRUt3RWpCOztBQUlEOzs7Ozs7RUFLSSwyQkFBMEIsRUFDM0I7O0FBSUg7RUFFRSxXQUFVO0VBQ1YseUJBQWdCO0tBQWhCLHNCQUFnQjtVQUFoQixpQkFBZ0I7RUFDaEIsVUFBUztFQUNULG9CTDNGZ0I7RUs0RmhCLHdCQUF1QjtFQUN2QixlQUFjO0VBQ2QsYUx4RnVCLEVLeUZ4QjtFTlFEO0lPekJFLFdBQVUsRUFDWDs7QUY3SkQ7RUNpTEUsZUFBYyxFQUNmOztBRGxHRDs7Ozs7RUMwR0UscUJBQW9CLEVBQ3JCOztBQUdEO0VBQ0UsMEJBQXlCLEVBQzFCOztBQUVEO0VBQ0UseUJBQXdCLEVBQ3pCOztBRWFEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1CRSxVQUFTO0VBQ1QsV0FBVSxFQUNYOztBQUdEO0VBQ0Usb0JQM0QwQjtFTzZEMUIsbUJBQWtCO0VBQ2xCLGlCUC9Ec0I7RU9nRXRCLG1DUDlEeUMsRU8rRDFDOztBQUdEOztFQUVFLG1CQUFrQjtFQUNsQixxQkFBb0IsRUFDckI7O0FBR0Q7O0VBRUUsa0JQOUtxQjtFTytLckIscUJBQW9CLEVBQ3JCOztBSG5ORDtFR3VORSxlUHJGaUI7RU9zRmpCLHFCQUFvQixFQUNyQjs7QUh2UkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VHZ1NFLGdNUHRNd0M7RU91TXhDLG1CUGpKc0I7RU9rSnRCLG9CUG5NeUI7RU9vTXpCLGVQcE5nQjtFT3FOaEIsbUNQckdzQyxFTzJHdkM7RUFoQkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBYUksZUFBYztJQUNkLGVQdE5lLEVPdU5oQjs7QUh6U0g7RUdxVFUsa0JDdlA2QztFRG1RN0MsaUJQOUtXO0VPc0xYLGNBQWE7RUFPYixvQlA1TGUsRU84TGxCOzs7QUFyR1A7OztFQXdFVSxtQkN2UDZDO0VEbVE3QyxpQlA5S1c7RU9zTFgsY0FBYTtFQU9iLG9CUDVMZSxFTzhMbEI7OztBQXBHUDs7Ozs7Ozs7OztFQXVFVSxxQkN2UDZDO0VEbVE3QyxpQlA5S1c7RU9zTFgsY0FBYTtFQU9iLG9CUDVMZSxFTzhMbEI7OztBQW5HUDs7Ozs7Ozs7OztFQXNFVSxvQkN2UDZDO0VEbVE3QyxpQlA5S1c7RU9zTFgsY0FBYTtFQU9iLG9CUDVMZSxFTzhMbEI7OztBQWxHUDs7RUFxRVUscUJDdlA2QztFRG1RN0MsaUJQOUtXO0VPc0xYLGNBQWE7RUFPYixvQlA1TGUsRU84TGxCOzs7QUFqR1A7OztFQW9FVSxnQkN2UDZDO0VEbVE3QyxpQlA5S1c7RU9zTFgsY0FBYTtFQU9iLG9CUDVMZSxFTzhMbEI7O0FMdE1IO0VFNUlKO0lHcVRVLGdCQ3ZQNkMsRURvUmhEOztFQXJHUDs7O0lBd0VVLGtCQ3ZQNkMsRURvUmhEOztFQXBHUDs7Ozs7Ozs7OztJQXVFVSxxQkN2UDZDLEVEb1JoRDs7RUFuR1A7Ozs7Ozs7Ozs7SUFzRVUscUJDdlA2QyxFRG9SaEQ7O0VBbEdQOztJQXFFVSxtQkN2UDZDLEVEb1JoRDs7RUFqR1A7OztJQW9FVSxnQkN2UDZDLEVEb1JoRCxFQUFBOztBSHBUUDtFRzJURSxxQkFBb0I7RUFDcEIsZVB2UmM7RU93UmQsc0JQOUl5QjtFT2dKekIsZ0JBQWUsRUFhaEI7RUFsQkQ7SUFTSSxlUHJKMkQsRU95SjVEO0VBYkg7SUFnQkksVUFBUyxFQUNWOztBSDlWSDtFR21XRSxZQUFXO0VBRVgsaUJDbFRxRDtFRG1UckQsVUFBUztFQUNULHFCUGpLeUI7RU9tS3pCLGNBQWE7RUFDYixnQkFBZTtFQUNmLGlDUHBTaUI7RU9xU2pCLGVBQWMsRUFDZjs7QUFHRDs7O0VBR0Usb0JQM0wwQjtFTzRMMUIsNkJQMUt5QjtFTzJLekIsaUJQOUxzQixFTytMdkI7O0FBR0Q7RUFDRSxtQkFBa0IsRUFDbkI7O0FBR0Q7RUFDRSxxQlBwTHNCO0VPcUx0QixzQlB2TGtCLEVPd0xuQjs7QUFHRDtFQUNFLHFCUDFMc0IsRU8yTHZCOztBQUdEO0VBRUkscUJQL0wyQjtFT2dNM0IsaUJBQWdCLEVBQ2pCOztBQUlIO0VBQ0Usb0JQck15QixFTzJNMUI7RUFQRDtJQUlJLHNCUHRNOEI7SU91TTlCLGtCUGhVbUIsRU9pVXBCOztBQUlIO0VBQ0UsaUJQcE8wQjtFT3FPMUIsdUNDMVdxRDtFRDJX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Skh1RDtFSUl2RCxtQlorWCtCO0VZN1gvQiwwQlpha0I7RVlabEIsOEJaa1l3QztFWWpZeEMsMEJaZWE7RVlkYixjWjJYYztFWXpYZCxxQlorV3lCO0VZOVd6QixnQkpadUQ7RUlhdkQsb0Jab0IyQjtFWW5CM0IsaUJaWHFCO0VZWXJCLGVaT2E7RVlKWCw0RFpxWDhEO0VZaFc5RCx5QkFBZ0I7S0FBaEIsc0JBQWdCO1VBQWhCLGlCQUFnQixFQUNqQjtFYnVtQkQ7O0lheG5CRSxjQUFhO0lBQ2IsMEJaSGU7SVlJZiwwQlpGVztJWUdYLDRCWk5pQjtJWVNmLDREWjBXNEQsRVl4Vy9EOztBUjBGRDtFUTdFRSxnQkFBZSxFQUtoQjtFQU5EO0lBSUksYUFBWSxFQUNiOztBQUdIOzs7RUFLSSwwQlpyQ2M7RVlzQ2Qsb0JaNlU2QixFWTVVOUI7O0Fid21CTDs7RWFsbUJJLHlCQUFnQjtLQUFoQixzQkFBZ0I7VUFBaEIsaUJBQWdCO0VBQ2hCLG9CWjdCZ0IsRVk4QmpCOztBQUdEO0VBQ0UsdUJBQXNCLEVBQ3ZCOztBQWdCRDtFQUNFLGVabEVXLEVZbUVaOztBQUZEO0VBQ0UsZVpsRVcsRVltRVo7O0FBRkQ7RUFDRSxlWmxFVyxFWW1FWjs7QWJvbEJIOzs7RWN6dkJJLHFCTDRFcUQsRUszRXREOztBZDZ2Qkg7O0VjeHZCSSxzQkFBcUI7RUFDckIseUJBQXdCO0VBRXhCLHVCQUFrRDtFQUNsRCx1QkxrRXFEO0VLakVyRCxpQkFBZ0IsRUFLakI7RWRxdkJEOztJY3Z2QkksZ0JBQWUsRUFDaEI7O0FBSUg7O0VBRUUsd0JBQW1ELEVBQ3BEOztBZHV2Qkg7RWNudkJJLFlBQVcsRUFDWjs7QUNHRDtFQWpCQSxlQUFjO0VBQ2QsVUFBUztFQUVULGdCTjREdUQ7RU0zRHZELG9CZDRGMkI7RWMzRjNCLGlCZDhhMEI7RWM3YTFCLGVkNkVtQixFYzVEbEI7RUFORDtJQUxBLHFCTm1EdUQ7SU1sRHZELG1CQUE4RCxFQVMzRDs7QUMxQkg7RUFHRSx1QkFGdUM7RUFHdkMscUJQK0RxRDtFTzlEckQsbUJmMGF3QjtFZXpheEIsZWZt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NkQsRUNUaEU7RTVDc0lHO0k0Q3hJSjtNQzRERSw0QkFEZ0g7TUZoRDlHLHdCQUE2RDtNQUE3RCx1QkFBNkQsRUNUaEUsRUFBQTtFNUNzSUc7STRDeElKO01DNERFLGtDQURnSDtNRmhEOUcsd0JBQTZEO01BQTdELHVCQUE2RCxFQ1RoRSxFQUFBO0VBRkQ7SUM0REUsMkJBRGdIO0lGaEQ5Ryx1QkFBNkQ7SUFBN0Qsc0JBQTZELEVDVGhFO0U1Q3NJRztJNEN4SUo7TUM0REUsNEJBRGdIO01GaEQ5Ryx3QkFBNkQ7TUFBN0QsdUJBQTZELEVDVGhFLEVBQUE7RTVDc0lHO0k0Q3hJSjtNQzRERSw4QkFEZ0g7TUZoRDlHLHdCQUE2RDtNQUE3RCx1QkFBNkQsRUNUaEUsRUFBQTtFQUZEO0lDNERFLDJCQURnSDtJRmhEOUcsdUJBQTZEO0lBQTdELHNCQUE2RCxFQ1RoRTtFNUNzSUc7STRDeElKO01DNERFLDRCQURnSDtNRmhEOUcsd0JBQTZEO01BQTdELHVCQUE2RCxFQ1RoRSxFQUFBO0U1Q3NJRztJNEN4SUo7TUM0REUsa0NBRGdIO01GaEQ5Ryx3QkFBNkQ7TUFBN0QsdUJBQTZELEVDVGhFLEVBQUE7RUhZSDtJUlZFLHNCQUFxQjtJQUNyQixnQkFBZTtJQUNmLG9CbkNrRmtCO0ltQ2hGbEIsMEJuQ3lFYTtJbUN4RWIsb0JuQ3FGa0I7SW1DcEZsQiw0Q25Dc0VhO0ltQ3BFYixlQUFjO0lBSWQsc0NuQ293QjhDLEUyQ2p2QjdDO0lSakJEO01BRUUsOENuQzJDYyxFbUMxQ2Y7SUFFRDtNQUNFLGlCQUFnQixFQUNqQjtFUVhIO0lSVkUsc0JBQXFCO0lBQ3JCLGdCQUFlO0lBQ2Ysb0JuQ2tGa0I7SW1DaEZsQiwwQm5DeUVhO0ltQ3hFYixvQm5DcUZrQjtJbUNwRmxCLDRDbkNzRWE7SW1DcEViLGVBQWMsRVEwQmI7O0FLcEVIOztFQUVFO0FBRUYsaUNBQWlDO0FBRy9CO0VBQ0ksMEJoRHFGWSxFZ0RwRmY7O0FBRUQ7RUFDSSxlaERpRlksRWdEaEZmOztBQU5EO0VBQ0ksMEJoRHNGeUIsRWdEckY1Qjs7QUFFRDtFQUNJ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b0J2RDBHa0I7RXVEekdsQiwwQnZEMEdtQjtFdUR6R25CLG1CQUFrQjtFQUNsQixtQkFBa0I7RUFDbEIsK0JBQThCO0VBQzlCLHVCQUFzQjtFQUN0QixZQUFXLEVBeUxaO0VyRHJDSztJcUR0S047TUFxQkksWUFBVyxFQXNMZCxFQUFBO0VBM01EO0lBMkJJLDBCdkRvRlc7SXVEbkZYLHNCdkRpRWM7SXVEaEVkLGV2RGlGVyxFdURoRlo7RUE5Qkg7SUF1Q0ksc0J2RHNEYztJdURyRGQsMEJ2RHFEYztJdURwRGQsZXZEc0VXLEV1RDdEWjtJQWxESDtNQThDTSwwQkFBNkM7TUFDN0Msc0JBQXlDO01BQ3pDLGV2RCtEUyxFdUQ5RFY7RUFJSDtJQUNFLDhCQUE2QjtJQUM3QixzQnZEc0NjO0l1RHJDZCxldkRxQ2MsRXVENUJmO0lBWkE7TUFRRyxzQnZEZ0NZO011RC9CWiwwQnZEK0JZO011RDlCWixldkRnRFMsRXVEL0NWO0VBUUg7SUFFRSwwQnZEb0IyQjtJdURuQjNCLHNCdkRtQjJCO0l1RGxCM0IsZXZEbUNXLEV1RDFCWjtJQWJBO01BU0csMEJBQStDO01BQy9DLHNCQUEyQztNQUMzQyxldkQ0QlMsRXVEM0JWO0VBSUg7SUFDRSw4QkFBNkI7SUFDN0Isc0J2REkyQjtJdURIM0IsZXZERzJCLEV1RE01QjtJQVpBO01BUUcsMEJ2REZ5QjtNdURHekIsc0J2REh5QjtNdURJekIsZXZEYVMsRXVEWlY7RUFJSDtJQUNFLDhCQUE2QjtJQUM3QixzQnZEUlk7SXVEU1osZXZEVFksRXVEa0JiO0lBWkE7TUFRRywwQnZEZFU7TXVEZVYsc0J2RGZVO011RGdCVixldkRGUyxFdURHVjtFQU9IO0lBQ0UsMEJ2RFhXO0l1RFlYLGV2RGJXLEV1RHNCWjtJQVhBO01BT0csOEJBQTZCO01BQzdCLHNCdkRsQlM7TXVEbUJULGV2RG5CUyxFdURvQlY7RUFJSDtJQUNFLDhCQUE2QjtJQUM3QixzQnZEMUJXO0l1RDJCWCxldkQzQlcsRXVEbUNaO0lBWEE7TUFRRywwQnZEaENTO011RGlDVCxldkRsQ1MsRXVEbUNWO0VBSUg7SUFD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b0JBQWdCO0VBQ2hCLGlCQUFnQjtFQUNoQiwwQkFBZTtFQUNmLGdCQUFhO0VBQ2IsY0FBVztFQUNYLGdCQUEwQjtFQUMxQixhQUFBO0VBQ0Esd0JBQVU7RUFDVixXQUFVO0VBQ1YsbUJBQWdCO0VBQ2hCLHVCQU9BO0VBckJBLFlBQUEsRUFBQTtFekhnd0xBO0lBQ0UsMEJBQTBCLEVBQUUiLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJHbGFjaWFsUmVndWxhclwiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL0dsYWNpYWxJbmRpZmZlcmVuY2UtUmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvR2xhY2lhbEluZGlmZmVyZW5jZS1SZWd1bGFyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvR2xhY2lhbEluZGlmZmVyZW5jZS1SZWd1bGFyLmVvdFwiKSBmb3JtYXQoXCJlb3RcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJHbGFjaWFsQm9sZFwiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL0dsYWNpYWxJbmRpZmZlcmVuY2UtQm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvR2xhY2lhbEluZGlmZmVyZW5jZS1Cb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvR2xhY2lhbEluZGlmZmVyZW5jZS1Cb2xkLmVvdFwiKSBmb3JtYXQoXCJlb3RcIik7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDsgfVxuXG4vKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbiAqIFZlcnNpb24gNi41LjFcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucmV2ZWFsLCAucmV2ZWFsLnRpbnksIC5yZXZlYWwuc21hbGwsIC5yZXZlYWwubGFyZ2Uge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luOiAwIGF1dG87IH0gfVxuXG4vKiEgbm9ybWFsaXplLmNzcyB2OC4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgfVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbmgxLCAuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07IH1cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgfVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfVxuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07IH1cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7IH1cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIG1hcmdpbjogMDsgfVxuXG5idXR0b24sXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IH1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7IH1cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7IH1cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07IH1cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7IH1cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgfVxuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGZvbnQ6IGluaGVyaXQ7IH1cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07IH1cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZm91bmRhdGlvbi1tcSB7XG4gIGZvbnQtZmFtaWx5OiBcInNtYWxsPTBlbSZtZWRpdW09NDBlbSZsYXJnZT02NGVtJnhsYXJnZT03NWVtJnh4bGFyZ2U9OTBlbVwiOyB9XG5cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LXNpemU6IDEwMCU7IH1cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDsgfVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBmb250LWZhbWlseTogXCJHbGFjaWFsUmVndWxhclwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJGaXJhIFNhbnNcIiwgXCJEcm9pZCBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMzYzNjM2I7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbmltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IH1cblxudGV4dGFyZWEge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7IH1cblxuc2VsZWN0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7IH1cblxuLm1hcF9jYW52YXMgaW1nLFxuLm1hcF9jYW52YXMgZW1iZWQsXG4ubWFwX2NhbnZhcyBvYmplY3QsXG4ubXFhLWRpc3BsYXkgaW1nLFxuLm1xYS1kaXNwbGF5IGVtYmVkLFxuLm1xYS1kaXNwbGF5IG9iamVjdCB7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OyB9XG5cbmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IGF1dG87IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuXG4uaXMtdmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5kaXYsXG5kbCxcbmR0LFxuZGQsXG51bCxcbm9sLFxubGksIGgxLCAuaDEsXG5oMixcbi5oMixcbi5zdGF0c19faXRlbS0tY29udGVudCxcbmgzLFxuLmgzLFxuLnNlYXJjaC1zbmlwcGV0X190aXRsZSxcbi5yZWxhdGVkLnByb2R1Y3RzID4gaDIsXG4ucmVsYXRlZC5wcm9kdWN0cyA+IC5oMixcbi5yZWxhdGVkLnByb2R1Y3RzID4gLnN0YXRzX19pdGVtLS1jb250ZW50LFxuLmNhcmRfX3RpdGxlLFxuLmJsb2NrX19oZWFkaW5nLS1zbWFsbCxcbi5yZXBlYXRlci1pY29uX19pdGVtLWhlYWRpbmcsXG4uc2lnbnBvc3RfX3RpdGxlLFxuaDQsXG4uaDQsXG4uY2FyZC0tcmVzb3VyY2VfX3RpdGxlLFxuLnNpZ25wb3N0X19ncmlkLS1jb2wtMyAuc2lnbnBvc3RfX3RpdGxlLFxuLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgaDIsXG4ud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAuaDIsXG4ud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQsXG4ud29vY29tbWVyY2Utb3JkZXIgaDIsXG4ud29vY29tbWVyY2Utb3JkZXIgLmgyLFxuLndvb2NvbW1lcmNlLW9yZGVyIC5zdGF0c19faXRlbS0tY29udGVudCxcbmg1LFxuLmg1LFxuaDYsXG4uaDYsXG4ud2lkZ2V0LXRpdGxlLFxucHJlLFxuZm9ybSxcbnAsXG5ibG9ja3F1b3RlLFxudGgsXG50ZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG5wIHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMS44O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG5cbmVtLFxuaSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuc3Ryb25nLFxuYiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5oMSwgLmgxLCAuaDEsXG5oMixcbi5oMixcbi5zdGF0c19faXRlbS0tY29udGVudCwgLmgyLFxuaDMsXG4uaDMsXG4uc2VhcmNoLXNuaXBwZXRfX3RpdGxlLFxuLnJlbGF0ZWQucHJvZHVjdHMgPiBoMixcbi5yZWxhdGVkLnByb2R1Y3RzID4gLmgyLFxuLnJlbGF0ZWQucHJvZHVjdHMgPiAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQsXG4uY2FyZF9fdGl0bGUsXG4uYmxvY2tfX2hlYWRpbmctLXNtYWxsLFxuLnJlcGVhdGVyLWljb25fX2l0ZW0taGVhZGluZyxcbi5zaWducG9zdF9fdGl0bGUsIC5oMywgLnNlYXJjaC1zbmlwcGV0X190aXRsZSwgLnJlbGF0ZWQucHJvZHVjdHMgPiBoMiwgLnJlbGF0ZWQucHJvZHVjdHMgPiAuaDIsIC5yZWxhdGVkLnByb2R1Y3RzID4gLnN0YXRzX19pdGVtLS1jb250ZW50LFxuaDQsXG4uaDQsXG4uY2FyZC0tcmVzb3VyY2VfX3RpdGxlLFxuLnNpZ25wb3N0X19ncmlkLS1jb2wtMyAuc2lnbnBvc3RfX3RpdGxlLFxuLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgaDIsXG4ud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAuaDIsXG4ud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQsXG4ud29vY29tbWVyY2Utb3JkZXIgaDIsXG4ud29vY29tbWVyY2Utb3JkZXIgLmgyLFxuLndvb2NvbW1lcmNlLW9yZGVyIC5zdGF0c19faXRlbS0tY29udGVudCwgLmg0LFxuaDUsXG4uaDUsIC5oNSxcbmg2LFxuLmg2LFxuLndpZGdldC10aXRsZSwgLmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiR2xhY2lhbEJvbGRcIiwgXCJHbGFjaWFsUmVndWxhclwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJGaXJhIFNhbnNcIiwgXCJEcm9pZCBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzNjM2MzYjtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsgfVxuICBoMSBzbWFsbCwgLmgxIHNtYWxsLCAuaDEgc21hbGwsXG4gIGgyIHNtYWxsLFxuICAuaDIgc21hbGwsXG4gIC5zdGF0c19faXRlbS0tY29udGVudCBzbWFsbCwgLmgyIHNtYWxsLFxuICBoMyBzbWFsbCxcbiAgLmgzIHNtYWxsLFxuICAuc2VhcmNoLXNuaXBwZXRfX3RpdGxlIHNtYWxsLFxuICAucmVsYXRlZC5wcm9kdWN0cyA+IGgyIHNtYWxsLFxuICAucmVsYXRlZC5wcm9kdWN0cyA+IC5oMiBzbWFsbCxcbiAgLnJlbGF0ZWQucHJvZHVjdHMgPiAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQgc21hbGwsXG4gIC5jYXJkX190aXRsZSBzbWFsbCxcbiAgLmJsb2NrX19oZWFkaW5nLS1zbWFsbCBzbWFsbCxcbiAgLnJlcGVhdGVyLWljb25fX2l0ZW0taGVhZGluZyBzbWFsbCxcbiAgLnNpZ25wb3N0X190aXRsZSBzbWFsbCwgLmgzIHNtYWxsLCAuc2VhcmNoLXNuaXBwZXRfX3RpdGxlIHNtYWxsLCAucmVsYXRlZC5wcm9kdWN0cyA+IGgyIHNtYWxsLCAucmVsYXRlZC5wcm9kdWN0cyA+IC5oMiBzbWFsbCwgLnJlbGF0ZWQucHJvZHVjdHMgPiAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQgc21hbGwsXG4gIGg0IHNtYWxsLFxuICAuaDQgc21hbGwsXG4gIC5jYXJkLS1yZXNvdXJjZV9fdGl0bGUgc21hbGwsXG4gIC5zaWducG9zdF9fZ3JpZC0tY29sLTMgLnNpZ25wb3N0X190aXRsZSBzbWFsbCxcbiAgLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgaDIgc21hbGwsXG4gIC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IC5oMiBzbWFsbCxcbiAgLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgLnN0YXRzX19pdGVtLS1jb250ZW50IHNtYWxsLFxuICAud29vY29tbWVyY2Utb3JkZXIgaDIgc21hbGwsXG4gIC53b29jb21tZXJjZS1vcmRlciAuaDIgc21hbGwsXG4gIC53b29jb21tZXJjZS1vcmRlciAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQgc21hbGwsIC5oNCBzbWFsbCxcbiAgaDUgc21hbGwsXG4gIC5oNSBzbWFsbCwgLmg1IHNtYWxsLFxuICBoNiBzbWFsbCxcbiAgLmg2IHNtYWxsLFxuICAud2lkZ2V0LXRpdGxlIHNtYWxsLCAuaDYgc21hbGwge1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGNvbG9yOiAjNGU0ZTRlOyB9XG5cbmgxLCAuaDEsIC5oMSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG5cblxuaDIsXG4uaDIsXG4uc3RhdHNfX2l0ZW0tLWNvbnRlbnQsIC5oMiB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuXG5cbmgzLFxuLmgzLFxuLnNlYXJjaC1zbmlwcGV0X190aXRsZSxcbi5yZWxhdGVkLnByb2R1Y3RzID4gaDIsXG4ucmVsYXRlZC5wcm9kdWN0cyA+IC5oMixcbi5yZWxhdGVkLnByb2R1Y3RzID4gLnN0YXRzX19pdGVtLS1jb250ZW50LFxuLmNhcmRfX3RpdGxlLFxuLmJsb2NrX19oZWFkaW5nLS1zbWFsbCxcbi5yZXBlYXRlci1pY29uX19pdGVtLWhlYWRpbmcsXG4uc2lnbnBvc3RfX3RpdGxlLCAuaDMsIC5zZWFyY2gtc25pcHBldF9fdGl0bGUsIC5yZWxhdGVkLnByb2R1Y3RzID4gaDIsIC5yZWxhdGVkLnByb2R1Y3RzID4gLmgyLCAucmVsYXRlZC5wcm9kdWN0cyA+IC5zdGF0c19faXRlbS0tY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMS4xODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG5cblxuaDQsXG4uaDQsXG4uY2FyZC0tcmVzb3VyY2VfX3RpdGxlLFxuLnNpZ25wb3N0X19ncmlkLS1jb2wtMyAuc2lnbnBvc3RfX3RpdGxlLFxuLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgaDIsXG4ud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAuaDIsXG4ud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQsXG4ud29vY29tbWVyY2Utb3JkZXIgaDIsXG4ud29vY29tbWVyY2Utb3JkZXIgLmgyLFxuLndvb2NvbW1lcmNlLW9yZGVyIC5zdGF0c19faXRlbS0tY29udGVudCwgLmg0IHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuXG5cbmg1LFxuLmg1LCAuaDUge1xuICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuXG5cbmg2LFxuLmg2LFxuLndpZGdldC10aXRsZSwgLmg2IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGgxLCAuaDEsIC5oMSB7XG4gICAgZm9udC1zaXplOiAzcmVtOyB9XG4gIFxuICBoMixcbiAgLmgyLFxuICAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQsIC5oMiB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07IH1cbiAgXG4gIGgzLFxuICAuaDMsXG4gIC5zZWFyY2gtc25pcHBldF9fdGl0bGUsXG4gIC5yZWxhdGVkLnByb2R1Y3RzID4gaDIsXG4gIC5yZWxhdGVkLnByb2R1Y3RzID4gLmgyLFxuICAucmVsYXRlZC5wcm9kdWN0cyA+IC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgLmNhcmRfX3RpdGxlLFxuICAuYmxvY2tfX2hlYWRpbmctLXNtYWxsLFxuICAucmVwZWF0ZXItaWNvbl9faXRlbS1oZWFkaW5nLFxuICAuc2lnbnBvc3RfX3RpdGxlLCAuaDMsIC5zZWFyY2gtc25pcHBldF9fdGl0bGUsIC5yZWxhdGVkLnByb2R1Y3RzID4gaDIsIC5yZWxhdGVkLnByb2R1Y3RzID4gLmgyLCAucmVsYXRlZC5wcm9kdWN0cyA+IC5zdGF0c19faXRlbS0tY29udGVudCB7XG4gICAgZm9udC1zaXplOiAxLjkzNzVyZW07IH1cbiAgXG4gIGg0LFxuICAuaDQsXG4gIC5jYXJkLS1yZXNvdXJjZV9fdGl0bGUsXG4gIC5zaWducG9zdF9fZ3JpZC0tY29sLTMgLnNpZ25wb3N0X190aXRsZSxcbiAgLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgaDIsXG4gIC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IC5oMixcbiAgLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgLnN0YXRzX19pdGVtLS1jb250ZW50LFxuICAud29vY29tbWVyY2Utb3JkZXIgaDIsXG4gIC53b29jb21tZXJjZS1vcmRlciAuaDIsXG4gIC53b29jb21tZXJjZS1vcmRlciAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQsIC5oNCB7XG4gICAgZm9udC1zaXplOiAxLjU2MjVyZW07IH1cbiAgXG4gIGg1LFxuICAuaDUsIC5oNSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIFxuICBoNixcbiAgLmg2LFxuICAud2lkZ2V0LXRpdGxlLCAuaDYge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfSB9XG5cbmEge1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICMzNDYwNDY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjMmQ1MzNjOyB9XG4gIGEgaW1nIHtcbiAgICBib3JkZXI6IDA7IH1cblxuaHIge1xuICBjbGVhcjogYm90aDtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDEuMjVyZW0gYXV0bztcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzRlNGU0ZTtcbiAgYm9yZGVyLWxlZnQ6IDA7IH1cblxudWwsXG5vbCxcbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgbGluZS1oZWlnaHQ6IDEuODsgfVxuXG5saSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuXG51bCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IH1cblxub2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTsgfVxuXG51bCB1bCwgb2wgdWwsIHVsIG9sLCBvbCBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICBkbCBkdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDAgMCAycmVtO1xuICBwYWRkaW5nOiAwLjU2MjVyZW0gMS4yNXJlbSAwIDEuMTg3NXJlbTtcbiAgYm9yZGVyLWxlZnQ6IDA7IH1cbiAgYmxvY2txdW90ZSwgYmxvY2txdW90ZSBwIHtcbiAgICBsaW5lLWhlaWdodDogMS44O1xuICAgIGNvbG9yOiAjOGE4YThhOyB9XG5cbmNpdGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgY29sb3I6ICM4YThhOGE7IH1cbiAgY2l0ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cblxuYWJiciwgYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMzYzNjM2I7XG4gIGN1cnNvcjogaGVscDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG5jb2RlIHtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4zMTI1cmVtIDAuMDYyNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzRlNGU0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjM2MzYzNiOyB9XG5cbmtiZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4yNXJlbSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgY29sb3I6ICMzYzNjM2I7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7IH1cblxuLnN1YmhlYWRlciB7XG4gIG1hcmdpbi10b3A6IDAuMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogIzhhOGE4YTsgfVxuXG4ubGVhZCB7XG4gIGZvbnQtc2l6ZTogMTI1JTtcbiAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuXG4uc3RhdCB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMTsgfVxuICBwICsgLnN0YXQge1xuICAgIG1hcmdpbi10b3A6IC0xcmVtOyB9XG5cbnVsLm5vLWJ1bGxldCwgb2wubm8tYnVsbGV0IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLnRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLm1lZGl1bS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAubWVkaXVtLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lZGl1bS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5sYXJnZS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAubGFyZ2UtdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubGFyZ2UtdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAueGxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAueGxhcmdlLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC54bGFyZ2UtdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAueGxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLnh4bGFyZ2UtdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC54eGxhcmdlLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC54eGxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnh4bGFyZ2UtdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9IH1cblxuLnNob3ctZm9yLXByaW50IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbkBtZWRpYSBwcmludCB7XG4gICoge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIC5oaWRlLWZvci1wcmludCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIHRhYmxlLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIHRoZWFkLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0Ym9keS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdHIuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIHRkLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgdGguc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICBhLFxuICBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIGFbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiOyB9XG4gIC5pciBhOmFmdGVyLFxuICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICBhW2hyZWZePScjJ106YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7IH1cbiAgcHJlLFxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOGE4YThhO1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIEBwYWdlIHtcbiAgICBtYXJnaW46IDAuNWNtOyB9XG4gIHAsXG4gIGgyLFxuICAuaDIsXG4gIC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgaDMsXG4gIC5oMyxcbiAgLnNlYXJjaC1zbmlwcGV0X190aXRsZSxcbiAgLnJlbGF0ZWQucHJvZHVjdHMgPiBoMixcbiAgLnJlbGF0ZWQucHJvZHVjdHMgPiAuaDIsXG4gIC5yZWxhdGVkLnByb2R1Y3RzID4gLnN0YXRzX19pdGVtLS1jb250ZW50LFxuICAuY2FyZF9fdGl0bGUsXG4gIC5ibG9ja19faGVhZGluZy0tc21hbGwsXG4gIC5yZXBlYXRlci1pY29uX19pdGVtLWhlYWRpbmcsXG4gIC5zaWducG9zdF9fdGl0bGUge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzOyB9XG4gIFxuICBoMixcbiAgLmgyLFxuICAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQsXG4gIGgzLFxuICAuaDMsXG4gIC5zZWFyY2gtc25pcHBldF9fdGl0bGUsXG4gIC5yZWxhdGVkLnByb2R1Y3RzID4gaDIsXG4gIC5yZWxhdGVkLnByb2R1Y3RzID4gLmgyLFxuICAucmVsYXRlZC5wcm9kdWN0cyA+IC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgLmNhcmRfX3RpdGxlLFxuICAuYmxvY2tfX2hlYWRpbmctLXNtYWxsLFxuICAucmVwZWF0ZXItaWNvbl9faXRlbS1oZWFkaW5nLFxuICAuc2lnbnBvc3RfX3RpdGxlIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bzsgfSB9XG5cblt0eXBlPSd0ZXh0J10sIFt0eXBlPSdwYXNzd29yZCddLCBbdHlwZT0nZGF0ZSddLCBbdHlwZT0nZGF0ZXRpbWUnXSwgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10sIFt0eXBlPSdtb250aCddLCBbdHlwZT0nd2VlayddLCBbdHlwZT0nZW1haWwnXSwgW3R5cGU9J251bWJlciddLCBbdHlwZT0nc2VhcmNoJ10sIFt0eXBlPSd0ZWwnXSwgW3R5cGU9J3RpbWUnXSwgW3R5cGU9J3VybCddLCBbdHlwZT0nY29sb3InXSxcbnRleHRhcmVhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDIuODEyNXJlbTtcbiAgbWFyZ2luOiAwIDAgMS4zNzVyZW07XG4gIHBhZGRpbmc6IDAuNjg3NXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLXJhZGl1czogY2FsYyg1MHB4IC8gNCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGJveC1zaGFkb3c6IDA7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjM2MzYzNiO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiAgYXBwZWFyYW5jZTogbm9uZTsgfVxuICBbdHlwZT0ndGV4dCddOmZvY3VzLCBbdHlwZT0ncGFzc3dvcmQnXTpmb2N1cywgW3R5cGU9J2RhdGUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lJ106Zm9jdXMsIFt0eXBlPSdkYXRldGltZS1sb2NhbCddOmZvY3VzLCBbdHlwZT0nbW9udGgnXTpmb2N1cywgW3R5cGU9J3dlZWsnXTpmb2N1cywgW3R5cGU9J2VtYWlsJ106Zm9jdXMsIFt0eXBlPSdudW1iZXInXTpmb2N1cywgW3R5cGU9J3NlYXJjaCddOmZvY3VzLCBbdHlwZT0ndGVsJ106Zm9jdXMsIFt0eXBlPSd0aW1lJ106Zm9jdXMsIFt0eXBlPSd1cmwnXTpmb2N1cywgW3R5cGU9J2NvbG9yJ106Zm9jdXMsXG4gIHRleHRhcmVhOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICM0ZTRlNGU7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cblxudGV4dGFyZWEge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgdGV4dGFyZWFbcm93c10ge1xuICAgIGhlaWdodDogYXV0bzsgfVxuXG5pbnB1dDpkaXNhYmxlZCwgaW5wdXRbcmVhZG9ubHldLFxudGV4dGFyZWE6ZGlzYWJsZWQsXG50ZXh0YXJlYVtyZWFkb25seV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cblt0eXBlPSdzdWJtaXQnXSxcblt0eXBlPSdidXR0b24nXSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7IH1cblxuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbjo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzNjM2MzYjsgfVxuXG5bdHlwZT0nZmlsZSddLFxuW3R5cGU9J2NoZWNrYm94J10sXG5bdHlwZT0ncmFkaW8nXSB7XG4gIG1hcmdpbjogMCAwIDEuMzc1cmVtOyB9XG5cblt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG5bdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIG1hcmdpbi1sZWZ0OiAwLjY4NzVyZW07XG4gIG1hcmdpbi1yaWdodDogMS4zNzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbFtmb3JdLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsW2Zvcl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuXG5sYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxubGFiZWwgPiBbdHlwZT0ncmFkaW8nXSB7XG4gIG1hcmdpbi1yaWdodDogMC42ODc1cmVtOyB9XG5cblt0eXBlPSdmaWxlJ10ge1xuICB3aWR0aDogMTAwJTsgfVxuXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbiAgY29sb3I6ICM0ZTRlNGU7IH1cbiAgbGFiZWwubWlkZGxlIHtcbiAgICBtYXJnaW46IDAgMCAxLjM3NXJlbTtcbiAgICBwYWRkaW5nOiAwLjc1cmVtIDA7IH1cblxuLmhlbHAtdGV4dCB7XG4gIG1hcmdpbi10b3A6IC0wLjY4NzVyZW07XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAjM2MzYzNiOyB9XG5cbi5pbnB1dC1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxLjM3NXJlbTtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgLmlucHV0LWdyb3VwID4gOmZpcnN0LWNoaWxkLCAuaW5wdXQtZ3JvdXAgPiA6Zmlyc3QtY2hpbGQuaW5wdXQtZ3JvdXAtYnV0dG9uID4gKiB7XG4gICAgYm9yZGVyLXJhZGl1czogY2FsYyg1MHB4IC8gNCkgMCAwIGNhbGMoNTBweCAvIDQpOyB9XG4gIC5pbnB1dC1ncm91cCA+IDpsYXN0LWNoaWxkLCAuaW5wdXQtZ3JvdXAgPiA6bGFzdC1jaGlsZC5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIGNhbGMoNTBweCAvIDQpIGNhbGMoNTBweCAvIDQpIDA7IH1cblxuLmlucHV0LWdyb3VwLWxhYmVsLCAuaW5wdXQtZ3JvdXAtZmllbGQsIC5pbnB1dC1ncm91cC1idXR0b24sIC5pbnB1dC1ncm91cC1idXR0b24gYSxcbi5pbnB1dC1ncm91cC1idXR0b24gaW5wdXQsXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGJ1dHRvbixcbi5pbnB1dC1ncm91cC1idXR0b24gbGFiZWwge1xuICBtYXJnaW46IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjNGU0ZTRlO1xuICBiYWNrZ3JvdW5kOiAjZTZlNmU2O1xuICBjb2xvcjogIzNjM2MzYjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAwIDAgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuaW5wdXQtZ3JvdXAtbGFiZWw6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yaWdodDogMDsgfVxuICAuaW5wdXQtZ3JvdXAtbGFiZWw6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDA7IH1cblxuLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZmxleDogMSAxIDBweDtcbiAgbWluLXdpZHRoOiAwOyB9XG5cbi5pbnB1dC1ncm91cC1idXR0b24ge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAwIGF1dG87IH1cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGJ1dHRvbixcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBsYWJlbCB7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7IH1cblxubGVnZW5kIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjY4NzVyZW07IH1cblxuLmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAxLjEyNXJlbSAwO1xuICBwYWRkaW5nOiAxLjI1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjNGU0ZTRlOyB9XG4gIC5maWVsZHNldCBsZWdlbmQge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tbGVmdDogLTAuMTg3NXJlbTtcbiAgICBwYWRkaW5nOiAwIDAuMTg3NXJlbTsgfVxuXG5zZWxlY3Qge1xuICBoZWlnaHQ6IDIuODEyNXJlbTtcbiAgbWFyZ2luOiAwIDAgMS4zNzVyZW07XG4gIHBhZGRpbmc6IDAuNjg3NXJlbTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLXJhZGl1czogY2FsYyg1MHB4IC8gNCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjM2MzYzNiO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6IHJnYiUyODEzOCwgMTM4LCAxMzglMjknPjwvcG9seWdvbj48L3N2Zz5cIik7XG4gIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgLTEuMzc1cmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyLjA2MjVyZW07XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBcXDApIHtcbiAgICBzZWxlY3Qge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PVwiKTsgfSB9XG4gIHNlbGVjdDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOGE4YThhO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAjNGU0ZTRlO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIHNlbGVjdDpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gIHNlbGVjdDo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBzZWxlY3RbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuXG4uaXMtaW52YWxpZC1pbnB1dDpub3QoOmZvY3VzKSB7XG4gIGJvcmRlci1jb2xvcjogI2NjNGIzNztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZWNlYTsgfVxuICAuaXMtaW52YWxpZC1pbnB1dDpub3QoOmZvY3VzKTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjY2M0YjM3OyB9XG5cbi5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgY29sb3I6ICNjYzRiMzc7IH1cblxuLmZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAtMC42ODc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjM3NXJlbTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNjYzRiMzc7IH1cbiAgLmZvcm0tZXJyb3IuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmFjY29yZGlvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cbiAgLmFjY29yZGlvbltkaXNhYmxlZF0gLmFjY29yZGlvbi10aXRsZSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG4uYWNjb3JkaW9uLWl0ZW06Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiA1MHB4IDUwcHggMCAwOyB9XG5cbi5hY2NvcmRpb24taXRlbTpsYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwIDAgNTBweCA1MHB4OyB9XG5cbi5hY2NvcmRpb24tdGl0bGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzNjM2MzYjsgfVxuICA6bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkgPiAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgNTBweCA1MHB4OyB9XG4gIC5hY2NvcmRpb24tdGl0bGU6aG92ZXIsIC5hY2NvcmRpb24tdGl0bGU6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cbiAgLmFjY29yZGlvbi10aXRsZTo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICBjb250ZW50OiAnKyc7IH1cbiAgLmlzLWFjdGl2ZSA+IC5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gICAgY29udGVudDogJ1xcMjAxMyc7IH1cblxuLmFjY29yZGlvbi1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgY29sb3I6ICMzYzNjM2I7IH1cbiAgOmxhc3QtY2hpbGQgPiAuYWNjb3JkaW9uLWNvbnRlbnQ6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTY7IH1cblxuLmJyZWFkY3J1bWJzIHtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIC5icmVhZGNydW1iczo6YmVmb3JlLCAuYnJlYWRjcnVtYnM6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAuYnJlYWRjcnVtYnM6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuYnJlYWRjcnVtYnMgbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMC42ODc1cmVtO1xuICAgIGNvbG9yOiAjM2MzYzNiO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgLmJyZWFkY3J1bWJzIGxpOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbjogMCAwLjc1cmVtO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbnRlbnQ6IFwiL1wiO1xuICAgICAgY29sb3I6ICM0ZTRlNGU7IH1cbiAgLmJyZWFkY3J1bWJzIGEge1xuICAgIGNvbG9yOiAjMzQ2MDQ2OyB9XG4gICAgLmJyZWFkY3J1bWJzIGE6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLmJyZWFkY3J1bWJzIC5kaXNhYmxlZCB7XG4gICAgY29sb3I6ICM0ZTRlNGU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG4uY2FsbG91dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXI6IDBweDtcbiAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiAjM2MzYzNiOyB9XG4gIC5jYWxsb3V0ID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5jYWxsb3V0ID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNhbGxvdXQucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RjZWNlMjtcbiAgICBjb2xvcjogIzNjM2MzYjsgfVxuICAuY2FsbG91dC5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZiZWQ7XG4gICAgY29sb3I6ICMzYzNjM2I7IH1cbiAgLmNhbGxvdXQuc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UxZmFlYTtcbiAgICBjb2xvcjogIzNjM2MzYjsgfVxuICAuY2FsbG91dC53YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmM2Q5O1xuICAgIGNvbG9yOiAjM2MzYzNiOyB9XG4gIC5jYWxsb3V0LmFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdlNGUxO1xuICAgIGNvbG9yOiAjM2MzYzNiOyB9XG4gIC5jYWxsb3V0LnNtYWxsIHtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtOyB9XG4gIC5jYWxsb3V0LmxhcmdlIHtcbiAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgIHBhZGRpbmctbGVmdDogM3JlbTsgfVxuXG4uY2xvc2UtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogIzhhOGE4YTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuY2xvc2UtYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5jbG9zZS1idXR0b246aG92ZXIsIC5jbG9zZS1idXR0b246Zm9jdXMge1xuICAgIGNvbG9yOiAjM2MzYzNiOyB9XG4gIC5jbG9zZS1idXR0b24uc21hbGwge1xuICAgIHJpZ2h0OiAwLjY2cmVtO1xuICAgIHRvcDogMC4zM2VtO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLmNsb3NlLWJ1dHRvbiwgLmNsb3NlLWJ1dHRvbi5tZWRpdW0ge1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIHRvcDogMC41cmVtO1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi5pcy1kcmlsbGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmlzLWRyaWxsZG93biBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmlzLWRyaWxsZG93bi5hbmltYXRlLWhlaWdodCB7XG4gICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7IH1cblxuLmRyaWxsZG93biBhIHtcbiAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7IH1cblxuLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMTAwJTtcbiAgei1pbmRleDogLTE7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyOyB9XG4gIC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LmlzLWFjdGl2ZSB7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG4gIC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LmlzLWNsb3Npbmcge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuICAuZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudSBhIHtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuXG4uZHJpbGxkb3duIC5uZXN0ZWQuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5kcmlsbGRvd24gLmRyaWxsZG93bi1zdWJtZW51LWNvdmVyLXByZXZpb3VzIHtcbiAgbWluLWhlaWdodDogMTAwJTsgfVxuXG4uZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMzNDYwNDY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC02cHg7XG4gICAgcmlnaHQ6IDFyZW07IH1cblxuLmRyaWxsZG93bi5hbGlnbi1sZWZ0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMzNDYwNDY7XG4gIHJpZ2h0OiAxcmVtO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5kcmlsbGRvd24uYWxpZ24tcmlnaHQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzM0NjA0NiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDFyZW07IH1cblxuLmRyaWxsZG93biAuanMtZHJpbGxkb3duLWJhY2sgPiBhOjpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMzQ2MDQ2IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07IH1cblxuLnJlc3BvbnNpdmUtZW1iZWQsIC5pcy10eXBlLXZpZGVvIC53cC1ibG9jay1lbWJlZF9fd3JhcHBlciwgLmlzLXR5cGUtdmlkZW8gLndwLWJsb2NrLWVtYmVkX193cmFwcGVyIC5jb250YWluZXItbGF6eWxvYWQsXG4uZmxleC12aWRlbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5yZXNwb25zaXZlLWVtYmVkIGlmcmFtZSwgLmlzLXR5cGUtdmlkZW8gLndwLWJsb2NrLWVtYmVkX193cmFwcGVyIGlmcmFtZSwgLmlzLXR5cGUtdmlkZW8gLndwLWJsb2NrLWVtYmVkX193cmFwcGVyIC5jb250YWluZXItbGF6eWxvYWQgaWZyYW1lLFxuICAucmVzcG9uc2l2ZS1lbWJlZCBvYmplY3QsXG4gIC5pcy10eXBlLXZpZGVvIC53cC1ibG9jay1lbWJlZF9fd3JhcHBlciBvYmplY3QsXG4gIC5pcy10eXBlLXZpZGVvIC53cC1ibG9jay1lbWJlZF9fd3JhcHBlciAuY29udGFpbmVyLWxhenlsb2FkIG9iamVjdCxcbiAgLnJlc3BvbnNpdmUtZW1iZWQgZW1iZWQsXG4gIC5pcy10eXBlLXZpZGVvIC53cC1ibG9jay1lbWJlZF9fd3JhcHBlciBlbWJlZCxcbiAgLmlzLXR5cGUtdmlkZW8gLndwLWJsb2NrLWVtYmVkX193cmFwcGVyIC5jb250YWluZXItbGF6eWxvYWQgZW1iZWQsXG4gIC5yZXNwb25zaXZlLWVtYmVkIHZpZGVvLFxuICAuaXMtdHlwZS12aWRlbyAud3AtYmxvY2stZW1iZWRfX3dyYXBwZXIgdmlkZW8sXG4gIC5pcy10eXBlLXZpZGVvIC53cC1ibG9jay1lbWJlZF9fd3JhcHBlciAuY29udGFpbmVyLWxhenlsb2FkIHZpZGVvLFxuICAuZmxleC12aWRlbyBpZnJhbWUsXG4gIC5mbGV4LXZpZGVvIG9iamVjdCxcbiAgLmZsZXgtdmlkZW8gZW1iZWQsXG4gIC5mbGV4LXZpZGVvIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5yZXNwb25zaXZlLWVtYmVkLndpZGVzY3JlZW4sIC5pcy10eXBlLXZpZGVvIC53cC1ibG9jay1lbWJlZF9fd3JhcHBlciwgLmlzLXR5cGUtdmlkZW8gLndwLWJsb2NrLWVtYmVkX193cmFwcGVyIC5jb250YWluZXItbGF6eWxvYWQsXG4gIC5mbGV4LXZpZGVvLndpZGVzY3JlZW4sXG4gIC5pcy10eXBlLXZpZGVvIC5mbGV4LXZpZGVvLndwLWJsb2NrLWVtYmVkX193cmFwcGVyLFxuICAuaXMtdHlwZS12aWRlbyAud3AtYmxvY2stZW1iZWRfX3dyYXBwZXIgLmZsZXgtdmlkZW8uY29udGFpbmVyLWxhenlsb2FkIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyB9XG5cbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBiYWNrZ3JvdW5kOiAjMzQ2MDQ2O1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubGFiZWwucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogIzM0NjA0NjtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubGFiZWwuc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhlMjg3O1xuICAgIGNvbG9yOiAjM2MzYzNiOyB9XG4gIC5sYWJlbC5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2FkYjc2O1xuICAgIGNvbG9yOiAjM2MzYzNiOyB9XG4gIC5sYWJlbC53YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjM2MzYzNiOyB9XG4gIC5sYWJlbC5hbGVydCB7XG4gICAgYmFja2dyb3VuZDogI2NjNGIzNztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuXG4uaXMtb2ZmLWNhbnZhcy1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4uanMtb2ZmLWNhbnZhcy1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDExO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZSwgdmlzaWJpbGl0eSAwLjVzIGVhc2U7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU0LCAyNTQsIDI1NCwgMC4yNSk7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5LmlzLXZpc2libGUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5LmlzLWNsb3NhYmxlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy1vdmVybGF5LWFic29sdXRlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy1vdmVybGF5LWZpeGVkIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7IH1cblxuLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ub2ZmLWNhbnZhcyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTI7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogIzJDMzg0MDsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9mZi1jYW52YXMge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9mZi1jYW52YXMuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB6LWluZGV4OiAxMjsgfVxuICAub2ZmLWNhbnZhcy5pcy1jbG9zZWQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAub2ZmLWNhbnZhcy5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6IDEzOyB9XG4gICAgLm9mZi1jYW52YXMuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogMDsgfVxuICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuXG4ub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTI7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogIzJDMzg0MDsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB6LWluZGV4OiAxMjsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy1jbG9zZWQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6IDEzOyB9XG4gICAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogMDsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuXG4ucG9zaXRpb24tbGVmdCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB3aWR0aDogMTAwdnc7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwdncpOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tbGVmdCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDB2dyk7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLWxlZnQuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudC5pcy1vcGVuLWxlZnQuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMHZ3KTsgfVxuICAucG9zaXRpb24tbGVmdC5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IC0xM3B4IDAgMjBweCAtMTNweCAwOyB9XG5cbi5wb3NpdGlvbi1yaWdodCB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgd2lkdGg6IDEwMHZ3O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwdncpOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDB2dyk7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0LmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaXMtb3Blbi1yaWdodC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMHZ3KTsgfVxuICAucG9zaXRpb24tcmlnaHQuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAxM3B4IDAgMjBweCAtMTNweCAwOyB9XG5cbi5wb3NpdGlvbi10b3Age1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBoZWlnaHQ6IDI1MHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MHB4KTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXRvcCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNTBweCk7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXRvcC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tdG9wLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7IH1cbiAgLnBvc2l0aW9uLXRvcC5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTEzcHggMjBweCAtMTNweCAwOyB9XG5cbi5wb3NpdGlvbi1ib3R0b20ge1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBoZWlnaHQ6IDI1MHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjUwcHgpOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tYm90dG9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjUwcHgpOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1ib3R0b20uaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudC5pcy1vcGVuLWJvdHRvbS5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MHB4KTsgfVxuICAucG9zaXRpb24tYm90dG9tLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxM3B4IDIwcHggLTEzcHggMDsgfVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtbGVmdCB7XG4gICAgICBtYXJnaW4tbGVmdDogMTAwdnc7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwMHZ3OyB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLW1lZGl1bSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtcmlnaHQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMDB2dzsgfVxuICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMDB2dzsgfVxuICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLXRvcCB7XG4gICAgICBtYXJnaW4tdG9wOiAxMDB2dzsgfVxuICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDEwMHZ3OyB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtYm90dG9tIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwMHZ3OyB9XG4gICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTAwdnc7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLWxlZnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwMHZ3OyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwMHZ3OyB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtcmlnaHQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMDB2dzsgfVxuICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwMHZ3OyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtdG9wIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwMHZ3OyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tdG9wOiAxMDB2dzsgfVxuICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLWJvdHRvbSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMDB2dzsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTAwdnc7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3IteGxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci14bGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLXhsYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtbGVmdCB7XG4gICAgICBtYXJnaW4tbGVmdDogMTAwdnc7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLXhsYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwMHZ3OyB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLXhsYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLXhsYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLXhsYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtcmlnaHQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMDB2dzsgfVxuICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLXhsYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMDB2dzsgfVxuICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3IteGxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLXhsYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci14bGFyZ2Uge1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLXRvcCB7XG4gICAgICBtYXJnaW4tdG9wOiAxMDB2dzsgfVxuICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci14bGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDEwMHZ3OyB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci14bGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3IteGxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLXhsYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtYm90dG9tIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwMHZ3OyB9XG4gICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLXhsYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTAwdnc7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3IteHhsYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3IteHhsYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3IteHhsYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtbGVmdCB7XG4gICAgICBtYXJnaW4tbGVmdDogMTAwdnc7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLXh4bGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMDB2dzsgfVxuICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci14eGxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3IteHhsYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLXh4bGFyZ2Uge1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLXJpZ2h0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMTAwdnc7IH1cbiAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci14eGxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwMHZ3OyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci14eGxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLXh4bGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tdG9wLnJldmVhbC1mb3IteHhsYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtdG9wIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwMHZ3OyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLXh4bGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDEwMHZ3OyB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci14eGxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLXh4bGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3IteHhsYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtYm90dG9tIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwMHZ3OyB9XG4gICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLXh4bGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwMHZ3OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1tZWRpdW0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB0cmFuc2l0aW9uOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1tZWRpdW0ucG9zaXRpb24tbGVmdCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1tZWRpdW0ucG9zaXRpb24tcmlnaHQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLXRvcCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1tZWRpdW0ucG9zaXRpb24tYm90dG9tIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UucG9zaXRpb24tbGVmdCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZS5wb3NpdGlvbi1yaWdodCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZS5wb3NpdGlvbi10b3AsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UucG9zaXRpb24tYm90dG9tIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci14bGFyZ2Uge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB0cmFuc2l0aW9uOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci14bGFyZ2UucG9zaXRpb24tbGVmdCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci14bGFyZ2UucG9zaXRpb24tcmlnaHQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3IteGxhcmdlLnBvc2l0aW9uLXRvcCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci14bGFyZ2UucG9zaXRpb24tYm90dG9tIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXhsYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3IteHhsYXJnZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXh4bGFyZ2UucG9zaXRpb24tbGVmdCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci14eGxhcmdlLnBvc2l0aW9uLXJpZ2h0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXh4bGFyZ2UucG9zaXRpb24tdG9wLCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXh4bGFyZ2UucG9zaXRpb24tYm90dG9tIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXh4bGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLnBhZ2luYXRpb24sIHVsLnBhZ2UtbnVtYmVycyB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5wYWdpbmF0aW9uOjpiZWZvcmUsIHVsLnBhZ2UtbnVtYmVyczo6YmVmb3JlLCAucGFnaW5hdGlvbjo6YWZ0ZXIsIHVsLnBhZ2UtbnVtYmVyczo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5wYWdpbmF0aW9uOjphZnRlciwgdWwucGFnZS1udW1iZXJzOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnBhZ2luYXRpb24gbGksIHVsLnBhZ2UtbnVtYmVycyBsaSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLnBhZ2luYXRpb24gbGk6bGFzdC1jaGlsZCwgdWwucGFnZS1udW1iZXJzIGxpOmxhc3QtY2hpbGQsIC5wYWdpbmF0aW9uIGxpOmZpcnN0LWNoaWxkLCB1bC5wYWdlLW51bWJlcnMgbGk6Zmlyc3QtY2hpbGQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5wYWdpbmF0aW9uIGxpLCB1bC5wYWdlLW51bWJlcnMgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAucGFnaW5hdGlvbiBhLCB1bC5wYWdlLW51bWJlcnMgYSxcbiAgLnBhZ2luYXRpb24gYnV0dG9uLFxuICB1bC5wYWdlLW51bWJlcnMgYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICBjb2xvcjogIzNjM2MzYjsgfVxuICAgIC5wYWdpbmF0aW9uIGE6aG92ZXIsIHVsLnBhZ2UtbnVtYmVycyBhOmhvdmVyLFxuICAgIC5wYWdpbmF0aW9uIGJ1dHRvbjpob3ZlcixcbiAgICB1bC5wYWdlLW51bWJlcnMgYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNlNmU2ZTY7IH1cbiAgLnBhZ2luYXRpb24gLmN1cnJlbnQsIHVsLnBhZ2UtbnVtYmVycyAuY3VycmVudCB7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjM2MzYzNiO1xuICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAucGFnaW5hdGlvbiAuZGlzYWJsZWQsIHVsLnBhZ2UtbnVtYmVycyAuZGlzYWJsZWQge1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBjb2xvcjogIzRlNGU0ZTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgLnBhZ2luYXRpb24gLmRpc2FibGVkOmhvdmVyLCB1bC5wYWdlLW51bWJlcnMgLmRpc2FibGVkOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIC5wYWdpbmF0aW9uIC5lbGxpcHNpczo6YWZ0ZXIsIHVsLnBhZ2UtbnVtYmVycyAuZWxsaXBzaXM6OmFmdGVyIHtcbiAgICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XG4gICAgY29udGVudDogJ1xcMjAyNic7XG4gICAgY29sb3I6ICMzYzNjM2I7IH1cblxuLnBhZ2luYXRpb24tcHJldmlvdXMgYTo6YmVmb3JlLFxuLnBhZ2luYXRpb24tcHJldmlvdXMuZGlzYWJsZWQ6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gIGNvbnRlbnQ6ICdcXDAwYWInOyB9XG5cbi5wYWdpbmF0aW9uLW5leHQgYTo6YWZ0ZXIsXG4ucGFnaW5hdGlvbi1uZXh0LmRpc2FibGVkOjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgY29udGVudDogJ1xcMDBiYic7IH1cblxuLnN0aWNreS1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnN0aWNreSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uc3RpY2t5LmlzLXN0dWNrIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA1O1xuICB3aWR0aDogMTAwJTsgfVxuICAuc3RpY2t5LmlzLXN0dWNrLmlzLWF0LXRvcCB7XG4gICAgdG9wOiAwOyB9XG4gIC5zdGlja3kuaXMtc3R1Y2suaXMtYXQtYm90dG9tIHtcbiAgICBib3R0b206IDA7IH1cblxuLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IGF1dG87IH1cbiAgLnN0aWNreS5pcy1hbmNob3JlZC5pcy1hdC1ib3R0b20ge1xuICAgIGJvdHRvbTogMDsgfVxuXG5odG1sLmlzLXJldmVhbC1vcGVuIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteTogaGlkZGVuOyB9XG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4uemYtaGFzLXNjcm9sbCB7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4gYm9keSB7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuOyB9XG5cbi5yZXZlYWwtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDA1O1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDYwLCA2MCwgNTksIDAuNDUpO1xuICBvdmVyZmxvdy15OiBhdXRvOyB9XG5cbi5yZXZlYWwge1xuICB6LWluZGV4OiAxMDA2O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICM0ZTRlNGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLnJldmVhbCB7XG4gICAgb3V0bGluZTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwge1xuICAgICAgbWluLWhlaWdodDogMDsgfSB9XG4gIC5yZXZlYWwgLmNvbHVtbiB7XG4gICAgbWluLXdpZHRoOiAwOyB9XG4gIC5yZXZlYWwgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwge1xuICAgICAgd2lkdGg6IDYwMHB4O1xuICAgICAgbWF4LXdpZHRoOiA3NXJlbTsgfSB9XG4gIC5yZXZlYWwuY29sbGFwc2Uge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsLnRpbnkge1xuICAgICAgd2lkdGg6IDMwJTtcbiAgICAgIG1heC13aWR0aDogNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwuc21hbGwge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIG1heC13aWR0aDogNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwubGFyZ2Uge1xuICAgICAgd2lkdGg6IDkwJTtcbiAgICAgIG1heC13aWR0aDogNzVyZW07IH0gfVxuICAucmV2ZWFsLmZ1bGwge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAgIC5yZXZlYWwge1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwOyB9IH1cbiAgLnJldmVhbC53aXRob3V0LW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBmaXhlZDsgfVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBib3JkZXItcmFkaXVzOiA1MHB4OyB9XG4gIHRoZWFkLFxuICB0Ym9keSxcbiAgdGZvb3Qge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmNmY2ZjY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTsgfVxuICBjYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gICAgY29sb3I6ICMzYzNjM2I7IH1cbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICNmNmY2ZjY7XG4gICAgY29sb3I6ICMzYzNjM2I7IH1cbiAgdGhlYWQgdHIsXG4gIHRmb290IHRyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICB0aGVhZCB0aCxcbiAgdGhlYWQgdGQsXG4gIHRmb290IHRoLFxuICB0Zm9vdCB0ZCB7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgdGJvZHkgdGgsXG4gIHRib2R5IHRkIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07IH1cbiAgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNmY2ZjY7IH1cbiAgdGFibGUudW5zdHJpcGVkIHRib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlOyB9XG4gICAgdGFibGUudW5zdHJpcGVkIHRib2R5IHRyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Y2ZjZmNjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTk4NzVlbSkge1xuICB0YWJsZS5zdGFjayB0aGVhZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICB0YWJsZS5zdGFjayB0Zm9vdCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICB0YWJsZS5zdGFjayB0cixcbiAgdGFibGUuc3RhY2sgdGgsXG4gIHRhYmxlLnN0YWNrIHRkIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICB0YWJsZS5zdGFjayB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDsgfSB9XG5cbnRhYmxlLnNjcm9sbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bzsgfVxuXG50YWJsZS5ob3ZlciB0aGVhZCB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMWUxZTE7IH1cblxudGFibGUuaG92ZXIgdGZvb3QgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxOyB9XG5cbnRhYmxlLmhvdmVyIHRib2R5IHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTsgfVxuXG50YWJsZS5ob3Zlcjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxOyB9XG5cbi50YWJsZS1zY3JvbGwge1xuICBvdmVyZmxvdy14OiBhdXRvOyB9XG5cbi50aHVtYm5haWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyOiBzb2xpZCA0cHggI2ZlZmVmZTtcbiAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoNjAsIDYwLCA1OSwgMC4yKTtcbiAgbGluZS1oZWlnaHQ6IDA7IH1cblxuYS50aHVtYm5haWwge1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0OyB9XG4gIGEudGh1bWJuYWlsOmhvdmVyLCBhLnRodW1ibmFpbDpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDZweCAxcHggcmdiYSg1MiwgOTYsIDcwLCAwLjUpOyB9XG4gIGEudGh1bWJuYWlsIGltYWdlIHtcbiAgICBib3gtc2hhZG93OiBub25lOyB9XG5cbi5oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAuaGlkZS1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMGVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5zaG93LWZvci1zbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5zaG93LWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OTg3NWVtKSB7XG4gIC5oaWRlLWZvci1tZWRpdW0tb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTk4NzVlbSkge1xuICAuc2hvdy1mb3ItbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45OTg3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5oaWRlLWZvci14bGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgLnNob3ctZm9yLXhsYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkgYW5kIChtYXgtd2lkdGg6IDg5Ljk5ODc1ZW0pIHtcbiAgLmhpZGUtZm9yLXhsYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC5zaG93LWZvci14bGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAuaGlkZS1mb3IteHhsYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODkuOTk4NzVlbSkge1xuICAuc2hvdy1mb3IteHhsYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAuaGlkZS1mb3IteHhsYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OS45OTg3NWVtKSB7XG4gIC5zaG93LWZvci14eGxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5zaG93LWZvci1zcixcbi5zaG93LW9uLWZvY3VzIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXI6IDA7IH1cblxuLnNob3ctb24tZm9jdXM6YWN0aXZlLCAuc2hvdy1vbi1mb2N1czpmb2N1cyB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cblxuLnNob3ctZm9yLWxhbmRzY2FwZSxcbi5oaWRlLWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5oaWRlLWZvci1sYW5kc2NhcGUsXG4uc2hvdy1mb3ItcG9ydHJhaXQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbi8qXHJcbiAgTXkgY3VzdG9tIHN0eWxlczpcclxuICBBZGQgeW91ciBzY3NzIGZpbGVzIGJlbG93IHRvIHN0cnVjdHVyZSB5b3VyIHByb2plY3Qgc3R5bGVzXHJcbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5TdHlsZXNoZWV0OiBEZXYgSGVscGVyXHJcblxyXG5CeSBjcmVhdGluZyBhIG5ldyBjb25zdGFudCBjYWxsZWQgRU5WSVJPTk1FTlQgaW4gd3AtY29uZmlnLnBocFxyXG53ZSBjYW4gZG8gdGhpbmdzIGxpa2UgZW5hYmxlIGNlcnRhaW4gc3R5bGVzIG9ubHkgd2hlbiB0aGUgc2l0ZSBpc1xyXG5ydW5uaW5nIGxvY2FsbHkuXHJcblxyXG5UaGUgd2F5IHRoaXMgd29ya3MgaXMgdGhlIGhlYWRlciBmaWxlIGxvb2tzIGZvciB0aGUgY29uc3RhbnQgYW5kIGFkZHMgYSBjbGFzcyBvZiBcclxuLm1vZGUte0VOVklST05NRU5UfSB0byB0aGUgYm9keS4gU28gaWYgeW91IHNldCB0aGUgY29uc3RhbnQgdG8gJ2xvY2FsJyB5b3UnbGwgaGF2ZSBcclxuYm9keSBjbGFzcz1cIm1vZGUtbG9jYWxcIiBhdmFpbGFibGUgdG8geW91LiBcclxuXHJcbllvdSBjb3VsZCBhbHNvIHVzZSB0aGlzIENPTlNUQU5UIHRvIGVuYWJsZSBjZXJ0YWluIGJpdHMgb2YgY29kZSBpbiBzcGVjaWZpYyBlbnZpcm9ubWVudHMuXHJcblxyXG5JZiBpdCdzIG5vdCBhbHJlYWR5IGluY2x1ZGVkIGluIHdwLWNvbmZpZy5waHAsIGFkZCB0aGUgZm9sbG93aW5nOlxyXG5cclxuLyoqIFVzZWQgZm9yIHR1cm5pbmcgdGhpbmdzIGxpa2UgR0EgdHJhY2tpbmcgb2ZmIGluIGxvY2FsIGVudiAqL1xuLyoqIFNldCB0byBsb2NhbCwgc3RhZ2luZywgb3IgbGl2ZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4ubW9kZS1sb2NhbCBmb290ZXI6YWZ0ZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJhY2tncm91bmQ6IHJlZDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgY29udGVudDogXCJMT0NBTCAvIEJQOiBzbWFsbFwiO1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm1vZGUtbG9jYWwgZm9vdGVyOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiTE9DQUwgLyBCUDogbWVkaXVtXCI7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5tb2RlLWxvY2FsIGZvb3RlcjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIkxPQ0FMIC8gQlA6IGxhcmdlXCI7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLm1vZGUtbG9jYWwgZm9vdGVyOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiTE9DQUwgLyBCUDogeGxhcmdlXCI7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgLm1vZGUtbG9jYWwgZm9vdGVyOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiTE9DQUwgLyBCUDogeHhsYXJnZVwiOyB9IH1cblxuLm1vZGUtZGV2ZWxvcG1lbnQgZm9vdGVyOmFmdGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kOiBvcmFuZ2U7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBjb2xvcjogYmxhY2s7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIGNvbnRlbnQ6IFwiU1RBR0lORyAvIEJQOiBzbWFsbFwiO1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm1vZGUtZGV2ZWxvcG1lbnQgZm9vdGVyOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiU1RBR0lORyAvIEJQOiBtZWRpdW1cIjsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLm1vZGUtZGV2ZWxvcG1lbnQgZm9vdGVyOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiU1RBR0lORyAvIEJQOiBsYXJnZVwiOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgIC5tb2RlLWRldmVsb3BtZW50IGZvb3RlcjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlNUQUdJTkcgLyBCUDogeGxhcmdlXCI7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgLm1vZGUtZGV2ZWxvcG1lbnQgZm9vdGVyOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiU1RBR0lORyAvIEJQOiB4eGxhcmdlXCI7IH0gfVxuXG4uc2NyZWVuLXJlYWRlci10ZXh0IHtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHdpZHRoOiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnNjcmVlbi1yZWFkZXItdGV4dDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogMCAwIDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjE3NTliO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBsZWZ0OiA1cHg7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDE1cHggMjNweCAxNHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRvcDogNXB4O1xuICB3aWR0aDogYXV0bztcbiAgei1pbmRleDogMTAwMDAwOyB9XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICosXG4gIDo6YmVmb3JlLFxuICA6OmFmdGVyIHtcbiAgICBhbmltYXRpb24tZGVsYXk6IC0xbXMgIWltcG9ydGFudDtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDFtcyAhaW1wb3J0YW50O1xuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDEgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG8gIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwcyAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzICFpbXBvcnRhbnQ7IH0gfVxuXG4uaGVhZGluZy11bmRlcmxpbmUsIC5ibG9ja19faGVhZGluZy0tdW5kZXJsaW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5oZWFkaW5nLXVuZGVybGluZTo6YWZ0ZXIsIC5ibG9ja19faGVhZGluZy0tdW5kZXJsaW5lOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogIzNjM2MzYjtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogM3B4O1xuICAgIG1hcmdpbjogMnJlbSAwO1xuICAgIHdpZHRoOiA4MHB4OyB9XG5cbi5oZWFkaW5nLXVuZGVybGluZS0tY2VudGVyLCAuYmxvY2tfX2hlYWRpbmctLXVuZGVybGluZS1jZW50ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuaGVhZGluZy11bmRlcmxpbmUtLWNlbnRlcjo6YWZ0ZXIsIC5ibG9ja19faGVhZGluZy0tdW5kZXJsaW5lLWNlbnRlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICMzYzNjM2I7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDNweDtcbiAgICBtYXJnaW46IDJyZW0gYXV0byAycmVtO1xuICAgIHdpZHRoOiA4MHB4OyB9XG5cbi5zdWItaGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuc3ViLWhlYWRpbmcge1xuICAgICAgZm9udC1zaXplOiBjYWxjKDEuMjYyNXJlbSArIDAuMTV2dykgOyB9IH1cblxuLmxlYWQge1xuICBmb250LXNpemU6IDEuNjg3NXJlbTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgLmxlYWQge1xuICAgICAgZm9udC1zaXplOiBjYWxjKDEuMjkzNzVyZW0gKyAwLjUyNXZ3KSA7IH0gfVxuXG5zdHJvbmcsXG5iIHtcbiAgZm9udC1mYW1pbHk6IFwiR2xhY2lhbEJvbGRcIiwgXCJHbGFjaWFsUmVndWxhclwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJGaXJhIFNhbnNcIiwgXCJEcm9pZCBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjsgfVxuXG5oMSwgLmgxLCAuaDEge1xuICBmb250LXNpemU6IDNyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIGgxLCAuaDEsIC5oMSB7XG4gICAgICBmb250LXNpemU6IGNhbGMoMS40MjVyZW0gKyAyLjF2dykgOyB9IH1cblxuXG5oMixcbi5oMixcbi5zdGF0c19faXRlbS0tY29udGVudCwgLmgyIHtcbiAgZm9udC1zaXplOiAyLjVyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIFxuICAgIGgyLFxuICAgIC5oMixcbiAgICAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQsIC5oMiB7XG4gICAgICBmb250LXNpemU6IGNhbGMoMS4zNzVyZW0gKyAxLjV2dykgOyB9IH1cblxuXG5oMyxcbi5oMyxcbi5zZWFyY2gtc25pcHBldF9fdGl0bGUsXG4ucmVsYXRlZC5wcm9kdWN0cyA+IGgyLFxuLnJlbGF0ZWQucHJvZHVjdHMgPiAuaDIsXG4ucmVsYXRlZC5wcm9kdWN0cyA+IC5zdGF0c19faXRlbS0tY29udGVudCxcbi5jYXJkX190aXRsZSxcbi5ibG9ja19faGVhZGluZy0tc21hbGwsXG4ucmVwZWF0ZXItaWNvbl9faXRlbS1oZWFkaW5nLFxuLnNpZ25wb3N0X190aXRsZSwgLmgzLCAuc2VhcmNoLXNuaXBwZXRfX3RpdGxlLCAucmVsYXRlZC5wcm9kdWN0cyA+IGgyLCAucmVsYXRlZC5wcm9kdWN0cyA+IC5oMiwgLnJlbGF0ZWQucHJvZHVjdHMgPiAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQge1xuICBmb250LXNpemU6IDEuOTM3NXJlbTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgXG4gICAgaDMsXG4gICAgLmgzLFxuICAgIC5zZWFyY2gtc25pcHBldF9fdGl0bGUsXG4gICAgLnJlbGF0ZWQucHJvZHVjdHMgPiBoMixcbiAgICAucmVsYXRlZC5wcm9kdWN0cyA+IC5oMixcbiAgICAucmVsYXRlZC5wcm9kdWN0cyA+IC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgICAuY2FyZF9fdGl0bGUsXG4gICAgLmJsb2NrX19oZWFkaW5nLS1zbWFsbCxcbiAgICAucmVwZWF0ZXItaWNvbl9faXRlbS1oZWFkaW5nLFxuICAgIC5zaWducG9zdF9fdGl0bGUsIC5oMywgLnNlYXJjaC1zbmlwcGV0X190aXRsZSwgLnJlbGF0ZWQucHJvZHVjdHMgPiBoMiwgLnJlbGF0ZWQucHJvZHVjdHMgPiAuaDIsIC5yZWxhdGVkLnByb2R1Y3RzID4gLnN0YXRzX19pdGVtLS1jb250ZW50IHtcbiAgICAgIGZvbnQtc2l6ZTogY2FsYygxLjMxODc1cmVtICsgMC44MjV2dykgOyB9IH1cblxuXG5oNCxcbi5oNCxcbi5jYXJkLS1yZXNvdXJjZV9fdGl0bGUsXG4uc2lnbnBvc3RfX2dyaWQtLWNvbC0zIC5zaWducG9zdF9fdGl0bGUsXG4ud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCBoMixcbi53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IC5oMixcbi53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IC5zdGF0c19faXRlbS0tY29udGVudCxcbi53b29jb21tZXJjZS1vcmRlciBoMixcbi53b29jb21tZXJjZS1vcmRlciAuaDIsXG4ud29vY29tbWVyY2Utb3JkZXIgLnN0YXRzX19pdGVtLS1jb250ZW50LCAuaDQge1xuICBmb250LXNpemU6IDEuNTYyNXJlbTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgXG4gICAgaDQsXG4gICAgLmg0LFxuICAgIC5jYXJkLS1yZXNvdXJjZV9fdGl0bGUsXG4gICAgLnNpZ25wb3N0X19ncmlkLS1jb2wtMyAuc2lnbnBvc3RfX3RpdGxlLFxuICAgIC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IGgyLFxuICAgIC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IC5oMixcbiAgICAud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQsXG4gICAgLndvb2NvbW1lcmNlLW9yZGVyIGgyLFxuICAgIC53b29jb21tZXJjZS1vcmRlciAuaDIsXG4gICAgLndvb2NvbW1lcmNlLW9yZGVyIC5zdGF0c19faXRlbS0tY29udGVudCwgLmg0IHtcbiAgICAgIGZvbnQtc2l6ZTogY2FsYygxLjI4MTI1cmVtICsgMC4zNzV2dykgOyB9IH1cblxuXG5oNSxcbi5oNSwgLmg1IHtcbiAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG5cblxuaDYsXG4uaDYsXG4ud2lkZ2V0LXRpdGxlLCAuaDYge1xuICBmb250LXNpemU6IDFyZW07IH1cblxuYmxvY2txdW90ZSBwIHtcbiAgZm9udC1zaXplOiAxLjU2MjVyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIGJsb2NrcXVvdGUgcCB7XG4gICAgICBmb250LXNpemU6IGNhbGMoMS4yODEyNXJlbSArIDAuMzc1dncpIDsgfSB9XG5cbmZpZ2NhcHRpb24ge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogIzRlNGU0ZTtcbiAgcGFkZGluZzogMXJlbSAwOyB9XG5cbnRhYmxlIHRoZWFkIHRoIHtcbiAgZm9udC1mYW1pbHk6IFwiR2xhY2lhbEJvbGRcIiwgXCJHbGFjaWFsUmVndWxhclwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJGaXJhIFNhbnNcIiwgXCJEcm9pZCBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG50YWJsZSB0Zm9vdCB0aCxcbnRhYmxlIHRmb290IHRkIHtcbiAgZm9udC1mYW1pbHk6IFwiR2xhY2lhbEJvbGRcIiwgXCJHbGFjaWFsUmVndWxhclwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJGaXJhIFNhbnNcIiwgXCJEcm9pZCBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG4jd3BhZG1pbmJhciB7XG4gIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50OyB9XG5cbmJvZHkuYWRtaW4tYmFyLmYtdG9wYmFyLWZpeGVkIC5zdGlja3kuZml4ZWQge1xuICBtYXJnaW4tdG9wOiAycmVtOyB9XG5cbmJvZHkuYWRtaW4tYmFyLm9mZmNhbnZhcyAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgdG9wOiAyLjg3NXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OC45Mzc1ZW0pIHtcbiAgICBib2R5LmFkbWluLWJhci5vZmZjYW52YXMgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gICAgICB0b3A6IDJyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC53cC1jYXB0aW9uLmFsaWdubGVmdCwgLndwLWNhcHRpb24uYWxpZ25yaWdodCwgLndwLWNhcHRpb24uYWxpZ25jZW50ZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLndwLWNhcHRpb24uYWxpZ25sZWZ0IGltZywgLndwLWNhcHRpb24uYWxpZ25yaWdodCBpbWcsIC53cC1jYXB0aW9uLmFsaWduY2VudGVyIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5wLndwLWNhcHRpb24tdGV4dCB7XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBjb2xvcjogIzY2NjtcbiAgcGFkZGluZzogMC42MjVyZW0gMDsgfVxuXG4uYWxpZ25sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIG1hcmdpbjogMDsgfVxuXG4uYWxpZ25yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICBtYXJnaW46IDA7IH1cblxuLmFsaWduY2VudGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cblxuLmdhbGxlcnkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjYyNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5IHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMC45Mzc1cmVtOyB9IH1cbiAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTEgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjI1cmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0xID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0xID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTIgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjI1cmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0yID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0yID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtMyA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuMjVyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTMgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTMgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzJSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy00ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS4yNXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNCA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNCA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTUgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjI1cmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy01ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy01ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygyMCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNiA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuMjVyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTYgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTYgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy03ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS4yNXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNyA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNyA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IGNhbGMoMTQuMjg1NzElIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTggPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjI1cmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy04ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy04ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygxMi41JSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy05ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS4yNXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtOSA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtOSA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IGNhbGMoMTEuMTExMTElIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLmdhbGxlcnkgLmdhbGxlcnktaWNvbiA+IGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBib3JkZXI6IHNvbGlkIDRweCAjZmVmZWZlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoNjAsIDYwLCA1OSwgMC4yKTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0OyB9XG4gICAgLmdhbGxlcnkgLmdhbGxlcnktaWNvbiA+IGE6aG92ZXIsIC5nYWxsZXJ5IC5nYWxsZXJ5LWljb24gPiBhOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCA2cHggMXB4IHJnYmEoNTIsIDk2LCA3MCwgMC41KTsgfVxuICAgIC5nYWxsZXJ5IC5nYWxsZXJ5LWljb24gPiBhIGltYWdlIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgLmdhbGxlcnkgLmdhbGxlcnktaWNvbiA+IGltZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIGJvcmRlcjogc29saWQgNHB4ICNmZWZlZmU7XG4gICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSg2MCwgNjAsIDU5LCAwLjIpO1xuICAgIGxpbmUtaGVpZ2h0OiAwOyB9XG5cbi8qXHJcbkZyb250ZW5kIHN0eWxlcyBmb3IgZ3V0ZW5iZXJnIGJsb2Nrc1xyXG4qL1xuLyoqID09PSBCYXNlIENvbG9yIFBhbGF0dGUgPT09ICovXG4uaGFzLXByaW1hcnktYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDYwNDY7IH1cblxuLmhhcy1wcmltYXJ5LWNvbG9yIHtcbiAgY29sb3I6ICMzNDYwNDY7IH1cblxuLmhhcy1zZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGUyODc7IH1cblxuLmhhcy1zZWNvbmRhcnktY29sb3Ige1xuICBjb2xvcjogI2Y4ZTI4NzsgfVxuXG4uaGFzLXN1Y2Nlc3MtYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7IH1cblxuLmhhcy1zdWNjZXNzLWNvbG9yIHtcbiAgY29sb3I6ICMzYWRiNzY7IH1cblxuLmhhcy13YXJuaW5nLWJhY2tncm91bmQtY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwOyB9XG5cbi5oYXMtd2FybmluZy1jb2xvciB7XG4gIGNvbG9yOiAjZmZhZTAwOyB9XG5cbi5oYXMtYWxlcnQtYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYzRiMzc7IH1cblxuLmhhcy1hbGVydC1jb2xvciB7XG4gIGNvbG9yOiAjY2M0YjM3OyB9XG5cbi8qKiA9PT0gQnV0dG9uID09PSAqL1xuLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLmhhcy1wcmltYXJ5LWJhY2tncm91bmQtY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ2MDQ2OyB9XG5cbi53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtcHJpbWFyeS1jb2xvciB7XG4gIGNvbG9yOiAjMzQ2MDQ2OyB9XG5cbi53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhlMjg3OyB9XG5cbi53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtc2Vjb25kYXJ5LWNvbG9yIHtcbiAgY29sb3I6ICNmOGUyODc7IH1cblxuLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLmhhcy1zdWNjZXNzLWJhY2tncm91bmQtY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2OyB9XG5cbi53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtc3VjY2Vzcy1jb2xvciB7XG4gIGNvbG9yOiAjM2FkYjc2OyB9XG5cbi53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtd2FybmluZy1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDsgfVxuXG4ud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmsuaGFzLXdhcm5pbmctY29sb3Ige1xuICBjb2xvcjogI2ZmYWUwMDsgfVxuXG4ud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmsuaGFzLWFsZXJ0LWJhY2tncm91bmQtY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3OyB9XG5cbi53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtYWxlcnQtY29sb3Ige1xuICBjb2xvcjogI2NjNGIzNzsgfVxuXG4ud3AtYmxvY2stYnV0dG9uLmlzLXN0eWxlLXNxdWFyZWQgLndwLWJsb2NrLWJ1dHRvbl9fbGluayB7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLyoqID09PSBGaWxlID09PSAqL1xuLndwLWJsb2NrLWZpbGUgLndwLWJsb2NrLWZpbGVfX2J1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBwYWRkaW5nOiAwLjg1ZW0gMWVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDYwNDY7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAud3AtYmxvY2stZmlsZSAud3AtYmxvY2stZmlsZV9fYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC53cC1ibG9jay1maWxlIC53cC1ibG9jay1maWxlX19idXR0b246aG92ZXIsIC53cC1ibG9jay1maWxlIC53cC1ibG9jay1maWxlX19idXR0b246Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzUyM2M7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cblxuLmZvb3RlciB7XG4gIGNvbG9yOiAjM2MzYzNiO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZm9vdGVyIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuICAuZm9vdGVyIHAsXG4gIC5mb290ZXIgbGksXG4gIC5mb290ZXIgYSB7XG4gICAgZm9udC1zaXplOiAxNHB4OyB9XG4gIC5mb290ZXJfX3RvcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NjA0NjtcbiAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICBwYWRkaW5nOiAycmVtIDA7IH1cbiAgLmZvb3Rlcl9fYm90dG9tIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ2MDQ2O1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nOiAycmVtIDA7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmZvb3Rlcl9fYm90dG9tIHtcbiAgICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gICAgLmZvb3Rlcl9fYm90dG9tIHAsXG4gICAgLmZvb3Rlcl9fYm90dG9tIGxpLFxuICAgIC5mb290ZXJfX2JvdHRvbSBhIHtcbiAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgZm9udC1zaXplOiAxMnB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmZvb3Rlcl9fYm90dG9tLXJvdyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZm9vdGVyX19ib3R0b20tbGVmdC1wb3J0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWJhc2lzOiA1MCU7IH1cbiAgICAgIC5mb290ZXJfX2JvdHRvbS1sZWZ0LXBvcnRpb24gPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTsgfSB9XG4gIC5mb290ZXJfX2JvdHRvbS1yaWdodC1wb3J0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5mb290ZXJfX2JvdHRvbS1yaWdodC1wb3J0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1iYXNpczogNTAlO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBtYXJnaW46IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5mb290ZXJfX2xlZ2FsLXRleHQsIC5mb290ZXJfX2NyZWRpdHMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIC5mb290ZXJfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuZm9vdGVyX19pdGVtIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG4gICAgLmZvb3Rlcl9faXRlbSBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogM3B4IDA7XG4gICAgICBmb250LWZhbWlseTogXCJHbGFjaWFsQm9sZFwiLCBcIkdsYWNpYWxSZWd1bGFyXCIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIlJvYm90b1wiLCBcIk94eWdlblwiLCBcIlVidW50dVwiLCBcIkNhbnRhcmVsbFwiLCBcIkZpcmEgU2Fuc1wiLCBcIkRyb2lkIFNhbnNcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAuZm9vdGVyX19pdGVtIHNwYW4ge1xuICAgICAgICAgIHBhZGRpbmc6IDAgMXJlbTsgfSB9XG4gIC5mb290ZXJfX3dpZGdldHMgPiAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZm9vdGVyX193aWRnZXRzIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgICAgLmZvb3Rlcl9fd2lkZ2V0cyA+ICoge1xuICAgICAgICBmbGV4OiAxIDAgYXV0bztcbiAgICAgICAgbWFyZ2luOiAwIDFyZW0gMCAwOyB9IH1cbiAgLmZvb3RlciB1bCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5mb290ZXIgdWwuZm9vdGVyLWxlZ2FsLW1lbnUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAuZm9vdGVyIHVsLmZvb3Rlci1sZWdhbC1tZW51IHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH0gfVxuICAgICAgLmZvb3RlciB1bC5mb290ZXItbGVnYWwtbWVudSBsaSB7XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgICAuZm9vdGVyIHVsLmZvb3Rlci1sZWdhbC1tZW51IGxpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9IH1cbiAgLmZvb3Rlcl9fc29jaWFsIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gIC5mb290ZXIgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5tb24tZ3JpZCwgLnNpZ25wb3N0X19ncmlkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLm1vbi1ncmlkLCAuc2lnbnBvc3RfX2dyaWQge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtZ2FwOiAzMHB4O1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgMWZyKTsgfSB9XG4gIC5tb24tZ3JpZCA+ICosIC5zaWducG9zdF9fZ3JpZCA+ICoge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5tb24tZ3JpZCA+ICosIC5zaWducG9zdF9fZ3JpZCA+ICoge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm1vbi1ncmlkLS0yLCAuc2lnbnBvc3RfX2dyaWQtLWNvbC0yIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tb24tZ3JpZC0tMiwgLnNpZ25wb3N0X19ncmlkLS1jb2wtMiB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLWdhcDogMzBweDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOyB9IH1cbiAgICAgIC5tb24tZ3JpZC0tMiA+ICosIC5zaWducG9zdF9fZ3JpZC0tY29sLTIgPiAqIHtcbiAgICAgICAgZmxleC1iYXNpczogY2FsYyg1MCUgLSAxcmVtKTtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDUwJSAtIDFyZW0pOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAubW9uLWdyaWQtLTMsIC5tb24tZ3JpZC0tYXJjaGl2ZSwgLnNpZ25wb3N0X19ncmlkLS1jb2wtMyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubW9uLWdyaWQtLTMsIC5tb24tZ3JpZC0tYXJjaGl2ZSwgLnNpZ25wb3N0X19ncmlkLS1jb2wtMyB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLWdhcDogMzBweDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpOyB9IH1cbiAgICAgIC5tb24tZ3JpZC0tMyA+ICosIC5tb24tZ3JpZC0tYXJjaGl2ZSA+ICosIC5zaWducG9zdF9fZ3JpZC0tY29sLTMgPiAqIHtcbiAgICAgICAgZmxleC1iYXNpczogY2FsYygzMy4zMyUgLSAxcmVtKTtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDMzLjMzJSAtIDFyZW0pOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAubW9uLWdyaWQtLTQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1vbi1ncmlkLS00IHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGdyaWQtZ2FwOiAzMHB4O1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7IH0gfVxuICAgICAgLm1vbi1ncmlkLS00ID4gKiB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMjUlIC0gMXJlbSk7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygyNSUgLSAxcmVtKTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm1vbi1ncmlkLS10ZWFtIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tb24tZ3JpZC0tdGVhbSB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLWdhcDogMzBweDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOyB9IH1cbiAgICAgIC5tb24tZ3JpZC0tdGVhbSA+ICoge1xuICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDUwJSAtIDFyZW0pOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubW9uLWdyaWQtLXRlYW0ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1vbi1ncmlkLS10ZWFtIHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGdyaWQtZ2FwOiAzMHB4O1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7IH0gfVxuICAgICAgLm1vbi1ncmlkLS10ZWFtID4gKiB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMjUlIC0gMXJlbSk7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubWFpbi1jb250ZW50LS1jbGFzc2ljIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoOCAvIDEyICogMTAwJSk7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9IH1cblxuaHRtbCxcbmJvZHksXG4ub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgaGVpZ2h0OiAxMDAlOyB9XG5cbi5vZmYtY2FudmFzLXdyYXBwZXIge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50LFxuLnN0aWNreS1uYXYtcGFkZGluZyB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG5cbi5tYWluLWNvbnRhaW5lciB7XG4gIGZsZXg6IDEgMSBhdXRvOyB9XG5cbi5idXR0b24tLWxvYWRpbmc6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcbiAgYm9yZGVyOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3AtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYW5pbWF0aW9uOiBidXR0b24tbG9hZGluZy1zcGlubmVyIDFzIGVhc2UgaW5maW5pdGU7IH1cblxuLmJyZWFkY3J1bWJzIC5jdXJyZW50LWl0ZW0ge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uYnV0dG9uLCAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmssICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b24sIC5yZXBlYXRlci1sb2dvX19saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0NjA0NjtcbiAgYm9yZGVyLWNvbG9yOiAjMzQ2MDQ2O1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICBib3JkZXItd2lkdGg6IDJweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJHbGFjaWFsQm9sZFwiLCBcIkdsYWNpYWxSZWd1bGFyXCIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIlJvYm90b1wiLCBcIk94eWdlblwiLCBcIlVidW50dVwiLCBcIkNhbnRhcmVsbFwiLCBcIkZpcmEgU2Fuc1wiLCBcIkRyb2lkIFNhbnNcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE5cHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBwYWRkaW5nOiAwLjhyZW0gMnJlbSAxcmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogYXV0bzsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5idXR0b24sIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbiwgLnJlcGVhdGVyLWxvZ29fX2xpbmsge1xuICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAuYnV0dG9uOmhvdmVyLCAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbms6aG92ZXIsICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b246aG92ZXIsIC5yZXBlYXRlci1sb2dvX19saW5rOmhvdmVyLCAuYnV0dG9uOmFjdGl2ZSwgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOmFjdGl2ZSwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbjphY3RpdmUsIC5yZXBlYXRlci1sb2dvX19saW5rOmFjdGl2ZSwgLmJ1dHRvbjpmb2N1cywgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOmZvY3VzLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uOmZvY3VzLCAucmVwZWF0ZXItbG9nb19fbGluazpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICBib3JkZXItY29sb3I6ICMzNDYwNDY7XG4gICAgY29sb3I6ICMzYzNjM2I7IH1cbiAgLmJ1dHRvbi5wcmltYXJ5LCAud3AtYmxvY2stYnV0dG9uIC5wcmltYXJ5LndwLWJsb2NrLWJ1dHRvbl9fbGluaywgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLnByaW1hcnkuYnV0dG9uLCAucHJpbWFyeS5yZXBlYXRlci1sb2dvX19saW5rLCAuYnV0dG9uLS1wcmltYXJ5LCAudG9wLWJhcl9fYnV0dG9uLW9uZSwgLnJlcGVhdGVyLWxvZ29fX2xpbmssIC5wcmljaW5nLXRhYmxlX190YWJsZTpudGgtb2YtdHlwZShldmVuKSAucHJpY2luZy10YWJsZV9fYnV0dG9uIC5idXR0b24sIC5wcmljaW5nLXRhYmxlX190YWJsZTpudGgtb2YtdHlwZShldmVuKSAucHJpY2luZy10YWJsZV9fYnV0dG9uIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgLndwLWJsb2NrLWJ1dHRvbiAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLCAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAuYnV0dG9uLCAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAucmVwZWF0ZXItbG9nb19fbGluayB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMzQ2MDQ2O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwNDY7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLnByaW1hcnk6aG92ZXIsIC53cC1ibG9jay1idXR0b24gLnByaW1hcnkud3AtYmxvY2stYnV0dG9uX19saW5rOmhvdmVyLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAucHJpbWFyeS5idXR0b246aG92ZXIsIC5wcmltYXJ5LnJlcGVhdGVyLWxvZ29fX2xpbms6aG92ZXIsIC5idXR0b24ucHJpbWFyeTphY3RpdmUsIC53cC1ibG9jay1idXR0b24gLnByaW1hcnkud3AtYmxvY2stYnV0dG9uX19saW5rOmFjdGl2ZSwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLnByaW1hcnkuYnV0dG9uOmFjdGl2ZSwgLnByaW1hcnkucmVwZWF0ZXItbG9nb19fbGluazphY3RpdmUsIC5idXR0b24ucHJpbWFyeTpmb2N1cywgLndwLWJsb2NrLWJ1dHRvbiAucHJpbWFyeS53cC1ibG9jay1idXR0b25fX2xpbms6Zm9jdXMsICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5wcmltYXJ5LmJ1dHRvbjpmb2N1cywgLnByaW1hcnkucmVwZWF0ZXItbG9nb19fbGluazpmb2N1cywgLmJ1dHRvbi0tcHJpbWFyeTpob3ZlciwgLnRvcC1iYXJfX2J1dHRvbi1vbmU6aG92ZXIsIC5yZXBlYXRlci1sb2dvX19saW5rOmhvdmVyLCAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAuYnV0dG9uOmhvdmVyLCAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbms6aG92ZXIsIC53cC1ibG9jay1idXR0b24gLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1vZi10eXBlKGV2ZW4pIC5wcmljaW5nLXRhYmxlX19idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazpob3ZlciwgLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1vZi10eXBlKGV2ZW4pIC5wcmljaW5nLXRhYmxlX19idXR0b24gI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbjpob3ZlciwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1vZi10eXBlKGV2ZW4pIC5wcmljaW5nLXRhYmxlX19idXR0b24gLmJ1dHRvbjpob3ZlciwgLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1vZi10eXBlKGV2ZW4pIC5wcmljaW5nLXRhYmxlX19idXR0b24gLnJlcGVhdGVyLWxvZ29fX2xpbms6aG92ZXIsIC5idXR0b24tLXByaW1hcnk6YWN0aXZlLCAudG9wLWJhcl9fYnV0dG9uLW9uZTphY3RpdmUsIC5yZXBlYXRlci1sb2dvX19saW5rOmFjdGl2ZSwgLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1vZi10eXBlKGV2ZW4pIC5wcmljaW5nLXRhYmxlX19idXR0b24gLmJ1dHRvbjphY3RpdmUsIC5wcmljaW5nLXRhYmxlX190YWJsZTpudGgtb2YtdHlwZShldmVuKSAucHJpY2luZy10YWJsZV9fYnV0dG9uIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazphY3RpdmUsIC53cC1ibG9jay1idXR0b24gLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1vZi10eXBlKGV2ZW4pIC5wcmljaW5nLXRhYmxlX19idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazphY3RpdmUsIC5wcmljaW5nLXRhYmxlX190YWJsZTpudGgtb2YtdHlwZShldmVuKSAucHJpY2luZy10YWJsZV9fYnV0dG9uICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b246YWN0aXZlLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAuYnV0dG9uOmFjdGl2ZSwgLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1vZi10eXBlKGV2ZW4pIC5wcmljaW5nLXRhYmxlX19idXR0b24gLnJlcGVhdGVyLWxvZ29fX2xpbms6YWN0aXZlLCAuYnV0dG9uLS1wcmltYXJ5OmZvY3VzLCAudG9wLWJhcl9fYnV0dG9uLW9uZTpmb2N1cywgLnJlcGVhdGVyLWxvZ29fX2xpbms6Zm9jdXMsIC5wcmljaW5nLXRhYmxlX190YWJsZTpudGgtb2YtdHlwZShldmVuKSAucHJpY2luZy10YWJsZV9fYnV0dG9uIC5idXR0b246Zm9jdXMsIC5wcmljaW5nLXRhYmxlX190YWJsZTpudGgtb2YtdHlwZShldmVuKSAucHJpY2luZy10YWJsZV9fYnV0dG9uIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazpmb2N1cywgLndwLWJsb2NrLWJ1dHRvbiAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOmZvY3VzLCAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uOmZvY3VzLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAuYnV0dG9uOmZvY3VzLCAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAucmVwZWF0ZXItbG9nb19fbGluazpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIzZjJlO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMjIzZjJlO1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi0tb3V0bGluZS1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sb3I6ICMzNDYwNDY7XG4gICAgY29sb3I6ICMzNDYwNDY7IH1cbiAgICAuYnV0dG9uLS1vdXRsaW5lLXByaW1hcnk6aG92ZXIsIC5idXR0b24tLW91dGxpbmUtcHJpbWFyeTphY3RpdmUsIC5idXR0b24tLW91dGxpbmUtcHJpbWFyeTpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICMzNDYwNDY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ2MDQ2O1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi0tc2Vjb25kYXJ5LCAuYnV0dG9uLmNjLXNlbmQtbW9kYWwsIC53cC1ibG9jay1idXR0b24gLmNjLXNlbmQtbW9kYWwud3AtYmxvY2stYnV0dG9uX19saW5rLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuY2Mtc2VuZC1tb2RhbC5idXR0b24sIC5jYy1zZW5kLW1vZGFsLnJlcGVhdGVyLWxvZ29fX2xpbmssIC5idXR0b24uc2Vjb25kYXJ5LCAud3AtYmxvY2stYnV0dG9uIC5zZWNvbmRhcnkud3AtYmxvY2stYnV0dG9uX19saW5rLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuc2Vjb25kYXJ5LmJ1dHRvbiwgLnNlY29uZGFyeS5yZXBlYXRlci1sb2dvX19saW5rIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhlMjg3O1xuICAgIGJvcmRlci1jb2xvcjogI2Y4ZTI4NztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24tLXNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5jYy1zZW5kLW1vZGFsOmhvdmVyLCAud3AtYmxvY2stYnV0dG9uIC5jYy1zZW5kLW1vZGFsLndwLWJsb2NrLWJ1dHRvbl9fbGluazpob3ZlciwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmNjLXNlbmQtbW9kYWwuYnV0dG9uOmhvdmVyLCAuY2Mtc2VuZC1tb2RhbC5yZXBlYXRlci1sb2dvX19saW5rOmhvdmVyLCAuYnV0dG9uLS1zZWNvbmRhcnk6YWN0aXZlLCAuYnV0dG9uLmNjLXNlbmQtbW9kYWw6YWN0aXZlLCAud3AtYmxvY2stYnV0dG9uIC5jYy1zZW5kLW1vZGFsLndwLWJsb2NrLWJ1dHRvbl9fbGluazphY3RpdmUsICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5jYy1zZW5kLW1vZGFsLmJ1dHRvbjphY3RpdmUsIC5jYy1zZW5kLW1vZGFsLnJlcGVhdGVyLWxvZ29fX2xpbms6YWN0aXZlLCAuYnV0dG9uLS1zZWNvbmRhcnk6Zm9jdXMsIC5idXR0b24uY2Mtc2VuZC1tb2RhbDpmb2N1cywgLndwLWJsb2NrLWJ1dHRvbiAuY2Mtc2VuZC1tb2RhbC53cC1ibG9jay1idXR0b25fX2xpbms6Zm9jdXMsICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5jYy1zZW5kLW1vZGFsLmJ1dHRvbjpmb2N1cywgLmNjLXNlbmQtbW9kYWwucmVwZWF0ZXItbG9nb19fbGluazpmb2N1cywgLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsIC53cC1ibG9jay1idXR0b24gLnNlY29uZGFyeS53cC1ibG9jay1idXR0b25fX2xpbms6aG92ZXIsICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5zZWNvbmRhcnkuYnV0dG9uOmhvdmVyLCAuc2Vjb25kYXJ5LnJlcGVhdGVyLWxvZ29fX2xpbms6aG92ZXIsIC5idXR0b24uc2Vjb25kYXJ5OmFjdGl2ZSwgLndwLWJsb2NrLWJ1dHRvbiAuc2Vjb25kYXJ5LndwLWJsb2NrLWJ1dHRvbl9fbGluazphY3RpdmUsICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5zZWNvbmRhcnkuYnV0dG9uOmFjdGl2ZSwgLnNlY29uZGFyeS5yZXBlYXRlci1sb2dvX19saW5rOmFjdGl2ZSwgLmJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMsIC53cC1ibG9jay1idXR0b24gLnNlY29uZGFyeS53cC1ibG9jay1idXR0b25fX2xpbms6Zm9jdXMsICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5zZWNvbmRhcnkuYnV0dG9uOmZvY3VzLCAuc2Vjb25kYXJ5LnJlcGVhdGVyLWxvZ29fX2xpbms6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZDEzZjtcbiAgICAgIGJvcmRlci1jb2xvcjogI2Y0ZDEzZjtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24tLW91dGxpbmUtc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sb3I6ICNmOGUyODc7XG4gICAgY29sb3I6ICNmOGUyODc7IH1cbiAgICAuYnV0dG9uLS1vdXRsaW5lLXNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi0tb3V0bGluZS1zZWNvbmRhcnk6YWN0aXZlLCAuYnV0dG9uLS1vdXRsaW5lLXNlY29uZGFyeTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhlMjg3O1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZjhlMjg3O1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi0tb3V0bGluZS1hbGVydCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjY2M0YjM3O1xuICAgIGNvbG9yOiAjY2M0YjM3OyB9XG4gICAgLmJ1dHRvbi0tb3V0bGluZS1hbGVydDpob3ZlciwgLmJ1dHRvbi0tb3V0bGluZS1hbGVydDphY3RpdmUsIC5idXR0b24tLW91dGxpbmUtYWxlcnQ6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjNGIzNztcbiAgICAgIGJvcmRlci1jb2xvcjogI2NjNGIzNztcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24tLXdoaXRlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgIGNvbG9yOiAjM2MzYzNiOyB9XG4gICAgLmJ1dHRvbi0td2hpdGU6aG92ZXIsIC5idXR0b24tLXdoaXRlOmFjdGl2ZSwgLmJ1dHRvbi0td2hpdGU6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItY29sb3I6ICNmZWZlZmU7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLS1vdXRsaW5lLXdoaXRlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sb3I6ICNmZWZlZmU7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLS1vdXRsaW5lLXdoaXRlOmhvdmVyLCAuYnV0dG9uLS1vdXRsaW5lLXdoaXRlOmFjdGl2ZSwgLmJ1dHRvbi0tb3V0bGluZS13aGl0ZTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgICAgY29sb3I6ICMzYzNjM2I7IH1cbiAgLmJ1dHRvbi0tc21hbGwsIC5jYy1kYXNoYm9hcmRfX2NvbnRlbnQgdGFibGUgLmJ1dHRvbiwgLmNjLWRhc2hib2FyZF9fY29udGVudCB0YWJsZSAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53cC1ibG9jay1idXR0b24gLmNjLWRhc2hib2FyZF9fY29udGVudCB0YWJsZSAud3AtYmxvY2stYnV0dG9uX19saW5rLCAuY2MtZGFzaGJvYXJkX19jb250ZW50IHRhYmxlICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b24sICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5jYy1kYXNoYm9hcmRfX2NvbnRlbnQgdGFibGUgLmJ1dHRvbiwgLmNjLWRhc2hib2FyZF9fY29udGVudCB0YWJsZSAucmVwZWF0ZXItbG9nb19fbGluayB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHBhZGRpbmctdG9wOiAwLjhyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuOHJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICBtaW4taGVpZ2h0OiAxLjg3NXJlbTsgfVxuICAuYnV0dG9uLmNjLWNhbmNlbCwgLndwLWJsb2NrLWJ1dHRvbiAuY2MtY2FuY2VsLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmNjLWNhbmNlbC5idXR0b24sIC5jYy1jYW5jZWwucmVwZWF0ZXItbG9nb19fbGluayB7XG4gICAgYm9yZGVyLWNvbG9yOiAjY2M0YjM3O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRiMzc7IH1cbiAgICAuYnV0dG9uLmNjLWNhbmNlbDpob3ZlciwgLndwLWJsb2NrLWJ1dHRvbiAuY2MtY2FuY2VsLndwLWJsb2NrLWJ1dHRvbl9fbGluazpob3ZlciwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmNjLWNhbmNlbC5idXR0b246aG92ZXIsIC5jYy1jYW5jZWwucmVwZWF0ZXItbG9nb19fbGluazpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDE1ZDRiO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZDE1ZDRiOyB9XG4gIC5idXR0b24tLWxvYWRpbmcgLmJ1dHRvbl9fdGV4dCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmJ1dHRvbi0tbG9hZGluZzo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGJvcmRlcjogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNmZmZmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGFuaW1hdGlvbjogYnV0dG9uLWxvYWRpbmctc3Bpbm5lciAxcyBlYXNlIGluZmluaXRlOyB9XG5cbkBrZXlmcmFtZXMgYnV0dG9uLWxvYWRpbmctc3Bpbm5lciB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDB0dXJuKTsgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pOyB9IH1cblxuLmNhbGxvdXQgKiB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cblxuLmNhbGxvdXQgaDUsIC5jYWxsb3V0IC5oNSB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmNhbGxvdXQgaDUgc3ZnLCAuY2FsbG91dCAuaDUgc3ZnIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMzMzMzNyZW07IH1cblxuLmNhbGxvdXQgLmNsb3NlLWJ1dHRvbiB7XG4gIGNvbG9yOiAjZjhlMjg3OyB9XG5cbi5jYXJkIHtcbiAgYm9yZGVyLXJhZGl1czogY2FsYyg1MHB4IC8gNCk7XG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgxMDAsIDQ3LCA0NywgMC4xNSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7IH1cbiAgLmNhcmQ6aG92ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLmNhcmRfX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctdG9wOiA1Ni4yNSU7IH1cbiAgLmNhcmRfX2ltYWdlLFxuICAuY2FyZCBwaWN0dXJlIHtcbiAgICBib3R0b206IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY2FyZF9fY29udGVudCB7XG4gICAgY29sb3I6ICMzYzNjM2I7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDJyZW07IH1cbiAgICAuY2FyZF9fY29udGVudCBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gICAgLmNhcmRfX2NvbnRlbnQgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY2FyZF9fdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgLmNhcmRfX2V4Y2VycHQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNhcmRfX2NhdGVnb3J5IHtcbiAgICBjb2xvcjogIzhhOGE4YTsgfVxuICAuY2FyZF9fbG9jYXRpb24sIC5jYXJkX19zcGVjaWFsaXNtIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNhcmRfX2Zvb3RlciB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAwIGF1dG87XG4gICAgcGFkZGluZzogMnJlbTsgfVxuXG4uY2FyZC0tZXZlbnRfX2V2ZW50LXZlbnVlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmNhcmQtLWV2ZW50X19ldmVudC1kYXRlIHtcbiAgY29sb3I6ICM0ZTRlNGU7IH1cblxuLmNhcmQtLXJlc291cmNlIHtcbiAgcGFkZGluZzogMXJlbTsgfVxuICAuY2FyZC0tcmVzb3VyY2VfX2hlYWRpbmcge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAuY2FyZC0tcmVzb3VyY2VfX2ljb24ge1xuICAgIGZsZXg6IDAgMCAxMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmNhcmQtLXJlc291cmNlX19pY29uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDNyZW07IH0gfVxuICAuY2FyZC0tcmVzb3VyY2VfX3RpdGxlIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW46IDA7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlOyB9XG5cbi5jYXJkLS1ub3RlIC5jYXJkX19mb290ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy10b3A6IDA7IH1cbiAgLmNhcmQtLW5vdGUgLmNhcmRfX2Zvb3RlciBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuLmRvdHRlZCB7XG4gIGJvcmRlci1zdHlsZTogZGFzaGVkO1xuICBtYXJnaW46IDJyZW0gMDsgfVxuXG4uYmxvY2stLWZlYXR1cmVkIHtcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nLXRvcDogNTYlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmJsb2NrLS1mZWF0dXJlZCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogY2FsYyg4IC8gMTIgKiAxMDAlKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYmxvY2stLWZlYXR1cmVkIHtcbiAgICAgIHBhZGRpbmctdG9wOiAzNiU7IH0gfVxuICAuYmxvY2stLWZlYXR1cmVkIGltZyB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLnNvY2lhbC1saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMnJlbTtcbiAgbWFyZ2luOiAwIDAuMTg3NXJlbSAwIDAuMTg3NXJlbTtcbiAgcGFkZGluZzogMC4zNzVyZW0gMCAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2Utb3V0O1xuICB3aWR0aDogMnJlbTsgfVxuICAuc29jaWFsLWxpbms6aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuODsgfVxuICAuc29jaWFsLWxpbmsgLmljb24tbGlua2VkaW4ge1xuICAgIG1hcmdpbi10b3A6IC0xcHg7IH1cblxuLnN2Zy1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDFyZW07XG4gIHRyYW5zaXRpb246IGZpbGwgMC4ycyBlYXNlLW91dDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgd2lkdGg6IDFyZW07XG4gIHN0cm9rZS13aWR0aDogMDtcbiAgc3Ryb2tlOiAjMzQ2MDQ2O1xuICBmaWxsOiAjMzQ2MDQ2OyB9XG4gIC5zdmctaWNvbi0tc29jaWFsIHtcbiAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgIHN0cm9rZTogIzM0NjA0NjtcbiAgICBmaWxsOiAjMzQ2MDQ2OyB9XG5cbi5jYy1mb3JtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgYm9yZGVyLXJhZGl1czogY2FsYyg1MHB4IC8gNCk7XG4gIHBhZGRpbmc6IDJyZW07IH1cbiAgLmNjLWZvcm1fX2dyaWQge1xuICAgIGFsaWduLWl0ZW1zOiBlbmQ7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWdhcDogMXJlbTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOyB9XG4gICAgLmNjLWZvcm1fX2dyaWQtLTQge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTsgfVxuICAuY2MtZm9ybSBpbnB1dCxcbiAgLmNjLWZvcm0gYnV0dG9uLFxuICAuY2MtZm9ybSBzZWxlY3Qge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgaGVpZ2h0OiA1MHB4OyB9XG4gIC5jYy1mb3JtIGJ1dHRvbiB7XG4gICAganVzdGlmeS1zZWxmOiBzdGFydDsgfVxuXG4udXNlci1kZWxldGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3O1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMXJlbTsgfVxuXG4uY2Mtbm90aWZpY2F0aW9uLS1pcy1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2O1xuICBmb250LXNpemU6IDE4cHg7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmc6IDFyZW07IH1cblxuW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gYTpmb2N1cyxcbmJ1dHRvbjpmb2N1cyBbZGF0YS13aGF0aW5wdXQ9XCJ0b3VjaFwiXSBhOmZvY3VzLFxuYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4ubGluay1pbmxpbmUsICNjb29raWUtbGF3LWluZm8tYmFyICNDT05TVEFOVF9PUEVOX1VSTCxcbiNjb29raWUtbGF3LWluZm8tYmFyIC5jbGlfc2V0dGluZ3NfYnV0dG9uIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMzNDYwNDY7XG4gIGNvbG9yOiAjMzQ2MDQ2O1xuICBmb250LXdlaWdodDogNjAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSAwLjJzIGVhc2UtaW47IH1cbiAgLmxpbmstaW5saW5lOmhvdmVyLCAjY29va2llLWxhdy1pbmZvLWJhciAjQ09OU1RBTlRfT1BFTl9VUkw6aG92ZXIsXG4gICNjb29raWUtbGF3LWluZm8tYmFyIC5jbGlfc2V0dGluZ3NfYnV0dG9uOmhvdmVyIHtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgcmdiYSg1MiwgOTYsIDcwLCAwKTsgfVxuICAubGluay1pbmxpbmUtLXNlY29uZGFyeSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNmOGUyODc7XG4gICAgY29sb3I6ICNmOGUyODc7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSAwLjJzIGVhc2UtaW47IH1cbiAgICAubGluay1pbmxpbmUtLXNlY29uZGFyeTpob3ZlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgcmdiYSgyNDgsIDIyNiwgMTM1LCAwKTtcbiAgICAgIGNvbG9yOiAjZjhlMjg3OyB9XG5cbi5za2lwLXRvLWNvbnRlbnQtbGluayB7XG4gIGJhY2tncm91bmQ6ICMzNDYwNDY7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICBoZWlnaHQ6IDQwcHg7XG4gIGxlZnQ6IDEwcHg7XG4gIHBhZGRpbmc6IDhweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDQwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNraXAtdG8tY29udGVudC1saW5rIHtcbiAgICAgIHRvcDogMDsgfSB9XG4gIC5za2lwLXRvLWNvbnRlbnQtbGluazpmb2N1cyB7XG4gICAgY29sb3I6ICNmZWZlZmU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgICB6LWluZGV4OiAyOyB9XG5cbnAgYSB7XG4gIGZvbnQtZmFtaWx5OiBcIkdsYWNpYWxCb2xkXCIsIFwiR2xhY2lhbFJlZ3VsYXJcIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiT3h5Z2VuXCIsIFwiVWJ1bnR1XCIsIFwiQ2FudGFyZWxsXCIsIFwiRmlyYSBTYW5zXCIsIFwiRHJvaWQgU2Fuc1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7IH1cblxuLmxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5saXN0IHtcbiAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICBjb2x1bW4tZmlsbDogYmFsYW5jZTtcbiAgICAgIGNvbHVtbi1nYXA6IDJyZW07XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH0gfVxuICAubGlzdCBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC44MzMzM3JlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5saXN0LS10d28ge1xuICAgICAgY29sdW1uczogMjsgfSB9XG4gIC5saXN0LS1kb3dubG9hZCBsaSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmxpc3QtLWRvd25sb2FkIGxpOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBhdXRvO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZG93bmxvYWQtaWNvbi5zdmdcIik7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgIHdpZHRoOiAyMHB4OyB9XG4gIC5saXN0LS10aWNrIGxpIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAubGlzdC0tdGljayBsaTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0bztcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3RpY2suc3ZnXCIpO1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgd2lkdGg6IDIwcHg7IH1cbiAgLmxpc3QtLXN0eWxlZC1idWxsZXQgbGkge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzsgfVxuICAgIC5saXN0LS1zdHlsZWQtYnVsbGV0IGxpOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NjA0NjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjU3MTQzcmVtO1xuICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICBmbGV4OiAwIDAgMTBweDsgfVxuXG4ucGFnaW5hdGlvbiwgdWwucGFnZS1udW1iZXJzIHtcbiAgbWFyZ2luLXRvcDogMnJlbTsgfVxuICAucGFnaW5hdGlvbiBhLCB1bC5wYWdlLW51bWJlcnMgYSB7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC40cyBlYXNlOyB9XG4gICAgLnBhZ2luYXRpb24gYTpob3ZlciwgdWwucGFnZS1udW1iZXJzIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNmOGUyODc7IH1cbiAgLnBhZ2luYXRpb24gLnByZXYsIHVsLnBhZ2UtbnVtYmVycyAucHJldixcbiAgLnBhZ2luYXRpb24gLm5leHQsXG4gIHVsLnBhZ2UtbnVtYmVycyAubmV4dCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NjA0NjtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgZm9udC1zaXplOiAzMHB4OyB9XG4gIC5wYWdpbmF0aW9uIC5jdXJyZW50LCB1bC5wYWdlLW51bWJlcnMgLmN1cnJlbnQge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjhlMjg3OyB9XG5cbi5yZXZlYWwge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmVmZWZlOyB9XG5cbiNzZWFyY2hmb3JtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM4YThhOGE7XG4gIGxlZnQ6IDA7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xNTBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDI7IH1cbiAgI3NlYXJjaGZvcm06Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAge1xuICAgIG1hcmdpbjogMDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoNSAvIDEyICogMTAwJSk7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9IH1cbiAgICAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNGU0ZTRlO1xuICAgICAgY29sb3I6ICMzYzNjM2I7IH1cbiAgICAgICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtZmllbGQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6ICM4YThhOGE7IH1cbiAgICAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53cC1ibG9jay1idXR0b24gI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbiwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLnJlcGVhdGVyLWxvZ29fX2xpbmsge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIG1pbi13aWR0aDogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMnJlbTsgfVxuICAjc2VhcmNoZm9ybS5pcy1hY3RpdmUge1xuICAgIHRvcDogNDhweDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAjc2VhcmNoZm9ybS5pcy1hY3RpdmUge1xuICAgICAgICB0b3A6IDcycHg7IH0gfVxuICAjc2VhcmNoZm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10ge1xuICAgIGhlaWdodDogMy4ycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyOyB9XG4gICAgI3NlYXJjaGZvcm0gaW5wdXRbdHlwZT0ndGV4dCddOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLnNlYXJjaC1zbmlwcGV0IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0ZTRlNGU7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gIC5zZWFyY2gtc25pcHBldDpsYXN0LW9mLXR5cGUge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAuc2VhcmNoLXNuaXBwZXRfX2xhYmVsIHtcbiAgICBmb250LXNpemU6IDE0cHg7IH1cbiAgLnNlYXJjaC1zbmlwcGV0X190aXRsZSB7XG4gICAgbWFyZ2luOiAxcmVtIDA7IH1cbiAgLnNlYXJjaC1zbmlwcGV0X190aXRsZS1saW5rIHtcbiAgICBjb2xvcjogIzNjM2MzYjtcbiAgICB0cmFuc2l0aW9uOiAuMnMgbGluZWFyIGNvbG9yOyB9XG4gICAgLnNlYXJjaC1zbmlwcGV0X190aXRsZS1saW5rOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjMzQ2MDQ2OyB9XG5cbi5zaXRlLXRpdGxlLWJhciB7XG4gIHBhZGRpbmc6IDAuMzEyNXJlbSAxcmVtOyB9XG5cbi53aWRnZXQge1xuICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG5cbi53aWRnZXQtdGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmFyY2hpdmVfX3RheG9ub215LWZpbHRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5hcmNoaXZlX190YXhvbm9teS1maWx0ZXIge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7IH0gfVxuICAuYXJjaGl2ZV9fdGF4b25vbXktZmlsdGVyICNkeW5hbWljX3NlYXJjaGZvcm0ge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5hcmNoaXZlX190YXhvbm9teS1maWx0ZXIgI2R5bmFtaWNfc2VhcmNoZm9ybSB7XG4gICAgICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgMXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuYXJjaGl2ZV9fdGF4b25vbXktZmlsdGVyICNkeW5hbWljX3NlYXJjaGZvcm0ge1xuICAgICAgICBmbGV4OiAwIDAgMzUlO1xuICAgICAgICBtYXgtd2lkdGg6IDM1JTsgfSB9XG4gIC5hcmNoaXZlX190YXhvbm9teS1maWx0ZXIgLmR5bmFtaWMtdGF4b25vbXktZmlsdGVyIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuYXJjaGl2ZV9fdGF4b25vbXktZmlsdGVyIC5keW5hbWljLXRheG9ub215LWZpbHRlciB7XG4gICAgICAgIGZsZXg6IDAgMCAzMCU7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgMXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiAzMCU7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuYXJjaGl2ZV9fdGF4b25vbXktZmlsdGVyIC5keW5hbWljLXRheG9ub215LWZpbHRlciB7XG4gICAgICAgIGZsZXg6IDAgMCAyMCU7XG4gICAgICAgIG1heC13aWR0aDogMjAlOyB9IH1cbiAgLmFyY2hpdmVfX3RheG9ub215LWZpbHRlciBzZWxlY3QsXG4gIC5hcmNoaXZlX190YXhvbm9teS1maWx0ZXIgaW5wdXQge1xuICAgIGhlaWdodDogNTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5hcmNoaXZlX190YXhvbm9teS1maWx0ZXIgc2VsZWN0IHtcbiAgICBwYWRkaW5nOiAwIDJyZW0gMCAxLjI1cmVtOyB9XG5cbi5uZXctbm90ZS1jb250YWluZXIge1xuICBib3JkZXItcmFkaXVzOiBjYWxjKDUwcHggLyA0KTtcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDEwMCwgNDcsIDQ3LCAwLjE1KTtcbiAgcGFkZGluZzogMnJlbTsgfVxuICAubmV3LW5vdGUtY29udGFpbmVyIGZvcm0gbGFiZWwge1xuICAgIGZvbnQtZmFtaWx5OiBcIkdsYWNpYWxCb2xkXCIsIFwiR2xhY2lhbFJlZ3VsYXJcIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiT3h5Z2VuXCIsIFwiVWJ1bnR1XCIsIFwiQ2FudGFyZWxsXCIsIFwiRmlyYSBTYW5zXCIsIFwiRHJvaWQgU2Fuc1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuICAubmV3LW5vdGUtY29udGFpbmVyIGZvcm0gLmNoZWNrYm94ZXMsXG4gIC5uZXctbm90ZS1jb250YWluZXIgZm9ybSAucmFkaW8tYnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubmV3LW5vdGUtY29udGFpbmVyIGZvcm0gLmNoZWNrYm94ZXMgbGFiZWwsXG4gICAgLm5ldy1ub3RlLWNvbnRhaW5lciBmb3JtIC5yYWRpby1idXR0b25zIGxhYmVsIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkdsYWNpYWxSZWd1bGFyXCIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIlJvYm90b1wiLCBcIk94eWdlblwiLCBcIlVidW50dVwiLCBcIkNhbnRhcmVsbFwiLCBcIkZpcmEgU2Fuc1wiLCBcIkRyb2lkIFNhbnNcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAxNnB4OyB9XG4gIC5uZXctbm90ZS1jb250YWluZXIgZm9ybSAuZm9ybS1ncm91cC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICBncmlkLWdhcDogMXJlbTsgfVxuICAubmV3LW5vdGUtY29udGFpbmVyIGZvcm0gLmZvcm0tZ3JvdXAtLXJhYmlfbm90ZV9yZWFzb25zIHtcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xOyB9XG4gIC5uZXctbm90ZS1jb250YWluZXIgZm9ybSAuZm9ybS1ncm91cC0tcmFiaV9ub3RlX2FnZV9ncm91cCwgLm5ldy1ub3RlLWNvbnRhaW5lciBmb3JtIC5mb3JtLWdyb3VwLS1yYWJpX25vdGVfZ2VuZGVyLCAubmV3LW5vdGUtY29udGFpbmVyIGZvcm0gLmZvcm0tZ3JvdXAtLXJhYmlfbm90ZV9sb2NhdGlvbiB7XG4gICAgZ3JpZC1yb3c6IDE7IH1cbiAgLm5ldy1ub3RlLWNvbnRhaW5lciBmb3JtIC5mb3JtLWdyb3VwLS1yYWJpX25vdGVfdHlwZV9vZl9mYXJtaW5nX3BlcnNvbiB7XG4gICAgZ3JpZC1yb3c6IDI7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDI7IH1cbiAgLm5ldy1ub3RlLWNvbnRhaW5lciBmb3JtIC5mb3JtLWdyb3VwLS1yYWJpX25vdGVfdHlwZV9vZl9mYXJtaW5nIHtcbiAgICBncmlkLXJvdzogMjtcbiAgICBncmlkLWNvbHVtbjogMyAvIC0xOyB9XG4gIC5uZXctbm90ZS1jb250YWluZXIgZm9ybSAuZm9ybS1ncm91cC0tcmFiaV9ub3RlX3R5cGVfb2ZfY291bnNlbGxpbmcge1xuICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7IH1cbiAgLm5ldy1ub3RlLWNvbnRhaW5lciBmb3JtIC5mb3JtLWdyb3VwLS1ub3RlIHtcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xOyB9XG4gIC5uZXctbm90ZS1jb250YWluZXIgZm9ybSAuZm9vdGVyIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtOyB9XG5cbi5zaW5nbGUtbm90ZV9fYnV0dG9uLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAycmVtIDA7IH1cbiAgLnNpbmdsZS1ub3RlX19idXR0b24tZ3JvdXAgPiAqIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsgfVxuXG4uZXZlbnQtcGFuZWwge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBwYWRkaW5nOiAycmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ldmVudC1wYW5lbCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIGdyaWQtZ2FwOiAxcmVtOyB9IH1cblxuLmV2ZW50LXBhbmVsX19saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuXG4uZXZlbnQtcGFuZWxfX2xpc3QtaXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG4uZXZlbnQtcGFuZWxfX3N1YmhlYWRpbmcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmV2ZW50LXBhbmVsX19kZXRhaWxzIHtcbiAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDE7IH1cblxuLmV2ZW50LXBhbmVsX192ZW51ZSB7XG4gIGdyaWQtY29sdW1uOiAyIC8gc3BhbiAxOyB9XG5cbi5ldmVudC1wYW5lbF9fb3JnYW5pc2VyIHtcbiAgZ3JpZC1jb2x1bW46IDMgLyBzcGFuIDE7IH1cblxuLmV2ZW50LXBhbmVsX19tYXAge1xuICBncmlkLXJvdzogMjtcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTsgfVxuXG4uZXZlbnQtbWFwLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy10b3A6IDU2LjI1JTsgfVxuXG4uZXZlbnQtbWFwLWNvbnRhaW5lciBpZnJhbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyOiAwOyB9XG5cbi5zaW5nbGUtdGVhbV9faGVhZGVyIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgcGFkZGluZzogMCAxcmVtOyB9XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5zaW5nbGUtdGVhbV9faGVhZGVyIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXJvdy1nYXA6IDFyZW07XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFyZW0gcmVwZWF0KDEyLCAxZnIpIDFyZW07XG4gICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IG1pbi1jb250ZW50IGF1dG8gMWZyO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAgIC5zaW5nbGUtdGVhbV9faGVhZGVyIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGNhbGMoICggMTAwdncgLSA3M3JlbSApIC8gMikgcmVwZWF0KDEyLCAxZnIpIGNhbGMoICggMTAwdncgLSA3M3JlbSApIC8gMik7IH0gfSB9XG4gIC5zaW5nbGUtdGVhbV9faGVhZGVyLnZlcnRpY2FsIC5zaW5nbGUtdGVhbV9fdGl0bGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwNDY7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5zaW5nbGUtdGVhbV9faGVhZGVyLnZlcnRpY2FsIC5zaW5nbGUtdGVhbV9faW1hZ2Uge1xuICAgIGdyaWQtcm93OiAyIC8gMzsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuc2luZ2xlLXRlYW1fX2hlYWRlci52ZXJ0aWNhbCAuc2luZ2xlLXRlYW1fX2ltYWdlIHtcbiAgICAgICAgZ3JpZC1yb3c6IDIgLyAtMTsgfSB9XG5cbi5zaW5nbGUtdGVhbV9fdGl0bGUge1xuICBncmlkLWNvbHVtbjogMiAvIHNwYW4gNjtcbiAgZ3JpZC1yb3c6IDE7IH1cblxuLnNpbmdsZS10ZWFtX19kZXRhaWxzIHtcbiAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDY7XG4gIGdyaWQtcm93OiAyO1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG5cbi5zaW5nbGUtdGVhbV9faW1hZ2Uge1xuICBncmlkLWNvbHVtbjogOCAvIHNwYW4gNjtcbiAgZ3JpZC1yb3c6IDEgLyAzO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNpbmdsZS10ZWFtX19pbWFnZSB7XG4gICAgICBncmlkLXJvdzogMSAvIC0xOyB9IH1cblxuLnNpbmdsZS10ZWFtX19leGNlcnB0IHtcbiAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDEyO1xuICBncmlkLXJvdzogMztcbiAgcGFkZGluZy1yaWdodDogMXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5zaW5nbGUtdGVhbV9fZXhjZXJwdCB7XG4gICAgICBncmlkLWNvbHVtbjogMiAvIHNwYW4gNjsgfSB9XG5cbi5zaXRlLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTZlNmU2O1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYWxsIGxpbmVhciAwLjNzO1xuICB3aWR0aDogMTAwJTsgfVxuICAuc2l0ZS1oZWFkZXItLWZpeGVkIHtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogOTk7IH1cbiAgLnNpdGUtaGVhZGVyLS1zY3JvbGxlZCB7XG4gICAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDEwMCwgNDcsIDQ3LCAwLjE1KTsgfVxuXG5ib2R5LmFkbWluLWJhciAuc2l0ZS1oZWFkZXItLWZpeGVkIHtcbiAgdG9wOiA0NnB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgYm9keS5hZG1pbi1iYXIgLnNpdGUtaGVhZGVyLS1maXhlZCB7XG4gICAgICB0b3A6IDMycHg7IH0gfVxuXG4udG9wLWJhciB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IGF1dG87XG4gIG1heC13aWR0aDogNzVyZW07XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC50b3AtYmFyIHtcbiAgICAgIHBhZGRpbmc6IDAgMXJlbTsgfSB9XG4gIC50b3AtYmFyX19sZWZ0IHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAudG9wLWJhcl9fcmlnaHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAwIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgLnRvcC1iYXJfX2xvZ28ge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAyMDBweDsgfVxuICAudG9wLWJhcl9fZWxlbWVudHMge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgcGFkZGluZzogMCAxcmVtOyB9XG4gICAgLnRvcC1iYXJfX2VsZW1lbnRzLnJpZ2h0IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgLnRvcC1iYXJfX2VsZW1lbnRzLmp1c3RpZmllZCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLnRvcC1iYXJfX2Rlc2t0b3AtcGhvbmUge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBvcmRlcjogMTsgfVxuICAudG9wLWJhcl9fZGVza3RvcC1tZW51IHtcbiAgICBvcmRlcjogMjsgfVxuICAudG9wLWJhcl9fc2VhcmNoLWljb24ge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBvcmRlcjogMztcbiAgICBwYWRkaW5nOiAwLjVyZW07IH1cbiAgLnRvcC1iYXJfX2J1dHRvbnMge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAudG9wLWJhcl9fYnV0dG9ucyB7XG4gICAgICAgIG1hcmdpbjogMCAtMXJlbSAwIDA7IH0gfVxuICAgIC50b3AtYmFyX19idXR0b25zIC5idXR0b24sIC50b3AtYmFyX19idXR0b25zIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgLndwLWJsb2NrLWJ1dHRvbiAudG9wLWJhcl9fYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uX19saW5rLCAudG9wLWJhcl9fYnV0dG9ucyAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAudG9wLWJhcl9fYnV0dG9ucyAuYnV0dG9uLCAudG9wLWJhcl9fYnV0dG9ucyAucmVwZWF0ZXItbG9nb19fbGluayB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbWFyZ2luOiAwIDFyZW0gMCAwOyB9XG4gIC50b3AtYmFyX19idXR0b24tb25lIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTsgfVxuXG4uc2l0ZS1uYXZpZ2F0aW9uX19idXR0b24ge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IDNyZW07XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogM3JlbTsgfVxuICAuc2l0ZS1uYXZpZ2F0aW9uX19idXR0b24tbGFiZWwge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICNmOGUyODc7XG4gICAgZm9udC1zaXplOiAwLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDAuNXJlbTsgfVxuICAuc2l0ZS1uYXZpZ2F0aW9uX19idXR0b24tLXBob25lIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuc2l0ZS1uYXZpZ2F0aW9uX19idXR0b24tLXBob25lOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICBtYXJnaW46IDAgYXV0byAwLjMxMjVyZW07XG4gICAgICB3aWR0aDogMXJlbTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9waG9uZS5zdmdcIik7IH1cblxuLmhlYWRlci1sb2dpbi1saW5rIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6ICMzNDYwNDY7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICBwYWRkaW5nOiAwIDAuNjY2NjdyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi8qXHJcblx0SGFtYnVyZ2VyIFN0eWxlcyB3aXRoIGFuaW1hdGVkIGxpbmVzLiBfaGFtYnVyZ2VyLnNjc3NcclxuXHQqL1xuLmhhbWJ1cmdlciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGhlaWdodDogYXV0bztcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgd2lkdGg6IGF1dG87XG4gIHotaW5kZXg6IDk7IH1cbiAgLmhhbWJ1cmdlciAubGluZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZTI4NztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDNweDtcbiAgICBtYXJnaW46IDNweCAwO1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIHotaW5kZXg6IDI7IH1cblxuLm1vYmlsZS1oYW1idXJnZXIge1xuICBwYWRkaW5nOiAxcmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5vZmYtY2FudmFzLXdyYXBwZXIge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlOyB9IH1cblxuLm9mZi1jYW52YXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhlMjg3O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdy14OiBoaWRkZW47IH1cbiAgLm9mZi1jYW52YXNfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHBhZGRpbmc6IDFyZW0gMXJlbSAzcmVtOyB9XG4gIC5vZmYtY2FudmFzX19mb290ZXIge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHBhZGRpbmc6IDAgMXJlbSA0cmVtOyB9XG4gICAgLm9mZi1jYW52YXNfX2Zvb3RlciAucGhvbmUtbnVtYmVyIHtcbiAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgZm9udC1mYW1pbHk6IFwiR2xhY2lhbEJvbGRcIiwgXCJHbGFjaWFsUmVndWxhclwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJGaXJhIFNhbnNcIiwgXCJEcm9pZCBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjsgfVxuICAub2ZmLWNhbnZhc19fcGhvbmUtbnVtYmVyIHtcbiAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5vZmYtY2FudmFzX19idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNSk7IH1cblxuLypcclxuXHROYXZpZ2F0aW9uIHN0eWxlcyBmb3IgZHJvcGRvd24gJiBtZWdhIG1lbnUgdmFyaWF0aW9uXHJcblx0Ki9cbi5kcm9wZG93biB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTk4NzVlbSkge1xuICAgIC5kcm9wZG93biB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuICAuZHJvcGRvd24gbGkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuZHJvcGRvd24gbGkgPiBhIHtcbiAgICAgIGNvbG9yOiAjM2MzYzNiO1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgcGFkZGluZzogMS41cmVtIDFyZW07IH1cbiAgICAgIC5kcm9wZG93biBsaSA+IGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzM0NjA0NjsgfVxuICAgIC5kcm9wZG93biBsaTpob3ZlciB1bCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLmRyb3Bkb3duIGxpOmhvdmVyIHVsIHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkOyB9IH1cbiAgICAuZHJvcGRvd24gbGkuY3VycmVudC1tZW51LWl0ZW0gPiBhLCAuZHJvcGRvd24gbGkuY3VycmVudC1wYWdlLXBhcmVudCA+IGEge1xuICAgICAgY29sb3I6ICMzNDYwNDY7IH1cbiAgICAuZHJvcGRvd24gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07IH1cbiAgICAgIC5kcm9wZG93biBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAycHggMnB4IDAgMDtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMXJlbTtcbiAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDVweCk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIHdpZHRoOiA4cHg7IH1cbiAgLmRyb3Bkb3duIHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgZWFzZS1vdXQgMC4ycztcbiAgICB3aWR0aDogMTcuNXJlbTtcbiAgICB6LWluZGV4OiAyOyB9XG4gICAgLmRyb3Bkb3duIHVsIGxpIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuZHJvcGRvd24gdWwgbGkgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTsgfVxuICAgIC5kcm9wZG93biB1bC5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmRyb3Bkb3duLm1lZ2EtbWVudSBsaSB7XG4gICAgcG9zaXRpb246IHN0YXRpYzsgfVxuICAuZHJvcGRvd24ubWVnYS1tZW51IHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE0cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAxMDAlO1xuICAgIHdpZHRoOiA3NXJlbTtcbiAgICBncmlkLWdhcDogMXJlbTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuICAgIHotaW5kZXg6IDEwOyB9XG4gICAgLmRyb3Bkb3duLm1lZ2EtbWVudSB1bCBsaSB7XG4gICAgICBmbGV4OiAwIDAgMzMuMzMlOyB9XG4gICAgICAuZHJvcGRvd24ubWVnYS1tZW51IHVsIGxpIGEge1xuICAgICAgICBjb2xvcjogIzM0NjA0NjsgfVxuICAgICAgICAuZHJvcGRvd24ubWVnYS1tZW51IHVsIGxpIGE6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAjM2MzYzNiOyB9XG4gICAgICAuZHJvcGRvd24ubWVnYS1tZW51IHVsIGxpIC5tZW51LWRlc2NyaXB0aW9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAgMXJlbSAwLjVyZW0gMXJlbTsgfVxuICAuZHJvcGRvd24udW5kZXJsaW5lZC1saW5rcyA+IGxpIHtcbiAgICBtYXJnaW46IDAgMXJlbTsgfVxuICAgIC5kcm9wZG93bi51bmRlcmxpbmVkLWxpbmtzID4gbGkgPiBhIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAgIC5kcm9wZG93bi51bmRlcmxpbmVkLWxpbmtzID4gbGkgPiBhOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzM0NjA0NjsgfVxuICAgIC5kcm9wZG93bi51bmRlcmxpbmVkLWxpbmtzID4gbGkuY3VycmVudC1tZW51LWl0ZW0gPiBhLCAuZHJvcGRvd24udW5kZXJsaW5lZC1saW5rcyA+IGxpLmN1cnJlbnQtcGFnZS1wYXJlbnQgPiBhIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICMzNDYwNDY7IH1cblxuLypcclxuXHROYXZpZ2F0aW9uIHN0eWxlcyBmb3IgYWNjb3JkaW9uIG1lbnVcclxuXHQqL1xuLm1vYmlsZS1tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgbGVmdDogMDtcbiAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtIDYwcHgpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubW9iaWxlLW1lbnUge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgLm1vYmlsZS1tZW51LmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1vYmlsZS1tZW51IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAubW9iaWxlLW1lbnUgbGkgYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTY7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDAuN3JlbSAxcmVtO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1vYmlsZS1tZW51IHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubW9iaWxlLW1lbnUgLnN1Ym1lbnUtdG9nZ2xlIHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlNmU2ZTY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiA0MHB4OyB9XG4gIC5tb2JpbGUtbWVudSAuc3VibWVudS10b2dnbGUtdGV4dCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHdpZHRoOiAxcHg7IH1cbiAgLm1vYmlsZS1tZW51IC5zdWJtZW51LXRvZ2dsZTphZnRlciB7XG4gICAgY29sb3I6ICMzNDYwNDY7XG4gICAgY29udGVudDogJysnO1xuICAgIGZvbnQtc2l6ZTogMTQwJTtcbiAgICBsZWZ0OiAuOHJlbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAuNnJlbTsgfVxuICAubW9iaWxlLW1lbnUgLnN1Ym1lbnUtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9J3RydWUnXTphZnRlciB7XG4gICAgY29udGVudDogJy0nOyB9XG5cbi8qXHJcblx0TmF2aWdhdGlvbiBzdHlsZXMgZm9yIGRyaWxsZG93biBtZW51LiBfbW9iaWxlLWRyaWxsZG93bi1tZW51LnNjc3NcclxuXHRAVE9ETyByZW1vdmUgcmVsaWFuY2Ugb24gZm91bmRhdGlvbiBwcmVzcyBkcmlsbGRvd24gbWVudS5cclxuXHQqL1xuLmlzLWRyaWxsZG93biB7XG4gIG1pbi1oZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBpbml0aWFsOyB9XG4gIC5pcy1kcmlsbGRvd24gdWwge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5pcy1kcmlsbGRvd24gbGkge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuaXMtZHJpbGxkb3duIGxpIGEge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAxLjVyZW07XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5pcy1kcmlsbGRvd24gbGkuanMtZHJpbGxkb3duLWJhY2sgYSB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgICAgIC5pcy1kcmlsbGRvd24gbGkuanMtZHJpbGxkb3duLWJhY2sgYTo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvd2hpdGUtY2hldnJvbi1yaWdodC5zdmdcIik7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwIDFyZW0gMCAwO1xuICAgICAgICB3aWR0aDogNnB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuXG4uZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGUyODc7IH1cblxuLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy93aGl0ZS1jaGV2cm9uLXJpZ2h0LnN2Z1wiKTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogNnB4O1xuICBwb3NpdGlvbjogc3RhdGljOyB9XG5cbi5oZWFkZXItYmFzaWMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBwYWRkaW5nOiAycmVtIDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuaGVhZGVyLWJhc2ljIHtcbiAgICAgIHBhZGRpbmc6IDRyZW0gMDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5jYy1kYXNoYm9hcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfSB9XG5cbi5jYy1kYXNoYm9hcmRfX3NpZGViYXIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBmbGV4OiAwIDEgMjAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBwYWRkaW5nOiAxcmVtOyB9XG5cbi5jYy1kYXNoYm9hcmRfX2NvbnRlbnQge1xuICBmbGV4OiAwIDEgNzUlOyB9XG4gIC5jYy1kYXNoYm9hcmRfX2NvbnRlbnQgdGFibGUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgxMDAsIDQ3LCA0NywgMC4xNSk7IH1cbiAgICAuY2MtZGFzaGJvYXJkX19jb250ZW50IHRhYmxlIHRoZWFkIHtcbiAgICAgIGJhY2tncm91bmQ6ICMzNDM3OGE7IH1cbiAgICAuY2MtZGFzaGJvYXJkX19jb250ZW50IHRhYmxlIHRoIHtcbiAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgZm9udC1mYW1pbHk6IFwiR2xhY2lhbEJvbGRcIiwgXCJHbGFjaWFsUmVndWxhclwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJGaXJhIFNhbnNcIiwgXCJEcm9pZCBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjsgfVxuICAgIC5jYy1kYXNoYm9hcmRfX2NvbnRlbnQgdGFibGUgdGJvZHkgdHIgdGQ6bGFzdC1jaGlsZCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgIC5jYy1kYXNoYm9hcmRfX2NvbnRlbnQgdGFibGUgdGJvZHkgdHIgdGQgc3Bhbi51c2VyLWRpc3BsYXktbmFtZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkdsYWNpYWxCb2xkXCIsIFwiR2xhY2lhbFJlZ3VsYXJcIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiT3h5Z2VuXCIsIFwiVWJ1bnR1XCIsIFwiQ2FudGFyZWxsXCIsIFwiRmlyYSBTYW5zXCIsIFwiRHJvaWQgU2Fuc1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7IH1cbiAgICAuY2MtZGFzaGJvYXJkX19jb250ZW50IHRhYmxlIC5idXR0b24sIC5jYy1kYXNoYm9hcmRfX2NvbnRlbnQgdGFibGUgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLCAud3AtYmxvY2stYnV0dG9uIC5jYy1kYXNoYm9hcmRfX2NvbnRlbnQgdGFibGUgLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgLmNjLWRhc2hib2FyZF9fY29udGVudCB0YWJsZSAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuY2MtZGFzaGJvYXJkX19jb250ZW50IHRhYmxlIC5idXR0b24sIC5jYy1kYXNoYm9hcmRfX2NvbnRlbnQgdGFibGUgLnJlcGVhdGVyLWxvZ29fX2xpbmsge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uY2MtZGFzaGJvYXJkX19uYXYge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5jYy1kYXNoYm9hcmRfX25hdiBsaSB7XG4gICAgY29sb3I6ICMzNDYwNDY7XG4gICAgZm9udC1mYW1pbHk6IFwiR2xhY2lhbEJvbGRcIiwgXCJHbGFjaWFsUmVndWxhclwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJGaXJhIFNhbnNcIiwgXCJEcm9pZCBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cbiAgICAuY2MtZGFzaGJvYXJkX19uYXYgbGk6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cbiAgICAuY2MtZGFzaGJvYXJkX19uYXYgbGkucHVyY2hhc2VkOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCLwn5GNXCI7IH1cbiAgICAuY2MtZGFzaGJvYXJkX19uYXYgbGkuc2VudDo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwi8J+TpFwiOyB9XG4gICAgLmNjLWRhc2hib2FyZF9fbmF2IGxpLnJlY2VpdmVkOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCLwn5OoXCI7IH1cbiAgICAuY2MtZGFzaGJvYXJkX19uYXYgbGkucGVuZGluZzo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwi4o+zXCI7IH1cbiAgICAuY2MtZGFzaGJvYXJkX19uYXYgbGkuYXNzaWduZWQ6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIvCfkrxcIjsgfVxuICAgIC5jYy1kYXNoYm9hcmRfX25hdiBsaS5zcGVudDo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwi8J+SuFwiOyB9XG4gICAgLmNjLWRhc2hib2FyZF9fbmF2IGxpIGEge1xuICAgICAgY29sb3I6ICMzYzNjM2I7IH1cbiAgICAgIC5jYy1kYXNoYm9hcmRfX25hdiBsaSBhOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLmNjLW5vdGlmaWNhdGlvbnMgLmNhbGxvdXQge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7IH1cblxudGFibGUjdXNlclNlYXJjaFRhYmxlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuICB0YWJsZSN1c2VyU2VhcmNoVGFibGUuaGFzLXJlc3VsdHMge1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG5cbi5kYXRlLXJhbmdlLXBpY2tlci1mb3JtIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgYm9yZGVyLXJhZGl1czogY2FsYyg1MHB4IC8gNCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBwYWRkaW5nOiAxcmVtIDJyZW07IH1cbiAgLmRhdGUtcmFuZ2UtcGlja2VyLWZvcm0gYnV0dG9uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5kYXRlLXJhbmdlLXBpY2tlci1mb3JtIC5kYXRlLXJhbmdlLXBpY2tlciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAgIC5kYXRlLXJhbmdlLXBpY2tlci1mb3JtIC5kYXRlLXJhbmdlLXBpY2tlciBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbjogMCAxcmVtOyB9XG5cbi5ub3RlLWNoYXJ0cyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiA0cmVtIDJyZW07XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7IH1cbiAgLm5vdGUtY2hhcnRzX19pdGVtIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAubm90ZS1jaGFydHNfX2l0ZW0gaDQsIC5ub3RlLWNoYXJ0c19faXRlbSAuaDQsIC5ub3RlLWNoYXJ0c19faXRlbSAuY2FyZC0tcmVzb3VyY2VfX3RpdGxlLCAubm90ZS1jaGFydHNfX2l0ZW0gLnNpZ25wb3N0X19ncmlkLS1jb2wtMyAuc2lnbnBvc3RfX3RpdGxlLCAuc2lnbnBvc3RfX2dyaWQtLWNvbC0zIC5ub3RlLWNoYXJ0c19faXRlbSAuc2lnbnBvc3RfX3RpdGxlLCAubm90ZS1jaGFydHNfX2l0ZW0gLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgaDIsIC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IC5ub3RlLWNoYXJ0c19faXRlbSBoMiwgLm5vdGUtY2hhcnRzX19pdGVtIC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IC5oMiwgLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgLm5vdGUtY2hhcnRzX19pdGVtIC5oMiwgLm5vdGUtY2hhcnRzX19pdGVtIC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IC5zdGF0c19faXRlbS0tY29udGVudCwgLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgLm5vdGUtY2hhcnRzX19pdGVtIC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgICAubm90ZS1jaGFydHNfX2l0ZW0gLndvb2NvbW1lcmNlLW9yZGVyIGgyLCAud29vY29tbWVyY2Utb3JkZXIgLm5vdGUtY2hhcnRzX19pdGVtIGgyLCAubm90ZS1jaGFydHNfX2l0ZW0gLndvb2NvbW1lcmNlLW9yZGVyIC5oMiwgLndvb2NvbW1lcmNlLW9yZGVyIC5ub3RlLWNoYXJ0c19faXRlbSAuaDIsIC5ub3RlLWNoYXJ0c19faXRlbSAud29vY29tbWVyY2Utb3JkZXIgLnN0YXRzX19pdGVtLS1jb250ZW50LCAud29vY29tbWVyY2Utb3JkZXIgLm5vdGUtY2hhcnRzX19pdGVtIC5zdGF0c19faXRlbS0tY29udGVudCB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxuXG4uZGF0ZXBpY2tlciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmRhdGVwaWNrZXIuYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uZGF0ZXBpY2tlci1kcm9wZG93biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAyMDtcbiAgcGFkZGluZy10b3A6IDRweDsgfVxuICAuZGF0ZXBpY2tlci1kcm9wZG93bi5kYXRlcGlja2VyLW9yaWVudC10b3Age1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiA0cHg7IH1cblxuLmRhdGVwaWNrZXItcGlja2VyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cbiAgLmRhdGVwaWNrZXItZHJvcGRvd24gLmRhdGVwaWNrZXItcGlja2VyIHtcbiAgICBib3gtc2hhZG93OiAwIDJweCAzcHggcmdiYSg2MCwgNjAsIDU5LCAwLjEpLCAwIDAgMCAxcHggcmdiYSg2MCwgNjAsIDU5LCAwLjEpOyB9XG4gIC5kYXRlcGlja2VyLXBpY2tlciBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAxO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuLmRhdGVwaWNrZXItbWFpbiB7XG4gIHBhZGRpbmc6IDJweDsgfVxuXG4uZGF0ZXBpY2tlci1mb290ZXIge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSg2MCwgNjAsIDU5LCAwLjEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZXNtb2tlOyB9XG5cbi5kYXRlcGlja2VyLWNvbnRyb2xzLCAuZGF0ZXBpY2tlci12aWV3LCAuZGF0ZXBpY2tlci12aWV3IC5kYXlzLW9mLXdlZWssIC5kYXRlcGlja2VyLWdyaWQge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5kYXRlcGlja2VyLWdyaWQge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cblxuLmRhdGVwaWNrZXItdmlldyAuZG93LCAuZGF0ZXBpY2tlci12aWV3IC5kYXlzIC5kYXRlcGlja2VyLWNlbGwge1xuICBmbGV4LWJhc2lzOiAxNC4yODU3MSU7IH1cblxuLmRhdGVwaWNrZXItdmlldy5kYXRlcGlja2VyLWdyaWQgLmRhdGVwaWNrZXItY2VsbCB7XG4gIGZsZXgtYmFzaXM6IDI1JTsgfVxuXG4uZGF0ZXBpY2tlci12aWV3IC53ZWVrLCAuZGF0ZXBpY2tlci1jZWxsIHtcbiAgaGVpZ2h0OiAyLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMi4yNXJlbTsgfVxuXG4uZGF0ZXBpY2tlci10aXRsZSB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAxcHggcmdiYSg2MCwgNjAsIDU5LCAwLjEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZXNtb2tlO1xuICBwYWRkaW5nOiAwLjM3NXJlbSAwLjc1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuLmRhdGVwaWNrZXItaGVhZGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzIHtcbiAgcGFkZGluZzogMnB4IDJweCAwOyB9XG5cbi5kYXRlcGlja2VyLWNvbnRyb2xzIC5idXR0b24sIC5kYXRlcGlja2VyLWNvbnRyb2xzIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgLndwLWJsb2NrLWJ1dHRvbiAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uX19saW5rLCAuZGF0ZXBpY2tlci1jb250cm9scyAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uLCAuZGF0ZXBpY2tlci1jb250cm9scyAucmVwZWF0ZXItbG9nb19fbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkYmRiZGI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiBjYWxjKDAuMzc1ZW0gLSAxcHgpIDAuNzVlbTtcbiAgaGVpZ2h0OiAyLjI1ZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY29sb3I6ICMzNjM2MzY7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAuZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uOmZvY3VzLCAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbms6Zm9jdXMsIC53cC1ibG9jay1idXR0b24gLmRhdGVwaWNrZXItY29udHJvbHMgLndwLWJsb2NrLWJ1dHRvbl9fbGluazpmb2N1cywgLmRhdGVwaWNrZXItY29udHJvbHMgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbjpmb2N1cywgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbjpmb2N1cywgLmRhdGVwaWNrZXItY29udHJvbHMgLnJlcGVhdGVyLWxvZ29fX2xpbms6Zm9jdXMsIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5idXR0b246YWN0aXZlLCAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbms6YWN0aXZlLCAud3AtYmxvY2stYnV0dG9uIC5kYXRlcGlja2VyLWNvbnRyb2xzIC53cC1ibG9jay1idXR0b25fX2xpbms6YWN0aXZlLCAuZGF0ZXBpY2tlci1jb250cm9scyAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uOmFjdGl2ZSwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbjphY3RpdmUsIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5yZXBlYXRlci1sb2dvX19saW5rOmFjdGl2ZSB7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuICAuZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uOmhvdmVyLCAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbms6aG92ZXIsIC53cC1ibG9jay1idXR0b24gLmRhdGVwaWNrZXItY29udHJvbHMgLndwLWJsb2NrLWJ1dHRvbl9fbGluazpob3ZlciwgLmRhdGVwaWNrZXItY29udHJvbHMgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbjpob3ZlciwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbjpob3ZlciwgLmRhdGVwaWNrZXItY29udHJvbHMgLnJlcGVhdGVyLWxvZ29fX2xpbms6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogI2I1YjViNTtcbiAgICBjb2xvcjogIzM2MzYzNjsgfVxuICAuZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uOmZvY3VzLCAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbms6Zm9jdXMsIC53cC1ibG9jay1idXR0b24gLmRhdGVwaWNrZXItY29udHJvbHMgLndwLWJsb2NrLWJ1dHRvbl9fbGluazpmb2N1cywgLmRhdGVwaWNrZXItY29udHJvbHMgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbjpmb2N1cywgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbjpmb2N1cywgLmRhdGVwaWNrZXItY29udHJvbHMgLnJlcGVhdGVyLWxvZ29fX2xpbms6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzMyNzNkYztcbiAgICBjb2xvcjogIzM2MzYzNjsgfVxuICAgIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5idXR0b246Zm9jdXM6bm90KDphY3RpdmUpLCAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbms6Zm9jdXM6bm90KDphY3RpdmUpLCAud3AtYmxvY2stYnV0dG9uIC5kYXRlcGlja2VyLWNvbnRyb2xzIC53cC1ibG9jay1idXR0b25fX2xpbms6Zm9jdXM6bm90KDphY3RpdmUpLCAuZGF0ZXBpY2tlci1jb250cm9scyAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uOmZvY3VzOm5vdCg6YWN0aXZlKSwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbjpmb2N1czpub3QoOmFjdGl2ZSksIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5yZXBlYXRlci1sb2dvX19saW5rOmZvY3VzOm5vdCg6YWN0aXZlKSB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAwLjEyNWVtIHJnYmEoNTAsIDExNSwgMjIwLCAwLjI1KTsgfVxuICAuZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uOmFjdGl2ZSwgLmRhdGVwaWNrZXItY29udHJvbHMgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOmFjdGl2ZSwgLndwLWJsb2NrLWJ1dHRvbiAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uX19saW5rOmFjdGl2ZSwgLmRhdGVwaWNrZXItY29udHJvbHMgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbjphY3RpdmUsICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5idXR0b246YWN0aXZlLCAuZGF0ZXBpY2tlci1jb250cm9scyAucmVwZWF0ZXItbG9nb19fbGluazphY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogIzdjN2M3YTtcbiAgICBjb2xvcjogIzM2MzYzNjsgfVxuICAuZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uW2Rpc2FibGVkXSwgLmRhdGVwaWNrZXItY29udHJvbHMgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rW2Rpc2FibGVkXSwgLndwLWJsb2NrLWJ1dHRvbiAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uX19saW5rW2Rpc2FibGVkXSwgLmRhdGVwaWNrZXItY29udHJvbHMgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbltkaXNhYmxlZF0sICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5idXR0b25bZGlzYWJsZWRdLCAuZGF0ZXBpY2tlci1jb250cm9scyAucmVwZWF0ZXItbG9nb19fbGlua1tkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgLmRhdGVwaWNrZXItaGVhZGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5idXR0b24sIC5kYXRlcGlja2VyLWhlYWRlciAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53cC1ibG9jay1idXR0b24gLmRhdGVwaWNrZXItaGVhZGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzIC53cC1ibG9jay1idXR0b25fX2xpbmssIC5kYXRlcGlja2VyLWhlYWRlciAuZGF0ZXBpY2tlci1jb250cm9scyAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbiwgLmRhdGVwaWNrZXItaGVhZGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5yZXBlYXRlci1sb2dvX19saW5rIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgLmRhdGVwaWNrZXItaGVhZGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5idXR0b246aG92ZXIsIC5kYXRlcGlja2VyLWhlYWRlciAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbms6aG92ZXIsIC53cC1ibG9jay1idXR0b24gLmRhdGVwaWNrZXItaGVhZGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzIC53cC1ibG9jay1idXR0b25fX2xpbms6aG92ZXIsIC5kYXRlcGlja2VyLWhlYWRlciAuZGF0ZXBpY2tlci1jb250cm9scyAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uOmhvdmVyLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbjpob3ZlciwgLmRhdGVwaWNrZXItaGVhZGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5yZXBlYXRlci1sb2dvX19saW5rOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7IH1cbiAgICAuZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbjpmb2N1czpub3QoOmFjdGl2ZSksIC5kYXRlcGlja2VyLWhlYWRlciAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbms6Zm9jdXM6bm90KDphY3RpdmUpLCAud3AtYmxvY2stYnV0dG9uIC5kYXRlcGlja2VyLWhlYWRlciAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uX19saW5rOmZvY3VzOm5vdCg6YWN0aXZlKSwgLmRhdGVwaWNrZXItaGVhZGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b246Zm9jdXM6bm90KDphY3RpdmUpLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbjpmb2N1czpub3QoOmFjdGl2ZSksIC5kYXRlcGlja2VyLWhlYWRlciAuZGF0ZXBpY2tlci1jb250cm9scyAucmVwZWF0ZXItbG9nb19fbGluazpmb2N1czpub3QoOmFjdGl2ZSkge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMC4xMjVlbSByZ2JhKDI1NCwgMjU0LCAyNTQsIDAuMjUpOyB9XG4gICAgLmRhdGVwaWNrZXItaGVhZGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5idXR0b246YWN0aXZlLCAuZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOmFjdGl2ZSwgLndwLWJsb2NrLWJ1dHRvbiAuZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLndwLWJsb2NrLWJ1dHRvbl9fbGluazphY3RpdmUsIC5kYXRlcGlja2VyLWhlYWRlciAuZGF0ZXBpY2tlci1jb250cm9scyAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uOmFjdGl2ZSwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmRhdGVwaWNrZXItaGVhZGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5idXR0b246YWN0aXZlLCAuZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLnJlcGVhdGVyLWxvZ29fX2xpbms6YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7IH1cbiAgICAuZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbltkaXNhYmxlZF0sIC5kYXRlcGlja2VyLWhlYWRlciAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmtbZGlzYWJsZWRdLCAud3AtYmxvY2stYnV0dG9uIC5kYXRlcGlja2VyLWhlYWRlciAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uX19saW5rW2Rpc2FibGVkXSwgLmRhdGVwaWNrZXItaGVhZGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b25bZGlzYWJsZWRdLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbltkaXNhYmxlZF0sIC5kYXRlcGlja2VyLWhlYWRlciAuZGF0ZXBpY2tlci1jb250cm9scyAucmVwZWF0ZXItbG9nb19fbGlua1tkaXNhYmxlZF0ge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAuZGF0ZXBpY2tlci1mb290ZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbiwgLmRhdGVwaWNrZXItZm9vdGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgLndwLWJsb2NrLWJ1dHRvbiAuZGF0ZXBpY2tlci1mb290ZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgLmRhdGVwaWNrZXItZm9vdGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b24sICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5kYXRlcGlja2VyLWZvb3RlciAuZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uLCAuZGF0ZXBpY2tlci1mb290ZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLnJlcGVhdGVyLWxvZ29fX2xpbmsge1xuICAgIG1hcmdpbjogY2FsYygwLjM3NXJlbSAtIDFweCkgMC4zNzVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuXG4uZGF0ZXBpY2tlci1jb250cm9scyAudmlldy1zd2l0Y2gge1xuICBmbGV4OiBhdXRvOyB9XG5cbi5kYXRlcGlja2VyLWNvbnRyb2xzIC5wcmV2LWJ0bixcbi5kYXRlcGlja2VyLWNvbnRyb2xzIC5uZXh0LWJ0biB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuMzc1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuMzc1cmVtO1xuICB3aWR0aDogMi4yNXJlbTsgfVxuICAuZGF0ZXBpY2tlci1jb250cm9scyAucHJldi1idG4uZGlzYWJsZWQsXG4gIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5uZXh0LWJ0bi5kaXNhYmxlZCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5kYXRlcGlja2VyLXZpZXcgLmRvdyB7XG4gIGhlaWdodDogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS41cmVtO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi5kYXRlcGlja2VyLXZpZXcgLndlZWsge1xuICB3aWR0aDogMi4yNXJlbTtcbiAgY29sb3I6ICNiNWI1YjU7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMjIuNXJlbSkge1xuICAgIC5kYXRlcGlja2VyLXZpZXcgLndlZWsge1xuICAgICAgd2lkdGg6IDEuOTY4NzVyZW07IH0gfVxuXG4uZGF0ZXBpY2tlci1ncmlkIHtcbiAgd2lkdGg6IDE1Ljc1cmVtOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAyMi41cmVtKSB7XG4gICAgLmNhbGVuZGFyLXdlZWtzICsgLmRheXMgLmRhdGVwaWNrZXItZ3JpZCB7XG4gICAgICB3aWR0aDogMTMuNzgxMjVyZW07IH0gfVxuXG4uZGF0ZXBpY2tlci1jZWxsOm5vdCguZGlzYWJsZWQpOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5kYXRlcGlja2VyLWNlbGwuZm9jdXNlZDpub3QoLnNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOGU4ZTg7IH1cblxuLmRhdGVwaWNrZXItY2VsbC5zZWxlY3RlZCwgLmRhdGVwaWNrZXItY2VsbC5zZWxlY3RlZDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMjczZGM7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbi5kYXRlcGlja2VyLWNlbGwuZGlzYWJsZWQge1xuICBjb2xvcjogI2RiZGJkYjsgfVxuXG4uZGF0ZXBpY2tlci1jZWxsLnByZXY6bm90KC5kaXNhYmxlZCksIC5kYXRlcGlja2VyLWNlbGwubmV4dDpub3QoLmRpc2FibGVkKSB7XG4gIGNvbG9yOiAjN2E3YTdhOyB9XG5cbi5kYXRlcGlja2VyLWNlbGwucHJldi5zZWxlY3RlZCwgLmRhdGVwaWNrZXItY2VsbC5uZXh0LnNlbGVjdGVkIHtcbiAgY29sb3I6ICNlNmU2ZTY7IH1cblxuLmRhdGVwaWNrZXItY2VsbC5oaWdobGlnaHRlZDpub3QoLnNlbGVjdGVkKTpub3QoLnJhbmdlKTpub3QoLnRvZGF5KSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlc21va2U7IH1cbiAgLmRhdGVwaWNrZXItY2VsbC5oaWdobGlnaHRlZDpub3QoLnNlbGVjdGVkKTpub3QoLnJhbmdlKTpub3QoLnRvZGF5KTpub3QoLmRpc2FibGVkKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTsgfVxuICAuZGF0ZXBpY2tlci1jZWxsLmhpZ2hsaWdodGVkOm5vdCguc2VsZWN0ZWQpOm5vdCgucmFuZ2UpOm5vdCgudG9kYXkpLmZvY3VzZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlOGU4ZTg7IH1cblxuLmRhdGVwaWNrZXItY2VsbC50b2RheTpub3QoLnNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGQxYjI7IH1cbiAgLmRhdGVwaWNrZXItY2VsbC50b2RheTpub3QoLnNlbGVjdGVkKTpub3QoLmRpc2FibGVkKSB7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLmRhdGVwaWNrZXItY2VsbC50b2RheS5mb2N1c2VkOm5vdCguc2VsZWN0ZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYzRhNzsgfVxuXG4uZGF0ZXBpY2tlci1jZWxsLnJhbmdlLXN0YXJ0Om5vdCguc2VsZWN0ZWQpLCAuZGF0ZXBpY2tlci1jZWxsLnJhbmdlLWVuZDpub3QoLnNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiNWI1YjU7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5kYXRlcGlja2VyLWNlbGwucmFuZ2Utc3RhcnQuZm9jdXNlZDpub3QoLnNlbGVjdGVkKSwgLmRhdGVwaWNrZXItY2VsbC5yYW5nZS1lbmQuZm9jdXNlZDpub3QoLnNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhZmFmYWY7IH1cblxuLmRhdGVwaWNrZXItY2VsbC5yYW5nZS1zdGFydCB7XG4gIGJvcmRlci1yYWRpdXM6IDRweCAwIDAgNHB4OyB9XG5cbi5kYXRlcGlja2VyLWNlbGwucmFuZ2UtZW5kIHtcbiAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7IH1cblxuLmRhdGVwaWNrZXItY2VsbC5yYW5nZSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYmRiZGI7IH1cbiAgLmRhdGVwaWNrZXItY2VsbC5yYW5nZTpub3QoLmRpc2FibGVkKTpub3QoLmZvY3VzZWQpOm5vdCgudG9kYXkpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDVkNWQ1OyB9XG4gIC5kYXRlcGlja2VyLWNlbGwucmFuZ2UuZGlzYWJsZWQge1xuICAgIGNvbG9yOiAjYzJjMmMyOyB9XG4gIC5kYXRlcGlja2VyLWNlbGwucmFuZ2UuZm9jdXNlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NmY2ZjZjsgfVxuXG4uZGF0ZXBpY2tlci12aWV3LmRhdGVwaWNrZXItZ3JpZCAuZGF0ZXBpY2tlci1jZWxsIHtcbiAgaGVpZ2h0OiA0LjVyZW07XG4gIGxpbmUtaGVpZ2h0OiA0LjVyZW07IH1cblxuLmRhdGVwaWNrZXItaW5wdXQuaW4tZWRpdCB7XG4gIGJvcmRlci1jb2xvcjogIzIzNjZkMTsgfVxuICAuZGF0ZXBpY2tlci1pbnB1dC5pbi1lZGl0OmZvY3VzLCAuZGF0ZXBpY2tlci1pbnB1dC5pbi1lZGl0OmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAuMjVlbSAwLjI1ZW0gcmdiYSgzNSwgMTAyLCAyMDksIDAuMik7IH1cblxuLmRhdGVwaWNrZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIC5kYXRlcGlja2VyLmFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmRhdGVwaWNrZXItZHJvcGRvd24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMjA7XG4gIHBhZGRpbmctdG9wOiA0cHg7IH1cbiAgLmRhdGVwaWNrZXItZHJvcGRvd24uZGF0ZXBpY2tlci1vcmllbnQtdG9wIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNHB4OyB9XG5cbi5kYXRlcGlja2VyLXBpY2tlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlOyB9XG4gIC5kYXRlcGlja2VyLWRyb3Bkb3duIC5kYXRlcGlja2VyLXBpY2tlciB7XG4gICAgYm94LXNoYWRvdzogMCAycHggM3B4IHJnYmEoNjAsIDYwLCA1OSwgMC4xKSwgMCAwIDAgMXB4IHJnYmEoNjAsIDYwLCA1OSwgMC4xKTsgfVxuICAuZGF0ZXBpY2tlci1waWNrZXIgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxleDogMTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG5cbi5kYXRlcGlja2VyLW1haW4ge1xuICBwYWRkaW5nOiAycHg7IH1cblxuLmRhdGVwaWNrZXItZm9vdGVyIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoNjAsIDYwLCA1OSwgMC4xKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGVzbW9rZTsgfVxuXG4uZGF0ZXBpY2tlci1jb250cm9scywgLmRhdGVwaWNrZXItdmlldywgLmRhdGVwaWNrZXItdmlldyAuZGF5cy1vZi13ZWVrLCAuZGF0ZXBpY2tlci1ncmlkIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4uZGF0ZXBpY2tlci1ncmlkIHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG5cbi5kYXRlcGlja2VyLXZpZXcgLmRvdywgLmRhdGVwaWNrZXItdmlldyAuZGF5cyAuZGF0ZXBpY2tlci1jZWxsIHtcbiAgZmxleC1iYXNpczogMTQuMjg1NzElOyB9XG5cbi5kYXRlcGlja2VyLXZpZXcuZGF0ZXBpY2tlci1ncmlkIC5kYXRlcGlja2VyLWNlbGwge1xuICBmbGV4LWJhc2lzOiAyNSU7IH1cblxuLmRhdGVwaWNrZXItdmlldyAud2VlaywgLmRhdGVwaWNrZXItY2VsbCB7XG4gIGhlaWdodDogMi4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuMjVyZW07IH1cblxuLmRhdGVwaWNrZXItdGl0bGUge1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMXB4IHJnYmEoNjAsIDYwLCA1OSwgMC4xKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGVzbW9rZTtcbiAgcGFkZGluZzogMC4zNzVyZW0gMC43NXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi5kYXRlcGlja2VyLWhlYWRlciAuZGF0ZXBpY2tlci1jb250cm9scyB7XG4gIHBhZGRpbmc6IDJweCAycHggMDsgfVxuXG4uZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uLCAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53cC1ibG9jay1idXR0b24gLmRhdGVwaWNrZXItY29udHJvbHMgLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgLmRhdGVwaWNrZXItY29udHJvbHMgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbiwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbiwgLmRhdGVwaWNrZXItY29udHJvbHMgLnJlcGVhdGVyLWxvZ29fX2xpbmsge1xuICBtYXJnaW46IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGNvbG9yOiAjM2MzYzNiOyB9XG4gIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5idXR0b246aG92ZXIsIC5kYXRlcGlja2VyLWNvbnRyb2xzIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazpob3ZlciwgLndwLWJsb2NrLWJ1dHRvbiAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uX19saW5rOmhvdmVyLCAuZGF0ZXBpY2tlci1jb250cm9scyAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uOmhvdmVyLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uOmhvdmVyLCAuZGF0ZXBpY2tlci1jb250cm9scyAucmVwZWF0ZXItbG9nb19fbGluazpob3ZlciwgLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbjpmb2N1cywgLmRhdGVwaWNrZXItY29udHJvbHMgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOmZvY3VzLCAud3AtYmxvY2stYnV0dG9uIC5kYXRlcGlja2VyLWNvbnRyb2xzIC53cC1ibG9jay1idXR0b25fX2xpbms6Zm9jdXMsIC5kYXRlcGlja2VyLWNvbnRyb2xzICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b246Zm9jdXMsICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5idXR0b246Zm9jdXMsIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5yZXBlYXRlci1sb2dvX19saW5rOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDhkOGQ4OyB9XG4gICAgLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbjpob3ZlcltkaXNhYmxlZF0sIC5kYXRlcGlja2VyLWNvbnRyb2xzIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazpob3ZlcltkaXNhYmxlZF0sIC53cC1ibG9jay1idXR0b24gLmRhdGVwaWNrZXItY29udHJvbHMgLndwLWJsb2NrLWJ1dHRvbl9fbGluazpob3ZlcltkaXNhYmxlZF0sIC5kYXRlcGlja2VyLWNvbnRyb2xzICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b246aG92ZXJbZGlzYWJsZWRdLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uOmhvdmVyW2Rpc2FibGVkXSwgLmRhdGVwaWNrZXItY29udHJvbHMgLnJlcGVhdGVyLWxvZ29fX2xpbms6aG92ZXJbZGlzYWJsZWRdLCAuZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uOmZvY3VzW2Rpc2FibGVkXSwgLmRhdGVwaWNrZXItY29udHJvbHMgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOmZvY3VzW2Rpc2FibGVkXSwgLndwLWJsb2NrLWJ1dHRvbiAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uX19saW5rOmZvY3VzW2Rpc2FibGVkXSwgLmRhdGVwaWNrZXItY29udHJvbHMgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbjpmb2N1c1tkaXNhYmxlZF0sICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5idXR0b246Zm9jdXNbZGlzYWJsZWRdLCAuZGF0ZXBpY2tlci1jb250cm9scyAucmVwZWF0ZXItbG9nb19fbGluazpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgICBjb2xvcjogIzNjM2MzYjsgfVxuICAuZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbiwgLmRhdGVwaWNrZXItaGVhZGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgLndwLWJsb2NrLWJ1dHRvbiAuZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgLmRhdGVwaWNrZXItaGVhZGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b24sICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5kYXRlcGlja2VyLWhlYWRlciAuZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uLCAuZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLnJlcGVhdGVyLWxvZ29fX2xpbmsge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLmRhdGVwaWNrZXItZm9vdGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5idXR0b24sIC5kYXRlcGlja2VyLWZvb3RlciAuZGF0ZXBpY2tlci1jb250cm9scyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53cC1ibG9jay1idXR0b24gLmRhdGVwaWNrZXItZm9vdGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzIC53cC1ibG9jay1idXR0b25fX2xpbmssIC5kYXRlcGlja2VyLWZvb3RlciAuZGF0ZXBpY2tlci1jb250cm9scyAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuZGF0ZXBpY2tlci1mb290ZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbiwgLmRhdGVwaWNrZXItZm9vdGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5yZXBlYXRlci1sb2dvX19saW5rIHtcbiAgICBtYXJnaW46IGNhbGMoMC4zNzVyZW0gLSAxcHgpIDAuMzc1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cblxuLmRhdGVwaWNrZXItY29udHJvbHMgLnZpZXctc3dpdGNoIHtcbiAgZmxleDogYXV0bzsgfVxuXG4uZGF0ZXBpY2tlci1jb250cm9scyAucHJldi1idG4sXG4uZGF0ZXBpY2tlci1jb250cm9scyAubmV4dC1idG4ge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjM3NXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjM3NXJlbTtcbiAgd2lkdGg6IDIuMjVyZW07IH1cbiAgLmRhdGVwaWNrZXItY29udHJvbHMgLnByZXYtYnRuLmRpc2FibGVkLFxuICAuZGF0ZXBpY2tlci1jb250cm9scyAubmV4dC1idG4uZGlzYWJsZWQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uZGF0ZXBpY2tlci12aWV3IC5kb3cge1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4uZGF0ZXBpY2tlci12aWV3IC53ZWVrIHtcbiAgd2lkdGg6IDIuMjVyZW07XG4gIGNvbG9yOiAjYjViNWI1O1xuICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDIyLjVyZW0pIHtcbiAgICAuZGF0ZXBpY2tlci12aWV3IC53ZWVrIHtcbiAgICAgIHdpZHRoOiAxLjk2ODc1cmVtOyB9IH1cblxuLmRhdGVwaWNrZXItZ3JpZCB7XG4gIHdpZHRoOiAxNS43NXJlbTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMjIuNXJlbSkge1xuICAgIC5jYWxlbmRhci13ZWVrcyArIC5kYXlzIC5kYXRlcGlja2VyLWdyaWQge1xuICAgICAgd2lkdGg6IDEzLjc4MTI1cmVtOyB9IH1cblxuLmRhdGVwaWNrZXItY2VsbDpub3QoLmRpc2FibGVkKTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4uZGF0ZXBpY2tlci1jZWxsLmZvY3VzZWQ6bm90KC5zZWxlY3RlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThlOGU4OyB9XG5cbi5kYXRlcGlja2VyLWNlbGwuc2VsZWN0ZWQsIC5kYXRlcGlja2VyLWNlbGwuc2VsZWN0ZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzI3M2RjO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4uZGF0ZXBpY2tlci1jZWxsLmRpc2FibGVkIHtcbiAgY29sb3I6ICNkYmRiZGI7IH1cblxuLmRhdGVwaWNrZXItY2VsbC5wcmV2Om5vdCguZGlzYWJsZWQpLCAuZGF0ZXBpY2tlci1jZWxsLm5leHQ6bm90KC5kaXNhYmxlZCkge1xuICBjb2xvcjogIzdhN2E3YTsgfVxuXG4uZGF0ZXBpY2tlci1jZWxsLnByZXYuc2VsZWN0ZWQsIC5kYXRlcGlja2VyLWNlbGwubmV4dC5zZWxlY3RlZCB7XG4gIGNvbG9yOiAjZTZlNmU2OyB9XG5cbi5kYXRlcGlja2VyLWNlbGwuaGlnaGxpZ2h0ZWQ6bm90KC5zZWxlY3RlZCk6bm90KC5yYW5nZSk6bm90KC50b2RheSkge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZXNtb2tlOyB9XG4gIC5kYXRlcGlja2VyLWNlbGwuaGlnaGxpZ2h0ZWQ6bm90KC5zZWxlY3RlZCk6bm90KC5yYW5nZSk6bm90KC50b2RheSk6bm90KC5kaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7IH1cbiAgLmRhdGVwaWNrZXItY2VsbC5oaWdobGlnaHRlZDpub3QoLnNlbGVjdGVkKTpub3QoLnJhbmdlKTpub3QoLnRvZGF5KS5mb2N1c2VkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThlOGU4OyB9XG5cbi5kYXRlcGlja2VyLWNlbGwudG9kYXk6bm90KC5zZWxlY3RlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBkMWIyOyB9XG4gIC5kYXRlcGlja2VyLWNlbGwudG9kYXk6bm90KC5zZWxlY3RlZCk6bm90KC5kaXNhYmxlZCkge1xuICAgIGNvbG9yOiAjZmZmOyB9XG5cbi5kYXRlcGlja2VyLWNlbGwudG9kYXkuZm9jdXNlZDpub3QoLnNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGM0YTc7IH1cblxuLmRhdGVwaWNrZXItY2VsbC5yYW5nZS1zdGFydDpub3QoLnNlbGVjdGVkKSwgLmRhdGVwaWNrZXItY2VsbC5yYW5nZS1lbmQ6bm90KC5zZWxlY3RlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjViNWI1O1xuICBjb2xvcjogI2ZmZjsgfVxuXG4uZGF0ZXBpY2tlci1jZWxsLnJhbmdlLXN0YXJ0LmZvY3VzZWQ6bm90KC5zZWxlY3RlZCksIC5kYXRlcGlja2VyLWNlbGwucmFuZ2UtZW5kLmZvY3VzZWQ6bm90KC5zZWxlY3RlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWZhZmFmOyB9XG5cbi5kYXRlcGlja2VyLWNlbGwucmFuZ2Utc3RhcnQge1xuICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDsgfVxuXG4uZGF0ZXBpY2tlci1jZWxsLnJhbmdlLWVuZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwOyB9XG5cbi5kYXRlcGlja2VyLWNlbGwucmFuZ2Uge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGJkYmRiOyB9XG4gIC5kYXRlcGlja2VyLWNlbGwucmFuZ2U6bm90KC5kaXNhYmxlZCk6bm90KC5mb2N1c2VkKTpub3QoLnRvZGF5KTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q1ZDVkNTsgfVxuICAuZGF0ZXBpY2tlci1jZWxsLnJhbmdlLmRpc2FibGVkIHtcbiAgICBjb2xvcjogI2MyYzJjMjsgfVxuICAuZGF0ZXBpY2tlci1jZWxsLnJhbmdlLmZvY3VzZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjZmNmY2Y7IH1cblxuLmRhdGVwaWNrZXItdmlldy5kYXRlcGlja2VyLWdyaWQgLmRhdGVwaWNrZXItY2VsbCB7XG4gIGhlaWdodDogNC41cmVtO1xuICBsaW5lLWhlaWdodDogNC41cmVtOyB9XG5cbi5kYXRlcGlja2VyLWlucHV0LmluLWVkaXQge1xuICBib3JkZXItY29sb3I6ICMyMzY2ZDE7IH1cbiAgLmRhdGVwaWNrZXItaW5wdXQuaW4tZWRpdDpmb2N1cywgLmRhdGVwaWNrZXItaW5wdXQuaW4tZWRpdDphY3RpdmUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwLjI1ZW0gMC4yNWVtIHJnYmEoMzUsIDEwMiwgMjA5LCAwLjIpOyB9XG5cbi5ibG9jaywgLmJyZWFkY3J1bWJzLCAubmV3LW5vdGUtY29udGFpbmVyLCAuZXZlbnQtaGVhZGVyLCAuZXZlbnQtcGFuZWwsIC5zaW5nbGUtdGVhbV9faGVhZGVyLCAuZGF0ZS1yYW5nZS1waWNrZXItZm9ybSwgLmJsb2NrX19oZWFkaW5nLXJvdywgLndwLWJsb2NrLXZpZGVvLFxuLndwLWJsb2NrLWVtYmVkLndwLWJsb2NrLWVtYmVkLXZpbWVvLFxuLndwLWJsb2NrLWVtYmVkLndwLWJsb2NrLWVtYmVkLXlvdXR1YmUsIC53b29jb21tZXJjZS1hcmNoaXZlLXdyYXAgdWwucHJvZHVjdHMsIC53b29jb21tZXJjZS1jYXJ0IG1haW4sIC53b29jb21tZXJjZS1jaGVja291dCBtYWluLCAud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCxcbi53b29jb21tZXJjZS1vcmRlciwgLndvb2NvbW1lcmNlLWFjY291bnQgbWFpbiwgLndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogNHJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5ibG9jaywgLmJyZWFkY3J1bWJzLCAubmV3LW5vdGUtY29udGFpbmVyLCAuZXZlbnQtaGVhZGVyLCAuZXZlbnQtcGFuZWwsIC5zaW5nbGUtdGVhbV9faGVhZGVyLCAuZGF0ZS1yYW5nZS1waWNrZXItZm9ybSwgLmJsb2NrX19oZWFkaW5nLXJvdywgLndwLWJsb2NrLXZpZGVvLFxuICAgIC53cC1ibG9jay1lbWJlZC53cC1ibG9jay1lbWJlZC12aW1lbyxcbiAgICAud3AtYmxvY2stZW1iZWQud3AtYmxvY2stZW1iZWQteW91dHViZSwgLndvb2NvbW1lcmNlLWFyY2hpdmUtd3JhcCB1bC5wcm9kdWN0cywgLndvb2NvbW1lcmNlLWNhcnQgbWFpbiwgLndvb2NvbW1lcmNlLWNoZWNrb3V0IG1haW4sIC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50LFxuICAgIC53b29jb21tZXJjZS1vcmRlciwgLndvb2NvbW1lcmNlLWFjY291bnQgbWFpbiwgLndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVyZW07IH0gfVxuICAuYmxvY2s6Zm9jdXMsIC5icmVhZGNydW1iczpmb2N1cywgLm5ldy1ub3RlLWNvbnRhaW5lcjpmb2N1cywgLmV2ZW50LWhlYWRlcjpmb2N1cywgLmV2ZW50LXBhbmVsOmZvY3VzLCAuc2luZ2xlLXRlYW1fX2hlYWRlcjpmb2N1cywgLmRhdGUtcmFuZ2UtcGlja2VyLWZvcm06Zm9jdXMsIC5ibG9ja19faGVhZGluZy1yb3c6Zm9jdXMsIC53cC1ibG9jay12aWRlbzpmb2N1cyxcbiAgLndwLWJsb2NrLWVtYmVkLndwLWJsb2NrLWVtYmVkLXZpbWVvOmZvY3VzLFxuICAud3AtYmxvY2stZW1iZWQud3AtYmxvY2stZW1iZWQteW91dHViZTpmb2N1cywgLndvb2NvbW1lcmNlLWFyY2hpdmUtd3JhcCB1bC5wcm9kdWN0czpmb2N1cywgLndvb2NvbW1lcmNlLWNhcnQgbWFpbjpmb2N1cywgLndvb2NvbW1lcmNlLWNoZWNrb3V0IG1haW46Zm9jdXMsIC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50OmZvY3VzLFxuICAud29vY29tbWVyY2Utb3JkZXI6Zm9jdXMsIC53b29jb21tZXJjZS1hY2NvdW50IG1haW46Zm9jdXMsIC53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbjpmb2N1cyB7XG4gICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLmJsb2NrLS1zbWFsbCwgLmNjLWZvcm0sIC5hcmNoaXZlX190YXhvbm9teS1maWx0ZXIsIC5wcmljaW5nLXRhYmxlX19oZWFkaW5nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gIC5ibG9jay5uby1tYXJnaW4sIC5uby1tYXJnaW4uYnJlYWRjcnVtYnMsIC5uby1tYXJnaW4ubmV3LW5vdGUtY29udGFpbmVyLCAubm8tbWFyZ2luLmV2ZW50LWhlYWRlciwgLm5vLW1hcmdpbi5ldmVudC1wYW5lbCwgLm5vLW1hcmdpbi5zaW5nbGUtdGVhbV9faGVhZGVyLCAubm8tbWFyZ2luLmRhdGUtcmFuZ2UtcGlja2VyLWZvcm0sIC5uby1tYXJnaW4uYmxvY2tfX2hlYWRpbmctcm93LCAubm8tbWFyZ2luLndwLWJsb2NrLXZpZGVvLFxuICAubm8tbWFyZ2luLndwLWJsb2NrLWVtYmVkLndwLWJsb2NrLWVtYmVkLXZpbWVvLFxuICAubm8tbWFyZ2luLndwLWJsb2NrLWVtYmVkLndwLWJsb2NrLWVtYmVkLXlvdXR1YmUsIC53b29jb21tZXJjZS1hcmNoaXZlLXdyYXAgdWwubm8tbWFyZ2luLnByb2R1Y3RzLCAud29vY29tbWVyY2UtY2FydCBtYWluLm5vLW1hcmdpbiwgLndvb2NvbW1lcmNlLWNoZWNrb3V0IG1haW4ubm8tbWFyZ2luLCAubm8tbWFyZ2luLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQsXG4gIC5uby1tYXJnaW4ud29vY29tbWVyY2Utb3JkZXIsIC53b29jb21tZXJjZS1hY2NvdW50IG1haW4ubm8tbWFyZ2luLCAud29vY29tbWVyY2UtYWNjb3VudCAubm8tbWFyZ2luLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5ibG9jay0tcGFkZGluZyB7XG4gICAgcGFkZGluZzogM3JlbSAwOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5ibG9jay0tcGFkZGluZyB7XG4gICAgICAgIHBhZGRpbmc6IDVyZW0gMDsgfSB9XG4gIC5ibG9jay0tcGFkZGluZy1oZXJvIHtcbiAgICBwYWRkaW5nOiA2cmVtIDA7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmJsb2NrLS1wYWRkaW5nLWhlcm8ge1xuICAgICAgICBwYWRkaW5nOiAxMHJlbSAwOyB9IH1cbiAgLmJsb2NrLS1wYWRkaW5nLXNtYWxsIHtcbiAgICBwYWRkaW5nOiAxLjVyZW0gMDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuYmxvY2stLXBhZGRpbmctc21hbGwge1xuICAgICAgICBwYWRkaW5nOiAyLjVyZW0gMDsgfSB9XG4gIC5ibG9jay0tZGVmYXVsdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTsgfVxuICAuYmxvY2stLXdoaXRlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJsb2NrLS13aGl0ZSBoMSwgLmJsb2NrLS13aGl0ZSAuaDEsXG4gICAgLmJsb2NrLS13aGl0ZSBoMixcbiAgICAuYmxvY2stLXdoaXRlIC5oMixcbiAgICAuYmxvY2stLXdoaXRlIC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgICAuYmxvY2stLXdoaXRlIGgzLFxuICAgIC5ibG9jay0td2hpdGUgLmgzLFxuICAgIC5ibG9jay0td2hpdGUgLnNlYXJjaC1zbmlwcGV0X190aXRsZSxcbiAgICAuYmxvY2stLXdoaXRlIC5yZWxhdGVkLnByb2R1Y3RzID4gaDIsXG4gICAgLmJsb2NrLS13aGl0ZSAucmVsYXRlZC5wcm9kdWN0cyA+IC5oMixcbiAgICAuYmxvY2stLXdoaXRlIC5yZWxhdGVkLnByb2R1Y3RzID4gLnN0YXRzX19pdGVtLS1jb250ZW50LFxuICAgIC5ibG9jay0td2hpdGUgLmNhcmRfX3RpdGxlLFxuICAgIC5ibG9jay0td2hpdGUgLmJsb2NrX19oZWFkaW5nLS1zbWFsbCxcbiAgICAuYmxvY2stLXdoaXRlIC5yZXBlYXRlci1pY29uX19pdGVtLWhlYWRpbmcsXG4gICAgLmJsb2NrLS13aGl0ZSAuc2lnbnBvc3RfX3RpdGxlLFxuICAgIC5ibG9jay0td2hpdGUgaDQsXG4gICAgLmJsb2NrLS13aGl0ZSAuaDQsXG4gICAgLmJsb2NrLS13aGl0ZSAuY2FyZC0tcmVzb3VyY2VfX3RpdGxlLFxuICAgIC5ibG9jay0td2hpdGUgLnNpZ25wb3N0X19ncmlkLS1jb2wtMyAuc2lnbnBvc3RfX3RpdGxlLFxuICAgIC5zaWducG9zdF9fZ3JpZC0tY29sLTMgLmJsb2NrLS13aGl0ZSAuc2lnbnBvc3RfX3RpdGxlLFxuICAgIC5ibG9jay0td2hpdGUgLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgaDIsXG4gICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgLmJsb2NrLS13aGl0ZSBoMixcbiAgICAuYmxvY2stLXdoaXRlIC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IC5oMixcbiAgICAud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAuYmxvY2stLXdoaXRlIC5oMixcbiAgICAuYmxvY2stLXdoaXRlIC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgICAud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAuYmxvY2stLXdoaXRlIC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgICAuYmxvY2stLXdoaXRlIC53b29jb21tZXJjZS1vcmRlciBoMixcbiAgICAud29vY29tbWVyY2Utb3JkZXIgLmJsb2NrLS13aGl0ZSBoMixcbiAgICAuYmxvY2stLXdoaXRlIC53b29jb21tZXJjZS1vcmRlciAuaDIsXG4gICAgLndvb2NvbW1lcmNlLW9yZGVyIC5ibG9jay0td2hpdGUgLmgyLFxuICAgIC5ibG9jay0td2hpdGUgLndvb2NvbW1lcmNlLW9yZGVyIC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgICAud29vY29tbWVyY2Utb3JkZXIgLmJsb2NrLS13aGl0ZSAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQsXG4gICAgLmJsb2NrLS13aGl0ZSBoNSxcbiAgICAuYmxvY2stLXdoaXRlIC5oNSxcbiAgICAuYmxvY2stLXdoaXRlIGg2LFxuICAgIC5ibG9jay0td2hpdGUgLmg2LFxuICAgIC5ibG9jay0td2hpdGUgLndpZGdldC10aXRsZSxcbiAgICAuYmxvY2stLXdoaXRlIHAsXG4gICAgLmJsb2NrLS13aGl0ZSBsYWJlbCxcbiAgICAuYmxvY2stLXdoaXRlIHNwYW4ge1xuICAgICAgY29sb3I6ICMzYzNjM2IgIWltcG9ydGFudDsgfVxuICAuYmxvY2stLWdyYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2YjkxYzM7IH1cbiAgLmJsb2NrLS1ibHVlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhlMjg3OyB9XG4gIC5ibG9jay0tZ3JlZW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzN2Q1YjA7IH1cbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgaDEsIC5ibG9jay0tZ3JheSBoMSwgLmJsb2NrLS1jb2xvcmVkLXRleHQgLmgxLCAuYmxvY2stLWdyYXkgLmgxLFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCBoMixcbiAgLmJsb2NrLS1ncmF5IGgyLFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCAuaDIsXG4gIC5ibG9jay0tZ3JheSAuaDIsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgLmJsb2NrLS1ncmF5IC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgaDMsXG4gIC5ibG9jay0tZ3JheSBoMyxcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgLmgzLFxuICAuYmxvY2stLWdyYXkgLmgzLFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCAuc2VhcmNoLXNuaXBwZXRfX3RpdGxlLFxuICAuYmxvY2stLWdyYXkgLnNlYXJjaC1zbmlwcGV0X190aXRsZSxcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgLnJlbGF0ZWQucHJvZHVjdHMgPiBoMixcbiAgLmJsb2NrLS1ncmF5IC5yZWxhdGVkLnByb2R1Y3RzID4gaDIsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IC5yZWxhdGVkLnByb2R1Y3RzID4gLmgyLFxuICAuYmxvY2stLWdyYXkgLnJlbGF0ZWQucHJvZHVjdHMgPiAuaDIsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IC5yZWxhdGVkLnByb2R1Y3RzID4gLnN0YXRzX19pdGVtLS1jb250ZW50LFxuICAuYmxvY2stLWdyYXkgLnJlbGF0ZWQucHJvZHVjdHMgPiAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IC5jYXJkX190aXRsZSxcbiAgLmJsb2NrLS1ncmF5IC5jYXJkX190aXRsZSxcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgLmJsb2NrX19oZWFkaW5nLS1zbWFsbCxcbiAgLmJsb2NrLS1ncmF5IC5ibG9ja19faGVhZGluZy0tc21hbGwsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IC5yZXBlYXRlci1pY29uX19pdGVtLWhlYWRpbmcsXG4gIC5ibG9jay0tZ3JheSAucmVwZWF0ZXItaWNvbl9faXRlbS1oZWFkaW5nLFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCAuc2lnbnBvc3RfX3RpdGxlLFxuICAuYmxvY2stLWdyYXkgLnNpZ25wb3N0X190aXRsZSxcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgaDQsXG4gIC5ibG9jay0tZ3JheSBoNCxcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgLmg0LFxuICAuYmxvY2stLWdyYXkgLmg0LFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCAuY2FyZC0tcmVzb3VyY2VfX3RpdGxlLFxuICAuYmxvY2stLWdyYXkgLmNhcmQtLXJlc291cmNlX190aXRsZSxcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgLnNpZ25wb3N0X19ncmlkLS1jb2wtMyAuc2lnbnBvc3RfX3RpdGxlLFxuICAuc2lnbnBvc3RfX2dyaWQtLWNvbC0zIC5ibG9jay0tY29sb3JlZC10ZXh0IC5zaWducG9zdF9fdGl0bGUsXG4gIC5ibG9jay0tZ3JheSAuc2lnbnBvc3RfX2dyaWQtLWNvbC0zIC5zaWducG9zdF9fdGl0bGUsXG4gIC5zaWducG9zdF9fZ3JpZC0tY29sLTMgLmJsb2NrLS1ncmF5IC5zaWducG9zdF9fdGl0bGUsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IGgyLFxuICAud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAuYmxvY2stLWNvbG9yZWQtdGV4dCBoMixcbiAgLmJsb2NrLS1ncmF5IC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IGgyLFxuICAud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAuYmxvY2stLWdyYXkgaDIsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IC5oMixcbiAgLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgLmJsb2NrLS1jb2xvcmVkLXRleHQgLmgyLFxuICAuYmxvY2stLWdyYXkgLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgLmgyLFxuICAud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAuYmxvY2stLWdyYXkgLmgyLFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCAud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQsXG4gIC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IC5ibG9jay0tY29sb3JlZC10ZXh0IC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgLmJsb2NrLS1ncmF5IC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgLmJsb2NrLS1ncmF5IC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgLndvb2NvbW1lcmNlLW9yZGVyIGgyLFxuICAud29vY29tbWVyY2Utb3JkZXIgLmJsb2NrLS1jb2xvcmVkLXRleHQgaDIsXG4gIC5ibG9jay0tZ3JheSAud29vY29tbWVyY2Utb3JkZXIgaDIsXG4gIC53b29jb21tZXJjZS1vcmRlciAuYmxvY2stLWdyYXkgaDIsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IC53b29jb21tZXJjZS1vcmRlciAuaDIsXG4gIC53b29jb21tZXJjZS1vcmRlciAuYmxvY2stLWNvbG9yZWQtdGV4dCAuaDIsXG4gIC5ibG9jay0tZ3JheSAud29vY29tbWVyY2Utb3JkZXIgLmgyLFxuICAud29vY29tbWVyY2Utb3JkZXIgLmJsb2NrLS1ncmF5IC5oMixcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgLndvb2NvbW1lcmNlLW9yZGVyIC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgLndvb2NvbW1lcmNlLW9yZGVyIC5ibG9jay0tY29sb3JlZC10ZXh0IC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgLmJsb2NrLS1ncmF5IC53b29jb21tZXJjZS1vcmRlciAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQsXG4gIC53b29jb21tZXJjZS1vcmRlciAuYmxvY2stLWdyYXkgLnN0YXRzX19pdGVtLS1jb250ZW50LFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCBoNSxcbiAgLmJsb2NrLS1ncmF5IGg1LFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCAuaDUsXG4gIC5ibG9jay0tZ3JheSAuaDUsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IGg2LFxuICAuYmxvY2stLWdyYXkgaDYsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IC5oNixcbiAgLmJsb2NrLS1ncmF5IC5oNixcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgLndpZGdldC10aXRsZSxcbiAgLmJsb2NrLS1ncmF5IC53aWRnZXQtdGl0bGUsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IHAsXG4gIC5ibG9jay0tZ3JheSBwLFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCBsaSxcbiAgLmJsb2NrLS1ncmF5IGxpLFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCBsYWJlbCxcbiAgLmJsb2NrLS1ncmF5IGxhYmVsIHtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYmxvY2tfX2hlYWRpbmcge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuYmxvY2tfX2hlYWRpbmctLWNlbnRlciB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmJsb2NrX19zdWJoZWFkaW5nIHtcbiAgICBtYXJnaW46IDFyZW0gMCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuYmxvY2tfX2hlYWRpbmctd3lzeXdpZyA+ICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ubW9uLXJvdywgLmZvb3Rlcl9fcm93LCAuaGVyb19fY29udGVudCwgLmhlcm8tZmVhdHVyZWRfX2NvbnRlbnQsIC53cC1ibG9jay1lbWJlZCwgLndvb2NvbW1lcmNlLW5vdGljZXMtd3JhcHBlciwgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlLCAud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlLCAud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UsIC5zaW5nbGUtcHJvZHVjdF9fY29udGFpbmVyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1heC13aWR0aDogNzVyZW07XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgd2lkdGg6IDEwMCU7IH1cblxuZm9vdGVyIHtcbiAgY29udGVudC12aXNpYmlsaXR5OiBhdXRvOyB9XG5cbi5tb24tYWNjb3JkaW9uIC5hY2NvcmRpb25fX3ZpZXctYWxsIHtcbiAgbWFyZ2luLXRvcDogM3JlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5jb2x1bW5zX19ncmlkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmNvbHVtbnNfX2dyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLWdhcDogMzBweDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7IH0gfVxuICAgIC5jb2x1bW5zX19ncmlkIC5jb2x1bW5zX19jb250ZW50IHtcbiAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgZmxleC1iYXNpczogY2FsYyg1MCUgLSAzMHB4KTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5jb2x1bW5zX19ncmlkIC5jb2x1bW5zX19jb250ZW50IHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogYXV0byAvIHNwYW4gNjsgfSB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNvbHVtbnNfX2dyaWQtLTMgLmNvbHVtbnNfX2NvbnRlbnQge1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBmbGV4LWJhc2lzOiBjYWxjKDMzLjMzJSAtIDMwcHgpOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuY29sdW1uc19fZ3JpZC0tMyAuY29sdW1uc19fY29udGVudCB7XG4gICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiA0OyB9IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuY29sdW1uc19fZ3JpZC0tNCAuY29sdW1uc19fY29udGVudCB7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGZsZXgtYmFzaXM6IGNhbGMoMjUlIC0gMzBweCk7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5jb2x1bW5zX19ncmlkLS00IC5jb2x1bW5zX19jb250ZW50IHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IGF1dG8gLyBzcGFuIDM7IH0gfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5jb2x1bW5zX19ncmlkLS0xLTMgLmNvbHVtbnNfX2NvbnRlbnQge1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBmbGV4LWJhc2lzOiBjYWxjKDMzLjMzJSAtIDMwcHgpOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuY29sdW1uc19fZ3JpZC0tMS0zIC5jb2x1bW5zX19jb250ZW50IHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IGF1dG8gLyBzcGFuIDQ7IH0gfVxuICAgIC5jb2x1bW5zX19ncmlkLS0xLTMgLmNvbHVtbnNfX2NvbnRlbnQ6bGFzdC1jaGlsZCB7XG4gICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIGZsZXgtYmFzaXM6IGNhbGMoNjYlIC0gMzBweCk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAuY29sdW1uc19fZ3JpZC0tMS0zIC5jb2x1bW5zX19jb250ZW50Omxhc3QtY2hpbGQge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiA4OyB9IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuY29sdW1uc19fZ3JpZC0tMy0xIC5jb2x1bW5zX19jb250ZW50IHtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZmxleC1iYXNpczogY2FsYyg2NiUgLSAzMHB4KTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmNvbHVtbnNfX2dyaWQtLTMtMSAuY29sdW1uc19fY29udGVudCB7XG4gICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiA4OyB9IH1cbiAgICAuY29sdW1uc19fZ3JpZC0tMy0xIC5jb2x1bW5zX19jb250ZW50Omxhc3QtY2hpbGQge1xuICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBmbGV4LWJhc2lzOiBjYWxjKDMzLjMzJSAtIDMwcHgpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLmNvbHVtbnNfX2dyaWQtLTMtMSAuY29sdW1uc19fY29udGVudDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogYXV0byAvIHNwYW4gNDsgfSB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAuY29udGVudC1pbWFnZSArIC5jb250ZW50LWltYWdlIHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtOyB9IH1cblxuLmNvbnRlbnQtaW1hZ2VfX2dyaWQge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuY29udGVudC1pbWFnZV9fZ3JpZCB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICBncmlkLXJvdy1nYXA6IDE1cHg7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmNvbnRlbnQtaW1hZ2VfX2dyaWQge1xuICAgICAgICBncmlkLWdhcDogNjBweDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7IH0gfSB9XG5cbi5jb250ZW50LWltYWdlX19jb250ZW50IHtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmNvbnRlbnQtaW1hZ2VfX2NvbnRlbnQge1xuICAgICAgZmxleC1iYXNpczogY2FsYyg1MCUgLSAzcmVtKTtcbiAgICAgIG1heC13aWR0aDogY2FsYyg1MCUgLSAzcmVtKTsgfSB9XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5jb250ZW50LWltYWdlX19jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuICAuY29udGVudC1pbWFnZV9fY29udGVudCA+ICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5jb250ZW50LWltYWdlX19jb250ZW50ID4gKjpsYXN0LWNoaWxkICo6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5jb250ZW50LWltYWdlX19jb250YWluZXIge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgaGVpZ2h0OiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiA1MCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY29udGVudC1pbWFnZV9fY29udGFpbmVyIHtcbiAgICAgIGZsZXgtYmFzaXM6IGNhbGMoNTAlIC0gM3JlbSk7XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoNTAlIC0gM3JlbSk7IH0gfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuY29udGVudC1pbWFnZV9fY29udGFpbmVyIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctdG9wOiAxMDAlOyB9IH1cblxuLmNvbnRlbnQtaW1hZ2VfX2ZpZ3VyZSB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmNvbnRlbnQtaW1hZ2VfX2ZpZ3VyZSB7XG4gICAgICBmbGV4LWJhc2lzOiBjYWxjKDUwJSAtIDNyZW0pO1xuICAgICAgbWF4LXdpZHRoOiBjYWxjKDUwJSAtIDNyZW0pOyB9IH1cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLmNvbnRlbnQtaW1hZ2VfX2ZpZ3VyZSB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuICAuY29udGVudC1pbWFnZV9fZmlndXJlIC5jb250ZW50LWltYWdlX19pbWFnZSB7XG4gICAgcG9zaXRpb246IGluaXRpYWw7IH1cblxuLmNvbnRlbnQtaW1hZ2VfX2ltYWdlIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5jb250ZW50LWltYWdlLS1sZWZ0IC5jb250ZW50LWltYWdlX19jb250YWluZXIsXG4gIC5jb250ZW50LWltYWdlLS1sZWZ0IC5jb250ZW50LWltYWdlX19maWd1cmUge1xuICAgIGdyaWQtY29sdW1uOiAxIC8gNzsgfVxuICAuY29udGVudC1pbWFnZS0tbGVmdCAuY29udGVudC1pbWFnZV9fY29udGVudCB7XG4gICAgZ3JpZC1jb2x1bW46IDcgLyAtMTtcbiAgICBncmlkLXJvdzogMSAvIDE7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuY29udGVudC1pbWFnZS0tcmlnaHQgLmNvbnRlbnQtaW1hZ2VfX2NvbnRlbnQge1xuICAgIGdyaWQtY29sdW1uOiAxIC8gNztcbiAgICBvcmRlcjogMTsgfVxuICAuY29udGVudC1pbWFnZS0tcmlnaHQgLmNvbnRlbnQtaW1hZ2VfX2NvbnRhaW5lcixcbiAgLmNvbnRlbnQtaW1hZ2UtLXJpZ2h0IC5jb250ZW50LWltYWdlX19maWd1cmUge1xuICAgIGdyaWQtY29sdW1uOiA3IC8gLTE7XG4gICAgZ3JpZC1yb3c6IDEgLyAxO1xuICAgIG9yZGVyOiAyOyB9IH1cblxuLmNvbnRlbnQtaW1hZ2UtLWZ1bGwtYmxlZWQgLmNvbnRlbnQtaW1hZ2VfX2NvbnRlbnQge1xuICBwYWRkaW5nOiAxcmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmNvbnRlbnQtaW1hZ2UtLWZ1bGwtYmxlZWQgLmNvbnRlbnQtaW1hZ2VfX2NvbnRlbnQge1xuICAgICAgcGFkZGluZzogNHJlbSAxcmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgIC5jb250ZW50LWltYWdlLS1mdWxsLWJsZWVkIC5jb250ZW50LWltYWdlX19jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDZyZW0gMXJlbTsgfSB9XG5cbi5jb250ZW50LWltYWdlLS1mdWxsLWJsZWVkIC5jb250ZW50LWltYWdlX19jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwMHB4O1xuICBwYWRkaW5nLXRvcDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5jb250ZW50LWltYWdlLS1mdWxsLWJsZWVkIC5jb250ZW50LWltYWdlX19jb250YWluZXIge1xuICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC5jb250ZW50LWltYWdlLS1mdWxsLWJsZWVkIC5jb250ZW50LWltYWdlLS1sZWZ0IC5jb250ZW50LWltYWdlX19jb250YWluZXIge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmNvbnRlbnQtaW1hZ2UtLWZ1bGwtYmxlZWQgLmNvbnRlbnQtaW1hZ2UtLWxlZnQgLmNvbnRlbnQtaW1hZ2VfX2NvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogMy44NzVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5jb250ZW50LWltYWdlLS1mdWxsLWJsZWVkIC5jb250ZW50LWltYWdlLS1sZWZ0IC5jb250ZW50LWltYWdlX19jb250ZW50IHtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoKDEwMCUgLSAoMzcuNXJlbSAtICgxcmVtKSkpKTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLmNvbnRlbnQtaW1hZ2UtLWZ1bGwtYmxlZWQgLmNvbnRlbnQtaW1hZ2UtLXJpZ2h0IC5jb250ZW50LWltYWdlX19jb250YWluZXIge1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5jb250ZW50LWltYWdlLS1mdWxsLWJsZWVkIC5jb250ZW50LWltYWdlLS1yaWdodCAuY29udGVudC1pbWFnZV9fY29udGVudCB7XG4gICAgcGFkZGluZy1yaWdodDogMy44NzVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5jb250ZW50LWltYWdlLS1mdWxsLWJsZWVkIC5jb250ZW50LWltYWdlLS1yaWdodCAuY29udGVudC1pbWFnZV9fY29udGVudCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoICggMTAwJSAtICggMzcuNXJlbSAtICggMXJlbSApICkgKSk7IH0gfVxuXG4uY3RhX19ncmlkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5jdGFfX2J1dHRvbnMgLmJ1dHRvbiwgLmN0YV9fYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53cC1ibG9jay1idXR0b24gLmN0YV9fYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uX19saW5rLCAuY3RhX19idXR0b25zICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b24sICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5jdGFfX2J1dHRvbnMgLmJ1dHRvbiwgLmN0YV9fYnV0dG9ucyAucmVwZWF0ZXItbG9nb19fbGluayB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmN0YV9fYnV0dG9ucyAuYnV0dG9uLS1jdGEtLXR3byB7XG4gIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY3RhX19idXR0b25zIC5idXR0b24tLWN0YS0tdHdvIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9IH1cblxuLmN0YS0tZ2xvYmFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0Mzc4YTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmN0YS0tZ2xvYmFsICo6bm90KC5idXR0b24pOm5vdCgucmVwZWF0ZXItbG9nb19fbGluaykge1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmN0YS0tZ2xvYmFsIC5jdGFfX2NvbnRlbnQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoNyAvIDEyICogMTAwJSk7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfSB9XG5cbi5oZXJvIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXgtaGVpZ2h0OiA3MDBweDtcbiAgcGFkZGluZzogMjUlIDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuaGVybyB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC1nYXA6IDFyZW07XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KDJyZW0sIDRyZW0pIG1pbi1jb250ZW50IG1pbm1heCgycmVtLCA0cmVtKTtcbiAgICAgIG1heC1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgLmhlcm9fX2ltYWdlLFxuICAuaGVybyBwaWN0dXJlIHtcbiAgICBib3R0b206IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAwOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuaGVyb19faW1hZ2UsXG4gICAgICAuaGVybyBwaWN0dXJlIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgICAgZ3JpZC1yb3c6IDEgLyAtMTsgfSB9XG4gIC5oZXJvX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5oZXJvX19jb250ZW50IHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgICAgZ3JpZC1yb3c6IDIgLyAzO1xuICAgICAgICB6LWluZGV4OiAyOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5oZXJvX19jb250ZW50IHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDIsIGF1dG8pOyB9IH0gfVxuICAuaGVybyAuZW50cnktdGl0bGUsXG4gIC5oZXJvIC5oZXJvX190aXRsZSB7XG4gICAgd2lkdGg6IDY2JTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5oZXJvIC5lbnRyeS10aXRsZSxcbiAgICAgIC5oZXJvIC5oZXJvX190aXRsZSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxIC8gNztcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAuaGVyb19fZXhjZXJwdCB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB3aWR0aDogNjYlOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuaGVyb19fZXhjZXJwdCB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxIC8gNztcbiAgICAgICAgZ3JpZC1yb3c6IDIgLyAzO1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gICAgLmhlcm9fX2V4Y2VycHQgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmhlcm8tLXBhZGRpbmctbGFyZ2Uge1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCgycmVtLCAxMHJlbSkgbWluLWNvbnRlbnQgbWlubWF4KDJyZW0sIDEwcmVtKTsgfSB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5oZXJvLS1wYWRkaW5nLWxhcmdlIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtaW5tYXgoMnJlbSwgMTVyZW0pIG1pbi1jb250ZW50IG1pbm1heCgycmVtLCAxNXJlbSk7IH0gfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgICAuaGVyby0tc3RhY2stb24tbW9iaWxlIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogNTB2dyBtaW4tY29udGVudDsgfVxuICAgICAgLmhlcm8tLXN0YWNrLW9uLW1vYmlsZSAuaGVyb19faW1hZ2UsXG4gICAgICAuaGVyby0tc3RhY2stb24tbW9iaWxlIHBpY3R1cmUge1xuICAgICAgICBncmlkLXJvdzogMSAvIHNwYW4gMTsgfVxuICAgICAgLmhlcm8tLXN0YWNrLW9uLW1vYmlsZSAuaGVyb19fY29udGVudCB7XG4gICAgICAgIGdyaWQtcm93OiAyIC8gc3BhbiAxOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLmhlcm8tLWxlZnQgLmVudHJ5LXRpdGxlLFxuICAgIC5oZXJvLS1sZWZ0IC5oZXJvX190aXRsZSB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIDc7IH0gfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5oZXJvLS1sZWZ0IC5oZXJvX19leGNlcnB0IHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gNzsgfSB9IH1cblxuLmhlcm8tLXJpZ2h0IC5oZXJvX19jb250ZW50IHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5oZXJvLS1yaWdodCAuZW50cnktdGl0bGUsXG4gICAgLmhlcm8tLXJpZ2h0IC5oZXJvX190aXRsZSB7XG4gICAgICBncmlkLWNvbHVtbjogNyAvIC0xOyB9IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuaGVyby0tcmlnaHQgLmhlcm9fX2V4Y2VycHQge1xuICAgICAgZ3JpZC1jb2x1bW46IDcgLyAtMTtcbiAgICAgIGdyaWQtcm93OiAyIC8gMzsgfSB9IH1cblxuLmhlcm8tLWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuaGVyby0tY2VudGVyIC5oZXJvX19jb250ZW50IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuaGVyby0tY2VudGVyIC5lbnRyeS10aXRsZSxcbiAgICAgIC5oZXJvLS1jZW50ZXIgLmhlcm9fX3RpdGxlIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDQgLyBzcGFuIDY7XG4gICAgICAgIGdyaWQtcm93OiAxIC8gMjsgfSB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5oZXJvLS1jZW50ZXIgLmhlcm9fX2V4Y2VycHQge1xuICAgICAgICBncmlkLWNvbHVtbjogNCAvIHNwYW4gNjtcbiAgICAgICAgZ3JpZC1yb3c6IDIgLyAzOyB9IH0gfVxuXG4uaGVyby1mZWF0dXJlZCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZGlzcGxheTogZmxleDtcbiAgbWF4LWhlaWdodDogNzAwcHg7XG4gIHBhZGRpbmc6IDI1JSAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLmhlcm8tZmVhdHVyZWQge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtZ2FwOiAxcmVtO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCgycmVtLCA0cmVtKSBtaW4tY29udGVudCBtaW5tYXgoMnJlbSwgNHJlbSk7XG4gICAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgcGFkZGluZzogMDsgfSB9XG4gIC5oZXJvLWZlYXR1cmVkX19pbWFnZSxcbiAgLmhlcm8tZmVhdHVyZWQgcGljdHVyZSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMDsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmhlcm8tZmVhdHVyZWRfX2ltYWdlLFxuICAgICAgLmhlcm8tZmVhdHVyZWQgcGljdHVyZSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICAgIGdyaWQtcm93OiAxIC8gLTE7IH0gfVxuICAuaGVyby1mZWF0dXJlZF9fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuaGVyby1mZWF0dXJlZF9fY29udGVudCB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICAgIGdyaWQtcm93OiAyIC8gMztcbiAgICAgICAgei1pbmRleDogMjsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAuaGVyby1mZWF0dXJlZF9fY29udGVudCB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgMWZyKTtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCgyLCBhdXRvKTsgfSB9IH1cbiAgLmhlcm8tZmVhdHVyZWQgLmVudHJ5LXRpdGxlLFxuICAuaGVyby1mZWF0dXJlZCAuaGVyby1mZWF0dXJlZF9fdGl0bGUge1xuICAgIHdpZHRoOiA2NiU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuaGVyby1mZWF0dXJlZCAuZW50cnktdGl0bGUsXG4gICAgICAuaGVyby1mZWF0dXJlZCAuaGVyby1mZWF0dXJlZF9fdGl0bGUge1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIDc7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLmhlcm8tZmVhdHVyZWRfX2V4Y2VycHQge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgd2lkdGg6IDY2JTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmhlcm8tZmVhdHVyZWRfX2V4Y2VycHQge1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIDc7XG4gICAgICAgIGdyaWQtcm93OiAyIC8gMztcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAgIC5oZXJvLWZlYXR1cmVkX19leGNlcnB0ID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5oZXJvLWZlYXR1cmVkLS1wYWRkaW5nLWxhcmdlIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtaW5tYXgoMnJlbSwgMTByZW0pIG1pbi1jb250ZW50IG1pbm1heCgycmVtLCAxMHJlbSk7IH0gfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuaGVyby1mZWF0dXJlZC0tcGFkZGluZy1sYXJnZSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KDJyZW0sIDE1cmVtKSBtaW4tY29udGVudCBtaW5tYXgoMnJlbSwgMTVyZW0pOyB9IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgLmhlcm8tZmVhdHVyZWQtLXN0YWNrLW9uLW1vYmlsZSB7XG4gICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDUwdncgbWluLWNvbnRlbnQ7IH1cbiAgICAgIC5oZXJvLWZlYXR1cmVkLS1zdGFjay1vbi1tb2JpbGUgLmhlcm8tZmVhdHVyZWRfX2ltYWdlLFxuICAgICAgLmhlcm8tZmVhdHVyZWQtLXN0YWNrLW9uLW1vYmlsZSBwaWN0dXJlIHtcbiAgICAgICAgZ3JpZC1yb3c6IDEgLyBzcGFuIDE7IH1cbiAgICAgIC5oZXJvLWZlYXR1cmVkLS1zdGFjay1vbi1tb2JpbGUgLmhlcm8tZmVhdHVyZWRfX2NvbnRlbnQge1xuICAgICAgICBncmlkLXJvdzogMiAvIHNwYW4gMTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5oZXJvLWZlYXR1cmVkLS1sZWZ0IC5lbnRyeS10aXRsZSxcbiAgICAuaGVyby1mZWF0dXJlZC0tbGVmdCAuaGVyby1mZWF0dXJlZF9fdGl0bGUge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyA3OyB9IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuaGVyby1mZWF0dXJlZC0tbGVmdCAuaGVyby1mZWF0dXJlZF9fZXhjZXJwdCB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIDc7IH0gfSB9XG5cbi5oZXJvLWZlYXR1cmVkLS1yaWdodCAuaGVyby1mZWF0dXJlZF9fY29udGVudCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuaGVyby1mZWF0dXJlZC0tcmlnaHQgLmVudHJ5LXRpdGxlLFxuICAgIC5oZXJvLWZlYXR1cmVkLS1yaWdodCAuaGVyby1mZWF0dXJlZF9fdGl0bGUge1xuICAgICAgZ3JpZC1jb2x1bW46IDcgLyAtMTsgfSB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLmhlcm8tZmVhdHVyZWQtLXJpZ2h0IC5oZXJvLWZlYXR1cmVkX19leGNlcnB0IHtcbiAgICAgIGdyaWQtY29sdW1uOiA3IC8gLTE7XG4gICAgICBncmlkLXJvdzogMiAvIDM7IH0gfSB9XG5cbi5oZXJvLWZlYXR1cmVkLS1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmhlcm8tZmVhdHVyZWQtLWNlbnRlciAuaGVyby1mZWF0dXJlZF9fY29udGVudCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmhlcm8tZmVhdHVyZWQtLWNlbnRlciAuZW50cnktdGl0bGUsXG4gICAgICAuaGVyby1mZWF0dXJlZC0tY2VudGVyIC5oZXJvLWZlYXR1cmVkX190aXRsZSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiA0IC8gc3BhbiA2O1xuICAgICAgICBncmlkLXJvdzogMSAvIDI7IH0gfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuaGVyby1mZWF0dXJlZC0tY2VudGVyIC5oZXJvLWZlYXR1cmVkX19leGNlcnB0IHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDQgLyBzcGFuIDY7XG4gICAgICAgIGdyaWQtcm93OiAyIC8gMzsgfSB9IH1cblxuLmhlcm8tLXZpZGVvLmhlcm8tLWNvbG9yZWQtdGV4dCAuaGVyb19fY29udGVudCAqOm5vdCguYnV0dG9uKTpub3QoLnJlcGVhdGVyLWxvZ29fX2xpbmspIHtcbiAgY29sb3I6ICNmZWZlZmU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAuaGVyby0tdmlkZW8uaGVyby0tc3RhY2stb24tbW9iaWxlIC5oZXJvX19jb250ZW50ICo6bm90KC5idXR0b24pOm5vdCgucmVwZWF0ZXItbG9nb19fbGluaykge1xuICAgIGNvbG9yOiAjM2MzYzNiOyB9IH1cblxuLnJlcGVhdGVyLWljb25fX2l0ZW0ge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtYXJnaW46IDAgMTVweCAzMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5yZXBlYXRlci1pY29uX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAgIC5yZXBlYXRlci1pY29uX19pdGVtOm50aC1jaGlsZChuKzQpIHtcbiAgICAgIGZsZXgtZ3JvdzogMDsgfSB9XG5cbi5yZXBlYXRlci1pY29uX19pdGVtLWhlYWRpbmcge1xuICBtYXJnaW46IDFyZW0gMDtcbiAgdHJhbnNpdGlvbjogLjI1cyBsaW5lYXIgYWxsOyB9XG5cbi5yZXBlYXRlci1pY29uX19pbWFnZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ucmVwZWF0ZXItaWNvbl9fdGV4dCB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucmVwZWF0ZXItaWNvbl9fZ3JpZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbWFyZ2luOiAtMC41cmVtOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAucmVwZWF0ZXItaWNvbl9fZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtZ2FwOiAzMHB4O1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgMWZyKTtcbiAgICAgICAgbWFyZ2luOiAwOyB9IH0gfVxuXG4ucmVwZWF0ZXItaWNvbl9fZ3JpZC0tY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ucmVwZWF0ZXItaWNvbl9fZ3JpZC0tbGVmdCAucmVwZWF0ZXItaWNvbl9faXRlbSxcbi5yZXBlYXRlci1pY29uX19ncmlkLS1sZWZ0IC5yZXBlYXRlci1pY29uX19pbWFnZSxcbi5yZXBlYXRlci1pY29uX19ncmlkLS1sZWZ0IC5yZXBlYXRlci1pY29uX19pdGVtLWhlYWRpbmcsXG4ucmVwZWF0ZXItaWNvbl9fZ3JpZC0tbGVmdCAucmVwZWF0ZXItaWNvbl9fdGV4dCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnJlcGVhdGVyLWljb25fX2dyaWQtLWNhcmQgLnJlcGVhdGVyLWljb25fX2l0ZW0ge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIHBhZGRpbmc6IDJyZW07IH1cblxuLnJlcGVhdGVyLWljb25fX2dyaWQtLWNhcmQgLnJlcGVhdGVyLWljb25fX2ltYWdlLFxuLnJlcGVhdGVyLWljb25fX2dyaWQtLWNhcmQgLnJlcGVhdGVyLWljb25fX2l0ZW0taGVhZGluZyxcbi5yZXBlYXRlci1pY29uX19ncmlkLS1jYXJkIC5yZXBlYXRlci1pY29uX190ZXh0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4ucmVwZWF0ZXItaWNvbl9fZ3JpZC0tY2FyZCAucmVwZWF0ZXItaWNvbl9faGVhZGluZyB7XG4gIGFsaWduLXNlbGY6IHN0YXJ0OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yZXBlYXRlci1pY29uX19ncmlkLS0yIC5yZXBlYXRlci1pY29uX19pdGVtIHtcbiAgICBmbGV4LWJhc2lzOiBjYWxjKDUwJSAtIDMwcHgpO1xuICAgIG1heC13aWR0aDogY2FsYyg1MCUgLSAzMHB4KTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLnJlcGVhdGVyLWljb25fX2dyaWQtLTIgLnJlcGVhdGVyLWljb25fX2l0ZW0ge1xuICAgICAgICBncmlkLWNvbHVtbjogYXV0byAvIHNwYW4gNjsgfSB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJlcGVhdGVyLWljb25fX2dyaWQtLTMgLnJlcGVhdGVyLWljb25fX2l0ZW0ge1xuICAgIGZsZXgtYmFzaXM6IGNhbGMoMzMuMzMlIC0gMzBweCk7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDMzLjMzJSAtIDMwcHgpOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAucmVwZWF0ZXItaWNvbl9fZ3JpZC0tMyAucmVwZWF0ZXItaWNvbl9faXRlbSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiA0OyB9IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucmVwZWF0ZXItaWNvbl9fZ3JpZC0tNCAucmVwZWF0ZXItaWNvbl9faXRlbSB7XG4gICAgZmxleC1iYXNpczogY2FsYygyNSUgLSAzMHB4KTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMjUlIC0gMzBweCk7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5yZXBlYXRlci1pY29uX19ncmlkLS00IC5yZXBlYXRlci1pY29uX19pdGVtIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IGF1dG8gLyBzcGFuIDM7IH0gfSB9XG5cbmEucmVwZWF0ZXItaWNvbl9faXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0cmFuc2l0aW9uOiAuMjVzIGxpbmVhciBhbGw7IH1cbiAgYS5yZXBlYXRlci1pY29uX19pdGVtIC5yZXBlYXRlci1pY29uX190ZXh0IHtcbiAgICBjb2xvcjogIzNjM2MzYjsgfVxuICBhLnJlcGVhdGVyLWljb25fX2l0ZW06aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogIzM0NjA0NjsgfVxuICAgIGEucmVwZWF0ZXItaWNvbl9faXRlbTpob3ZlciAucmVwZWF0ZXItaWNvbl9faXRlbS1oZWFkaW5nIHtcbiAgICAgIGNvbG9yOiAjMzQ2MDQ2OyB9XG5cbi5zdGFuZGFyZC1pbWFnZSB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogNzVyZW07XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5zdGFuZGFyZC1pbWFnZSB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC1nYXA6IDMwcHg7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgIC5zdGFuZGFyZC1pbWFnZSB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heChhdXRvLCBjYWxjKDEyIC8gMTIgKiAxMDAlKSkgYXV0bzsgfSB9IH1cbiAgLnN0YW5kYXJkLWltYWdlIGltZyxcbiAgLnN0YW5kYXJkLWltYWdlIGZpZ3VyZSxcbiAgLnN0YW5kYXJkLWltYWdlIHBpY3R1cmUge1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuc3RhbmRhcmQtaW1hZ2UgaW1nLFxuICAgICAgLnN0YW5kYXJkLWltYWdlIGZpZ3VyZSxcbiAgICAgIC5zdGFuZGFyZC1pbWFnZSBwaWN0dXJlIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDE7IH0gfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuc3RhbmRhcmQtaW1hZ2UtLWNlbnRlciB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gbWlubWF4KGF1dG8sIGNhbGMoMTAgLyAxMiAqIDEwMCUpKSBhdXRvOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAuc3RhbmRhcmQtaW1hZ2UtLWNlbnRlciB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heChhdXRvLCBjYWxjKDggLyAxMiAqIDEwMCUpKSBhdXRvOyB9IH0gfVxuICAuc3RhbmRhcmQtaW1hZ2UtLWNlbnRlciBpbWcsXG4gIC5zdGFuZGFyZC1pbWFnZS0tY2VudGVyIGZpZ3VyZSxcbiAgLnN0YW5kYXJkLWltYWdlLS1jZW50ZXIgcGljdHVyZSB7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgd2lkdGg6IDgwJTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLnN0YW5kYXJkLWltYWdlLS1jZW50ZXIgaW1nLFxuICAgICAgLnN0YW5kYXJkLWltYWdlLS1jZW50ZXIgZmlndXJlLFxuICAgICAgLnN0YW5kYXJkLWltYWdlLS1jZW50ZXIgcGljdHVyZSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyIC8gc3BhbiAxO1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC5zdGFuZGFyZC1pbWFnZS0td2lkZSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5zdGFuZGFyZC1pbWFnZS0td2lkZSB7XG4gICAgICAgIGdyaWQtZ2FwOiAwO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfSB9XG4gICAgLnN0YW5kYXJkLWltYWdlLS13aWRlIGltZyxcbiAgICAuc3RhbmRhcmQtaW1hZ2UtLXdpZGUgZmlndXJlLFxuICAgIC5zdGFuZGFyZC1pbWFnZS0td2lkZSBwaWN0dXJlIHtcbiAgICAgIG1heC1oZWlnaHQ6IDcwMHB4OyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLnN0YW5kYXJkLWltYWdlLS13aWRlIGltZyxcbiAgICAgICAgLnN0YW5kYXJkLWltYWdlLS13aWRlIGZpZ3VyZSxcbiAgICAgICAgLnN0YW5kYXJkLWltYWdlLS13aWRlIHBpY3R1cmUge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAxOyB9IH1cbiAgLnN0YW5kYXJkLWltYWdlIGZpZ2NhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGNvbG9yOiAjOTk5O1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi5yZXBlYXRlci1sb2dvIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5yZXBlYXRlci1sb2dvX19pdGVtcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogLTJyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnJlcGVhdGVyLWxvZ29fX2l0ZW1zIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIC5yZXBlYXRlci1sb2dvX19pdGVtIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMCAxIGNhbGMoIDUwJSAtIDFyZW0pO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgMC41cmVtIDJyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnJlcGVhdGVyLWxvZ29fX2l0ZW0ge1xuICAgICAgICBmbGV4OiAwIDAgMjAlO1xuICAgICAgICBtYXgtd2lkdGg6IDIwJTtcbiAgICAgICAgcGFkZGluZzogMXJlbTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5wcmljaW5nLXRhYmxlX19ncmlkLCAucHJpY2luZy10YWJsZV9fZ3JpZC0taG9yaXpvbnRhbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnByaWNpbmctdGFibGVfX2dyaWQtLWhvcml6b250YWwgLnByaWNpbmctdGFibGVfX3RhYmxlIHtcbiAgICBmbGV4LWJhc2lzOiBjYWxjKCA1MCUgLSAxcmVtKTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIG1heC13aWR0aDogY2FsYyggNTAlIC0gMXJlbSk7IH1cbiAgICAucHJpY2luZy10YWJsZV9fZ3JpZC0taG9yaXpvbnRhbCAucHJpY2luZy10YWJsZV9fdGFibGU6bGFzdC1jaGlsZCwgLnByaWNpbmctdGFibGVfX2dyaWQtLWhvcml6b250YWwgLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1sYXN0LWNoaWxkKDIpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAucHJpY2luZy10YWJsZV9fZ3JpZC0taG9yaXpvbnRhbCAucHJpY2luZy10YWJsZV9fdGFibGUge1xuICAgIGZsZXgtYmFzaXM6IGNhbGMoIDI1JSAtIDFyZW0pO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWF4LXdpZHRoOiBjYWxjKCAyNSUgLSAxcmVtKTsgfSB9XG5cbi5wcmljaW5nLXRhYmxlX190YWJsZSB7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAucHJpY2luZy10YWJsZV9fdGFibGU6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5wcmljaW5nLXRhYmxlX190YWJsZSB7XG4gICAgICBmbGV4LWJhc2lzOiBjYWxjKCA1MCUgLSAxcmVtKTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoIDUwJSAtIDFyZW0pOyB9XG4gICAgICAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLWxhc3QtY2hpbGQoMikge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cblxuLnByaWNpbmctdGFibGVfX2J1dHRvbiB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1ncm93OiAxO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5wcmljaW5nLXRhYmxlX19idXR0b24gLmJ1dHRvbiwgLnByaWNpbmctdGFibGVfX2J1dHRvbiAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53cC1ibG9jay1idXR0b24gLnByaWNpbmctdGFibGVfX2J1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLCAucHJpY2luZy10YWJsZV9fYnV0dG9uICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b24sICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5wcmljaW5nLXRhYmxlX19idXR0b24gLmJ1dHRvbiwgLnByaWNpbmctdGFibGVfX2J1dHRvbiAucmVwZWF0ZXItbG9nb19fbGluayB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ucHJpY2luZy10YWJsZV9faGlnaGxpZ2h0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5wcmljaW5nLXRhYmxlX19saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ2MDQ2O1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLmg0LFxuICAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2hpZ2hsaWdodCB7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cblxuLnNpZ25wb3N0X19oZWFkaW5nIHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuc2lnbnBvc3RfX2dyaWQtLWNvbC0yIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOyB9IH1cblxuLnNpZ25wb3N0X19ncmlkLS1jb2wtMyB7XG4gIGdyaWQtZ2FwOiAxcmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNpZ25wb3N0X19ncmlkLS1jb2wtMyB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpOyB9IH1cblxuLnNpZ25wb3N0X19pdGVtIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzRlNGU0ZTtcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDEwMCwgNDcsIDQ3LCAwLjE1KTtcbiAgY29sb3I6ICMzYzNjM2I7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxcmVtIDRyZW0gMXJlbSAxcmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLW91dCAuMnM7IH1cbiAgLnNpZ25wb3N0X19pdGVtOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGNvbnRlbnQ6IHVybCguLi9pbWFnZXMvaWNvbnMvY2hldnJvbi1yaWdodC5zdmcpO1xuICAgIG1hcmdpbi10b3A6IC04cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAycmVtO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS40KTsgfVxuICAuc2lnbnBvc3RfX2l0ZW06aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogI2Y4ZTI4NzsgfVxuICAgIC5zaWducG9zdF9faXRlbTpob3ZlciAuc2lnbnBvc3RfX3RpdGxlIHtcbiAgICAgIGNvbG9yOiAjMzQ2MDQ2OyB9XG4gICAgLnNpZ25wb3N0X19pdGVtOmhvdmVyIC5zaWducG9zdF9fdGV4dCB7XG4gICAgICBjb2xvcjogIzNjM2MzYjsgfVxuXG4uc2lnbnBvc3RfX3RpdGxlIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgZWFzZS1vdXQgLjJzOyB9XG5cbi5zaWducG9zdF9fdGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLnN0YXRzIHtcbiAgcGFkZGluZzogM3JlbSAwOyB9XG4gIC5zdGF0c19fd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5zdGF0c19fd3JhcHBlciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDsgfSB9XG4gIC5zdGF0c19faXRlbSB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5zdGF0c19faXRlbSB7XG4gICAgICAgIGZsZXg6IDEgMCA1MCU7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuc3RhdHNfX2l0ZW0ge1xuICAgICAgICBmbGV4OiAxIDAgMjUlOyB9IH1cbiAgICAuc3RhdHNfX2l0ZW0tLWhlYWRpbmcge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5zdGF0c19faXRlbS1wcmVmaXgge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4OyB9XG4gICAgLnN0YXRzX19pdGVtLXN5bWJvbCB7XG4gICAgICBtYXJnaW4tbGVmdDogLThweDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAudGVzdGltb25pYWxfX2dyaWQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogY2FsYyg4IC8gMTIgKiAxMDAlKTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH0gfVxuXG4udGVzdGltb25pYWxfX2NhcmQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnRlc3RpbW9uaWFsX19pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29ucy9xdW90ZS1tYXJrLnN2Zyk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMzBweDtcbiAgbWFyZ2luOiAwIGF1dG8gMS41cmVtO1xuICB3aWR0aDogMzBweDsgfVxuXG4udmlkZW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnZpZGVvX19pbWFnZSB7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAudmlkZW9fX2ltYWdlIHtcbiAgICAgICAgbWF4LWhlaWdodDogNzAwcHg7IH0gfVxuICAudmlkZW9fX3ZpZGVvIHtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAudmlkZW9fX3ZpZGVvIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgIC52aWRlb19fdmlkZW8ge1xuICAgICAgICBtYXgtaGVpZ2h0OiA3MDBweDsgfSB9XG4gICAgLnZpZGVvX192aWRlby0tcmVzcG9uc2l2ZSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAgIC52aWRlb19fdmlkZW8tLXJlc3BvbnNpdmUgaWZyYW1lLFxuICAgICAgLnZpZGVvX192aWRlby0tcmVzcG9uc2l2ZSBvYmplY3QsXG4gICAgICAudmlkZW9fX3ZpZGVvLS1yZXNwb25zaXZlIGVtYmVkLFxuICAgICAgLnZpZGVvX192aWRlby0tcmVzcG9uc2l2ZSB2aWRlbyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC53eXNpd3lnX19jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoOCAvIDEyICogMTAwJSk7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnd5c2l3eWdfX2NvbnRlbnQtLXdpZGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogY2FsYygxMCAvIDEyICogMTAwJSk7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnd5c2l3eWdfX2NvbnRlbnQtLWZ1bGwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogY2FsYygxMiAvIDEyICogMTAwJSk7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9IH1cblxuLnd5c2l3eWdfX2NvbnRlbnQgPiAqOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC53eXNpd3lnX19jb250ZW50ID4gKjpsYXN0LWNoaWxkICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ud3lzaXd5Z19fY29udGVudCBmaWd1cmUge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi53cC1ibG9jay12aWRlbyB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogNzVyZW07XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAud3AtYmxvY2stdmlkZW8gdmlkZW8ge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAud3AtYmxvY2stdmlkZW8gdmlkZW8ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwIC8gMTIgKiAxMDAlKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC53cC1ibG9jay12aWRlbyAud3AtYmxvY2stZW1iZWRfX3dyYXBwZXIsXG4gIC53cC1ibG9jay1lbWJlZC53cC1ibG9jay1lbWJlZC12aW1lbyAud3AtYmxvY2stZW1iZWRfX3dyYXBwZXIsXG4gIC53cC1ibG9jay1lbWJlZC53cC1ibG9jay1lbWJlZC15b3V0dWJlIC53cC1ibG9jay1lbWJlZF9fd3JhcHBlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwIC8gMTIgKiAxMDAlKTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH0gfVxuXG4ubW9uLWlmcmFtZSBpZnJhbWUge1xuICBoZWlnaHQ6IDM1MHB4O1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5tb24taWZyYW1lIGlmcmFtZSB7XG4gICAgICBoZWlnaHQ6IDQwMHB4OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubW9uLWlmcmFtZSBpZnJhbWUge1xuICAgICAgaGVpZ2h0OiA1NTBweDsgfSB9XG5cbi53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX2xpbmsge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX2xpbmsgLnByaWNlIHtcbiAgICBjb2xvcjogIzNjM2MzYjtcbiAgICBmb250LXNpemU6IDE4cHg7IH1cbiAgICAud29vY29tbWVyY2UtbG9vcC1wcm9kdWN0X19saW5rIC5wcmljZSBkZWwge1xuICAgICAgY29sb3I6ICNjYzRiMzc7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsgfVxuICAgIC53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX2xpbmsgLnByaWNlIGlucyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fdGl0bGUge1xuICBjb2xvcjogIzM0Mzc4YTtcbiAgZm9udC1mYW1pbHk6IFwiR2xhY2lhbEJvbGRcIiwgXCJHbGFjaWFsUmVndWxhclwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJGaXJhIFNhbnNcIiwgXCJEcm9pZCBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgbWFyZ2luLXRvcDogMnJlbTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAud29vY29tbWVyY2UtYXJjaGl2ZS13cmFwX19maWx0ZXJpbmcge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH0gfVxuXG4uaGVhZGVyLWJhc2tldC1saW5rIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMXJlbTsgfVxuXG4ud29vY29tbWVyY2Utc2hpcHBpbmctbWV0aG9kcyB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAwOyB9XG5cbi53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCxcbnVsLndvb2NvbW1lcmNlLVNhdmVkUGF5bWVudE1ldGhvZHMge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi53b29jb21tZXJjZS1pbmZvIHtcbiAgYmFja2dyb3VuZDogI2U2ZTZlNjtcbiAgYm9yZGVyLXRvcDogM3B4IHNvbGlkICMzNDYwNDY7XG4gIG1hcmdpbjogMXJlbSBhdXRvO1xuICBwYWRkaW5nOiAxcmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLndvb2NvbW1lcmNlLWluZm8uY2FydC1lbXB0eSB7XG4gICAgZmxleDogMSAwIDEwMCU7IH1cblxuLndvb2NvbW1lcmNlLW1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kOiAjZTZlNmU2O1xuICBib3JkZXItdG9wOiAzcHggc29saWQgIzM0NjA0NjtcbiAgbWFyZ2luOiAxcmVtIGF1dG87XG4gIHBhZGRpbmc6IDFyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4tcmV2ZXJzZTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAud29vY29tbWVyY2UtbWVzc2FnZSB7XG4gICAgICBmbGV4LWZsb3c6IHJvdy1yZXZlcnNlOyB9IH1cbiAgLndvb2NvbW1lcmNlLW1lc3NhZ2UgLmJ1dHRvbiwgLndvb2NvbW1lcmNlLW1lc3NhZ2UgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLCAud3AtYmxvY2stYnV0dG9uIC53b29jb21tZXJjZS1tZXNzYWdlIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53b29jb21tZXJjZS1tZXNzYWdlICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b24sICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC53b29jb21tZXJjZS1tZXNzYWdlIC5idXR0b24sIC53b29jb21tZXJjZS1tZXNzYWdlIC5yZXBlYXRlci1sb2dvX19saW5rIHtcbiAgICBtYXJnaW46IDFyZW0gMCAwOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC53b29jb21tZXJjZS1tZXNzYWdlIC5idXR0b24sIC53b29jb21tZXJjZS1tZXNzYWdlIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgLndwLWJsb2NrLWJ1dHRvbiAud29vY29tbWVyY2UtbWVzc2FnZSAud3AtYmxvY2stYnV0dG9uX19saW5rLCAud29vY29tbWVyY2UtbWVzc2FnZSAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAud29vY29tbWVyY2UtbWVzc2FnZSAuYnV0dG9uLCAud29vY29tbWVyY2UtbWVzc2FnZSAucmVwZWF0ZXItbG9nb19fbGluayB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgMXJlbTsgfSB9XG5cbi53b29jb21tZXJjZS1lcnJvciB7XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gIGJvcmRlci10b3A6IDNweCBzb2xpZCAjMzQ2MDQ2O1xuICBtYXJnaW46IDFyZW0gYXV0bztcbiAgcGFkZGluZzogMXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItdG9wLWNvbG9yOiAjY2M0YjM3O1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cblxudWwucGFnZS1udW1iZXJzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbnVsLnByb2R1Y3RzIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW46IDFyZW0gMCAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgdWwucHJvZHVjdHMge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtZ2FwOiAxcmVtO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxODhweCwgMWZyKSk7IH0gfVxuICB1bC5wcm9kdWN0cyAucHJvZHVjdCB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICB1bC5wcm9kdWN0cyAucHJvZHVjdCB7XG4gICAgICAgIGZsZXg6IDAgMCAzMSU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxJTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxJTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIHVsLnByb2R1Y3RzIC5wcm9kdWN0IHtcbiAgICAgICAgZmxleDogMCAwIDIzJTsgfSB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICB1bC5wcm9kdWN0cyAucHJvZHVjdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4ub25zYWxlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0NjA0NjtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogMy40Mzc1cmVtO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcmlnaHQ6IDAuNXJlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAuNXJlbTtcbiAgd2lkdGg6IDMuNDM3NXJlbTtcbiAgei1pbmRleDogMTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIHRhYmxlLmNhcnQge1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIHRhYmxlLmNhcnQgdGhlYWQge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICB0YWJsZS5jYXJ0IHRib2R5IHRyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC1nYXA6IDFyZW07XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDJmcjtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoNiwgYXV0byk7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTsgfVxuICAgICAgICB0YWJsZS5jYXJ0IHRib2R5IHRyOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvOyB9XG4gICAgICB0YWJsZS5jYXJ0IHRkIHtcbiAgICAgICAgcGFkZGluZzogMDsgfVxuICAgICAgICB0YWJsZS5jYXJ0IHRkLnByb2R1Y3QtcmVtb3ZlIHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgICBncmlkLXJvdzogLTE7IH1cbiAgICAgICAgICB0YWJsZS5jYXJ0IHRkLnByb2R1Y3QtcmVtb3ZlIGEucmVtb3ZlIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgICAgICAgdGFibGUuY2FydCB0ZC5wcm9kdWN0LXJlbW92ZSBhLnJlbW92ZTpiZWZvcmUge1xuICAgICAgICAgICAgICBjb250ZW50OiBcIlJlbW92ZSBpdGVtXCI7XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4OyB9XG4gICAgICAgIHRhYmxlLmNhcnQgdGQucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cbiAgICAgICAgICB0YWJsZS5jYXJ0IHRkLnByb2R1Y3QtbmFtZSBkbC52YXJpYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAgICAgICAgIHRhYmxlLmNhcnQgdGQucHJvZHVjdC1uYW1lIGRsLnZhcmlhdGlvbiBkZCB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7IH1cbiAgICAgICAgdGFibGUuY2FydCB0ZC5wcm9kdWN0LXByaWNlLCB0YWJsZS5jYXJ0IHRkLnByb2R1Y3QtcXVhbnRpdHksIHRhYmxlLmNhcnQgdGQucHJvZHVjdC1zdWJ0b3RhbCB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDI7IH1cbiAgICAgICAgdGFibGUuY2FydCB0ZC5wcm9kdWN0LXByaWNlOmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogXCJQcmljZVwiO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4OyB9XG4gICAgICAgIHRhYmxlLmNhcnQgdGQucHJvZHVjdC1xdWFudGl0eTpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiUXVhbnRpdHlcIjtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuICAgICAgICB0YWJsZS5jYXJ0IHRkLnByb2R1Y3QtcXVhbnRpdHkgLnF1YW50aXR5IGlucHV0IHtcbiAgICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgICAgdGFibGUuY2FydCB0ZC5wcm9kdWN0LXN1YnRvdGFsOmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogXCJUb3RhbFwiO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4OyB9IH1cbiAgICB0YWJsZS5jYXJ0IC5idXR0b24sIHRhYmxlLmNhcnQgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLCAud3AtYmxvY2stYnV0dG9uIHRhYmxlLmNhcnQgLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgdGFibGUuY2FydCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiB0YWJsZS5jYXJ0IC5idXR0b24sIHRhYmxlLmNhcnQgLnJlcGVhdGVyLWxvZ29fX2xpbmsge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICB0YWJsZS5jYXJ0IHRkLnByb2R1Y3QtcmVtb3ZlIGEucmVtb3ZlIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwNDY7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxLjVyZW07IH1cbiAgICB0YWJsZS5jYXJ0IHRkLnByb2R1Y3QtcmVtb3ZlIGEucmVtb3ZlOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzUyM2M7IH1cbiAgdGFibGUuY2FydCAucHJvZHVjdC10aHVtYm5haWwge1xuICAgIG1heC13aWR0aDogNC42ODc1cmVtOyB9XG4gIHRhYmxlLmNhcnQgLnByb2R1Y3QtbmFtZSBkbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgdGFibGUuY2FydCAucHJvZHVjdC1uYW1lIGRsIHAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICB0YWJsZS5jYXJ0IC5wcm9kdWN0LW5hbWUgZHQge1xuICAgIG1hcmdpbjogMCAwLjVyZW0gMCAwOyB9XG4gIHRhYmxlLmNhcnQgLnByb2R1Y3QtcXVhbnRpdHkgaW5wdXQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuXG50YWJsZS5jYXJ0IC5hY3Rpb25zIHtcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIHRhYmxlLmNhcnQgLmFjdGlvbnMgLmNvdXBvbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxvYXQ6IGxlZnQ7IH0gfVxuICB0YWJsZS5jYXJ0IC5hY3Rpb25zIC5jb3Vwb24gbGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgdGFibGUuY2FydCAuYWN0aW9ucyAuY291cG9uIGlucHV0LFxuICB0YWJsZS5jYXJ0IC5hY3Rpb25zIC5jb3Vwb24gLmJ1dHRvbixcbiAgdGFibGUuY2FydCAuYWN0aW9ucyAuY291cG9uIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluayxcbiAgLndwLWJsb2NrLWJ1dHRvbiB0YWJsZS5jYXJ0IC5hY3Rpb25zIC5jb3Vwb24gLndwLWJsb2NrLWJ1dHRvbl9fbGluayxcbiAgdGFibGUuY2FydCAuYWN0aW9ucyAuY291cG9uICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b24sXG4gICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIHRhYmxlLmNhcnQgLmFjdGlvbnMgLmNvdXBvbiAuYnV0dG9uLFxuICB0YWJsZS5jYXJ0IC5hY3Rpb25zIC5jb3Vwb24gLnJlcGVhdGVyLWxvZ29fX2xpbmsge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIHRhYmxlLmNhcnQgLmFjdGlvbnMgLmNvdXBvbiBpbnB1dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICB0YWJsZS5jYXJ0IC5hY3Rpb25zIC5jb3Vwb24gaW5wdXQge1xuICAgICAgICBtYXJnaW46IDA7IH0gfVxuICBcbiAgdGFibGUuY2FydCAuYWN0aW9ucyAuY291cG9uIC5idXR0b24sXG4gIHRhYmxlLmNhcnQgLmFjdGlvbnMgLmNvdXBvbiAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmssXG4gIC53cC1ibG9jay1idXR0b24gdGFibGUuY2FydCAuYWN0aW9ucyAuY291cG9uIC53cC1ibG9jay1idXR0b25fX2xpbmssXG4gIHRhYmxlLmNhcnQgLmFjdGlvbnMgLmNvdXBvbiAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uLFxuICAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiB0YWJsZS5jYXJ0IC5hY3Rpb25zIC5jb3Vwb24gLmJ1dHRvbixcbiAgdGFibGUuY2FydCAuYWN0aW9ucyAuY291cG9uIC5yZXBlYXRlci1sb2dvX19saW5rIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgXG4gICAgICB0YWJsZS5jYXJ0IC5hY3Rpb25zIC5jb3Vwb24gLmJ1dHRvbixcbiAgICAgIHRhYmxlLmNhcnQgLmFjdGlvbnMgLmNvdXBvbiAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmssXG4gICAgICAud3AtYmxvY2stYnV0dG9uIHRhYmxlLmNhcnQgLmFjdGlvbnMgLmNvdXBvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLFxuICAgICAgdGFibGUuY2FydCAuYWN0aW9ucyAuY291cG9uICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b24sXG4gICAgICAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiB0YWJsZS5jYXJ0IC5hY3Rpb25zIC5jb3Vwb24gLmJ1dHRvbixcbiAgICAgIHRhYmxlLmNhcnQgLmFjdGlvbnMgLmNvdXBvbiAucmVwZWF0ZXItbG9nb19fbGluayB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIG1pbi13aWR0aDogMTByZW07IH0gfVxuICB0YWJsZS5jYXJ0IC5hY3Rpb25zIC5idXR0b24sIHRhYmxlLmNhcnQgLmFjdGlvbnMgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLCAud3AtYmxvY2stYnV0dG9uIHRhYmxlLmNhcnQgLmFjdGlvbnMgLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgdGFibGUuY2FydCAuYWN0aW9ucyAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiB0YWJsZS5jYXJ0IC5hY3Rpb25zIC5idXR0b24sIHRhYmxlLmNhcnQgLmFjdGlvbnMgLnJlcGVhdGVyLWxvZ29fX2xpbmsge1xuICAgIG1hcmdpbjogMXJlbSAwIDA7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgdGFibGUuY2FydCAuYWN0aW9ucyAuYnV0dG9uLCB0YWJsZS5jYXJ0IC5hY3Rpb25zIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgLndwLWJsb2NrLWJ1dHRvbiB0YWJsZS5jYXJ0IC5hY3Rpb25zIC53cC1ibG9jay1idXR0b25fX2xpbmssIHRhYmxlLmNhcnQgLmFjdGlvbnMgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbiwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gdGFibGUuY2FydCAuYWN0aW9ucyAuYnV0dG9uLCB0YWJsZS5jYXJ0IC5hY3Rpb25zIC5yZXBlYXRlci1sb2dvX19saW5rIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW46IDA7IH0gfVxuXG50YWJsZS52YXJpYXRpb25zIHRoZWFkLFxudGFibGUudmFyaWF0aW9ucyB0Ym9keSxcbnRhYmxlLnZhcmlhdGlvbnMgdGZvb3QsXG50YWJsZS52YXJpYXRpb25zIHRyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDsgfVxuXG50YWJsZS52YXJpYXRpb25zIHRyIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG50YWJsZS52YXJpYXRpb25zIHRkLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgbWluLXdpZHRoOiAzcmVtO1xuICBwYWRkaW5nOiAwOyB9XG5cbnRhYmxlLnZhcmlhdGlvbnMgdGQudmFsdWUgc2VsZWN0IHtcbiAgbWFyZ2luOiAwOyB9XG5cbnRhYmxlLnZhcmlhdGlvbnMgdGJvZHkgdHIge1xuICBib3JkZXI6IDA7IH1cblxuQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLndvb2NvbW1lcmNlLWFyY2hpdmUtd3JhcCB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC1nYXA6IDJyZW07XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAzZnI7IH0gfSB9XG5cbi53b29jb21tZXJjZS1hcmNoaXZlLXdyYXBfX2NvbnRlbnQge1xuICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICBvcmRlcjogMjsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfSB9XG5cbi53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZSAud29vY29tbWVyY2Utbm90aWNlcy13cmFwcGVyIC53b29jb21tZXJjZS1tZXNzYWdlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAud29vY29tbWVyY2UtY2FydCAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLW5vdGljZXMtd3JhcHBlciB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cblxuLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1jYXJ0LWZvcm0ge1xuICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1jYXJ0LWZvcm0ge1xuICAgICAgZmxleDogMCAwIGNhbGMoNjYlIC0gMXJlbSk7XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoNjYlIC0gMXJlbSk7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLndvb2NvbW1lcmNlLWNhcnQgLndvb2NvbW1lcmNlIC5jYXJ0LWNvbGxhdGVyYWxzIHtcbiAgICBmbGV4OiAwIDAgY2FsYygzMyUgLSAxcmVtKTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMzMlIC0gMXJlbSk7IH0gfVxuXG4uY3VzdG9tLWNhcnRfX3JvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTY7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3VzdG9tLWNhcnRfX3JvdyB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMS43NXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuNzVyZW07IH0gfVxuICAuY3VzdG9tLWNhcnRfX3JvdzpsYXN0LW9mLXR5cGUge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuXG4uY3VzdG9tLWNhcnRfX2l0ZW0ucHJvZHVjdC1uYW1lIGEsXG4uY3VzdG9tLWNhcnRfX2l0ZW0ucHJvZHVjdC1uYW1lIHNwYW4sIC5jdXN0b20tY2FydF9faXRlbS5wcm9kdWN0LXByaWNlIGEsXG4uY3VzdG9tLWNhcnRfX2l0ZW0ucHJvZHVjdC1wcmljZSBzcGFuIHtcbiAgY29sb3I6ICMzYzNjM2I7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMThweDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuY3VzdG9tLWNhcnRfX2l0ZW0ucHJvZHVjdC1uYW1lIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cmVtOyB9IH1cblxuLmN1c3RvbS1jYXJ0X19pdGVtIC5wcm9kdWN0LXZhcmlhdGlvbi1uYW1lIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICBtYXJnaW4tdG9wOiAwLjVyZW07IH1cblxuLmN1c3RvbS1jYXJ0X19pdGVtIGRsLnZhcmlhdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmN1c3RvbS1jYXJ0X19pdGVtIGRsLnZhcmlhdGlvbiBkdCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmN1c3RvbS1jYXJ0X19pdGVtLnByb2R1Y3QtcHJpY2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7IH0gfVxuXG4uY3VzdG9tLWNhcnRfX2l0ZW0gYS5yZW1vdmUge1xuICBmb250LWZhbWlseTogXCJHbGFjaWFsQm9sZFwiLCBcIkdsYWNpYWxSZWd1bGFyXCIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIlJvYm90b1wiLCBcIk94eWdlblwiLCBcIlVidW50dVwiLCBcIkNhbnRhcmVsbFwiLCBcIkZpcmEgU2Fuc1wiLCBcIkRyb2lkIFNhbnNcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jdXN0b20tY2FydF9faXRlbSBhLnJlbW92ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogMCAwIDAuNzVyZW0gMXJlbTsgfSB9XG5cbi5jdXN0b20tY2FydF9faW1hZ2UtY29udGFpbmVyIHtcbiAgZmxleDogMCAwIDIzJTtcbiAgbWF4LXdpZHRoOiAyMyU7IH1cblxuLmN1c3RvbS1jYXJ0X19jb250ZW50LWNvbnRhaW5lciB7XG4gIGZsZXg6IDAgMCBjYWxjKDc3JSAtIDFyZW0pO1xuICBtYXgtd2lkdGg6IGNhbGMoNzclIC0gMXJlbSk7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3VzdG9tLWNhcnRfX2NvbnRlbnQtY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9IH1cblxuLmN1c3RvbS1jYXJ0X19wcm9kdWN0LXByaWNlLXF1YW50aXR5IHtcbiAgZmxleDogMSAwIGF1dG87XG4gIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3VzdG9tLWNhcnRfX3Byb2R1Y3QtcHJpY2UtcXVhbnRpdHkge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH0gfVxuICAuY3VzdG9tLWNhcnRfX3Byb2R1Y3QtcHJpY2UtcXVhbnRpdHkgLnF1YW50aXR5X19ibG9jayB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTsgfVxuXG4uY3VzdG9tLWNhcnQgLmNvdXBvbi10b2dnbGUge1xuICBjb2xvcjogIzNjM2MzYjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDEgMCAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3VzdG9tLWNhcnQgLmNvdXBvbi10b2dnbGUge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0gfVxuXG4uY2FydC1jb2xsYXRlcmFscyB7XG4gIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY2FydC1jb2xsYXRlcmFscyB7XG4gICAgICBtYXJnaW46IDA7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuY2FydF90b3RhbHMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gICAgcGFkZGluZzogMnJlbTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmNhcnRfdG90YWxzIHtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgdG9wOiAxMDBweDsgfSB9IH1cblxuLmNhcnRfdG90YWxzID4gaDIsIC5jYXJ0X3RvdGFscyA+IC5oMiwgLmNhcnRfdG90YWxzID4gLnN0YXRzX19pdGVtLS1jb250ZW50IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LWZhbWlseTogXCJHbGFjaWFsQm9sZFwiLCBcIkdsYWNpYWxSZWd1bGFyXCIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIlJvYm90b1wiLCBcIk94eWdlblwiLCBcIlVidW50dVwiLCBcIkNhbnRhcmVsbFwiLCBcIkZpcmEgU2Fuc1wiLCBcIkRyb2lkIFNhbnNcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNhcnRfdG90YWxzID4gaDIsIC5jYXJ0X3RvdGFscyA+IC5oMiwgLmNhcnRfdG90YWxzID4gLnN0YXRzX19pdGVtLS1jb250ZW50IHtcbiAgICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07IH0gfVxuXG4uY2FydF90b3RhbHMgdGFibGUgdGJvZHkge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIGJvcmRlci1sZWZ0OiAwOyB9XG5cbi5jYXJ0X3RvdGFscyB0YWJsZSB0cjpudGgtY2hpbGQoMm4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTsgfVxuXG4uY2FydF90b3RhbHMgdGFibGUgdHIgdGgge1xuICBwYWRkaW5nOiAwLjVyZW0gMDtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4uY2FydF90b3RhbHMgdGFibGUgdHIgdGQge1xuICBwYWRkaW5nOiAwLjVyZW0gMDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLmNoZWNrb3V0LWJ1dHRvbi5idXR0b24sIC53cC1ibG9jay1idXR0b24gLmNoZWNrb3V0LWJ1dHRvbi53cC1ibG9jay1idXR0b25fX2xpbmssICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5jaGVja291dC1idXR0b24uYnV0dG9uLCAuY2hlY2tvdXQtYnV0dG9uLnJlcGVhdGVyLWxvZ29fX2xpbmsge1xuICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmNoZWNrb3V0LWJ1dHRvbi5idXR0b246OmFmdGVyLCAud3AtYmxvY2stYnV0dG9uIC5jaGVja291dC1idXR0b24ud3AtYmxvY2stYnV0dG9uX19saW5rOjphZnRlciwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmNoZWNrb3V0LWJ1dHRvbi5idXR0b246OmFmdGVyLCAuY2hlY2tvdXQtYnV0dG9uLnJlcGVhdGVyLWxvZ29fX2xpbms6OmFmdGVyIHtcbiAgICBjb250ZW50OiBub25lOyB9XG5cbi5jYXJ0LWNvbGxhdGVyYWxzLS10b3AgLmNhcnRfdG90YWxzIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtOyB9XG4gIC5jYXJ0LWNvbGxhdGVyYWxzLS10b3AgLmNhcnRfdG90YWxzIHRhYmxlIHRib2R5IHtcbiAgICBib3JkZXItYm90dG9tOiAwOyB9XG5cbi5jYXJ0LWNvbGxhdGVyYWxzLS10b3AgLmNhcnRfdG90YWxzID4gaDIsIC5jYXJ0LWNvbGxhdGVyYWxzLS10b3AgLmNhcnRfdG90YWxzID4gLmgyLCAuY2FydC1jb2xsYXRlcmFscy0tdG9wIC5jYXJ0X3RvdGFscyA+IC5zdGF0c19faXRlbS0tY29udGVudCxcbi5jYXJ0LWNvbGxhdGVyYWxzLS10b3AgLmNhcnQtc3VidG90YWwsXG4uY2FydC1jb2xsYXRlcmFscy0tdG9wIC5kZWxpdmVyeS1tZXNzYWdlLFxuLmNhcnQtY29sbGF0ZXJhbHMtLXRvcCAuY2FydC1wYXltZW50LWxvZ29zIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ubGluay0tY29udGludWUtc2hvcHBpbmcge1xuICBjb2xvcjogIzNjM2MzYjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcIkdsYWNpYWxCb2xkXCIsIFwiR2xhY2lhbFJlZ3VsYXJcIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiT3h5Z2VuXCIsIFwiVWJ1bnR1XCIsIFwiQ2FudGFyZWxsXCIsIFwiRmlyYSBTYW5zXCIsIFwiRHJvaWQgU2Fuc1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmxpbmstLWNvbnRpbnVlLXNob3BwaW5nIHtcbiAgICAgIHdpZHRoOiBhdXRvOyB9IH1cblxuLmNhcnQtcGF5bWVudC1sb2dvcyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi53Yy1wcm9jZWVkLXRvLWNoZWNrb3V0LS10b3Age1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgcGFkZGluZzogMXJlbTtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAxOyB9XG4gIC53Yy1wcm9jZWVkLXRvLWNoZWNrb3V0LS10b3AgLmJ1dHRvbiwgLndjLXByb2NlZWQtdG8tY2hlY2tvdXQtLXRvcCAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53cC1ibG9jay1idXR0b24gLndjLXByb2NlZWQtdG8tY2hlY2tvdXQtLXRvcCAud3AtYmxvY2stYnV0dG9uX19saW5rLCAud2MtcHJvY2VlZC10by1jaGVja291dC0tdG9wICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b24sICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC53Yy1wcm9jZWVkLXRvLWNoZWNrb3V0LS10b3AgLmJ1dHRvbiwgLndjLXByb2NlZWQtdG8tY2hlY2tvdXQtLXRvcCAucmVwZWF0ZXItbG9nb19fbGluayB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uY291cG9uLWJsb2NrIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY291cG9uLWJsb2NrIHtcbiAgICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UgPiAqIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoNiAvIDEyICogMTAwJSk7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9IH1cblxuLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgPiB1bCxcbi53b29jb21tZXJjZS1vcmRlciA+IHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwOyB9XG5cbi53b29jb21tZXJjZS1vcmRlci1kZXRhaWxzIHtcbiAgbWFyZ2luOiAycmVtIDA7IH1cblxuLndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlIHtcbiAgbWFyZ2luLXRvcDogMnJlbTsgfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlICNjdXN0b21lcl9sb2dpbiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtZ2FwOiA0cmVtO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IH0gfSB9XG5cbi53b29jb21tZXJjZS1hY2NvdW50LmxvZ2dlZC1pbiAud29vY29tbWVyY2Uge1xuICBtYXJnaW4tdG9wOiAwOyB9XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAud29vY29tbWVyY2UtYWNjb3VudC5sb2dnZWQtaW4gLndvb2NvbW1lcmNlIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC1nYXA6IDRyZW07XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDNmcjsgfSB9IH1cblxuLndvb2NvbW1lcmNlLWFjY291bnQgLmhlYWRlci1iYXNpYyB7XG4gIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIHBhZGRpbmc6IDFyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIC53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCBsaSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHVsIGxpOmxhc3QtY2hpbGQgYSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAgIC53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCBsaTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwi8J+XhO+4j1wiO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cbiAgICAud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24gdWwgbGkud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24tbGluay0tb3JkZXJzOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCLwn5uSXCI7IH1cbiAgICAud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24gdWwgbGkud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24tbGluay0tZWRpdC1hZGRyZXNzOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCLinI3vuI9cIjsgfVxuICAgIC53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCBsaS53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbi1saW5rLS1lZGl0LWFjY291bnQ6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIvCfl4LvuI9cIjsgfVxuICAgIC53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCBsaS53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbi1saW5rLS1jdXN0b21lci1sb2dvdXQ6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIvCfkYtcIjsgfVxuICAgIC53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCBsaSBhIHtcbiAgICAgIGNvbG9yOiAjM2MzYzNiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LWZhbWlseTogXCJHbGFjaWFsQm9sZFwiLCBcIkdsYWNpYWxSZWd1bGFyXCIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIlJvYm90b1wiLCBcIk94eWdlblwiLCBcIlVidW50dVwiLCBcIkNhbnRhcmVsbFwiLCBcIkZpcmEgU2Fuc1wiLCBcIkRyb2lkIFNhbnNcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgICAgcGFkZGluZzogMC41cmVtOyB9XG4gICAgICAud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24gdWwgbGkgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjMzQ2MDQ2OyB9XG5cbi5zaW5nbGUtcHJvZHVjdF9fY29udGFpbmVyIHtcbiAgcGFkZGluZy10b3A6IDNyZW07IH1cblxuQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gIC5zaW5nbGUtcHJvZHVjdF9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtZ2FwOiAxcmVtO1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwiaW1hZ2VcIlxyIFwic3VtbWFyeVwiO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuc2luZ2xlLXByb2R1Y3RfX2hlYWRlciB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJpbWFnZSBzdW1tYXJ5XCI7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuc2luZ2xlLXByb2R1Y3RfX2hlYWRlciB7XG4gICAgICAgIGdyaWQtZ2FwOiAzcmVtOyB9IH0gfVxuXG4uc2luZ2xlLXByb2R1Y3RfX2hlYWRlci1pbWFnZS13cmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5zaW5nbGUtcHJvZHVjdF9faGVhZGVyLWltYWdlLXdyYXAge1xuICAgICAgZ3JpZC1hcmVhOiBpbWFnZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLnNpbmdsZS1wcm9kdWN0X19oZWFkZXItaW1hZ2Utd3JhcCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH0gfVxuXG5Ac3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgLnNpbmdsZS1wcm9kdWN0IC5zdW1tYXJ5LmVudHJ5LXN1bW1hcnkge1xuICAgIGdyaWQtYXJlYTogc3VtbWFyeTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuc2luZ2xlLXByb2R1Y3QgLnN1bW1hcnkuZW50cnktc3VtbWFyeSB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH0gfVxuXG4uc2luZ2xlLXByb2R1Y3RfX2hlYWRlci1jb250ZW50IC5wcmljZSB7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnNpbmdsZS1wcm9kdWN0X19oZWFkZXItY29udGVudCAucHJpY2Uge1xuICAgICAgZm9udC1zaXplOiAycmVtOyB9IH1cbiAgLnNpbmdsZS1wcm9kdWN0X19oZWFkZXItY29udGVudCAucHJpY2UgZGVsIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLnNpbmdsZS1wcm9kdWN0X19oZWFkZXItY29udGVudCAucHJpY2UgZGVsID4gc3BhbjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJXQVNcIjtcbiAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTsgfVxuICAuc2luZ2xlLXByb2R1Y3RfX2hlYWRlci1jb250ZW50IC5wcmljZSBpbnMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uc2luZ2xlLXByb2R1Y3RfX2NvbnRlbnQge1xuICBtYXJnaW4tdG9wOiAycmVtOyB9XG5cbi53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnkgLmZsZXgtY29udHJvbC1uYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgLTFyZW07IH1cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSAuZmxleC1jb250cm9sLW5hdiB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC1nYXA6IDAuNXJlbTtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDkycHgsIDFmcikpO1xuICAgICAgbWFyZ2luOiAwLjVyZW0gMCAwOyB9IH1cbiAgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSAuZmxleC1jb250cm9sLW5hdiBsaSB7XG4gICAgbWFyZ2luOiAwIDAgMXJlbSAxcmVtOyB9XG4gICAgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSAuZmxleC1jb250cm9sLW5hdiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSAuZmxleC1jb250cm9sLW5hdiBsaSB7XG4gICAgICAgIG1hcmdpbjogMDsgfSB9XG4gICAgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSAuZmxleC1jb250cm9sLW5hdiBsaSBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cblxuLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9fdHJpZ2dlciB7XG4gIGxlZnQ6IDA7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDE7IH1cblxuLnJlbGF0ZWQucHJvZHVjdHMge1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBtYXgtd2lkdGg6IDc1cmVtOyB9XG4gIC5yZWxhdGVkLnByb2R1Y3RzID4gaDIsIC5yZWxhdGVkLnByb2R1Y3RzID4gLmgyLCAucmVsYXRlZC5wcm9kdWN0cyA+IC5zdGF0c19faXRlbS0tY29udGVudCB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5yZWxhdGVkLnByb2R1Y3RzIHVsLnByb2R1Y3RzIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE0MHB4LCAxZnIpKTtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIHBhZGRpbmctdG9wOiAxcmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5yZWxhdGVkLnByb2R1Y3RzIHVsLnByb2R1Y3RzIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTsgfSB9XG5cbi53b29jb21tZXJjZS12YXJpYXRpb24tYWRkLXRvLWNhcnQgYnV0dG9uLFxuZm9ybS5jYXJ0IGJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbmZvcm0udmFyaWF0aW9uc19mb3JtLCBmb3JtLmdyb3VwZWRfZm9ybSB7XG4gIG1hcmdpbjogMDsgfVxuXG5mb3JtLmdyb3VwZWRfZm9ybSAucXVhbnRpdHkgaW5wdXQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5xdWFudGl0eV9fYmxvY2sge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnF1YW50aXR5X19ibG9jayB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgLnF1YW50aXR5X19ibG9jayBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkOyB9XG4gIC5xdWFudGl0eV9fYmxvY2sgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAucXVhbnRpdHlfX2Jsb2NrIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7IH1cbiAgLnF1YW50aXR5X19ibG9jayBpbnB1dCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGhlaWdodDogM3JlbTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdpZHRoOiAzcmVtOyB9XG5cbi5xdWFudGl0eV9fbWludXMsIC5xdWFudGl0eV9fcGx1cyB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBoZWlnaHQ6IDNyZW07XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAzcmVtOyB9XG4gIC5xdWFudGl0eV9fbWludXM6aG92ZXIsIC5xdWFudGl0eV9fbWludXM6Zm9jdXMsIC5xdWFudGl0eV9fbWludXM6YWN0aXZlLCAucXVhbnRpdHlfX3BsdXM6aG92ZXIsIC5xdWFudGl0eV9fcGx1czpmb2N1cywgLnF1YW50aXR5X19wbHVzOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsgfVxuIiwiLy8gIEZvdW5kYXRpb25QcmVzcyBzZXR0aW5ncy5cclxuLy8gIEJhc2VkIG9uIEZvdW5kYXRpb24gZm9yIFNpdGVzIHY2LjQuM1xyXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy9cclxuLy8gIFRhYmxlIG9mIENvbnRlbnRzOlxyXG4vL1xyXG4vLyAgIDEuIEdsb2JhbFxyXG4vLyAgIDIuIEJyZWFrcG9pbnRzXHJcbi8vICAgMy4gVGhlIEdyaWRcclxuLy8gICA0LiBCYXNlIFR5cG9ncmFwaHlcclxuLy8gICA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcclxuLy8gICA2LiBBYmlkZVxyXG4vLyAgIDcuIEFjY29yZGlvblxyXG4vLyAgIDguIEFjY29yZGlvbiBNZW51XHJcbi8vICAgOS4gQmFkZ2VcclxuLy8gIDEwLiBCcmVhZGNydW1ic1xyXG4vLyAgMTEuIEJ1dHRvblxyXG4vLyAgMTIuIEJ1dHRvbiBHcm91cFxyXG4vLyAgMTMuIENhbGxvdXRcclxuLy8gIDE0LiBDYXJkXHJcbi8vICAxNS4gQ2xvc2UgQnV0dG9uXHJcbi8vICAxNi4gRHJpbGxkb3duXHJcbi8vICAxNy4gRHJvcGRvd25cclxuLy8gIDE4LiBEcm9wZG93biBNZW51XHJcbi8vICAxOS4gRmxleGJveCBVdGlsaXRpZXNcclxuLy8gIDIwLiBGb3Jtc1xyXG4vLyAgMjEuIExhYmVsXHJcbi8vICAyMi4gTWVkaWEgT2JqZWN0XHJcbi8vICAyMy4gTWVudVxyXG4vLyAgMjQuIE1ldGVyXHJcbi8vICAyNS4gT2ZmLWNhbnZhc1xyXG4vLyAgMjYuIE9yYml0XHJcbi8vICAyNy4gUGFnaW5hdGlvblxyXG4vLyAgMjguIFByb2dyZXNzIEJhclxyXG4vLyAgMjkuIFByb3RvdHlwZSBBcnJvd1xyXG4vLyAgMzAuIFByb3RvdHlwZSBCb3JkZXItQm94XHJcbi8vICAzMS4gUHJvdG90eXBlIEJvcmRlci1Ob25lXHJcbi8vICAzMi4gUHJvdG90eXBlIEJvcmRlcmVkXHJcbi8vICAzMy4gUHJvdG90eXBlIERpc3BsYXlcclxuLy8gIDM0LiBQcm90b3R5cGUgRm9udC1TdHlsaW5nXHJcbi8vICAzNS4gUHJvdG90eXBlIExpc3QtU3R5bGUtVHlwZVxyXG4vLyAgMzYuIFByb3RvdHlwZSBPdmVyZmxvd1xyXG4vLyAgMzcuIFByb3RvdHlwZSBQb3NpdGlvblxyXG4vLyAgMzguIFByb3RvdHlwZSBSb3VuZGVkXHJcbi8vICAzOS4gUHJvdG90eXBlIFNlcGFyYXRvclxyXG4vLyAgNDAuIFByb3RvdHlwZSBTaGFkb3dcclxuLy8gIDQxLiBQcm90b3R5cGUgU2l6aW5nXHJcbi8vICA0Mi4gUHJvdG90eXBlIFNwYWNpbmdcclxuLy8gIDQzLiBQcm90b3R5cGUgVGV4dC1EZWNvcmF0aW9uXHJcbi8vICA0NC4gUHJvdG90eXBlIFRleHQtVHJhbnNmb3JtYXRpb25cclxuLy8gIDQ1LiBQcm90b3R5cGUgVGV4dC1VdGlsaXRpZXNcclxuLy8gIDQ2LiBSZXNwb25zaXZlIEVtYmVkXHJcbi8vICA0Ny4gUmV2ZWFsXHJcbi8vICA0OC4gU2xpZGVyXHJcbi8vICA0OS4gU3dpdGNoXHJcbi8vICA1MC4gVGFibGVcclxuLy8gIDUxLiBUYWJzXHJcbi8vICA1Mi4gVGh1bWJuYWlsXHJcbi8vICA1My4gVGl0bGUgQmFyXHJcbi8vICA1NC4gVG9vbHRpcFxyXG4vLyAgNTUuIFRvcCBCYXJcclxuLy8gIDU2LiBYeSBHcmlkXHJcblxyXG5AaW1wb3J0IFwidXRpbC91dGlsXCI7XHJcbkBpbXBvcnQgXCJnbG9iYWwvY29sb3JzXCI7XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogXCJHbGFjaWFsUmVndWxhclwiO1xyXG4gIHNyYzogdXJsKFwiLi4vZm9udHMvR2xhY2lhbEluZGlmZmVyZW5jZS1SZWd1bGFyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxyXG4gICAgdXJsKFwiLi4vZm9udHMvR2xhY2lhbEluZGlmZmVyZW5jZS1SZWd1bGFyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcclxuICAgIHVybChcIi4uL2ZvbnRzL0dsYWNpYWxJbmRpZmZlcmVuY2UtUmVndWxhci5lb3RcIikgZm9ybWF0KFwiZW90XCIpO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtZGlzcGxheTogc3dhcDtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6IFwiR2xhY2lhbEJvbGRcIjtcclxuICBzcmM6IHVybChcIi4uL2ZvbnRzL0dsYWNpYWxJbmRpZmZlcmVuY2UtQm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcclxuICAgIHVybChcIi4uL2ZvbnRzL0dsYWNpYWxJbmRpZmZlcmVuY2UtQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksXHJcbiAgICB1cmwoXCIuLi9mb250cy9HbGFjaWFsSW5kaWZmZXJlbmNlLUJvbGQuZW90XCIpIGZvcm1hdChcImVvdFwiKTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcblxyXG4vLyAxLiBHbG9iYWxcclxuLy8gLS0tLS0tLS0tXHJcblxyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJTtcclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCk7XHJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41O1xyXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXHJcbiAgcHJpbWFyeTogIzM0NjA0NixcclxuICBzZWNvbmRhcnk6IHJnYigyNDgsIDIyNiwgMTM1KSxcclxuICBzdWNjZXNzOiAjM2FkYjc2LFxyXG4gIHdhcm5pbmc6ICNmZmFlMDAsXHJcbiAgYWxlcnQ6ICNjYzRiMzcsXHJcbik7XHJcbkBpbmNsdWRlIGFkZC1mb3VuZGF0aW9uLWNvbG9ycztcclxuXHJcbiRncmVlbjogJHByaW1hcnktY29sb3I7XHJcbiRtZWRpdW0tZ3JlZW46ICMzN2Q1YjA7XHJcbiRsaWdodC1ibHVlOiAjNmI5MWMzO1xyXG4kZGFyay1ibHVlOiAjMzQzNzhhO1xyXG4kZGFyay1ncmVlbjogIzNjM2MzYjtcclxuXHJcbiRsaWdodC1ncmF5OiAjZTZlNmU2O1xyXG4kbWVkaXVtLWdyYXk6ICM0ZTRlNGU7XHJcbiRkYXJrLWdyYXk6ICM4YThhOGE7XHJcbiRibGFjazogIzNjM2MzYjtcclxuJHdoaXRlOiAjZmVmZWZlO1xyXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjaztcclxuJGJvZHktZm9udC1mYW1pbHk6IFwiR2xhY2lhbFJlZ3VsYXJcIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LFxyXG4gIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJGaXJhIFNhbnNcIixcclxuICBcIkRyb2lkIFNhbnNcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xyXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZTtcclxuJGdsb2JhbC1tYXJnaW46IDFyZW07XHJcbiRnbG9iYWwtcGFkZGluZzogMXJlbTtcclxuJGdsb2JhbC1wb3NpdGlvbjogMXJlbTtcclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWw7XHJcbiRnbG9iYWwtd2VpZ2h0LW1lZGl1bTogNjAwO1xyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkO1xyXG4kZ2xvYmFsLXJhZGl1czogNTBweDtcclxuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtO1xyXG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbTtcclxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyO1xyXG4kZ2xvYmFsLWZsZXhib3g6IHRydWU7XHJcbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZTtcclxuJGdsb2JhbC1idXR0b24tY3Vyc29yOiBhdXRvO1xyXG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwO1xyXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWU7XHJcbiRnbG9iYWwtYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDEwMCwgNDcsIDQ3LCAwLjE1KTtcclxuLy8gQ3VycmVudGx5IHVzZWQgb24gdGhlIGNvbnRlbnQtaW1hZ2UgdG8gc3RvcCBmdWxsIGJsZWVkIGltYWdlcyBiZWNvbWluZyB0b28gaHVnZS5cclxuJGdsb2JhbC1tYXgtYmxlZWQtc2l6ZTogMTAwMHB4O1xyXG5cclxuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xyXG5cclxuLy8gMi4gQnJlYWtwb2ludHNcclxuLy8gLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRicmVha3BvaW50czogKFxyXG4gIHNtYWxsOiAwLFxyXG4gIG1lZGl1bTogNjQwcHgsXHJcbiAgbGFyZ2U6IDEwMjRweCxcclxuICB4bGFyZ2U6IDEyMDBweCxcclxuICB4eGxhcmdlOiAxNDQwcHgsXHJcbik7XHJcbiRwcmludC1icmVha3BvaW50OiBsYXJnZTtcclxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSB4bGFyZ2UgeHhsYXJnZSk7XHJcblxyXG4vLyAzLiBUaGUgR3JpZFxyXG4vLyAtLS0tLS0tLS0tLVxyXG5cclxuJGdyaWQtcm93LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xyXG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyO1xyXG4kZ3JpZC1jb2x1bW4tZ3V0dGVyOiAoXHJcbiAgc21hbGw6IDIwcHgsXHJcbiAgbWVkaXVtOiAzMHB4LFxyXG4pO1xyXG4kZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZTogdHJ1ZTtcclxuJGdyaWQtY29sdW1uLWFsaWFzOiBcImNvbHVtbnNcIjtcclxuJGJsb2NrLWdyaWQtbWF4OiA4O1xyXG5cclxuLy8gNC4gQmFzZSBUeXBvZ3JhcGh5XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGhlYWRlci1mb250LWZhbWlseTogXCJHbGFjaWFsQm9sZFwiLCAkYm9keS1mb250LWZhbWlseTtcclxuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xyXG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbDtcclxuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcclxuJGhlYWRlci1jb2xvcjogJGRhcmstZ3JlZW47XHJcbiRoZWFkZXItbGluZWhlaWdodDogMS40O1xyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDJyZW07XHJcbiRoZWFkZXItc3R5bGVzOiAoXHJcbiAgc21hbGw6IChcclxuICAgIFwiaDFcIjogKFxyXG4gICAgICBcImZvbnQtc2l6ZVwiOiAyNCxcclxuICAgICksXHJcbiAgICBcImgyXCI6IChcclxuICAgICAgXCJmb250LXNpemVcIjogMjAsXHJcbiAgICApLFxyXG4gICAgXCJoM1wiOiAoXHJcbiAgICAgIFwiZm9udC1zaXplXCI6IDE5LFxyXG4gICAgKSxcclxuICAgIFwiaDRcIjogKFxyXG4gICAgICBcImZvbnQtc2l6ZVwiOiAxOCxcclxuICAgICksXHJcbiAgICBcImg1XCI6IChcclxuICAgICAgXCJmb250LXNpemVcIjogMTcsXHJcbiAgICApLFxyXG4gICAgXCJoNlwiOiAoXHJcbiAgICAgIFwiZm9udC1zaXplXCI6IDE2LFxyXG4gICAgKSxcclxuICApLFxyXG4gIG1lZGl1bTogKFxyXG4gICAgXCJoMVwiOiAoXHJcbiAgICAgIFwiZm9udC1zaXplXCI6IDQ4LFxyXG4gICAgKSxcclxuICAgIFwiaDJcIjogKFxyXG4gICAgICBcImZvbnQtc2l6ZVwiOiA0MCxcclxuICAgICksXHJcbiAgICBcImgzXCI6IChcclxuICAgICAgXCJmb250LXNpemVcIjogMzEsXHJcbiAgICApLFxyXG4gICAgXCJoNFwiOiAoXHJcbiAgICAgIFwiZm9udC1zaXplXCI6IDI1LFxyXG4gICAgKSxcclxuICAgIFwiaDVcIjogKFxyXG4gICAgICBcImZvbnQtc2l6ZVwiOiAyMCxcclxuICAgICksXHJcbiAgICBcImg2XCI6IChcclxuICAgICAgXCJmb250LXNpemVcIjogMTYsXHJcbiAgICApLFxyXG4gICksXHJcbik7XHJcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlO1xyXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheTtcclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjg7XHJcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xyXG4kY29kZS1jb2xvcjogJGJsYWNrO1xyXG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcclxuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XHJcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpO1xyXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XHJcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZTtcclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xyXG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xyXG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0bztcclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XHJcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XHJcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbTtcclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xyXG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW07XHJcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5O1xyXG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpO1xyXG4kYmxvY2txdW90ZS1ib3JkZXI6IDA7XHJcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xyXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheTtcclxuJGNpdGUtcHNldWRvLWNvbnRlbnQ6IFwiXCI7XHJcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcclxuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrO1xyXG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKTtcclxuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrO1xyXG5cclxuLy8gNS4gVHlwb2dyYXBoeSBIZWxwZXJzXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLy8gJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjU7XHJcbiRsZWFkLWxpbmVoZWlnaHQ6IDEuNjtcclxuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XHJcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXk7XHJcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcclxuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW07XHJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbTtcclxuXHJcbi8vIDYuIEFiaWRlXHJcbi8vIC0tLS0tLS0tXHJcblxyXG4kYWJpZGUtaW5wdXRzOiB0cnVlO1xyXG4kYWJpZGUtbGFiZWxzOiB0cnVlO1xyXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xyXG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xyXG4kaW5wdXQtZXJyb3ItY29sb3I6IGdldC1jb2xvcihhbGVydCk7XHJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcclxuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xyXG5cclxuLy8gNy4gQWNjb3JkaW9uXHJcbi8vIC0tLS0tLS0tLS0tLVxyXG5cclxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlO1xyXG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xyXG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XHJcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcclxuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcclxuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xyXG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XHJcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtO1xyXG5cclxuLy8gOC4gQWNjb3JkaW9uIE1lbnVcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRhY2NvcmRpb25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xyXG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nO1xyXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWU7XHJcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkd2hpdGU7XHJcbiRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDogbnVsbDtcclxuJGFjY29yZGlvbm1lbnUtYm9yZGVyOiBudWxsO1xyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kOiBudWxsO1xyXG4kYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDogNDBweDtcclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcclxuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xyXG5cclxuLy8gOS4gQmFkZ2VcclxuLy8gLS0tLS0tLS1cclxuXHJcbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcclxuJGJhZGdlLWNvbG9yOiAkd2hpdGU7XHJcbiRiYWRnZS1jb2xvci1hbHQ6ICRibGFjaztcclxuJGJhZGdlLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XHJcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbTtcclxuJGJhZGdlLW1pbndpZHRoOiAyLjFlbTtcclxuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtO1xyXG5cclxuLy8gMTAuIEJyZWFkY3J1bWJzXHJcbi8vIC0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XHJcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjaztcclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcclxuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IHRydWU7XHJcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogdHJ1ZTtcclxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW06IFwiL1wiO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGw6IFwiXFxcXFwiO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRtZWRpdW0tZ3JheTtcclxuXHJcbi8vIDEyLiBCdXR0b24gR3JvdXBcclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbTtcclxuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweDtcclxuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiBcIi5idXR0b25cIjtcclxuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDY7XHJcbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZTtcclxuXHJcbi8vIDEzLiBDYWxsb3V0XHJcbi8vIC0tLS0tLS0tLS0tXHJcblxyXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlO1xyXG4kY2FsbG91dC1ib3JkZXI6IDBweDtcclxuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwO1xyXG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtO1xyXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZDtcclxuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJGNhbGxvdXQtbGluay10aW50OiAzMCU7XHJcblxyXG4vLyAxNC4gQ2FyZFxyXG4vLyAtLS0tLS0tLVxyXG5cclxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kY2FyZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4kY2FyZC1kaXZpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4kY2FyZC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcclxuJGNhcmQtc2hhZG93OiBub25lO1xyXG4kY2FyZC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJGNhcmQtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xyXG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcclxuXHJcbi8vIDE1LiBDbG9zZSBCdXR0b25cclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3A7XHJcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxyXG4gIHNtYWxsOiAwLjY2cmVtLFxyXG4gIG1lZGl1bTogMXJlbSxcclxuKTtcclxuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogKFxyXG4gIHNtYWxsOiAwLjMzZW0sXHJcbiAgbWVkaXVtOiAwLjVyZW0sXHJcbik7XHJcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXHJcbiAgc21hbGw6IDEuNWVtLFxyXG4gIG1lZGl1bTogMmVtLFxyXG4pO1xyXG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMTtcclxuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5O1xyXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjaztcclxuXHJcbi8vIDE2LiBEcmlsbGRvd25cclxuLy8gLS0tLS0tLS0tLS0tLVxyXG5cclxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyO1xyXG4kZHJpbGxkb3duLWFycm93czogdHJ1ZTtcclxuJGRyaWxsZG93bi1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcclxuJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luOiAwO1xyXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZztcclxuJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJGRyaWxsZG93bi1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4O1xyXG5cclxuLy8gMTcuIERyb3Bkb3duXHJcbi8vIC0tLS0tLS0tLS0tLVxyXG5cclxuJGRyb3Bkb3duLXBhZGRpbmc6IDFyZW07XHJcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xyXG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xyXG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtO1xyXG4kZHJvcGRvd24td2lkdGg6IDMwMHB4O1xyXG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJGRyb3Bkb3duLXNpemVzOiAoXHJcbiAgdGlueTogMTAwcHgsXHJcbiAgc21hbGw6IDIwMHB4LFxyXG4gIGxhcmdlOiA0MDBweCxcclxuKTtcclxuXHJcbi8vIDE4LiBEcm9wZG93biBNZW51XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZTtcclxuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvcjtcclxuJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplOiA2cHg7XHJcbiRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZzogMS41cmVtO1xyXG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHg7XHJcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJGRhcmstbmF2LWNvbG9yO1xyXG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kO1xyXG4kZHJvcGRvd25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xyXG4kZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW46IDA7XHJcbiRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmc7XHJcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xyXG4kZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJGxpZ2h0LWdyYXk7XHJcbiRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IHRyYW5zcGFyZW50O1xyXG5cclxuLy8gMTkuIEZsZXhib3ggVXRpbGl0aWVzXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50OiA2O1xyXG4kZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzOiB0cnVlO1xyXG5cclxuLy8gMjAuIEZvcm1zXHJcbi8vIC0tLS0tLS0tLVxyXG5cclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCk7XHJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKTtcclxuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMjIpO1xyXG4kaGVscHRleHQtY29sb3I6ICRibGFjaztcclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xyXG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljO1xyXG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XHJcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XHJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xyXG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW07XHJcbiRmb3JtLWxhYmVsLWNvbG9yOiAkbWVkaXVtLWdyYXk7XHJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xyXG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xyXG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44O1xyXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheTtcclxuJHNlbGVjdC1yYWRpdXM6IGNhbGMoI3skZ2xvYmFsLXJhZGl1c30gLyA0KTtcclxuJGlucHV0LWNvbG9yOiAkYmxhY2s7XHJcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJGJsYWNrO1xyXG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KTtcclxuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XHJcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xyXG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlO1xyXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXk7XHJcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXk7XHJcbiRpbnB1dC1wYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMjtcclxuJGlucHV0LXNoYWRvdzogMDtcclxuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXk7XHJcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkO1xyXG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XHJcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWU7XHJcbiRpbnB1dC1yYWRpdXM6IGNhbGMoI3skZ2xvYmFsLXJhZGl1c30gLyA0KTtcclxuJGZvcm0tYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcblxyXG4vLyAyMS4gTGFiZWxcclxuLy8gLS0tLS0tLS0tXHJcblxyXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XHJcbiRsYWJlbC1jb2xvcjogJHdoaXRlO1xyXG4kbGFiZWwtY29sb3ItYWx0OiAkYmxhY2s7XHJcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xyXG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW07XHJcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbTtcclxuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcblxyXG4vLyAyMi4gTWVkaWEgT2JqZWN0XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcclxuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xyXG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJTtcclxuXHJcbi8vIDIzLiBNZW51XHJcbi8vIC0tLS0tLS0tXHJcblxyXG4kbWVudS1tYXJnaW46IDA7XHJcbiRtZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luO1xyXG4kbWVudS1pdGVtcy1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcclxuJG1lbnUtc2ltcGxlLW1hcmdpbjogMXJlbTtcclxuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZTtcclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpO1xyXG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW07XHJcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XHJcbiRtZW51LXN0YXRlLWJhY2stY29tcGF0OiB0cnVlO1xyXG4kbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdDogdHJ1ZTtcclxuJG1lbnUtaWNvbnMtYmFjay1jb21wYXQ6IHRydWU7XHJcblxyXG4vLyAyNC4gTWV0ZXJcclxuLy8gLS0tLS0tLS0tXHJcblxyXG4kbWV0ZXItaGVpZ2h0OiAxcmVtO1xyXG4kbWV0ZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcclxuJG1ldGVyLWZpbGwtZ29vZDogJHN1Y2Nlc3MtY29sb3I7XHJcbiRtZXRlci1maWxsLW1lZGl1bTogJHdhcm5pbmctY29sb3I7XHJcbiRtZXRlci1maWxsLWJhZDogJGFsZXJ0LWNvbG9yO1xyXG5cclxuLy8gMjUuIE9mZi1jYW52YXNcclxuLy8gLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRvZmZjYW52YXMtc2l6ZXM6IChcclxuICBzbWFsbDogMTAwdncsXHJcbik7XHJcbiRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXM6IChcclxuICBzbWFsbDogMjUwcHgsXHJcbik7XHJcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGRhcmstbmF2LWNvbG9yO1xyXG4kb2ZmY2FudmFzLXNoYWRvdzogMDtcclxuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZTogMjBweDtcclxuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3I6IDA7XHJcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExO1xyXG4kb2ZmY2FudmFzLXB1c2gtemluZGV4OiAxMjtcclxuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTM7XHJcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTI7XHJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXM7XHJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2U7XHJcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlO1xyXG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpO1xyXG4kbWFpbmNvbnRlbnQtY2xhc3M6IFwib2ZmLWNhbnZhcy1jb250ZW50XCI7XHJcblxyXG4vLyAyNi4gT3JiaXRcclxuLy8gLS0tLS0tLS0tXHJcblxyXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTogJGRhcmstZ3JheTtcclxuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtO1xyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtO1xyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbTtcclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW07XHJcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xyXG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtO1xyXG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KTtcclxuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbTtcclxuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMDtcclxuXHJcbi8vIDI3LiBQYWdpbmF0aW9uXHJcbi8vIC0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE2KTtcclxuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjaztcclxuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKTtcclxuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxMCk7XHJcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XHJcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiB0cmFuc3BhcmVudDtcclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiAkYm9keS1mb250LWNvbG9yO1xyXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XHJcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2s7XHJcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7XHJcbiRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW06IGZhbHNlO1xyXG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWU7XHJcblxyXG4vLyAyOC4gUHJvZ3Jlc3MgQmFyXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm9ncmVzcy1oZWlnaHQ6IDFyZW07XHJcbiRwcm9ncmVzcy1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XHJcbiRwcm9ncmVzcy1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcclxuJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4kcHJvZ3Jlc3MtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuXHJcbi8vIDI5LiBQcm90b3R5cGUgQXJyb3dcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb25zOiAoZG93biwgdXAsIHJpZ2h0LCBsZWZ0KTtcclxuJHByb3RvdHlwZS1hcnJvdy1zaXplOiAwLjQzNzVyZW07XHJcbiRwcm90b3R5cGUtYXJyb3ctY29sb3I6ICRibGFjaztcclxuXHJcbi8vIDMwLiBQcm90b3R5cGUgQm9yZGVyLUJveFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtYm9yZGVyLWJveC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XHJcblxyXG4vLyAzMS4gUHJvdG90eXBlIEJvcmRlci1Ob25lXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtYm9yZGVyLW5vbmUtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xyXG5cclxuLy8gMzIuIFByb3RvdHlwZSBCb3JkZXJlZFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuJHByb3RvdHlwZS1ib3JkZXItd2lkdGg6IHJlbS1jYWxjKDEpO1xyXG4kcHJvdG90eXBlLWJvcmRlci10eXBlOiBzb2xpZDtcclxuJHByb3RvdHlwZS1ib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcclxuXHJcbi8vIDMzLiBQcm90b3R5cGUgRGlzcGxheVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtZGlzcGxheS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XHJcbiRwcm90b3R5cGUtZGlzcGxheTogKGlubGluZSwgaW5saW5lLWJsb2NrLCBibG9jaywgdGFibGUsIHRhYmxlLWNlbGwpO1xyXG5cclxuLy8gMzQuIFByb3RvdHlwZSBGb250LVN0eWxpbmdcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtZm9udC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XHJcbiRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoNCk7XHJcbiRwcm90b3R5cGUtZm9udC1ub3JtYWw6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcclxuJHByb3RvdHlwZS1mb250LWJvbGQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcblxyXG4vLyAzNS4gUHJvdG90eXBlIExpc3QtU3R5bGUtVHlwZVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS1saXN0LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZDogKGRpc2MsIGNpcmNsZSwgc3F1YXJlKTtcclxuJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQ6IChcclxuICBkZWNpbWFsLFxyXG4gIGxvd2VyLWFscGhhLFxyXG4gIGxvd2VyLWxhdGluLFxyXG4gIGxvd2VyLXJvbWFuLFxyXG4gIHVwcGVyLWFscGhhLFxyXG4gIHVwcGVyLWxhdGluLFxyXG4gIHVwcGVyLXJvbWFuXHJcbik7XHJcblxyXG4vLyAzNi4gUHJvdG90eXBlIE92ZXJmbG93XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtb3ZlcmZsb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xyXG4kcHJvdG90eXBlLW92ZXJmbG93OiAodmlzaWJsZSwgaGlkZGVuLCBzY3JvbGwpO1xyXG5cclxuLy8gMzcuIFByb3RvdHlwZSBQb3NpdGlvblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvdG90eXBlLXBvc2l0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuJHByb3RvdHlwZS1wb3NpdGlvbjogKHN0YXRpYywgcmVsYXRpdmUsIGFic29sdXRlLCBmaXhlZCk7XHJcbiRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleDogOTc1O1xyXG5cclxuLy8gMzguIFByb3RvdHlwZSBSb3VuZGVkXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS1yb3VuZGVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzOiByZW0tY2FsYygzKTtcclxuXHJcbi8vIDM5LiBQcm90b3R5cGUgU2VwYXJhdG9yXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvdG90eXBlLXNlcGFyYXRvci1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XHJcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWFsaWduOiBjZW50ZXI7XHJcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWhlaWdodDogcmVtLWNhbGMoMik7XHJcbiRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoOiAzcmVtO1xyXG4kcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW47XHJcblxyXG4vLyA0MC4gUHJvdG90eXBlIFNoYWRvd1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xyXG4kcHJvdG90eXBlLWJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNiksXHJcbiAgMCAycHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XHJcblxyXG4vLyA0MS4gUHJvdG90eXBlIFNpemluZ1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS1zaXppbmctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xyXG4kcHJvdG90eXBlLXNpemluZzogKHdpZHRoLCBoZWlnaHQpO1xyXG4kcHJvdG90eXBlLXNpemVzOiAoXHJcbiAgMjU6IDI1JSxcclxuICA1MDogNTAlLFxyXG4gIDc1OiA3NSUsXHJcbiAgMTAwOiAxMDAlLFxyXG4pO1xyXG5cclxuLy8gNDIuIFByb3RvdHlwZSBTcGFjaW5nXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS1zcGFjaW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuJHByb3RvdHlwZS1zcGFjZXJzLWNvdW50OiAzO1xyXG5cclxuLy8gNDMuIFByb3RvdHlwZSBUZXh0LURlY29yYXRpb25cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtZGVjb3JhdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XHJcbiRwcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uOiAob3ZlcmxpbmUsIHVuZGVybGluZSwgbGluZS10aHJvdWdoKTtcclxuXHJcbi8vIDQ0LiBQcm90b3R5cGUgVGV4dC1UcmFuc2Zvcm1hdGlvblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtdHJhbnNmb3JtYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xyXG4kcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb246IChsb3dlcmNhc2UsIHVwcGVyY2FzZSwgY2FwaXRhbGl6ZSk7XHJcblxyXG4vLyA0NS4gUHJvdG90eXBlIFRleHQtVXRpbGl0aWVzXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtdXRpbGl0aWVzLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuJHByb3RvdHlwZS10ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuXHJcbi8vIDQ2LiBSZXNwb25zaXZlIEVtYmVkXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XHJcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxyXG4gIGRlZmF1bHQ6IDQgYnkgMyxcclxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxyXG4pO1xyXG5cclxuLy8gNDcuIFJldmVhbFxyXG4vLyAtLS0tLS0tLS0tXHJcblxyXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJHJldmVhbC13aWR0aDogNjAwcHg7XHJcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xyXG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcclxuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJHJldmVhbC16aW5kZXg6IDEwMDU7XHJcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSk7XHJcblxyXG4vLyA0OC4gU2xpZGVyXHJcbi8vIC0tLS0tLS0tLS1cclxuXHJcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbTtcclxuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcclxuJHNsaWRlci1oZWlnaHQ6IDAuNXJlbTtcclxuJHNsaWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcclxuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcclxuJHNsaWRlci1oYW5kbGUtaGVpZ2h0OiAxLjRyZW07XHJcbiRzbGlkZXItaGFuZGxlLXdpZHRoOiAxLjRyZW07XHJcbiRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XHJcbiRzbGlkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuXHJcbi8vIDQ5LiBTd2l0Y2hcclxuLy8gLS0tLS0tLS0tLVxyXG5cclxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XHJcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yO1xyXG4kc3dpdGNoLWhlaWdodDogMnJlbTtcclxuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtO1xyXG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbTtcclxuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbTtcclxuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW47XHJcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtO1xyXG4kc3dpdGNoLXBhZGRsZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XHJcblxyXG4vLyA1MC4gVGFibGVcclxuLy8gLS0tLS0tLS0tXHJcblxyXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kdGFibGUtY29sb3Itc2NhbGU6IDMlO1xyXG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XHJcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKTtcclxuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcclxuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xyXG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKFxyXG4gICR0YWJsZS1iYWNrZ3JvdW5kLFxyXG4gICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZVxyXG4pO1xyXG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZTtcclxuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XHJcbiR0YWJsZS1zdHJpcGU6IGV2ZW47XHJcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4kdGFibGUtaGVhZC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtaGVhZC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xyXG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcclxuJHRhYmxlLWZvb3Qtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWZvb3QtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZTtcclxuJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bTtcclxuXHJcbi8vIDUxLiBUYWJzXHJcbi8vIC0tLS0tLS0tXHJcblxyXG4kdGFiLW1hcmdpbjogMDtcclxuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheTtcclxuJHRhYi1hY3RpdmUtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMik7XHJcbiR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkd2hpdGU7XHJcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcclxuJHRhYi1leHBhbmQtbWF4OiA2O1xyXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kdGFiLWNvbnRlbnQtYm9yZGVyOiAkbGlnaHQtZ3JheTtcclxuJHRhYi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcclxuXHJcbi8vIDUyLiBUaHVtYm5haWxcclxuLy8gLS0tLS0tLS0tLS0tLVxyXG5cclxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGU7XHJcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMik7XHJcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpO1xyXG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7XHJcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuXHJcbi8vIDUzLiBUaXRsZSBCYXJcclxuLy8gLS0tLS0tLS0tLS0tLVxyXG5cclxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICRkYXJrLW5hdi1jb2xvcjtcclxuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGU7XHJcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW07XHJcbiR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0OiBib2xkO1xyXG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlO1xyXG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5O1xyXG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xyXG5cclxuLy8gNTQuIFRvb2x0aXBcclxuLy8gLS0tLS0tLS0tLS1cclxuXHJcbiRoYXMtdGlwLWN1cnNvcjogaGVscDtcclxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcbiRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggJGRhcmstZ3JheTtcclxuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xyXG4kdG9vbHRpcC1jb2xvcjogJHdoaXRlO1xyXG4kdG9vbHRpcC1wYWRkaW5nOiAwLjc1cmVtO1xyXG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtO1xyXG4kdG9vbHRpcC1mb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XHJcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbTtcclxuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XHJcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcblxyXG4vLyA1NS4gVG9wIEJhclxyXG4vLyAtLS0tLS0tLS0tLVxyXG5cclxuJHRvcGJhci1wYWRkaW5nOiAwO1xyXG4kdG9wYmFyLWJhY2tncm91bmQ6ICRkYXJrLW5hdi1jb2xvcjtcclxuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZDtcclxuJHRvcGJhci10aXRsZS1zcGFjaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMDtcclxuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHg7XHJcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW07XHJcblxyXG4vLyA1Ni4gWHkgR3JpZFxyXG4vLyAtLS0tLS0tLS0tLVxyXG5cclxuJHh5LWdyaWQ6IHRydWU7XHJcbiRncmlkLWNvbnRhaW5lcjogJGdsb2JhbC13aWR0aDtcclxuJGdyaWQtY29sdW1uczogMTI7XHJcbiRncmlkLW1hcmdpbi1ndXR0ZXJzOiAoXHJcbiAgc21hbGw6IDIwcHgsXHJcbiAgbWVkaXVtOiAzMHB4LFxyXG4pO1xyXG4kZ3JpZC1wYWRkaW5nLWd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzO1xyXG4kZ3JpZC1jb250YWluZXItcGFkZGluZzogJGdyaWQtcGFkZGluZy1ndXR0ZXJzO1xyXG4kZ3JpZC1jb250YWluZXItbWF4OiAkZ2xvYmFsLXdpZHRoO1xyXG4keHktYmxvY2stZ3JpZC1tYXg6IDg7XHJcbiIsIi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuICogVmVyc2lvbiA2LjUuMVxuICogZm91bmRhdGlvbi56dXJiLmNvbVxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cblxuLy8gRGVwZW5kZW5jaWVzXG5AaW1wb3J0ICd2ZW5kb3Ivbm9ybWFsaXplJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy9taXNzaW5nLWRlcGVuZGVuY2llcyc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvdHJ1ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9jb250YWluJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3B1cmdlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlbW92ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZXBsYWNlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3RvLWxpc3QnO1xuXG4vLyAtLS0gU2V0dGluZ3MgLS0tXG4vLyBpbXBvcnQgeW91ciBvd24gYHNldHRpbmdzYCBoZXJlIG9yXG4vLyBpbXBvcnQgYW5kIG1vZGlmeSB0aGUgZGVmYXVsdCBzZXR0aW5ncyB0aHJvdWdoXG4vLyBAaW1wb3J0ICdzZXR0aW5ncy9zZXR0aW5ncyc7XG5cbi8vIC0tLSBDb21wb25lbnRzIC0tLVxuLy8gVXRpbGl0aWVzXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuLy8gR2xvYmFsIHN0eWxlc1xuQGltcG9ydCAnZ2xvYmFsJztcbkBpbXBvcnQgJ2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHkvdHlwb2dyYXBoeSc7XG5cbi8vIEdyaWRzXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xuQGltcG9ydCAneHktZ3JpZC94eS1ncmlkJztcbi8vIEdlbmVyaWMgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jbG9zZS1idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYWJlbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Byb2dyZXNzLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NsaWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N3aXRjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlJztcbi8vIEJhc2ljIGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UnO1xuQGltcG9ydCAnY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhbGxvdXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYXJkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wYWdpbmF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbHRpcCc7XG5cbi8vIENvbnRhaW5lcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVkaWEtb2JqZWN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb3JiaXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXNwb25zaXZlLWVtYmVkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFicyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RodW1ibmFpbCc7XG4vLyBNZW51LWJhc2VkIGNvbnRhaW5lcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUtaWNvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJpbGxkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24tbWVudSc7XG5cbi8vIExheW91dCBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL29mZi1jYW52YXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXZlYWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zdGlja3knO1xuQGltcG9ydCAnY29tcG9uZW50cy90aXRsZS1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90b3AtYmFyJztcblxuLy8gSGVscGVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9mbG9hdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZsZXgnO1xuQGltcG9ydCAnY29tcG9uZW50cy92aXNpYmlsaXR5JztcbkBpbXBvcnQgJ3Byb3RvdHlwZS9wcm90b3R5cGUnO1xuXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWV2ZXJ5dGhpbmcoXG4gICRmbGV4OiB0cnVlLFxuICAkcHJvdG90eXBlOiBmYWxzZVxuKSB7XG4gIEBpZiAkZmxleCB7XG4gICAgJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICAvLyBHbG9iYWwgc3R5bGVzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuXG4gIC8vIEdyaWRzXG4gIEBpZiBub3QgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICR4eS1ncmlkIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgICB9XG4gIH1cblxuICAvLyBHZW5lcmljIGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbiAgLy8gQmFzaWMgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG5cbiAgLy8gQ29udGFpbmVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbiAgLy8gTWVudS1iYXNlZCBjb250YWluZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcblxuICAvLyBMYXlvdXQgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcblxuICAvLyBIZWxwZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcztcbiAgQGlmICRmbGV4IHsgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7IH1cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG4gIEBpZiAkcHJvdG90eXBlIHsgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtY2xhc3NlczsgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWtwb2ludHNcbi8vLy9cblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcy5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGFyZ2VzdCBuYW1lZCBicmVha3BvaW50IGluIHdoaWNoIHRvIGluY2x1ZGUgcHJpbnQgYXMgYSBtZWRpYSB0eXBlXG4vLy8gQHR5cGUgS2V5d29yZFxuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlICFkZWZhdWx0O1xuXG4kLXpmLXplcm8tYnJlYWtwb2ludDogc21hbGwgIWRlZmF1bHQ7XG5cbiQtemYtYnJlYWtwb2ludHMta2V5czogbWFwLXRvLWxpc3QoJGJyZWFrcG9pbnRzLCAna2V5cycpO1xuXG5AaWYgbnRoKG1hcC12YWx1ZXMoJGJyZWFrcG9pbnRzKSwgMSkgIT0gMCB7XG4gIEBlcnJvciAnVGhlIGZpcnN0IGtleSBpbiB0aGUgJGJyZWFrcG9pbnRzIG1hcCBtdXN0IGhhdmUgYSB2YWx1ZSBvZiBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogMDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIEV2ZW50dWFsIG91dHB1dFxuICAkc3RyOiAnJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcbiAgICBAcmV0dXJuICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJztcbiAgfVxuXG4gIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgICAgICAkYnAtbWF4OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgfVxuXG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgJG5hbWVkOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyICRicmVha3BvaW50cyBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udmVydCBhbnkgcGl4ZWwsIHJlbSwgb3IgdW5pdGxlc3MgdmFsdWUgdG8gZW1cbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcbiAgLy8gTWF4IHZhbHVlIGlzIDAuMnB4IHVuZGVyIHRoZSBuZXh0IGJyZWFrcG9pbnQgKDAuMDIgLyAxNiA9IDAuMDAxMjUpLlxuICAvLyBVc2UgYSBwcmVjaXNpb24gdW5kZXIgMXB4IHRvIHN1cHBvcnQgYnJvd3NlciB6b29tLCBidXQgbm90IHRvIGxvdyB0byBhdm9pZCByb3VuZGluZy5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzExMzEzXG4gIEBpZiAkYnAtbWF4IHtcbiAgICAkYnAtbWF4OiAtemYtYnAtdG8tZW0oJGJwLW1heCkgLSAuMDAxMjU7XG4gIH1cblxuICAvLyBDb25kaXRpb25zIHRvIHNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb25cbiAgLy8gLSBJdCdzIGEgbmFtZWQgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBkb3duXCIgb3IgXCIwIHVwXCJcbiAgLy8gLSBJdCdzIGEgbnVtZXJpYyBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIFwiICsgYW55dGhpbmdcbiAgQGlmICRicCA+IDBlbSBvciAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgLy8gYG9ubHlgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbikgYW5kIChtYXgtd2lkdGg6IG4pYFxuICAgIEBpZiAkZGlyID09ICdvbmx5JyB7XG4gICAgICAvLyBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gXCJvbmx5XCIgcmFuZ2VcbiAgICAgIEBpZiAkbmFtZWQgPT0gdHJ1ZSB7XG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWluLXdpZHRoXCIgaWYgdGhlIGZsb29yIGlzIGdyZWF0ZXIgdGhhbiAwXG4gICAgICAgIEBpZiAkYnAgPiAwZW0ge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG5cbiAgICAgICAgICAvLyBPbmx5IGFkZCBcImFuZFwiIHRvIHRoZSBtZWRpYSBxdWVyeSBpZiB0aGVyZSdzIGEgY2VpbGluZ1xuICAgICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICAgJHN0cjogJHN0ciArICcgYW5kICc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25seSB1c2UgXCJtYXgtd2lkdGhcIiBpZiB0aGVyZSdzIGEgY2VpbGluZ1xuICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JGJwLW1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gYG9ubHlgIHJhbmdlLic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYGRvd25gIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1heC13aWR0aDogbilgXG4gICAgQGVsc2UgaWYgJGRpciA9PSAnZG93bicge1xuICAgICAgJG1heDogaWYoJG5hbWVkLCAkYnAtbWF4LCAkYnApO1xuXG4gICAgICAvLyBTa2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uIGlmIGlucHV0IHZhbHVlIGlzIGV4YWN0bHkgXCIwIGRvd25cIixcbiAgICAgIC8vIHVubGVzcyB0aGUgZnVuY3Rpb24gd2FzIGNhbGxlZCBhcyBcInNtYWxsIGRvd25cIiwgaW4gd2hpY2ggY2FzZSBpdCdzIGp1c3QgXCJzbWFsbCBvbmx5XCJcbiAgICAgIEBpZiAkbmFtZWQgb3IgJGJwID4gMGVtIHtcbiAgICAgICAgQGlmICRtYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRtYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgdXBgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbilgXG4gICAgQGVsc2UgaWYgJGJwID4gMGVtIHtcbiAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gV3JhcHMgYSBtZWRpYSBxdWVyeSBhcm91bmQgdGhlIGNvbnRlbnQgeW91IHB1dCBpbnNpZGUgdGhlIG1peGluLiBUaGlzIG1peGluIGFjY2VwdHMgYSBudW1iZXIgb2YgdmFsdWVzOlxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcCwgYW5kIHVzZSBhIG1lZGlhIHF1ZXJ5IHRoZXJlLlxuLy8vICAtIElmIGEgcGl4ZWwgdmFsdWUgaXMgcGFzc2VkLCBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBlbSB2YWx1ZSB1c2luZyBgJGdsb2JhbC1mb250LXNpemVgIGFzIHRoZSBiYXNlLlxuLy8vICAtIElmIGEgcmVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHVuaXQgd2lsbCBiZSBjaGFuZ2VkIHRvIGVtLlxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vL1xuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlKSB7XG4gICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgJGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICR2YWx1ZSk7XG4gICRwYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHByaW50LWJyZWFrcG9pbnQpO1xuXG4gICRvbGQtemYtc2l6ZTogbnVsbDtcblxuICAvLyBNYWtlIGJyZWFrcG9pbnQgc2l6ZSBhdmFpbGFibGUgYXMgYSB2YXJpYWJsZVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICRvbGQtemYtc2l6ZTogJC16Zi1zaXplO1xuICB9XG4gICQtemYtc2l6ZTogbnRoKCR2YWx1ZSwgMSkgIWdsb2JhbDsgLy8gZ2V0IHRoZSBmaXJzdCB2YWx1ZSB0byBhY2NvdW50IGZvciBgb25seWAgYW5kIGBkb3duYCBrZXl3b3Jkc1xuXG4gIC8vIElmICRzdHIgaXMgc3RpbGwgYW4gZW1wdHkgc3RyaW5nLCBubyBtZWRpYSBxdWVyeSBpcyBuZWVkZWRcbiAgQGlmICRzdHIgPT0gJycge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcbiAgQGVsc2Uge1xuICAgIC8vIEZvciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHByaW50LWJyZWFrcG9pbnQsIGFkZCBwcmludCB0byB0aGUgbWVkaWEgdHlwZXNcbiAgICBAaWYgJGJwICE9IG51bGwgYW5kICRicCA8PSAkcGJwIHtcbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcbn1cblxuLy8vIENvbnZlcnRzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGxhc3QgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRrZXkpIHtcbiAgJGxpc3Q6ICgpO1xuICAkZm91bmRfa2V5OiBmYWxzZTtcblxuICBAZWFjaCAkbmFtZSBpbiAkLXpmLWJyZWFrcG9pbnRzLWtleXMge1xuICAgIEBpZiAoJG5hbWUgPT0gJGtleSkge1xuICAgICAgJGZvdW5kX2tleTogdHJ1ZTtcbiAgICB9XG4gICAgQGlmIG5vdCAkZm91bmRfa2V5IHtcbiAgICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRuYW1lKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgLSBhIG5hbWVkIG9yIG5vbi1uYW1lZCBicmVha3BvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgJGxhc3Q6ICQtemYtemVyby1icmVha3BvaW50O1xuICAkZm91bmQ6IGZhbHNlO1xuXG4gICR2YWx1ZTogdW5pdGxlc3MtY2FsYygkYnJlYWtwb2ludCwgMXB4KTtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgIEBpZiB1bml0bGVzcy1jYWxjKCR2YWwpID4gJHZhbHVlIHtcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRsYXN0OiAka2V5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxhc3Q7XG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0IHJlZ2FyZGxlc3Mgb2YgYCR2YWx1ZWAuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBkb2VzICpub3QqIGhhdmUgdGhlIGJyZWFrcG9pbnQsIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBpbiB0aGUgY29uZmlnIG1hcCBpcyByZXR1cm5lZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIFJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG4gIC8vIElmIHRoZSBnaXZlbiBtYXAgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdFxuICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkbWFwO1xuICB9XG5cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuJHNtYWxsLXVwOiAnJztcbiRzbWFsbC1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuJG1lZGl1bS11cDogJyc7XG4kbWVkaXVtLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcbiAgJG1lZGl1bS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0gb25seSl9Jyk7XG59XG5cbiRsYXJnZS11cDogJyc7XG4kbGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIGxhcmdlKSB7XG4gICRsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2UpfScpO1xuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XG59XG5cbiR4bGFyZ2UtdXA6ICcnO1xuJHhsYXJnZS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG4keHhsYXJnZS11cDogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcmV2ZWFsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdpZHRoIG9mIGEgbW9kYWwsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtd2lkdGg6IDYwMHB4ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXhpbXVtIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHotaW5kZXggZm9yIG1vZGFscy4gVGhlIG92ZXJsYXkgdXNlcyB0aGlzIHZhbHVlLCB3aGlsZSB0aGUgbW9kYWwgaXRzZWxmIHVzZXMgdGhpcyB2YWx1ZSBwbHVzIG9uZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtemluZGV4OiAxMDA1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBtb2RhbCBvdmVybGF5cy5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KSAhZGVmYXVsdDtcblxuXG4vLyBQbGFjZWhvbGRlciBzZWxlY3RvciBmb3IgbWVkaXVtLWFuZC11cCBtb2RhbHNcbi8vIFByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgd2hlbiBkZWZpbmluZyBtdWx0aXBsZSBSZXZlYWwgc2l6ZXNcbi8vIFRoaXMgc2hvdWxkIGJlIGluIHRoZSBzYW1lIGJyZWFrcG9pbnQgdGhlbiBgQG1peGluIHJldmVhbC1tb2RhbC13aWR0aGBcbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICVyZXZlYWwtY2VudGVyZWQge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbn1cblxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbW9kYWwgb3ZlcmxheS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgb3ZlcmxheS5cbkBtaXhpbiByZXZlYWwtb3ZlcmxheSgkYmFja2dyb3VuZDogJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQpIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4O1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXggKyAxO1xuICAvLyBXb3JrYXJvdW5kIGFuZHJvaWQgYnJvd3NlciB6LWluZGV4IGJ1Z1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHJldmVhbC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJHJldmVhbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyZXZlYWwtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZWFsLWJhY2tncm91bmQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gIC5jb2x1bW4ge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gIC8vIFN0cmlwIG1hcmdpbnMgZnJvbSB0aGUgbGFzdCBpdGVtIGluIHRoZSBtb2RhbFxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGp1c3RzIHRoZSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgbW9kYWwuIEdlbmVyYWxseSBhIHBlcmNlbnRhZ2UuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXgtd2lkdGggWyRyZXZlYWwtbWF4LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIG1vZGFsLlxuQG1peGluIHJldmVhbC1tb2RhbC13aWR0aChcbiAgJHdpZHRoOiAkcmV2ZWFsLXdpZHRoLFxuICAkbWF4LXdpZHRoOiAkcmV2ZWFsLW1heC13aWR0aFxuKSB7XG4gIC8vIEV4dGVuZHMgbXVzdCBiZSBtYWRlIG91dHNpZGUgb2YgYnJlYWtwb2ludHMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBuZXdlciBTYXNzIHZlcnNpb25zIChsaWJzYXNzIHYzLjUpXG4gIEBleHRlbmQgJXJldmVhbC1jZW50ZXJlZDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGZ1bGwtc2NyZWVuIG1vZGFsLCB3aGljaCBzdHJldGNoZXMgdGhlIGZ1bGwgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgd2luZG93LlxuQG1peGluIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuIHtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1yZXZlYWwge1xuXG4gIC8vLyBEaXNhYmxlcyB0aGUgc2Nyb2xsIHdoZW4gUmV2ZWFsIGlzIHNob3duIHRvIHByZXZlbnQgdGhlIGJhY2tncm91bmQgZnJvbSBzaGlmdGluZ1xuICBodG1sLmlzLXJldmVhbC1vcGVuIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgJi56Zi1oYXMtc2Nyb2xsIHtcbiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICB9XG5cbiAgICBib2R5IHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgLy8gT3ZlcmxheVxuICAucmV2ZWFsLW92ZXJsYXkge1xuICAgIEBpbmNsdWRlIHJldmVhbC1vdmVybGF5O1xuICB9XG5cbiAgLy8gTW9kYWwgY29udGFpbmVyXG4gIC5yZXZlYWwge1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlO1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgkcmV2ZWFsLXdpZHRoKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxMDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIFJlbW92ZSBwYWRkaW5nXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC8vIFNpemluZyBjbGFzc2VzXG4gICAgJi50aW55ICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgzMCUpOyB9XG4gICAgJi5zbWFsbCB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCg1MCUpOyB9XG4gICAgJi5sYXJnZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCg5MCUpOyB9XG5cbiAgICAvLyBGdWxsLXNjcmVlbiBtb2RlXG4gICAgJi5mdWxsIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuXG4gICAgJi53aXRob3V0LW92ZXJsYXkge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGZvdW5kYXRpb24tbm9ybWFsaXplKCkge1xuICAvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbiAgLy8gRG9jdW1lbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuXG4gIGh0bWwge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvLyAxXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG4gIH1cblxuICAvLyBTZWN0aW9uc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cblxuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gIC8vIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIG1hcmdpbjogMC42N2VtIDA7XG4gIH1cblxuICAvLyBHcm91cGluZyBjb250ZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAgLy8gMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG5cbiAgaHIge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvLyAxXG4gICAgaGVpZ2h0OiAwOyAvLyAxXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IC8vIDJcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cblxuICBwcmUge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMWVtOyAvLyAyXG4gIH1cblxuICAvLyBUZXh0LWxldmVsIHNlbWFudGljc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cblxuICBhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC8vIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gIC8vIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG5cbiAgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8vIDFcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLy8gMlxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLy8gMlxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cblxuICBiLFxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgY29kZSxcbiAga2JkLFxuICBzYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8vIDFcbiAgICBmb250LXNpemU6IDFlbTsgLy8gMlxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgLy8gUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gIC8vIGFsbCBicm93c2Vycy5cblxuICBzdWIsXG4gIHN1cCB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIHN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xuICB9XG5cbiAgc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbiAgfVxuXG4gIC8vIEVtYmVkZGVkIGNvbnRlbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuXG4gIGltZyB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICB9XG5cbiAgLy8gRm9ybXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMTAwJTsgLy8gMVxuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvLyAxXG4gICAgbWFyZ2luOiAwOyAvLyAyXG4gIH1cblxuICAvLyBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgLy8gMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cblxuICBidXR0b24sXG4gIGlucHV0IHsgLy8gMVxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gIC8vIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cblxuICBidXR0b24sXG4gIHNlbGVjdCB7IC8vIDFcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG5cbiAgYnV0dG9uLFxuICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgW3R5cGU9XCJyZXNldFwiXSxcbiAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cblxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG5cbiAgYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cblxuICBmaWVsZHNldCB7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAvLyAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gIC8vICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGxlZ2VuZCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIGNvbG9yOiBpbmhlcml0OyAvLyAyXG4gICAgZGlzcGxheTogdGFibGU7IC8vIDFcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIDFcbiAgICBwYWRkaW5nOiAwOyAvLyAzXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLy8gMVxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cblxuICBwcm9ncmVzcyB7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG5cbiAgdGV4dGFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gIC8vIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cblxuICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICBbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyAxXG4gICAgcGFkZGluZzogMDsgLy8gMlxuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuXG4gIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuXG4gIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gMVxuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvLyAyXG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG5cbiAgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gIC8vIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cblxuICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLy8gMVxuICAgIGZvbnQ6IGluaGVyaXQ7IC8vIDJcbiAgfVxuXG4gIC8vIEludGVyYWN0aXZlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cblxuICBkZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cblxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIH1cblxuICAvLyBNaXNjXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuXG4gIHRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG5cbiAgW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vLyBAdHlwZSBNYXBcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwYWRkaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcG9zaXRpb25pbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcG9zaXRpb246IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIENhbiBiZSBvdmVyd3JpdHRlbiBhdCBpbmRpdmlkdWFsIG1lbnUgY29tcG9uZW50IGxldmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gTmVzdGVkIG1hcmdpbiBmb3Igc3VibWVudS5cbiRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIENTUy4gQ2FuIGJlIGVpdGhlciBgbHRyYCBvciBgcnRsYC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggZm9yIGNvbXBvbmVudHMgdGhhdCBzdXBwb3J0IGl0LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZWQgcmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcHJvdG90eXBlcyBpZiBhcHBsaWNhYmxlXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQnV0dG9uIGN1cnNvcidzIHZhbHVlLCBgYXV0b2AgYnkgZGVmYXVsdFxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtYnV0dG9uLWN1cnNvcjogYXV0byAhZGVmYXVsdDtcblxuQGlmIG5vdCBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gIEBlcnJvciAnSW4gJGZvdW5kYXRpb24tcGFsZXR0ZSwgeW91IG11c3QgaGF2ZSBhIGNvbG9yIG5hbWVkIFwicHJpbWFyeVwiLic7XG59XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxuJGdsb2JhbC1sZWZ0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgcmlnaHQsIGxlZnQpO1xuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGUgdGhhdCBjb250YWlucyB0aGUgZmxleCBqdXN0aWZ5aW5nIG9wdGlvbnNcbiQtemYtZmxleC1qdXN0aWZ5OiAtemYtZmxleC1qdXN0aWZ5KCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24pO1xuXG4vLy8gR2xvYmFsIHRvbGVyYW5jZSBmb3IgY29sb3IgcGljayBjb250cmFzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2U6IDAgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciBjb2xvcnNcbkBpbmNsdWRlIGFkZC1mb3VuZGF0aW9uLWNvbG9ycztcblxuQG1peGluIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcyB7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbm9ybWFsaXplO1xuXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuICAuZm91bmRhdGlvbi1tcSB7XG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xuICB9XG5cbiAgaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6ICRnbG9iYWwtYnV0dG9uLWN1cnNvcjtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIE1ha2UgcmVzZXQgaW5oZXJpdCBmb250LWZhbWlseSBpbnN0ZWFkIG9mIHNldHRpbmdzIHNhbnMtc2VyaWZcbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGFuIGlubmVyIGJveC1zaGFkb3cgZm9yIG9ubHkgb25lIHNpZGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpZGUgLSBTaWRlIHRoZSBzaGFkb3cgaXMgc3VwcG9zZWQgdG8gYXBwZWFyLiBDYW4gYmUgYHRvcGAsIGBsZWZ0YCwgYHJpZ2h0YCBvciBgYm90dG9tYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgLSBXaWR0aCBmb3IgdGhlIHRhcmdldCBzaWRlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIG9mIHRoZSBzaGFkb3cuXG5AbWl4aW4gaW5uZXItc2lkZS1zaGFkb3coXG4gICRzaWRlOiBib3R0b20sXG4gICRzaXplOiAyMHB4LFxuICAkY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KVxuKSB7XG5cbiAgJGhlbHBlcjogcm91bmQoJHNpemUgKiAwLjY1KTtcblxuICBAaWYgKCRzaWRlID09IHRvcCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBsZWZ0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IHJpZ2h0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgKC0xKSokaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gYm90dG9tKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAoLTEpKiRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcblxuICBib3JkZXI6IGluc2V0ICR0cmlhbmdsZS1zaXplO1xuXG4gIGNvbnRlbnQ6ICcnO1xuXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBkb3duKSB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdXApIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgbWVudSBpY29uIHdpdGggYSBzZXQgd2lkdGgsIGhlaWdodCwgbnVtYmVyIG9mIGJhcnMsIGFuZCBjb2xvcnMuIFRoZSBtaXhpbiB1c2VzIHRoZSBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgdGhlIGJhcnMgdG8gZGV0ZXJtaW5lIHNwYWNpbmcuIDxkaXYgY2xhc3M9XCJkb2NzLWV4YW1wbGUtYnVyZ2VyXCI+PC9kaXY+XG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvci1ob3ZlciBbJGRhcmstZ3JheV0gLSBDb2xvciB0byB1c2Ugd2hlbiB0aGUgaWNvbiBpcyBob3ZlcmVkIG92ZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMjBweF0gLSBXaWR0aCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMTZweF0gLSBIZWlnaHQgb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWzJweF0gLSBIZWlnaHQgb2YgaW5kaXZpZHVhbCBiYXJzIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFycyBbM10gLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cbkBtaXhpbiBoYW1idXJnZXIoXG4gICRjb2xvcjogJGJsYWNrLFxuICAkY29sb3ItaG92ZXI6ICRkYXJrLWdyYXksXG4gICR3aWR0aDogMjBweCxcbiAgJGhlaWdodDogMTZweCxcbiAgJHdlaWdodDogMnB4LFxuICAkYmFyczogM1xuKSB7XG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxuICAkc2hhZG93OiAoKTtcbiAgJGhvdmVyLXNoYWRvdzogKCk7XG5cbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXG4gICRzcGFjaW5nOiAoJGhlaWdodCAtICgkd2VpZ2h0ICogJGJhcnMpKSAvICgkYmFycyAtIDEpO1xuXG4gIEBpZiB1bml0KCRzcGFjaW5nKSA9PSAncHgnIHtcbiAgICAkc3BhY2luZzogZmxvb3IoJHNwYWNpbmcpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLCBjb21tYSk7XG4gIH1cblxuICAvLyBJY29uIGNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gSWNvbiBiYXJzXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgQGlmICRjb2xvci1ob3ZlciB7XG4gICAgLy8gR2VuZXJhdGUgQ1NTXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJGhvdmVyLXNoYWRvdzogYXBwZW5kKCRob3Zlci1zaGFkb3csIDAgJG9mZnNldCAwICRjb2xvci1ob3ZlciwgY29tbWEpO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcbiAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxuLy8vIFRoZXJlIGFyZSB0d28gUE5HIGZhbGxiYWNrczogYSBibGFjayB0cmlhbmdsZSBhbmQgYSB3aGl0ZSB0cmlhbmdsZS4gVGhlIG9uZSB1c2VkIGRlcGVuZHMgb24gdGhlIGxpZ2h0bmVzcyBvZiB0aGUgaW5wdXQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cbkBtaXhpbiBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRjb2xvcjogJGJsYWNrKSB7XG4gICRyZ2I6ICdyZ2IlMjgje3JvdW5kKHJlZCgkY29sb3IpKX0sICN7cm91bmQoZ3JlZW4oJGNvbG9yKSl9LCAje3JvdW5kKGJsdWUoJGNvbG9yKSl9JTI5JztcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6ICN7JHJnYn0nPjwvcG9seWdvbj48L3N2Zz5cIik7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSAvICRpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgdGhlIGZvY3VzIHJpbmcgYXJvdW5kIGFuIGVsZW1lbnQgd2hlbiBhIG1vdXNlIGlucHV0IGlzIGRldGVjdGVkLlxuQG1peGluIGRpc2FibGUtbW91c2Utb3V0bGluZSB7XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAmIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGFjY2Vzc2libGUgdG8ga2V5Ym9hcmRzIGFuZCBhc3Npc3RpdmUgZGV2aWNlcy5cbi8vLyBAbGluayBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5IEhpZGluZyBDb250ZW50IGZvciBBY2Nlc3NpYmlsaXR5XG4vLy8gQGxpbmsgaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLDAsMCwwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIGl0ZXJhdGUgb3ZlciBicmVha3BvaW50cyB3aXRob3V0IGRvaW5nIHRoZSBtZWRpYSBxdWVyeSBpdHNlbGYuIFVzZWZ1bCBmb3IgbW9yZSBjb21wbGV4IG1lZGlhIHF1ZXJ5IGdlbmVyYXRpb24gYXMgaW4gdGhlIG1hcmdpbiBncmlkLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlLCAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHM6IHRydWUpIHtcbiAgJGxpc3Q6ICRicmVha3BvaW50LWNsYXNzZXM7XG5cbiAgQGlmIG5vdCAkc21hbGwge1xuICAgICRsaXN0OiBzbC1yZW1vdmUoJGxpc3QsICQtemYtemVyby1icmVha3BvaW50KTtcbiAgfVxuXG4gIEBlYWNoICRuYW1lIGluICRsaXN0IHtcbiAgICAkb2xkLXpmLXNpemU6IG51bGw7XG4gICAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAgICRvbGQtemYtc2l6ZTogJC16Zi1zaXplO1xuICAgIH1cbiAgICAkLXpmLXNpemU6ICRuYW1lICFnbG9iYWw7XG5cbiAgICBAaWYgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHRoZSBgQGNvbnRlbnRgIHBhc3NlZCB0byB0aGUgbWl4aW4gd2l0aCBhIHZhbHVlIGAkLXpmLWJwLXZhbHVlYCByZWxhdGVkIHRvIGEgYnJlYWtwb2ludCwgZGVwZW5kaW5nIG9uIHRoZSBgJG5hbWVgIHBhcmFtZXRlcjpcbi8vLyAtIEZvciBhIHNpbmdsZSB2YWx1ZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoaXMgdmFsdWUuXG4vLy8gLSBGb3IgYSBicmVha3BvaW50IG5hbWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYC5cbi8vLyAtIEZvciBcImF1dG9cIiwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgIGFuZCBpcyBwYXNzZWQgdG8gYEBjb250ZW50YCwgd2hpY2ggaXMgbWFkZSByZXNwb25zaXZlIGZvciBlYWNoIGJyZWFrcG9pbnQgb2YgYCRtYXBgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfEFycmF5fEtleXdvcmR9ICRuYW1lIFthdXRvXSAtIFNpbmdsZSB2YWx1ZSwgYnJlYWtwb2ludCBuYW1lLCBvciBsaXN0IG9mIGJyZWFrcG9pbnQgbmFtZXMgdG8gdXNlLiBcImF1dG9cIiBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIE1hcCBvZiBicmVha3BvaW50cyBhbmQgdmFsdWVzIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuXG5AbWl4aW4gLXpmLWJyZWFrcG9pbnQtdmFsdWUoXG4gICRuYW1lOiBhdXRvLFxuICAkbWFwOiBudWxsXG4pIHtcbiAgQGlmICRuYW1lID09IGF1dG8gYW5kIHR5cGUtb2YoJG1hcCkgPT0gJ21hcCcge1xuICAgIC8vIFwiYXV0b1wiXG4gICAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkaykge1xuICAgICAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkdiwgJG1hcCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBicmVha3BvaW50IG5hbWVcbiAgICBAaWYgdHlwZS1vZigkbmFtZSkgPT0gJ3N0cmluZycge1xuICAgICAgJG5hbWU6IC16Zi1nZXQtYnAtdmFsKCRtYXAsICRuYW1lKTtcbiAgICB9XG5cbiAgICAvLyBicmVha3BvaW50IHZhbHVlXG4gICAgJC16Zi1icC12YWx1ZTogJG5hbWUgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1iYXNlXG4vLy8vXG5cbi8vIEJhc2UgVHlwb2dyYXBoeVxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbi8vIFRoZXNlIGFyZSBzdHlsZXMgYXBwbGllZCB0byBiYXNpYyBIVE1MIHRhZ3MsIGluY2x1ZGluZzpcbi8vICAgLSBQYXJhZ3JhcGhzIDxwPlxuLy8gICAtIEJvbGQvaXRhbGljcyA8Yj4gPHN0cm9uZz4gPGk+IDxlbT5cbi8vICAgLSBTbWFsbCB0ZXh0IDxzbWFsbD5cbi8vICAgLSBIZWFkaW5ncyA8aDE+LTxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyBmb3IgaGVhZGluZ3MgYXQgdmFyaW91cyBzY3JlZW4gc2l6ZXMuIEVhY2gga2V5IGlzIGEgYnJlYWtwb2ludCwgYW5kIGVhY2ggdmFsdWUgaXMgYSBtYXAgb2YgaGVhZGluZyBzdHlsZXMuXG4vLy8gQHR5cGUgTWFwXG4kaGVhZGVyLXN0eWxlczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDQ4KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMxKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI1KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vICRoZWFkZXItc3R5bGVzIG1hcCBpcyBidWlsdCBmcm9tICRoZWFkZXItc2l6ZXMgaW4gb3JkZXIgdG8gZW5zdXJlIGRvd253YXJkIGNvbXBhdGliaWxpdHlcbi8vIHdoZW4gJGhlYWRlci1zaXplcyBpcyBkZXByZWNpYXRlZCwgJGhlYWRlci1zdHlsZXMgbmVlZHMgdG8gZ2V0ICFkZWZhdWx0IHZhbHVlcyBsaWtlIHNldHRpbmdzLnNjc3NcbkBmdW5jdGlvbiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKSB7XG4gIEB3YXJuICdOb3RlLCB0aGF0ICRoZWFkZXItc2l6ZXMgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAkaGVhZGVyLXN0eWxlcy4gJGhlYWRlci1zaXplcyBzdGlsbCB3b3JrcywgYnV0IGl0IGlzIGdvaW5nIHRvIGJlIGRlcHJlY2lhdGVkLic7XG4gICRoZWFkZXItc3R5bGVzOiAoKTtcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc2l6ZXMge1xuICAgICRoZWFkZXItbWFwOiAoKTtcbiAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcbiAgICAgICRoZWFkZXItbWFwOiBtYXAtbWVyZ2UoJGhlYWRlci1tYXAsICgkaGVhZGVyOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUpKSk7XG4gICAgfVxuICAgICRoZWFkZXItc3R5bGVzOiBtYXAtbWVyZ2UoJGhlYWRlci1zdHlsZXMsICgkc2l6ZTogJGhlYWRlci1tYXApKTtcbiAgfVxuICBAcmV0dXJuICRoZWFkZXItc3R5bGVzO1xufVxuXG4vLyBJZiBpdCBleGlzdHMgJGhlYWRlcnMtc2l6ZXMgaXMgdXNlZCB0byBidWlsZCAkaGVhZGVyLXN0eWxlcy4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhoZWFkZXItc2l6ZXMpIHtcbiAgJGhlYWRlci1zdHlsZXM6IGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpO1xufVxuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5zaWRlIGA8cD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBMaXN0XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3MuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIExpc3RcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcblxuLy8vIEJ1bGxldCB0eXBlIHRvIHVzZSBmb3IgdW5vcmRlcmVkIGxpc3RzIChlLmcuLCBgc3F1YXJlYCwgYGNpcmNsZWAsIGBkaXNjYCkuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjICFkZWZhdWx0O1xuXG4vLy8gUG9zaXRpb25pbmcgZm9yIGJ1bGxldHMgb24gdW5vcmRlcmVkIGxpc3QgaXRlbXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGxpc3RzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBhIGxpc3QgaW5zaWRlIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGA8ZGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGA8ZHQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBgPGR0PmAgYW5kIGA8ZGQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSBgPGJsb2NrcXVvdGU+YCBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XG5cbi8vLyBTaWRlIGJvcmRlciBmb3IgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUHNldWRvIGNvbnRlbnQgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJyAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFBhcmFncmFwaHNcbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gIH1cblxuICAvLyBFbXBoYXNpemVkIHRleHRcbiAgZW0sXG4gIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFN0cm9uZyB0ZXh0XG4gIHN0cm9uZyxcbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTbWFsbCB0ZXh0XG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBIZWFkaW5nc1xuICBoMSwgLmgxLFxuICBoMiwgLmgyLFxuICBoMywgLmgzLFxuICBoNCwgLmg0LFxuICBoNSwgLmg1LFxuICBoNiwgLmg2IHtcbiAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG5cbiAgICBzbWFsbCB7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzdHlsZXNcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc3R5bGVzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkaGVhZGVyLCAkaGVhZGVyLWRlZnMgaW4gJGhlYWRlcnMge1xuICAgICAgICAkZm9udC1zaXplLXRlbXA6IDFyZW07XG4gICAgICAgICN7JGhlYWRlcn0sIC4jeyRoZWFkZXJ9IHtcblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZnMpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZzKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGgpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYygkaGVhZGVyLWxpbmVoZWlnaHQsICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbXQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtdCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYikpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJGhlYWRlci1tYXJnaW4tYm90dG9tKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xuICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvcml6b250YWwgcnVsZVxuICBociB7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAkaHItbWFyZ2luO1xuXG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuXG4gIC8vIExpc3RzXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zXG4gIGxpIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBVbm9yZGVyZWQgbGlzdHNcbiAgdWwge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogJGxpc3Qtc3R5bGUtdHlwZTtcbiAgfVxuXG4gIC8vIE9yZGVyZWQgbGlzdHNcbiAgb2wge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXG4gIHVsLCBvbCB7XG4gICAgJiAmIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XG5cbiAgICBkdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tO1xuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcbiAgICB9XG4gIH1cblxuICAvLyBCbG9ja3F1b3Rlc1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAmLCBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2l0YXRpb25zXG4gIGNpdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGNpdGUtZm9udC1zaXplO1xuICAgIGNvbG9yOiAkY2l0ZS1jb2xvcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICRjaXRlLXBzZXVkby1jb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIEFiYnJldmlhdGlvbnNcbiAgYWJiciwgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206ICRhYmJyLXVuZGVybGluZTtcbiAgICBjdXJzb3I6IGhlbHA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gRmlndXJlc1xuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIENvZGVcbiAgY29kZSB7XG4gICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcblxuICAgIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUgYXMgdGhlIGJhc2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2U6IG51bGwpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgLy8gVGhpcyBpcyBiZWNhdXNlIDEwMCUgZm9udCBzaXplID0gMTZweCBpbiBtb3N0IGFsbCBicm93c2Vyc1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gVXNpbmcgcmVtIGFzIGJhc2UgYWxsb3dzIGNvcnJlY3Qgc2NhbGluZ1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgJGNvdW50ID09IDEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG5cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9ICdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkgKyAnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gZW0gaW50byByZW0gaWYgc29tZW9uZSBoYW5kcyBvdmVyICdlbSdzXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW0gb3IgZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cblxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWUgPT0gMHJlbSB7XG4gICAgJHZhbHVlOiAwO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsLCBwZXJjZW50YWdlLCByZW0gb3IgZW0gdmFsdWUgdG8gYSB1bml0bGVzcyB2YWx1ZSBiYXNlZCBvbiBhIGdpdmVuIGZvbnQgc2l6ZS4gSWRlYWwgZm9yIHdvcmtpbmcgb3V0IHVuaXRsZXNzIGxpbmUgaGVpZ2h0cy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBjb252ZXJ0IHRvIGEgdW5pdGxlc3MgbGluZSBoZWlnaHRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgZm9udCBzaXplIHRvIHVzZSB0byB3b3JrIG91dCB0aGUgbGluZSBoZWlnaHQgLSBkZWZhdWx0cyB0byAkZ2xvYmFsLWZvbnQtc2l6ZVxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIFVuaXRsZXNzIG51bWJlclxuQGZ1bmN0aW9uIHVuaXRsZXNzLWNhbGMoJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIEZpcnN0LCBsZXRzIGNvbnZlcnQgb3VyICRiYXNlIHRvIHBpeGVsc1xuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBOb3cgbGV0J3MgY29udmVydCBvdXIgdmFsdWUgdG8gcGl4ZWxzIHRvb1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICclJyB7XG4gICAgJHZhbHVlOiAoJHZhbHVlIC8gMTAwJSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICAvLyAncHgnXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyB7XG4gICAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIC8vIGFzc3VtZSB0aGF0IGxpbmUtaGVpZ2h0cyBncmVhdGVyIHRoYW4gMTAgYXJlIG1lYW50IHRvIGJlIGFic29sdXRlIGluICdweCdcbiAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICgkdmFsdWUgPiAxMCkge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRzdWJoZWFkZXItY29sb3I7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYW4gaW50cm9kdWN0b3J5IGxlYWQsIGRlY2ssIGJsdXJiLCBldGMuXG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxlYWQtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhIGxhcmdlIG51bWJlciB0byBkaXNwbGF5IGEgc3RhdGlzdGljXG4gIC5zdGF0IHtcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIHAgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxuXG4gIHVsLCBvbCB7XG4gICAgLy8gVXNlIHRvIHJlbW92ZSBudW1iZXJzIGZyb20gb3JkZXJlZCBsaXN0ICYgYnVsbGV0cyBmcm9tIHVub3JkZXJlZCBsaXN0XG4gICAgJi5uby1idWxsZXQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLnRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSWYgYHRydWVgLCBhbGwgZWxlbWVudHMgd2lsbCBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzIHdoZW4gcHJpbnRlZCwgdG8gc2F2ZSBvbiBpbmsuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgZGlzcGxheXMgbmV4dCB0byBhbGwgbGlua3MgdGhlaXIgXCJocmVmXCIgd2hlbiBwcmludGVkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtaHJlZnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIHNhc3MtbGludDpkaXNhYmxlLWFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3NcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgLy8gRGlzcGxheSB0aGUgVVJMIG9mIGEgbGluayBhZnRlciB0aGUgdGV4dFxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgIEBpZiAkcHJpbnQtaHJlZnMge1xuICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cbiAgICB9XG5cbiAgICAvLyBEb24ndCBkaXNwbGF5IHRoZSBVUkwgZm9yIGltYWdlcyBvciBKYXZhU2NyaXB0L2ludGVybmFsIGxpbmtzXG4gICAgLmlyIGE6YWZ0ZXIsXG4gICAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgICBhW2hyZWZePScjJ106YWZ0ZXIgeyBjb250ZW50OiAnJzsgfVxuXG4gICAgLy8gRGlzcGxheSB3aGF0IGFuIGFiYnJldmlhdGlvbiBzdGFuZHMgZm9yIGFmdGVyIHRoZSB0ZXh0XG4gICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJzsgfVxuXG4gICAgLy8gUHJldmVudCBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGEgYmxvY2txdW90ZSBvciBwcmVmb3JtYXR0ZWQgdGV4dCBibG9ja1xuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gaDVicC5jb20vdFxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgb3JwaGFuczogMztcbiAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBwYWdlIGJyZWFrcyBhZnRlciBhIGhlYWRpbmdcbiAgICBoMixcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAvLyBIZWxwZXIgdG8gcmUtYWxsb3cgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBjZXJ0YWluIGVsZW1lbnRzIChlLmcuIHByZSwgYmxvY2txdW90ZSwgdHIpXG4gICAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgcGxhY2Vob2xkZXIgdGV4dCB3aXRoaW4gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgRm9udFxuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDIgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGluc2lkZSB0ZXh0IGlucHV0cyB3aGVuIG5vdCBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBvdXRzaWRlIHRleHQgaW5wdXRzIHdoZW4gZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxuLy8vIEB0eXBlIEN1cnNvclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQgIWRlZmF1bHQ7XG5cbi8vLyBQcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb24gb24gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyB0aGUgdXAvZG93biBidXR0b25zIHRoYXQgQ2hyb21lIGFuZCBGaXJlZm94IGFkZCB0byBgPGlucHV0IHR5cGU9J251bWJlcic+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gUmFkaXVzIGZvciB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgZm9ybSBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiB1bml0bGVzcy1jYWxjKCRpbnB1dC1saW5lLWhlaWdodCkpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcblxuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tdGV4dCB7XG4gIC8vIFRleHQgaW5wdXRzXG4gICN7dGV4dC1pbnB1dHMoKX0sXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRleHQgYXJlYXNcbiAgdGV4dGFyZWEge1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICZbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0LFxuICB0ZXh0YXJlYSB7XG4gICAgLy8gRGlzYWJsZWQvcmVhZG9ubHkgc3RhdGVcbiAgICAmOmRpc2FibGVkLFxuICAgICZbcmVhZG9ubHldIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvbiBidXR0b24tbGlrZSBpbnB1dHNcbiAgW3R5cGU9J3N1Ym1pdCddLFxuICBbdHlwZT0nYnV0dG9uJ10ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogJGZvcm0tYnV0dG9uLXJhZGl1cztcbiAgfVxuXG4gIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xuICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBOdW1iZXIgaW5wdXQgc3R5bGVzXG4gIFt0eXBlPSdudW1iZXInXSB7XG4gICAgQGlmIG5vdCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzIHtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuXG4gICAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFBsYWNlaG9sZGVyIHRleHRcbiAgOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1jaGVja2JveCB7XG4gIFt0eXBlPSdmaWxlJ10sXG4gIFt0eXBlPSdjaGVja2JveCddLFxuICBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXQvbGFiZWwgc2libGluZ3NcbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICZbZm9yXSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dHMgaW5zaWRlIGxhYmVsc1xuICBsYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxuICBsYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSBmaWxlIGlucHV0IHdpZHRoXG4gIFt0eXBlPSdmaWxlJ10ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcblxuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcbn1cblxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XG5cbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyICsgcmVtLWNhbGMoJGlucHV0LWJvcmRlci13aWR0aCkpIDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tbGFiZWwge1xuICBsYWJlbCB7XG4gICAgQGluY2x1ZGUgZm9ybS1sYWJlbDtcblxuICAgICYubWlkZGxlIHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tbGFiZWwtbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHN0eWxlIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1oZWxwdGV4dCB7XG4gIC5oZWxwLXRleHQge1xuICAgICRtYXJnaW4tdG9wOiAoJGZvcm0tc3BhY2luZyAqIDAuNSkgKiAtMTtcblxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xuICAgIGZvbnQtc2l6ZTogJGhlbHB0ZXh0LWZvbnQtc2l6ZTtcbiAgICBmb250LXN0eWxlOiAkaGVscHRleHQtZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0L3JpZ2h0IHBhZGRpbmcgb2YgYW4gcHJlL3Bvc3RmaXhlZCBpbnB1dCBsYWJlbFxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXByZXBvc3RmaXgge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqICRpbnB1dC1saW5lLWhlaWdodCkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIHRhYmxlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICAmLCAmLmlucHV0LWdyb3VwLWJ1dHRvbiA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAmLCAmLmlucHV0LWdyb3VwLWJ1dHRvbiA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cywgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJWlucHV0LWdyb3VwLWNoaWxkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1sYWJlbCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZzogMCAkaW5wdXQtcHJlZml4LXBhZGRpbmc7XG4gICAgYm9yZGVyOiAkaW5wdXQtcHJlZml4LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtcHJlZml4LWJhY2tncm91bmQ7XG5cbiAgICBjb2xvcjogJGlucHV0LXByZWZpeC1jb2xvcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXByZWZpeC1ib3JkZXIpIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBhLFxuICAgIGlucHV0LFxuICAgIGJ1dHRvbixcbiAgICBsYWJlbCB7XG4gICAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcblxuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgfVxuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWZpY2l0eSBidW1wIG5lZWRlZCB0byBwcmV2ZW50IG92ZXJyaWRlIGJ5IGJ1dHRvbnNcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC5pbnB1dC1ncm91cCB7XG4gICAgICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBiZXR3ZWVuIHRoZSBsZWdlbmQgdGV4dCBhbmQgZmllbGRzZXQgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xuXG5AbWl4aW4gZmllbGRzZXQge1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXI7XG5cbiAgbGVnZW5kIHtcbiAgICAvLyBDb3ZlcnMgdXAgdGhlIGZpZWxkc2V0J3MgYm9yZGVyIHRvIGNyZWF0ZSBhcnRpZmljaWFsIHBhZGRpbmdcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogcmVtLWNhbGMoLTMpO1xuICAgIHBhZGRpbmc6ICRsZWdlbmQtcGFkZGluZztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAuZmllbGRzZXQge1xuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG5cbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcbiAgfVxuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gdXNlIGZvciBsYWJlbHMgb2YgaW52YWxpZCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWNrZ3JvdW5kLWxpZ2h0ZW4gWzEwJV0gLSBMaWdodG5lc3MgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQsXG4gICRiYWNrZ3JvdW5kLWxpZ2h0ZW46IDEwJVxuKSB7XG4gICY6bm90KDpmb2N1cykge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCRiYWNrZ3JvdW5kLCAkd2hpdGUsICRiYWNrZ3JvdW5kLWxpZ2h0ZW4pO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBlcnJvciBzdHlsZXMgdG8gYSBmb3JtIGVsZW1lbnQsIHVzaW5nIHRoZSB2YWx1ZXMgaW4gdGhlIHNldHRpbmdzIGZpbGUuXG5AbWl4aW4gZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6ICRmb3JtLXNwYWNpbmcgKiAtMC41O1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gIGZvbnQtc2l6ZTogJGlucHV0LWVycm9yLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1mb250LXdlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1lcnJvci1jb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1lcnJvciB7XG4gIEBpZiAkYWJpZGUtaW5wdXRzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgaW52YWxpZCBpbnB1dHNcbiAgICAuaXMtaW52YWxpZC1pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWlucHV0LWVycm9yO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkYWJpZGUtbGFiZWxzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgbGFiZWxzIG9mIGludmFsaWQgb3V0cHV0c1xuICAgIC5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZvcm0gZXJyb3IgZWxlbWVudFxuICAuZm9ybS1lcnJvciB7XG4gICAgQGluY2x1ZGUgZm9ybS1lcnJvcjtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjY29yZGlvbiBncm91cC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgcGx1cyBhbmQgbWludXMgaWNvbnMgdG8gdGhlIHNpZGUgb2YgZWFjaCBhY2NvcmRpb24gdGl0bGUuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYWNjb3JkaW9uIHRpdGxlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gYWNjb3JkaW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgc2FtZSBlbGVtZW50IHRoYXQgZ2V0cyBgZGF0YS1hY2NvcmRpb25gLlxuQG1peGluIGFjY29yZGlvbi1jb250YWluZXIgKFxuICAkYmFja2dyb3VuZDogJGFjY29yZGlvbi1iYWNrZ3JvdW5kXG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAmW2Rpc2FibGVkXSB7XG4gICAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGlzdCBpdGVtIHdpdGhpbiBhbiBhY2NvcmRpb24gdWwuXG5AbWl4aW4gYWNjb3JkaW9uLWl0ZW0ge1xuICAmOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cyAwIDA7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHRpdGxlIG9mIGFuIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaW5rIHdpdGhpbiBhbiBhY2NvcmRpb24gaXRlbS5cbkBtaXhpbiBhY2NvcmRpb24tdGl0bGUgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1pdGVtLXBhZGRpbmcsXG4gICRmb250LXNpemU6ICRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplLFxuICAkY29sb3I6ICRhY2NvcmRpb24taXRlbS1jb2xvcixcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gJiB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxuXG4gIEBpZiAkYWNjb3JkaW9uLXBsdXNtaW51cyB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgfVxuXG4gICAgLmlzLWFjdGl2ZSA+ICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDEzJztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhY2NvcmRpb24gY29udGVudC4gQXBwbHkgdGhpcyB0byB0aGUgY29udGVudCBwYW5lIGJlbG93IGFuIGFjY29yZGlvbiBpdGVtJ3MgdGl0bGUuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRlbnQgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmcsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWNvbnRlbnQtY29sb3Jcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQgPiAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5hY2NvcmRpb24taXRlbSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWl0ZW07XG4gIH1cblxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XG4gIH1cblxuICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVhZGNydW1ic1xuLy8vL1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBhY3RpdmUgYnJlYWRjcnVtYiBsaW5rLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBPcGFjaXR5IG9mIGRpc2FibGVkIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnJlYWRjcnVtYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgbWFrZXMgYnJlYWRjcnVtYiBsaW5rcyB1cHBlcmNhc2UuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIGEgc2VwZXJhdG9yIGJldHdlZW4gYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIElmIGl0IGV4aXN0cyAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCBpcyB1c2VkIHRvIGJ1aWxkICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhicmVhZGNydW1icy1pdGVtLXNsYXNoKSB7XG4gICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2g7XG59XG5cbi8vLyBVc2VkIGNoYXJhY3RlciBmb3IgdGhlIGJyZWFkY3J1bWIgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIENvbnRlbnRcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtOiAnLycgIWRlZmF1bHQ7XG5cbi8vLyBVc2VkIGNoYXJhY3RlciBmb3IgdGhlIGJyZWFkY3J1bWIgc2VwYXJhdG9yIGluIHJ0bCBtb2RlLlxuLy8vIEB0eXBlIENvbnRlbnRcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bDogJ1xcXFwnICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gSWYgaXQgZXhpc3RzICRicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yIGlzIHVzZWQgdG8gYnVpbGQgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3IpIHtcbiAgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvcjtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lciwgYWxvbmcgd2l0aCB0aGUgc3R5bGVzIGZvciB0aGUgYDxsaT5gIGFuZCBgPGE+YCBlbGVtZW50cyBpbnNpZGUgb2YgaXQuXG5AbWl4aW4gYnJlYWRjcnVtYnMtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJGJyZWFkY3J1bWJzLW1hcmdpbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAvLyBJdGVtIHdyYXBwZXJcbiAgbGkge1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgICBmb250LXNpemU6ICRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvciB7XG4gICAgICAvLyBOZWVkIHRvIGVzY2FwZSB0aGUgYmFja3NsYXNoXG4gICAgICAkc2VwYXJhdG9yOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdsdHInLCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbSwgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsKTtcblxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBtYXJnaW46IDAgJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgY29udGVudDogJHNlcGFyYXRvcjtcbiAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhIHtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1icmVhZGNydW1icyB7XG4gIC5icmVhZGNydW1icyB7XG4gICAgQGluY2x1ZGUgYnJlYWRjcnVtYnMtY29udGFpbmVyO1xuXG4gICAgLmRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjYWxsb3V0XG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmFkZSB2YWx1ZSBmb3IgY2FsbG91dCBiYWNrZ3JvdW5kcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgc3R5bGUgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIExpc3RcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGlubmVyIHBhZGRpbmcgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLCBpZiB0aGUgY2FsbG91dCBoYXMgYSBkYXJrIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgcmFkaXVzIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFtb3VudCB0byB0aW50IGxpbmtzIHVzZWQgd2l0aGluIGNvbG9yZWQgcGFuZWxzLiBTZXQgdG8gYGZhbHNlYCB0byBkaXNhYmxlIHRoaXMgZmVhdHVyZS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBCb29sZWFuXG4kY2FsbG91dC1saW5rLXRpbnQ6IDMwJSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhIGNhbGxvdXQsIGluY2x1ZGluZyBwYWRkaW5nIGFuZCBtYXJnaW4uXG5AbWl4aW4gY2FsbG91dC1iYXNlKCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogJGNhbGxvdXQtbWFyZ2luO1xuICBwYWRkaW5nOiAkY2FsbG91dC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJGNhbGxvdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkY2FsbG91dC1yYWRpdXM7XG5cbiAgLy8gUmVzcGVjdCB0aGUgcGFkZGluZywgZm9vbC5cbiAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSBxdWljayBzdHlsZXMgZm9yIGEgY2FsbG91dCB1c2luZyBhIHNpbmdsZSBjb2xvciBhcyBhIGJhc2VsaW5lLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dC1zdHlsZSgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgJGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkY2FsbG91dC1mb250LWNvbG9yLCAkY2FsbG91dC1mb250LWNvbG9yLWFsdCkpO1xufVxuXG5AbWl4aW4gY2FsbG91dC1zaXplKCRwYWRkaW5nKSB7XG4gIHBhZGRpbmctdG9wOiAkcGFkZGluZztcbiAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZztcbiAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbn1cblxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FsbG91dC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gIEBpbmNsdWRlIGNhbGxvdXQtYmFzZTtcbiAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jYWxsb3V0IHtcbiAgLmNhbGxvdXQge1xuICAgIEBpbmNsdWRlIGNhbGxvdXQ7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgwLjVyZW0pO1xuICAgIH1cblxuICAgICYubGFyZ2Uge1xuICAgICAgQGluY2x1ZGUgY2FsbG91dC1zaXplKDNyZW0pO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2xvc2UtYnV0dG9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgYHJpZ2h0YCBvciBgbGVmdGAsIGFuZCB0aGUgc2Vjb25kIHZhbHVlIHNob3VsZCBiZSBgdG9wYCBvciBgYm90dG9tYC5cbi8vLyBAdHlwZSBMaXN0XG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcCAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IChvciBsZWZ0KSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRvcCAob3IgYm90dG9tKSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tc2l6ZTogKFxuICBzbWFsbDogMS41ZW0sXG4gIG1lZGl1bTogMmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsaW5lLWhlaWdodCBvZiB0aGUgY2xvc2UgYnV0dG9uLiBJdCBhZmZlY3RzIHRoZSBzcGFjaW5nIG9mIHRoZSBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDEgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbiB3aGVuIGJlaW5nIGhvdmVyZWQgb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrICFkZWZhdWx0O1xuXG5cbi8vLyBHZXQgdGhlIHNpemUgYW5kIHBvc2l0aW9uIGZvciBhIGNsb3NlIGJ1dHRvbi4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgbnVtYmVyLCB0aGUgbnVtYmVyIGlzIHJldHVybmVkLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBjb25maWcgbWFwIGFuZCB0aGUgbWFwIGhhcyB0aGUga2V5IGAkc2l6ZWAsIHRoZSB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJHZhbHVlIC0gQSBudW1iZXIgb3IgbWFwIHRoYXQgcmVwcmVzZW50cyB0aGUgc2l6ZSBvciBwb3NpdGlvbiB2YWx1ZShzKSBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBUaGUgc2l6ZSBvZiB0aGUgY2xvc2UgYnV0dG9uIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gVGhlIGdpdmVuIG51bWJlciBvciB0aGUgdmFsdWUgZm91bmQgaW4gdGhlIG1hcC5cbkBmdW5jdGlvbiAtemYtZ2V0LXNpemUtdmFsKCR2YWx1ZSwgJHNpemUpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIC8vIElmIGl0IGlzLCBqdXN0IHJldHVybiB0aGUgbnVtYmVyXG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgc2l6ZSBuYW1lIGV4aXN0cyBpbiB0aGUgdmFsdWUgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCR2YWx1ZSwgJHNpemUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCR2YWx1ZSwgJHNpemUpO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFttZWRpdW1dIC0gVGhlIHNpemUgdG8gdXNlLiBTZXQgdG8gYHNtYWxsYCB0byBjcmVhdGUgYSBzbWFsbCBjbG9zZSBidXR0b24uIFRoZSAnbWVkaXVtJyB2YWx1ZXMgZGVmaW5lZCBpbiBgJGNsb3NlYnV0dG9uLSpgIHZhcmlhYmxlcyB3aWxsIGJlIHVzZWQgYXMgdGhlIGRlZmF1bHQgc2l6ZSBhbmQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbkBtaXhpbiBjbG9zZS1idXR0b24tc2l6ZSgkc2l6ZSkge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICAjeyR4fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWwsICRzaXplKTtcbiAgI3skeX06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbCwgJHNpemUpO1xuICBmb250LXNpemU6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLXNpemUsICRzaXplKTtcbiAgbGluZS1oZWlnaHQ6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQsICRzaXplKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNsb3NlIGJ1dHRvbiwgdXNpbmcgdGhlIHN0eWxlcyBpbiB0aGUgc2V0dGluZ3MgdmFyaWFibGVzLlxuQG1peGluIGNsb3NlLWJ1dHRvbiB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jbG9zZS1idXR0b24ge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBjbG9zZS1idXR0b247XG5cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgY2xvc2UtYnV0dG9uLXNpemUoc21hbGwpIH1cbiAgICAmLCAmLm1lZGl1bSB7IEBpbmNsdWRlIGNsb3NlLWJ1dHRvbi1zaXplKG1lZGl1bSkgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcmlsbGRvd25cbi8vLy9cblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydHkgdG8gdXNlIGZvciBhbmltYXRpbmcgbWVudXMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBhcnJvd3MgdG8gZHJpbGxkb3duIGl0ZW1zIHdpdGggc3VibWVudXMsIGFzIHdlbGwgYXMgdGhlIGJhY2sgYnV0dG9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLW5lc3RlZC1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcmlsbGRvd24gdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgaXRlbSBwYWRkaW5nIGluIHRoZSBzdWJtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biBzdWJtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyaWxsZG93bi1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1kcmlsbGRvd24tbGVmdC1yaWdodC1hcnJvd3Mge1xuICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1yaWdodCk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyaWxsZG93bi1hcnJvdy1zaXplO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLWxlZnQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxcmVtO1xuICB9XG5cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnUge1xuICAvLyBBcHBsaWVkIHRvIHRoZSBNZW51IGNvbnRhaW5lclxuICAuaXMtZHJpbGxkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICYuYW5pbWF0ZS1oZWlnaHQge1xuICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlIHRvcCBsZXZlbCA8dWw+XG4gIC5kcmlsbGRvd24ge1xuICAgIGEge1xuICAgICAgcGFkZGluZzogJGRyaWxsZG93bi1wYWRkaW5nO1xuICAgICAgYmFja2dyb3VuZDogJGRyaWxsZG93bi1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC8vIEFwcGxpZWQgdG8gc3VibWVudSA8dWw+c1xuICAgIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgICB6LWluZGV4OiAtMTtcblxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLXN1Ym1lbnUtYmFja2dyb3VuZDtcbiAgICAgIHRyYW5zaXRpb246ICRkcmlsbGRvd24tdHJhbnNpdGlvbjtcblxuICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAtMTAwJSwgMTAwJSkpO1xuICAgICAgfVxuXG4gICAgICAmLmlzLWNsb3Npbmcge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIDEwMCUsIC0xMDAlKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFN1Ym1lbnUgaXRlbSBwYWRkaW5nXG4gICAgICBhIHtcbiAgICAgICAgcGFkZGluZzogJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkZHJpbGxkb3duLW5lc3RlZC1tYXJnaW4pO1xuICAgIH1cblxuICAgIC5kcmlsbGRvd24tc3VibWVudS1jb3Zlci1wcmV2aW91cyB7XG4gICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiAkZHJpbGxkb3duLWFycm93cyB7XG4gICAgICBAaW5jbHVkZSB6Zi1kcmlsbGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG5cbiAgICAgIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtbGVmdCk7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH0td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNzVyZW07IC8vIENyZWF0ZXMgc3BhY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZW51XG4vLy8vXG5cbi8vLyBNYXJnaW4gb2YgYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gTGVmdC1oYW5kIG1hcmdpbiBvZiBhIG5lc3RlZCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBpdGVtcyBpbiBhIHBpbGwgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWl0ZW1zLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gbWFyZ2luIGZvciBpdGVtcyBpbiBhIHNpbXBsZSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtc2ltcGxlLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGFuIGljb24gYW5kIHRleHQgaW4gYSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBtZW51IHN0YXRlLiBJZiB0cnVlLCB0aGlzIGR1cGxpY2F0ZSBgYWN0aXZlYCB3aXRoIGBpcy1hY3RpdmVgLiBcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgYWN0aXZlYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtc3RhdGUtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBtZW51IGNlbnRlcmVkLiBJZiB0cnVlLCB0aGlzIGR1cGxpY2F0ZSBgLm1lbnUtY2VudGVyZWQgPiAubWVudWAgd2l0aCBgLm1lbnUuYWxpZ24tY2VudGVyYC4gXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgYG1lbnUtY2VudGVyZWRgIHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIHVzaW5nIGBpY29uLSpgIGNsYXNzZXMgd2l0aG91dCBgLmljb25zYCBjbGFzc2VzXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgdGhpcyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1pY29ucy1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgdGhlIGJhc2Ugc3R5bGVzIGZvciBhIE1lbnUuXG5AbWl4aW4gbWVudS1iYXNlIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICBsaSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICB9XG5cbiAgYSxcbiAgLmJ1dHRvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRtZW51LWl0ZW1zLXBhZGRpbmc7XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb2YgaW5uZXIgZWxlbWVudHNcbiAgaW5wdXQsXG4gIHNlbGVjdCxcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgaW5wdXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG4vLy8gRXhwYW5kcyB0aGUgaXRlbXMgb2YgYSBNZW51LCBzbyBlYWNoIGl0ZW0gaXMgdGhlIHNhbWUgd2lkdGguXG5AbWl4aW4gbWVudS1leHBhbmQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICA+IGxpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWxpZ24gbWVudSBpdGVtcy5cbkBtaXhpbiBtZW51LWFsaWduKCRhbGlnbm1lbnQpIHtcbiAgQGlmICRhbGlnbm1lbnQgPT0gbGVmdCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSByaWdodCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnZlcnRpY2FsIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcblxuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgICB9XG5cbiAgICAgICYudmVydGljYWwge1xuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IGNlbnRlciB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGRpcmVjdGlvbiBvZiBhIE1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFtob3Jpem9udGFsXSAtIERpcmVjdGlvbiBvZiB0aGUgTWVudS4gQ2FuIGJlIGBob3Jpem9udGFsYCBvciBgdmVydGljYWxgLlxuQG1peGluIG1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBtZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2ltcGxlIE1lbnUsIHdoaWNoIGhhcyBubyBwYWRkaW5nIG9yIGhvdmVyIHN0YXRlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbJGdsb2JhbC1sZWZ0XSAtIERpcmVjdGlvbiBvZiB0aGUgbWVudS4gVGhpcyBlZmZlY3RzIHRoZSBzaWRlIG9mIHRoZSBgPGxpPmAgdGhhdCByZWNlaXZlcyB0aGUgbWFyZ2luLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWFyZ2luIFskbWVudS1zaW1wbGUtbWFyZ2luXSAtIFRoZSBtYXJnaW4gdG8gYXBwbHkgdG8gZWFjaCBgPGxpPmAuXG5AbWl4aW4gbWVudS1zaW1wbGUoJGRpcjogJGdsb2JhbC1sZWZ0LCAkbWFyZ2luOiAkbWVudS1zaW1wbGUtbWFyZ2luKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICBsaSArIGxpIHtcbiAgICBtYXJnaW4tI3skZGlyfTogJG1hcmdpbjtcbiAgfVxuXG4gIGEge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG5lc3RlZCBNZW51LCBieSBhZGRpbmcgYG1hcmdpbi1sZWZ0YCB0byB0aGUgbWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkbWFyZ2luIFskbWVudS1uZXN0ZWQtbWFyZ2luXSAtIExlbmd0aCBvZiB0aGUgbWFyZ2luLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJG5lc3RlZC1hbGlnbm1lbnQgW2xlZnRdIC0gQWxpZ25tZW50IG9mIHRoZSBuZXN0ZWQgY2xhc3NcbkBtaXhpbiBtZW51LW5lc3RlZChcbiAgJG1hcmdpbjogJG1lbnUtbmVzdGVkLW1hcmdpbixcbiAgJG5lc3RlZC1hbGlnbm1lbnQ6IGxlZnRcbikge1xuICBAaWYgJG5lc3RlZC1hbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkbWFyZ2luO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRtYXJnaW47XG4gIH1cblxufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGljb25zIGluIG1lbnVzLlxuQG1peGluIG1lbnUtaWNvbnMoKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGEge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGltZyxcbiAgICBpLFxuICAgIHN2ZyB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICArIHNwYW4ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBwb3NpdGlvbiBjbGFzc2VzIGZvciBpY29ucyB3aXRoaW4gYSBtZW51LlxuQG1peGluIG1lbnUtaWNvbi1wb3NpdGlvbigkcG9zaXRpb246IGxlZnQsICRzcGFjaW5nOiAkbWVudS1pY29uLXNwYWNpbmcpIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJHNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogJHNwYWNpbmcgYXV0byAwO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWVudS10ZXh0IHtcbiAgcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG5cbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuQG1peGluIG1lbnUtc3RhdGUtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgY29sb3I6ICRtZW51LWl0ZW0tY29sb3ItYWN0aXZlO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZW51IHtcbiAgLm1lbnUge1xuICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcblxuICAgIC8vIERlZmF1bHQgb3JpZW50YXRpb246IGhvcml6b250YWxcbiAgICAmLCAmLmhvcml6b250YWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgfVxuXG4gICAgLy8gVmVydGljYWwgb3JpZW50YXRpb24gbW9kaWZpZXJcbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIG1vZGlmaWVyIGZvciBob3Jpem9udGFsIG9yaWVudGF0aW9uXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICB9XG5cbiAgICAvLyBTaW1wbGVcbiAgICAmLnNpbXBsZSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZTtcbiAgICB9XG5cbiAgICAvLyBCcmVha3BvaW50IHNwZWNpZmljIHZlcnNpb25zXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IGZhbHNlKSB7XG4gICAgICAmLiN7JC16Zi1zaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1zaW1wbGUge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJi5uZXN0ZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQ7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBCYXNlIFN0eWxlc1xuICAgICYuaWNvbnMge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICB9XG5cbiAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5IGZvciBhY3RpdmUgc3RhdGVcbiAgICBAaWYgJG1lbnUtaWNvbnMtYmFjay1jb21wYXQge1xuICAgICAgJi5pY29uLXRvcCxcbiAgICAgICYuaWNvbi1yaWdodCxcbiAgICAgICYuaWNvbi1ib3R0b20sXG4gICAgICAmLmljb24tbGVmdCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWNvbiBMZWZ0XG4gICAgJi5pY29uLWxlZnQge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKGxlZnQpO1xuICAgIH1cblxuICAgIC8vIEljb24gUmlnaHRcbiAgICAmLmljb24tcmlnaHQge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHJpZ2h0KTtcbiAgICB9XG5cbiAgICAvLyBJY29uIFRvcFxuICAgICYuaWNvbi10b3Age1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHRvcCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBCb3R0b21cbiAgICAmLmljb24tYm90dG9tIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihib3R0b20pO1xuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZVxuICAgIC5pcy1hY3RpdmUgPiBhIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc3RhdGUtYWN0aXZlO1xuICAgIH1cbiAgICBcbiAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5IGZvciBhY3RpdmUgc3RhdGVcbiAgICBAaWYgJG1lbnUtc3RhdGUtYmFjay1jb21wYXQge1xuICAgICAgLmFjdGl2ZSA+IGEge1xuICAgICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBsZWZ0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtbGVmdH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBBbGlnbiByaWdodFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKHJpZ2h0KTtcblxuICAgICAgLm5lc3RlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRuZXN0ZWQtYWxpZ25tZW50OiByaWdodCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gY2VudGVyXG4gICAgJi5hbGlnbi1jZW50ZXIge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgIH1cblxuICAgIC5tZW51LXRleHQge1xuICAgICAgQGluY2x1ZGUgbWVudS10ZXh0O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdCB7XG4gICAgLm1lbnUtY2VudGVyZWQge1xuICAgICAgPiAubWVudSB7XG4gICAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJldmVudCBGT1VDIHdoZW4gdXNpbmcgdGhlIFJlc3BvbnNpdmUgTWVudSBwbHVnaW5cbiAgLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJlc3BvbnNpdmUtZW1iZWRcbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gQXNwZWN0IHJhdGlvcyB1c2VkIHRvIGRldGVybWluZSBwYWRkaW5nLWJvdHRvbSBvZiByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lcnMuXG4vLy8gQHR5cGUgTWFwXG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxuKSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ3xMaXN0fSAkcmF0aW8gW2RlZmF1bHRdIC0gUmF0aW8gb2YgdGhlIGNvbnRhaW5lci4gQ2FuIGJlIGEga2V5IGZyb20gdGhlIGAkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3NgIG1hcCBvciBhIGxpc3QgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuQG1peGluIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KSB7XG4gIEBpZiB0eXBlLW9mKCRyYXRpbykgPT0gJ3N0cmluZycge1xuICAgICRyYXRpbzogbWFwLWdldCgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsICRyYXRpbyk7XG4gIH1cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b207XG4gIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgaWZyYW1lLFxuICBvYmplY3QsXG4gIGVtYmVkLFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQge1xuICAucmVzcG9uc2l2ZS1lbWJlZCxcbiAgLmZsZXgtdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KTtcblxuICAgICRyYXRpb3M6IG1hcC1yZW1vdmUoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLGRlZmF1bHQpO1xuXG4gICAgQGVhY2ggJG5hbWUsICRyYXRpbyBpbiAkcmF0aW9zIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBGaW5kcyB0aGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3Igb2YgdHdvIGludGVnZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhIC0gRmlyc3QgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiIC0gU2Vjb25kIG51bWJlciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yLlxuQGZ1bmN0aW9uIGdjZCgkYSwgJGIpIHtcbiAgLy8gRnJvbTogaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL0dyZWF0ZXN0X2NvbW1vbl9kaXZpc29yI0phdmFTY3JpcHRcbiAgQGlmICgkYiAhPSAwKSB7XG4gICAgQHJldHVybiBnY2QoJGIsICRhICUgJGIpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGFicygkYSk7XG4gIH1cbn1cblxuLy8vIEhhbmRsZXMgZGVjaW1hbCBleHBvbmVudHMgYnkgdHJ5aW5nIHRvIGNvbnZlcnQgdGhlbSBpbnRvIGEgZnJhY3Rpb24gYW5kIHRoZW4gdXNlIGEgbnRoLXJvb3QtYWxnb3JpdGhtIGZvciBwYXJ0cyBvZiB0aGUgY2FsY3VsYXRpb25cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBiYXNlIG51bWJlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGV4cG9uZW50IC0gVGhlIGV4cG9uZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHByb2R1Y3Qgb2YgdGhlIGV4cG9uZW50aWF0aW9uLlxuQGZ1bmN0aW9uIHBvdygkYmFzZSwgJGV4cG9uZW50LCAkcHJlYzogMTYpIHtcbiAgQGlmIChmbG9vcigkZXhwb25lbnQpICE9ICRleHBvbmVudCkge1xuICAgICRwcmVjMiA6IHBvdygxMCwgJHByZWMpO1xuICAgICRleHBvbmVudDogcm91bmQoJGV4cG9uZW50ICogJHByZWMyKTtcbiAgICAkZGVub21pbmF0b3I6IGdjZCgkZXhwb25lbnQsICRwcmVjMik7XG4gICAgQHJldHVybiBudGgtcm9vdChwb3coJGJhc2UsICRleHBvbmVudCAvICRkZW5vbWluYXRvciksICRwcmVjMiAvICRkZW5vbWluYXRvciwgJHByZWMpO1xuICB9XG5cbiAgJHZhbHVlOiAkYmFzZTtcbiAgQGlmICRleHBvbmVudCA+IDEge1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogJGJhc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRleHBvbmVudCA8IDEge1xuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggLSRleHBvbmVudCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAvICRiYXNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gbnRoLXJvb3QoJG51bSwgJG46IDIsICRwcmVjOiAxMikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvTnRoX3Jvb3QjSmF2YVNjcmlwdFxuICAkeDogMTtcblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRwcmVjIHtcbiAgICAkeDogMSAvICRuICogKCgkbiAtIDEpICogJHggKyAoJG51bSAvIHBvdygkeCwgJG4gLSAxKSkpO1xuICB9XG5cbiAgQHJldHVybiAkeDtcbn1cblxuLy8vIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIHdpZHRoIGZvciBhIGdpdmVuIHJhdGlvLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhdGlvIC0gUmF0aW8gdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgaGVpZ2h0LCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG4vLy8gQHJldHVybiB7TnVtYmVyfSBBIHBlcmNlbnRhZ2UgdmFsdWUgZm9yIHRoZSBoZWlnaHQgcmVsYXRpdmUgdG8gdGhlIHdpZHRoIG9mIGEgcmVzcG9uc2l2ZSBjb250YWluZXIuXG5AZnVuY3Rpb24gcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pIHtcbiAgJHc6IG50aCgkcmF0aW8sIDEpO1xuICAkaDogbnRoKCRyYXRpbywgMyk7XG4gIEByZXR1cm4gJGggLyAkdyAqIDEwMCU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBsYWJlbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0ZSB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGxhYmVsLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBvZiBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBiYXNlIHN0eWxlcyBmb3IgYSBsYWJlbC5cbkBtaXhpbiBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogJGxhYmVsLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogJGxhYmVsLXJhZGl1cztcblxuICBmb250LXNpemU6ICRsYWJlbC1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWxhYmVsIHtcbiAgLmxhYmVsIHtcbiAgICBAaW5jbHVkZSBsYWJlbDtcblxuICAgIGJhY2tncm91bmQ6ICRsYWJlbC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRsYWJlbC1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRjb2xvciwgKCRsYWJlbC1jb2xvciwgJGxhYmVsLWNvbG9yLWFsdCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb2ZmLWNhbnZhc1xuLy8vL1xuXG4vLy8gV2lkdGggbWFwIG9mIGEgbGVmdC9yaWdodCBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE1hcFxuJG9mZmNhbnZhcy1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG1hcCBvZiBhIHRvcC9ib3R0b20gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBNYXBcbiRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXM6IChcbiAgc21hbGw6IDI1MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgZm9yIHRoZSBvZmYtY2FudmFzIG92ZXJsYXAgcGFuZWwuXG4vLy8gQHR5cGUgU2hhZG93XG4kb2ZmY2FudmFzLXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssIDAuNykgIWRlZmF1bHQ7XG5cbi8vLyBJbm5lciBib3ggc2hhZG93IHNpemUgZm9yIHRoZSBvZmYtY2FudmFzIHB1c2ggcGFuZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplOiAyMHB4ICFkZWZhdWx0O1xuXG4vLy8gSW5uZXIgYm94IHNoYWRvdyBjb2xvciBmb3IgdGhlIG9mZi1jYW52YXMgcHVzaCBwYW5lbC5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBjb250ZW50IG92ZXJsYXkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXktemluZGV4OiAxMSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB3aXRoIHRoZSBgcHVzaGAgdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDEyICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBvdmVybGFwYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTMgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgdXNpbmcgdGhlIGByZXZlYWwtZm9yLSpgIGNsYXNzZXMgb3IgbWl4aW4uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6IDEyICFkZWZhdWx0O1xuXG4vLy8gTGVuZ3RoIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXMgIWRlZmF1bHQ7XG5cbi8vLyBUaW1pbmcgZnVuY3Rpb24gb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGEgcmV2ZWFsZWQgb2ZmLWNhbnZhcyB3aWxsIGJlIGZpeGVkLXBvc2l0aW9uLCBhbmQgc2Nyb2xsIHdpdGggdGhlIHNjcmVlbi5cbi8vLyBAdHlwZSBCb29sXG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBvdmVybGF5IHRoYXQgYXBwZWFycyB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIENTUyBjbGFzcyB1c2VkIGZvciB0aGUgbWFpbiBjb250ZW50IGFyZWEuIFRoZSBvZmYtY2FudmFzIG1peGlucyB1c2UgdGhpcyB0byB0YXJnZXQgdGhlIHBhZ2UgY29udGVudC5cbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCcgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2VsaW5lIHN0eWxlcyBmb3Igb2ZmLWNhbnZhcy4gVGhpcyBDU1MgaXMgcmVxdWlyZWQgdG8gbWFrZSB0aGUgb3RoZXIgcGllY2VzIHdvcmsuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNpY3Mge1xuXG4gIC8vLyBUcmFuc2Zvcm0gZGVwcmVjYXRlZCBzaXplIHNldHRpbmdzIGludG8gbWFwICYgc2hvdyB3YXJuaW5nXG4gIEBpZiB2YXJpYWJsZS1leGlzdHMob2ZmY2FudmFzLXNpemUpIHtcbiAgICAkb2ZmY2FudmFzLXNpemVzOiAoc21hbGw6ICRvZmZjYW52YXMtc2l6ZSwgbWVkaXVtOiAkb2ZmY2FudmFzLXNpemUpICFnbG9iYWw7XG4gICAgQHdhcm4gJyRvZmZjYW52YXMtc2l6ZSBpcyBkZXByZWNhdGVkIGFuZCBub3QgdXNlZCBhbnltb3JlISBQbGVhc2UgdXBkYXRlIHlvdXIgc2V0dGluZ3MgYW5kIHVzZSB0aGUgbWFwICRvZmZjYW52YXMtc2l6ZXMgaW5zdGVhZCc7XG4gIH1cbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhvZmZjYW52YXMtdmVydGljYWwtc2l6ZSkge1xuICAgICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXM6IChzbWFsbDogJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplLCBtZWRpdW06ICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZSkgIWdsb2JhbDtcbiAgICBAd2FybiAnJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplIGlzIGRlcHJlY2F0ZWQgYW5kIG5vdCB1c2VkIGFueW1vcmUhIFBsZWFzZSB1cGRhdGUgeW91ciBzZXR0aW5ncyBhbmQgdXNlIHRoZSBtYXAgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplcyBpbnN0ZWFkJztcbiAgfVxuXG4gIC8vIENoZWNrcyB0aGUgei1pbmRleGVzIGFuZCBpbmNyZWFzZSB0aGVtIGR1ZSB0byBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgb3ZlcmxheSdzIHotaW5kZXggaXMgbmV3IHNpbmNlIHY2LjQgYW5kIG1heSBiZSBpZGVudGljYWwgdG8gdGhlIHVzZXIgY3VzdG9tIHNldHRpbmdzIG9mIHRoZSBwdXNoIHotaW5kZXguXG4gIEBpZiAkb2ZmY2FudmFzLXB1c2gtemluZGV4IDw9ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggeyAkb2ZmY2FudmFzLXB1c2gtemluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4ICsgMSAhZ2xvYmFsOyB9XG4gIEBpZiAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4IDw9ICRvZmZjYW52YXMtcHVzaC16aW5kZXggeyAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4ICsgMSAhZ2xvYmFsOyB9XG4gIEBpZiAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXggPD0gJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCB7ICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCArIDEgIWdsb2JhbDsgfVxuXG4gIC8vIEhpZGVzIG92ZXJmbG93IG9uIGJvZHkgd2hlbiBhbiBvZmYtY2FudmFzIHBhbmVsIGlzIG9wZW4uXG4gIC5pcy1vZmYtY2FudmFzLW9wZW4ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIG92ZXJsYXkgKGdlbmVyYXRlZCBieSBKYXZhU2NyaXB0KVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLCB2aXNpYmlsaXR5ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcblxuICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kO1xuXG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgICYuaXMtY2xvc2FibGUge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICYuaXMtb3ZlcmxheS1hYnNvbHV0ZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWZpeGVkIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgd3JhcHBlci5cbkBtaXhpbiBvZmYtY2FudmFzLXdyYXBwZXIoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtYmFzZShcbiAgJGJhY2tncm91bmQ6ICRvZmZjYW52YXMtYmFja2dyb3VuZCxcbiAgJHRyYW5zaXRpb246ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZyxcbiAgJGZpeGVkOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuXG4gIEBpZiAkZml4ZWQgPT0gdHJ1ZSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAvLyBTZXQgdGhlIG9mZi1jYW52YXMgei1pbmRleC5cbiAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcblxuICAvLyBJbmNyZWFzZSBDU1Mgc3BlY2lmaWNpdHlcbiAgJi5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXg7XG4gIH1cblxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAvLyBIaWRlIGluYWN0aXZlIG9mZi1jYW52YXMgd2l0aGluIHRoZSBjb250ZW50IHRoYXQgaGF2ZSB0aGUgc2FtZSBwb3NpdGlvblxuICAmLmlzLWNsb3NlZCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gT3ZlcmxhcCBvbmx5IHN0eWxlcy5cbiAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg7XG5cbiAgICAmLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogJG9mZmNhbnZhcy1zaGFkb3c7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0cyB0cmFuc2Zvcm0gdG8gMCB0byBzaG93IGFuIG9mZi1jYW52YXMgcGFuZWwuXG4gICYuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHBvc2l0aW9uIGFuIG9mZi1jYW52YXMgcGFuZWwgdG8gdGhlIGxlZnQvcmlnaHQvdG9wL2JvdHRvbS5cbkBtaXhpbiBvZmYtY2FudmFzLXBvc2l0aW9uKFxuICAkcG9zaXRpb246IGxlZnQsXG4gICRvcmllbnRhdGlvbjogaG9yaXpvbnRhbCxcbiAgJHNpemVzOiBpZigkb3JpZW50YXRpb24gPT0gaG9yaXpvbnRhbCwgJG9mZmNhbnZhcy1zaXplcywgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplcylcbikge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuXG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplIGlzIHNldCwgYWRkIGlubmVyIGJveC1zaGFkb3cuXG4gIC8vIFRoaXMgbWltaWNzIHRoZSBvZmYtY2FudmFzIHBhbmVsIGhhdmluZyBhIGxvd2VyIHotaW5kZXgsIHdpdGhvdXQgaGF2aW5nIHRvIGhhdmUgb25lLlxuICBAaWYgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSB7XG4gICAgJi5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3cocmlnaHQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KGxlZnQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhib3R0b20sICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyh0b3AsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4vLy8gU2V0cyB0aGUgc3R5bGVzIGZvciB0aGUgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gb2ZmLWNhbnZhcy1jb250ZW50KCkge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAvLyBUcmFuc2Zvcm0gc2NvcGUgdW50aWwgdGhlIGVsZW1lbnQgaXMgY2xvc2VkIChtYWtlcyBzdXJlIHRyYW5zaXRpb25lbmQgZ2V0cyB0cmlnZ2VyZWQpXG4gICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cblxuICAvLyBDb25zaWRlciBlbGVtZW50ICYgY29udGVudCwgbmVzdGVkIGluIGFub3RoZXIgY29udGVudFxuICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdGhhdCByZXZlYWwgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbkBtaXhpbiBvZmYtY2FudmFzLXJldmVhbChcbiRwb3NpdGlvbjogbGVmdCxcbiR6aW5kZXg6ICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCxcbiRjb250ZW50OiAkbWFpbmNvbnRlbnQtY2xhc3MsXG4kYnJlYWtwb2ludDogc21hbGxcbikge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHotaW5kZXg6ICR6aW5kZXg7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG5cbiAgQGlmIG5vdCAkb2ZmY2FudmFzLWZpeGVkLXJldmVhbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIENvbnNpZGVyIHJldmVhbGVkIGVsZW1lbnQgaXMgbmVzdGVkIGluIGNvbnRlbnRcbiAgLiN7JG1haW5jb250ZW50LWNsYXNzfSAmIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICBAYXQtcm9vdCAuI3skY29udGVudH0uaGFzLXJldmVhbC0jeyRwb3NpdGlvbn0ge1xuICAgIG1hcmdpbi0jeyRwb3NpdGlvbn06IC16Zi1nZXQtYnAtdmFsKCRvZmZjYW52YXMtc2l6ZXMsICRicmVha3BvaW50KTtcbiAgfVxuXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IChwcmlvciB0byB2Ni40KVxuICAmIH4gLiN7JGNvbnRlbnR9IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAtemYtZ2V0LWJwLXZhbCgkb2ZmY2FudmFzLXNpemVzLCAkYnJlYWtwb2ludCk7XG4gIH1cbn1cblxuLy8vIE92ZXJyaWRlcyB0aGUgb2ZmLWNhbnZhcyBzdHlsZXNcbkBtaXhpbiBpbi1jYW52YXMoKSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIGhlaWdodDogYXV0bztcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB0cmFuc2l0aW9uOiBub25lO1xuXG4gIC8vIEluY3JlYXNlIENTUyBzcGVjaWZpY2l0eVxuICAmLnBvc2l0aW9uLWxlZnQsXG4gICYucG9zaXRpb24tcmlnaHQsXG4gICYucG9zaXRpb24tdG9wLFxuICAmLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9mZi1jYW52YXMge1xuICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2ljcztcblxuICAvLyBPZmYtY2FudmFzIHdyYXBwZXJcbiAgLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy13cmFwcGVyO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXJcbiAgLm9mZi1jYW52YXMge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZTtcblxuICAgIC8vIEZvcmNlIHBvc2l0aW9uIGFic29sdXRlIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBiZWNhdXNlIGZpeGVkIGRvZXNuJ3Qgd29yayBmb3IgcHVzaCB0cmFuc2l0aW9uIHdpdGhpbiB0aGUgdHJhbnNmb3JtIHNjb3BlLlxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gJiB7XG4gICAgICAvLyBOT1RFOiBzaW5jZSBvdmVybGFwIHRyYW5zaXRpb24gaXMgY3VycmVudGx5IGZvcmNlZCBpZiBuZXN0ZWQsIHRoZXJlJ3Mgbm8gbmVlZCB0byBmb3JjZSBwb3NpdGlvbiBhYnNvbHV0ZSB1bnRpbCBuZXN0ZWQgcHVzaCB0cmFuc2l0aW9uIGlzIHN1cHBvcnRlZC5cbiAgICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lciB3aXRoIGFic29sdXRlIHBvc2l0aW9uXG4gIC5vZmYtY2FudmFzLWFic29sdXRlIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2UoJGZpeGVkOiBmYWxzZSk7XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIHBvc2l0aW9uIGNsYXNzZXNcbiAgLnBvc2l0aW9uLWxlZnQgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGxlZnQsICAgaG9yaXpvbnRhbCk7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0ICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHJpZ2h0LCAgaG9yaXpvbnRhbCk7IH1cbiAgLnBvc2l0aW9uLXRvcCAgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHRvcCwgICAgdmVydGljYWwpOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20gIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihib3R0b20sIHZlcnRpY2FsKTsgfVxuXG4gIC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtY29udGVudDtcbiAgfVxuXG4gIC8vIFJldmVhbCBvZmYtY2FudmFzIHBhbmVsIG9uIGxhcmdlciBzY3JlZW5zXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRuYW1lICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwobGVmdCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChyaWdodCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwodG9wLCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChib3R0b20sICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBNb3ZlIGluLWNhbnZhcyBmb3IgbGFyZ2VyIHNjcmVlbnNcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG5hbWUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBpbi1jYW52YXM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIiwiJGRhcmstbmF2LWNvbG9yOiAjMkMzODQwO1xyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwYWdpbmF0aW9uXG4vLy8vXG5cbi8vLyBGb250IHNpemUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIG9mIHRoZSBwYWdpbmF0aW9uIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKSAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IG1hcmdpbiB0byBzZXBhcmF0ZSBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBwYWdpbmF0aW9uIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGVsbGlwc2lzIGluIGEgcGFnaW5hdGlvbiBtZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gSWYgYGZhbHNlYCwgZG9uJ3QgZGlzcGxheSBwYWdlIG51bWJlciBsaW5rcyBvbiBtb2JpbGUsIG9ubHkgbmV4dC9wcmV2aW91cyBsaW5rc1xuLy8vIGFuZCBvcHRpb25hbGx5IGN1cnJlbnQgcGFnZSBudW1iZXIuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgZGlzcGxheSB0aGUgY3VycmVudCBwYWdlIG51bWJlciBvbiBtb2JpbGUgZXZlbiBpZiBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zYCBpcyBzZXQgdG8gYGZhbHNlYC5cbi8vLyBUaGlzIHBhcmFtZXRlciB3aWxsIG9ubHkgb3ZlcnJpZGUgdGhlIHZpc2liaWxpdHkgc2V0dGluZyBvZiB0aGUgY3VycmVudCBpdGVtIGZvciBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZTtgLFxuLy8vIGl0IHdpbGwgbm90IGFmZmVjdCB0aGUgY3VycmVudCBwYWdlIG51bWJlciB2aXNpYmlsaXR5IHdoZW4gYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtc2AgaXMgc2V0IHRvIGB0cnVlYC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYXJyb3dzIGFyZSBhZGRlZCB0byB0aGUgbmV4dCBhbmQgcHJldmlvdXMgbGlua3Mgb2YgcGFnaW5hdGlvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwYWdpbmF0aW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWNvbnRhaW5lciAoXG4gICRtYXJnaW4tYm90dG9tOiAkcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tLFxuICAkZm9udC1zaXplOiAkcGFnaW5hdGlvbi1mb250LXNpemUsXG4gICRzcGFjaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcsXG4gICRyYWRpdXM6ICRwYWdpbmF0aW9uLXJhZGl1cyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tYm90dG9tO1xuXG4gIC8vIExpc3QgaXRlbVxuICBsaSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuXG4gICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICY6bGFzdC1jaGlsZCxcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtIHtcbiAgICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBjdXJyZW50IHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudCAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRiYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50LFxuICAkY29sb3ItY3VycmVudDogJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50XG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWN1cnJlbnQ7XG4gIGNvbG9yOiAkY29sb3ItY3VycmVudDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZCAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZFxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBjb2xvcjogJGNvbG9yO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gZWxsaXBzaXMgZm9yIHVzZSBpbiBhIHBhZ2luYXRpb24gbGlzdC5cbkBtaXhpbiBwYWdpbmF0aW9uLWVsbGlwc2lzIChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvclxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBjb250ZW50OiAnXFwyMDI2JztcbiAgY29sb3I6ICRjb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcGFnaW5hdGlvbiB7XG4gIC5wYWdpbmF0aW9uIHtcbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWNvbnRhaW5lcjtcblxuICAgIC5jdXJyZW50IHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1jdXJyZW50O1xuICAgIH1cblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLmVsbGlwc2lzOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWVsbGlwc2lzO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkcGFnaW5hdGlvbi1hcnJvd3Mge1xuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cy5kaXNhYmxlZDo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjVyZW07XG4gICAgICBjb250ZW50OiAnXFwwMGFiJztcbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbi1uZXh0IGE6OmFmdGVyLFxuICAgIC5wYWdpbmF0aW9uLW5leHQuZGlzYWJsZWQ6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICdcXDAwYmInO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXN0aWNreSB7XG4gIC5zdGlja3ktY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuc3RpY2t5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgLnN0aWNreS5pcy1zdHVjayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmLmlzLWF0LXRvcCB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5zdGlja3kuaXMtYW5jaG9yZWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCB0YWJsZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgdGFibGUgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZSAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHN0cmlwZWQgdGFibGUgcm93cyBhbmQgdGhlIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1jb2xvci1zY2FsZTogNSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHN0eWxlIGZvciB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWJsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0YW5kYXJkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdHJpcGVkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgdGFibGVzIGFyZSBzdHJpcGVkIGJ5IGRlZmF1bHQgYW5kIGFuIC51bnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC4gSWYgYGZhbHNlYCwgYSAuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBzdHJpcGVkIHJvd3MuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgc3RyaXBlIG9uIHJvd3Mgb2YgdGhlIHRhYmxlcywgZXhjbHVkaW5nIHRoZSBoZWFkZXIgYW5kIGZvb3Rlci4gSWYgZXZlbiwgdGhlIGV2ZW4gcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBvZGQsIHRoZSBvZGQgcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBlbXB0eSwgb3IgYW55IG90aGVyIHZhbHVlLCB0aGUgdGFibGUgcm93cyB3aWxsIGhhdmUgbm8gc3RyaXBpbmcuXG4vLy8gQHR5cGUgS2V5d29yZFxuJHRhYmxlLXN0cmlwZTogZXZlbiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlYWRlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlIC8gMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBmb290ZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGhlYWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9vdGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgaGVhZGVyIHdoZW4gdXNpbmcgc3RhY2tlZCB0YWJsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggc3RhY2tlZCB0YWJsZSBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuQG1peGluIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSkge1xuICB0ciB7XG4gICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBldmVuLCBkYXJrZW4gdGhlIGV2ZW4gcm93cy5cbiAgICBAaWYgJHN0cmlwZSA9PSBldmVuIHtcbiAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIG9kZCwgZGFya2VuIHRoZSBvZGQgcm93cy5cbiAgICBAZWxzZSBpZiAkc3RyaXBlID09IG9kZCB7XG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIC16Zi10YWJsZS11bnN0cmlwZSgpIHtcbiAgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlOiAkdGFibGUtc3RyaXBlLCAkaXMtc3RyaXBlZDogJHRhYmxlLWlzLXN0cmlwZWQpIHtcbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0Zm9vdCB7XG4gICAgYm9yZGVyOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2FwdGlvblxuICBjYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWRcbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBmb290XG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtZm9vdC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtZm9vdC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZCBhbmQgZm9vdFxuICB0aGVhZCxcbiAgdGZvb3Qge1xuICAgIC8vIFJvd3Mgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0ciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAvLyBDZWxscyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICB0ZXh0LWFsaWduOiAjeyRnbG9iYWwtbGVmdH07XG4gICAgfVxuICB9XG5cbiAgLy8gVGFibGUgcm93c1xuICB0Ym9keSB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBzdHJpcGVkXG4gIEBpZiAkaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgIH1cblxuICAgICYudW5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgbm90IHN0cmlwZWRcbiAgQGVsc2UgaWYgJGlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgIH1cblxuICAgICYuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGFibGVzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0cmlwZSBbJHRhYmxlLXN0cmlwZV0gLSBVc2VzIGtleXdvcmRzIGV2ZW4sIG9kZCwgb3Igbm9uZSB0byBkYXJrZW4gcm93cyBvZiB0aGUgdGFibGUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGV2ZW4uXG5AbWl4aW4gdGFibGUoXG4gICRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsXG4gICRuZXN0OiBmYWxzZVxuKSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbiAgQGlmICRuZXN0IHtcbiAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgYWJpbGl0eSB0byBob3Jpem9udGFsbHkgc2Nyb2xsIHRoZSB0YWJsZSB3aGVuIHRoZSBjb250ZW50IG92ZXJmbG93cyBob3Jpem9udGFsbHkuXG5AbWl4aW4gdGFibGUtc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4vLy8gU2xpZ2h0bHkgZGFya2VucyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbkBtaXhpbiB0YWJsZS1ob3ZlciB7XG4gIHRoZWFkIHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWhlYWQtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWZvb3Qtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIG5vbi1zdHJpcGVkIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2UgaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZSBpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWNrZWQgdGFibGUuIFVzZWZ1bCBmb3Igc21hbGwtc2NyZWVuIGxheW91dHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaGVhZGVyIFskc2hvdy1oZWFkZXItZm9yLXN0YWNrZWRdIC0gU2hvdyB0aGUgZmlyc3QgdGggb2YgaGVhZGVyIHdoZW4gc3RhY2tlZC5cbkBtaXhpbiB0YWJsZS1zdGFjaygkaGVhZGVyOiAkc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQpIHtcbiAgQGlmICRoZWFkZXIge1xuICAgIHRoZWFkIHtcbiAgICAgIHRoIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHIsXG4gIHRoLFxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJsZSgkbmVzdDogZmFsc2UpIHtcbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XG4gIH1cblxuICB0YWJsZS5zdGFjayB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdGFibGUtc3RhY2stYnJlYWtwb2ludCBkb3duKSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZS1zdGFjaztcbiAgICB9XG4gIH1cblxuICB0YWJsZS5zY3JvbGwge1xuICAgIEBpbmNsdWRlIHRhYmxlLXNjcm9sbDtcbiAgfVxuXG4gIHRhYmxlLmhvdmVyIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1ob3ZlcjtcbiAgfVxuXG4gIC50YWJsZS1zY3JvbGwge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ21hdGgnO1xuXG4kY29udHJhc3Qtd2FybmluZ3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIGNoZWNrIHRoZSBsdW1pbmFuY2Ugb2YuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuQGZ1bmN0aW9uIGNvbG9yLWx1bWluYW5jZSgkY29sb3IpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI3JlbGF0aXZlbHVtaW5hbmNlZGVmXG4gICRyZ2JhOiByZWQoJGNvbG9yKSwgZ3JlZW4oJGNvbG9yKSwgYmx1ZSgkY29sb3IpO1xuICAkcmdiYTI6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMyB7XG4gICAgJHJnYjogbnRoKCRyZ2JhLCAkaSk7XG4gICAgJHJnYjogJHJnYiAvIDI1NTtcblxuICAgICRyZ2I6IGlmKCRyZ2IgPCAwLjAzOTI4LCAkcmdiIC8gMTIuOTIsIHBvdygoJHJnYiArIDAuMDU1KSAvIDEuMDU1LCAyLjQpKTtcblxuICAgICRyZ2JhMjogYXBwZW5kKCRyZ2JhMiwgJHJnYik7XG4gIH1cblxuICBAcmV0dXJuIDAuMjEyNiAqIG50aCgkcmdiYTIsIDEpICsgMC43MTUyICogbnRoKCRyZ2JhMiwgMikgKyAwLjA3MjIgKiBudGgoJHJnYmEyLCAzKTtcbn1cblxuLy8vIENoZWNrcyB0aGUgY29udHJhc3QgcmF0aW8gb2YgdHdvIGNvbG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjEgLSBGaXJzdCBjb2xvciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjIgLSBTZWNvbmQgY29sb3IgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBjb250cmFzdCByYXRpbyBvZiB0aGUgY29tcGFyZWQgY29sb3JzLlxuQGZ1bmN0aW9uIGNvbG9yLWNvbnRyYXN0KCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI2NvbnRyYXN0LXJhdGlvZGVmXG4gICRsdW1pbmFuY2UxOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMSkgKyAwLjA1O1xuICAkbHVtaW5hbmNlMjogY29sb3ItbHVtaW5hbmNlKCRjb2xvcjIpICsgMC4wNTtcbiAgJHJhdGlvOiAkbHVtaW5hbmNlMSAvICRsdW1pbmFuY2UyO1xuXG4gIEBpZiAkbHVtaW5hbmNlMiA+ICRsdW1pbmFuY2UxIHtcbiAgICAkcmF0aW86IDEgLyAkcmF0aW87XG4gIH1cblxuICAkcmF0aW86IHJvdW5kKCRyYXRpbyAqIDEwKSAvIDEwO1xuXG4gIEByZXR1cm4gJHJhdGlvO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRiYXNlYCwgYW5kIHJldHVybnMgdGhlIGNvbG9yIGZyb20gYCRjb2xvcnNgIChsaXN0IG9mIGNvbG9ycykgdGhhdCBoYXMgdGhlIG1vc3QgY29udHJhc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFzZSAtIENvbG9yIHRvIGNoZWNrIGx1bWluYW5jZS5cbi8vLyBAcGFyYW0ge0xpc3R9ICRjb2xvcnMgWygkd2hpdGUsICRibGFjayldIC0gQ29sb3JzIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b2xlcmFuY2UgWyRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2VdIC0gQ29udHJhc3QgdG9sZXJhbmNlLlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbkBmdW5jdGlvbiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYXNlLCAkY29sb3JzOiAoJHdoaXRlLCAkYmxhY2spLCAkdG9sZXJhbmNlOiAkZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlKSB7XG4gICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAxKSk7XG4gICRiZXN0OiBudGgoJGNvbG9ycywgMSk7XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCBsZW5ndGgoJGNvbG9ycykge1xuICAgICRjdXJyZW50LWNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgQGlmICgkY3VycmVudC1jb250cmFzdCAtICRjb250cmFzdCA+ICR0b2xlcmFuY2UpIHtcbiAgICAgICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAkaSkpO1xuICAgICAgJGJlc3Q6IG50aCgkY29sb3JzLCAkaSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkY29udHJhc3Qtd2FybmluZ3MgYW5kICRjb250cmFzdCA8IDMpIHtcbiAgICBAd2FybiBcIkNvbnRyYXN0IHJhdGlvIG9mICN7JGJlc3R9IG9uICN7JGJhc2V9IGlzIHByZXR0eSBiYWQsIGp1c3QgI3skY29udHJhc3R9XCI7XG4gIH1cblxuICBAcmV0dXJuICRiZXN0O1xufVxuXG4vLy8gU2NhbGVzIGEgY29sb3IgdG8gYmUgZGFya2VyIGlmIGl0J3MgbGlnaHQsIG9yIGxpZ2h0ZXIgaWYgaXQncyBkYXJrLiBVc2UgdGhpcyBmdW5jdGlvbiB0byB0aW50IGEgY29sb3IgYXBwcm9wcmlhdGUgdG8gaXRzIGxpZ2h0bmVzcy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIHNjYWxlLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHNjYWxlIFs1JV0gLSBBbW91bnQgdG8gc2NhbGUgdXAgb3IgZG93bi5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzQwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IEEgc2NhbGVkIGNvbG9yLlxuQGZ1bmN0aW9uIHNtYXJ0LXNjYWxlKCRjb2xvciwgJHNjYWxlOiA1JSwgJHRocmVzaG9sZDogNDAlKSB7XG4gIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA+ICR0aHJlc2hvbGQge1xuICAgICRzY2FsZTogLSRzY2FsZTtcbiAgfVxuICBAcmV0dXJuIHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJHNjYWxlKTtcbn1cblxuLy8vIEdldCBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHBhcmFtIHtrZXl9IGNvbG9yIGtleSBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuQGZ1bmN0aW9uIGdldC1jb2xvcigka2V5KSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ2dpdmVuICRrZXkgaXMgbm90IGF2YWlsYWJsZSBpbiAkZm91bmRhdGlvbi1wYWxldHRlJztcbiAgfVxufVxuXG4vLy8gVHJhbnNmZXJzIHRoZSBjb2xvcnMgaW4gdGhlIGAkZm91bmRhdGlvbi1wYWxldHRlYCBtYXAgaW50byB2YXJpYWJsZXMsIHN1Y2ggYXMgYCRwcmltYXJ5LWNvbG9yYCBhbmQgYCRzZWNvbmRhcnktY29sb3JgLiBDYWxsIHRoaXMgbWl4aW4gYmVsb3cgdGhlIEdsb2JhbCBzZWN0aW9uIG9mIHlvdXIgc2V0dGluZ3MgZmlsZSB0byBwcm9wZXJseSBtaWdyYXRlIHlvdXIgY29kZWJhc2UuXG5AbWl4aW4gYWRkLWZvdW5kYXRpb24tY29sb3JzKCkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICAgICRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRwcmltYXJ5LWNvbG9yOiAjMTc3OWJhICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkge1xuICAgICRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkc2Vjb25kYXJ5LWNvbG9yOiAjNzY3Njc2ICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogIzNhZGI3NiAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSB7XG4gICAgJHdhcm5pbmctY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHdhcm5pbmctY29sb3I6ICNmZmFlMDAgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpIHtcbiAgICAkYWxlcnQtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRhbGVydC1jb2xvcjogI2NjNGIzNyAhZ2xvYmFsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aHVtYm5haWxcbi8vLy9cblxuLy8vIEJvcmRlciBhcm91bmQgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBCb3JkZXJcbiR0aHVtYm5haWwtYm9yZGVyOiA0cHggc29saWQgJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BydGllcyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgdGh1bWJuYWlsIHN0eWxlcyB0byBhbiBlbGVtZW50LlxuQG1peGluIHRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkdGh1bWJuYWlsLW1hcmdpbi1ib3R0b207XG5cbiAgYm9yZGVyOiAkdGh1bWJuYWlsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHRodW1ibmFpbC1yYWRpdXM7XG4gIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93O1xuXG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG5AbWl4aW4gdGh1bWJuYWlsLWxpbmsge1xuICB0cmFuc2l0aW9uOiAkdGh1bWJuYWlsLXRyYW5zaXRpb247XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10aHVtYm5haWwge1xuICAudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWw7XG4gIH1cblxuICBhLnRodW1ibmFpbCB7XG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsLWxpbms7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgLy8gTWF4IHZhbHVlIGlzIDAuMnB4IHVuZGVyIHRoZSBuZXh0IGJyZWFrcG9pbnQgKDAuMDIgLyAxNiA9IDAuMDAxMjUpLlxuICAvLyBVc2UgYSBwcmVjaXNpb24gdW5kZXIgMXB4IHRvIHN1cHBvcnQgYnJvd3NlciB6b29tLCBidXQgbm90IHRvIGxvdyB0byBhdm9pZCByb3VuZGluZy5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzExMzEzXG4gICRzaXplOiAtemYtYnAtdG8tZW0oJHNpemUpIC0gLjAwMTI1O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCB3aXRoaW4gYSBjZXJ0YWluIGJyZWFrcG9pbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XG4gICRsb3dlci1ib3VuZC1zaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xuXG4gIC8vIG1vcmUgb2Z0ZW4gdGhhbiBub3QgdGhpcyB3aWxsIGJlIGNvcnJlY3QsIGp1c3Qgb25lIHRpbWUgcm91bmQgdGhlIGxvb3AgaXQgd29uJ3Qgc28gc2V0IGluIHNjb3BlIGhlcmVcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gLjAwMTI1O1xuICAvLyB0ZXN0IGFjdHVhbCBsb3dlci1ib3VuZC1zaXplLCBpZiAwIHNldCBpdCB0byAwZW1cbiAgQGlmIHN0cmlwLXVuaXQoJGxvd2VyLWJvdW5kLXNpemUpID09IDAge1xuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcbiAgfVxuXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgJ3V0Zi04JztcclxuXHJcbkBpbXBvcnQgXCJzZXR0aW5nc1wiO1xyXG5AaW1wb3J0IFwiZm91bmRhdGlvblwiO1xyXG4vLyBAaW1wb3J0IFwibW90aW9uLXVpXCI7XHJcbkBpbXBvcnQgXCJub2RlX21vZHVsZXMvcmZzL3Njc3NcIjtcclxuXHJcbi8vICRhb3MtZGlzdGFuY2U6IDQwcHg7IC8vIEl0IGhhcyB0byBiZSBhYm92ZSBpbXBvcnRcclxuLy8gQGltcG9ydCAnbm9kZV9tb2R1bGVzL2Fvcy9zcmMvc2Fzcy9hb3Muc2Nzcyc7XHJcblxyXG4vLyBUT0RPOiBHbyB0aHJvdWdoIHRoaXMgYW5kIHJlbW92ZSBhbGwgc3R5bGluZyB1bmxpZWtseSB0byBiZSByZXF1aXJlZFxyXG5cclxuQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xyXG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcclxuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcclxuXHJcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi14eS1ncmlkLWNsYXNzZXM7XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcclxuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbjtcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcclxuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1yYW5nZS1pbnB1dDtcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XHJcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XHJcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tYnJlYWRjcnVtYnM7XHJcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XHJcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XHJcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xyXG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xyXG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XHJcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XHJcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tb2ZmLWNhbnZhcztcclxuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xyXG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWJhcjtcclxuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tc3RpY2t5O1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcclxuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XHJcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcclxuQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XHJcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xyXG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XHJcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcclxuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xyXG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcclxuXHJcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWNsYXNzZXM7XHJcblxyXG4vLyBAaW5jbHVkZSBtb3Rpb24tdWktdHJhbnNpdGlvbnM7XHJcbi8vIEBpbmNsdWRlIG1vdGlvbi11aS1hbmltYXRpb25zO1xyXG5cclxuLypcclxuICBNeSBjdXN0b20gc3R5bGVzOlxyXG4gIEFkZCB5b3VyIHNjc3MgZmlsZXMgYmVsb3cgdG8gc3RydWN0dXJlIHlvdXIgcHJvamVjdCBzdHlsZXNcclxuKi9cclxuXHJcbi8vIFRvb2xzXHJcbkBpbXBvcnQgXCJ0b29scy9kZXYtaGVscGVyXCI7IC8vIERldiBoZWxwZXIgc2hvd2luZyBicmVha3BvaW50cy5cclxuXHJcbi8vIEdsb2JhbFxyXG5AaW1wb3J0IFwiZ2xvYmFsL2FjY2Vzc2liaWxpdHlcIjtcclxuQGltcG9ydCBcImdsb2JhbC9jb2xvcnNcIjtcclxuQGltcG9ydCBcImdsb2JhbC90eXBvZ3JhcGh5XCI7XHJcbkBpbXBvcnQgXCJnbG9iYWwvd3AtYWRtaW5cIjtcclxuQGltcG9ydCBcImdsb2JhbC93cC1vdmVycmlkZXNcIjtcclxuQGltcG9ydCBcImdsb2JhbC9ndXRlbmJlcmdcIjtcclxuXHJcbi8vIE1vZHVsZXNcclxuQGltcG9ydCBcIm1vZHVsZXMvZm9vdGVyXCI7XHJcbkBpbXBvcnQgXCJtb2R1bGVzL21vbi1ncmlkXCI7XHJcbkBpbXBvcnQgXCJtb2R1bGVzL2NvbnRlbnRcIjtcclxuXHJcbi8vIEFuaW1hdGlvbnNcclxuLy9AaW1wb3J0IFwiYW5pbWF0aW9ucy9mYWRlLWluXCI7XHJcbkBpbXBvcnQgXCJhbmltYXRpb25zL3NwaW5uZXJcIjtcclxuXHJcbi8vIENvbXBvbmVudHNcclxuQGltcG9ydCBcImNvbXBvbmVudHMvYnJlYWRjcnVtYnNcIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvYnV0dG9uc1wiO1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9jYWxsb3V0XCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2NhcmRzXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2RpdmlkZXJzXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2ZlYXR1cmVkLWltYWdlXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2ljb25zXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Zvcm1zXCI7XHJcbi8vIEBpbXBvcnQgXCJjb21wb25lbnRzL2ZyZXNjby1iYXNlXCI7XHJcbi8vIEBpbXBvcnQgXCJjb21wb25lbnRzL2ZyZXNjby10aGVtZVwiO1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9saW5rc1wiO1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9saXN0XCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL3BhZ2luYXRpb25cIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvcmV2ZWFsXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL3NlYXJjaC1mb3JtXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL3NlYXJjaC1zbmlwcGV0XCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL3RpdGxlLWJhclwiO1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy93aWRnZXRcIjtcclxuXHJcbi8vIFRlbXBsYXRlc1xyXG4vLyBAaW1wb3J0IFwidGVtcGxhdGVzL2Zyb250XCI7XHJcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvYXJjaGl2ZVwiO1xyXG5AaW1wb3J0IFwidGVtcGxhdGVzL2FyY2hpdmUtbm90ZVwiO1xyXG5AaW1wb3J0IFwidGVtcGxhdGVzL3NpbmdsZS1ub3RlXCI7XHJcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvc2luZ2xlLWV2ZW50XCI7XHJcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvc2luZ2xlLXRlYW1cIjtcclxuXHJcbi8vIFBhdHRlcm4gbGlicmFyeSBoZWFkZXIgY29tcG9uZW50c1xyXG5AaW1wb3J0IFwiaGVhZGVyL3RvcC1iYXJcIjtcclxuQGltcG9ydCBcImhlYWRlci9oYW1idXJnZXJcIjtcclxuQGltcG9ydCBcImhlYWRlci9vZmZjYW52YXNcIjtcclxuQGltcG9ydCBcImhlYWRlci9kZXNrdG9wLWRyb3Bkb3duLW1lbnVcIjtcclxuQGltcG9ydCBcImhlYWRlci9tb2JpbGUtYWNjb3JkaW9uLW1lbnVcIjtcclxuQGltcG9ydCBcImhlYWRlci9tb2JpbGUtZHJpbGxkb3duLW1lbnVcIjtcclxuXHJcbi8vIFBhdHRlcm4gbGlicmFyeSBoZWFkZXIgY29tcG9uZW50c1xyXG5AaW1wb3J0IFwiaGVhZGVyL2hlYWRlci1iYXNpY1wiO1xyXG5cclxuLy8gQ2FyZSBjb2lucyBtYW5hZ2VyIHBsdWdpblxyXG5AaW1wb3J0IFwiY2FyZS1jb2lucy1tYW5hZ2VyL2Rhc2hib2FyZFwiO1xyXG5AaW1wb3J0IFwiY2FyZS1jb2lucy1tYW5hZ2VyL25vdGUtcmVwb3J0aW5nXCI7XHJcblxyXG4vLyBEYXRlcGlja2VyXHJcbkBpbXBvcnQgXCJub2RlX21vZHVsZXMvdmFuaWxsYWpzLWRhdGVwaWNrZXIvc2Fzcy9kYXRlcGlja2VyXCI7XHJcbkBpbXBvcnQgXCJub2RlX21vZHVsZXMvdmFuaWxsYWpzLWRhdGVwaWNrZXIvc2Fzcy9kYXRlcGlja2VyLWZvdW5kYXRpb25cIjtcclxuXHJcbi8vIENvcmUgYmxvY2sgcGFydGlhbHNcclxuQGltcG9ydCBcImJsb2Nrc1wiO1xyXG5cclxuLy8gSWYgY29va2llIGxhdyBpbmZvIHBsdWdpbiBpcyBlbmFibGVkXHJcbkBpbXBvcnQgXCJ0aGlyZC1wYXJ0eS9jb29raWUtbGF3LWluZm9cIjtcclxuXHJcbi8vIElmIGxhenkgbG9hZCB2aWRlbyBwbHVnaW4gdXNlZCwgbG9hZCB0aGUgU0FTUyBwYXJ0aWFsIGhlcmUuXHJcbi8vIEBpbXBvcnQgXCJ0aGlyZC1wYXJ0eS9sYXp5bG9hZC12aWRlb1wiO1xyXG5cclxuLy8gV29vY29tbWVyY2UuXHJcbkBpbXBvcnQgXCJ3b29jb21tZXJjZS9jb21wb25lbnRzL2NhcmRcIjtcclxuQGltcG9ydCBcIndvb2NvbW1lcmNlL2NvbXBvbmVudHMvZmlsdGVyaW5nXCI7XHJcbkBpbXBvcnQgXCJ3b29jb21tZXJjZS9jb21wb25lbnRzL2hlYWRlci1iYXNrZXQtbGlua1wiO1xyXG5AaW1wb3J0IFwid29vY29tbWVyY2UvY29tcG9uZW50cy9saXN0c1wiO1xyXG5AaW1wb3J0IFwid29vY29tbWVyY2UvY29tcG9uZW50cy9tZXNzYWdlc1wiO1xyXG5AaW1wb3J0IFwid29vY29tbWVyY2UvY29tcG9uZW50cy9wYWdpbmF0aW9uXCI7XHJcbkBpbXBvcnQgXCJ3b29jb21tZXJjZS9jb21wb25lbnRzL3Byb2R1Y3QtbG9vcFwiO1xyXG5AaW1wb3J0IFwid29vY29tbWVyY2UvY29tcG9uZW50cy9zYWxlLWJ1YmJsZVwiO1xyXG5AaW1wb3J0IFwid29vY29tbWVyY2UvY29tcG9uZW50cy90YWJsZXMvY2FydC10YWJsZVwiO1xyXG5AaW1wb3J0IFwid29vY29tbWVyY2UvY29tcG9uZW50cy90YWJsZXMvY2FydC10b3RhbHNcIjtcclxuQGltcG9ydCBcIndvb2NvbW1lcmNlL2NvbXBvbmVudHMvdGFibGVzL3ZhcmlhdGlvbnMtdGFibGVcIjtcclxuQGltcG9ydCBcIndvb2NvbW1lcmNlL3RlbXBsYXRlcy9hcmNoaXZlLXByb2R1Y3RcIjtcclxuQGltcG9ydCBcIndvb2NvbW1lcmNlL3RlbXBsYXRlcy9jYXJ0XCI7XHJcbkBpbXBvcnQgXCJ3b29jb21tZXJjZS90ZW1wbGF0ZXMvY2hlY2tvdXRcIjtcclxuQGltcG9ydCBcIndvb2NvbW1lcmNlL3RlbXBsYXRlcy9teS1hY2NvdW50XCI7XHJcbkBpbXBvcnQgXCJ3b29jb21tZXJjZS90ZW1wbGF0ZXMvc2luZ2xlLXByb2R1Y3RcIjtcclxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuU3R5bGVzaGVldDogRGV2IEhlbHBlclxyXG5cclxuQnkgY3JlYXRpbmcgYSBuZXcgY29uc3RhbnQgY2FsbGVkIEVOVklST05NRU5UIGluIHdwLWNvbmZpZy5waHBcclxud2UgY2FuIGRvIHRoaW5ncyBsaWtlIGVuYWJsZSBjZXJ0YWluIHN0eWxlcyBvbmx5IHdoZW4gdGhlIHNpdGUgaXNcclxucnVubmluZyBsb2NhbGx5LlxyXG5cclxuVGhlIHdheSB0aGlzIHdvcmtzIGlzIHRoZSBoZWFkZXIgZmlsZSBsb29rcyBmb3IgdGhlIGNvbnN0YW50IGFuZCBhZGRzIGEgY2xhc3Mgb2YgXHJcbi5tb2RlLXtFTlZJUk9OTUVOVH0gdG8gdGhlIGJvZHkuIFNvIGlmIHlvdSBzZXQgdGhlIGNvbnN0YW50IHRvICdsb2NhbCcgeW91J2xsIGhhdmUgXHJcbmJvZHkgY2xhc3M9XCJtb2RlLWxvY2FsXCIgYXZhaWxhYmxlIHRvIHlvdS4gXHJcblxyXG5Zb3UgY291bGQgYWxzbyB1c2UgdGhpcyBDT05TVEFOVCB0byBlbmFibGUgY2VydGFpbiBiaXRzIG9mIGNvZGUgaW4gc3BlY2lmaWMgZW52aXJvbm1lbnRzLlxyXG5cclxuSWYgaXQncyBub3QgYWxyZWFkeSBpbmNsdWRlZCBpbiB3cC1jb25maWcucGhwLCBhZGQgdGhlIGZvbGxvd2luZzpcclxuXHJcbi8qKiBVc2VkIGZvciB0dXJuaW5nIHRoaW5ncyBsaWtlIEdBIHRyYWNraW5nIG9mZiBpbiBsb2NhbCBlbnYgKi9cclxuLyoqIFNldCB0byBsb2NhbCwgc3RhZ2luZywgb3IgbGl2ZSAqL1xyXG4vLyBkZWZpbmUoJ0VOVklST05NRU5UJywgJ2xvY2FsJyk7IChVbmNvbW1lbnQgdGhpcyBsaW5lISEpXHJcblxyXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbi5tb2RlLWxvY2FsIHtcclxuICAvLyBBbnl0aGluZyBpbiB0aGlzIGJsb2NrIHdpbGwgb25seSBkaXNwbGF5IGlmIEVOVklST05NRU5UIGNvbnN0YW50IHNldCB0byAnbGl2ZScgaW4gd3AtY29uZmlnLnBocFxyXG5cclxuICBmb290ZXI6YWZ0ZXIge1xyXG4gICAgLy8gVGhpcyBhZGQgYSBwc2V1ZG8gZWxlbWVudCB0byB0aGUgc2l0ZSBmb290ZXIgc2hvd2luZyB0aGUgY3VycmVudCBicmVhayBwb2ludFxyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgYmFja2dyb3VuZDogcmVkO1xyXG4gICAgcGFkZGluZzogNXB4IDEwcHg7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGNvbnRlbnQ6IFwiTE9DQUwgLyBCUDogc21hbGxcIjtcclxuICAgIGZvbnQtc2l6ZTogcmVtX2NhbGMoMTRweCk7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBjb250ZW50OiBcIkxPQ0FMIC8gQlA6IG1lZGl1bVwiO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICBjb250ZW50OiBcIkxPQ0FMIC8gQlA6IGxhcmdlXCI7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xyXG4gICAgICBjb250ZW50OiBcIkxPQ0FMIC8gQlA6IHhsYXJnZVwiO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlKSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiTE9DQUwgLyBCUDogeHhsYXJnZVwiO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm1vZGUtZGV2ZWxvcG1lbnQge1xyXG4gIC8vIEFueXRoaW5nIGluIHRoaXMgYmxvY2sgd2lsbCBvbmx5IGRpc3BsYXkgaWYgRU5WSVJPTk1FTlQgY29uc3RhbnQgc2V0IHRvICdzdGFnaW5nJyBpbiB3cC1jb25maWcucGhwXHJcblxyXG4gIGZvb3RlcjphZnRlciB7XHJcbiAgICAvLyBUaGlzIGFkZCBhIHBzZXVkbyBlbGVtZW50IHRvIHRoZSBzaXRlIGZvb3RlciBzaG93aW5nIHRoZSBjdXJyZW50IGJyZWFrIHBvaW50XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBiYWNrZ3JvdW5kOiBvcmFuZ2U7XHJcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcclxuICAgIGNvbG9yOiBibGFjaztcclxuICAgIGJvdHRvbTogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgY29udGVudDogXCJTVEFHSU5HIC8gQlA6IHNtYWxsXCI7XHJcbiAgICBmb250LXNpemU6IHJlbV9jYWxjKDE0cHgpO1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgY29udGVudDogXCJTVEFHSU5HIC8gQlA6IG1lZGl1bVwiO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICBjb250ZW50OiBcIlNUQUdJTkcgLyBCUDogbGFyZ2VcIjtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiU1RBR0lORyAvIEJQOiB4bGFyZ2VcIjtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xyXG4gICAgICBjb250ZW50OiBcIlNUQUdJTkcgLyBCUDogeHhsYXJnZVwiO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gLy8gSGlnaGxpZ2h0IG1pc3NpbmcgYWx0IHRhZ3Mgd2l0aCByZWQgc2hhZG93IGJvcmRlciBvbiBkZXYgbGluayBvbmx5LlxyXG4vLyAubW9kZS1kZXZlbG9wbWVudCBpbWdbYWx0PVwiXCJdIHtcclxuLy8gXHRib3gtc2hhZG93OiAwIDAgMCA1cHggcmVkO1xyXG4vLyB9XHJcblxyXG4vLyAubW9kZS1kZXZlbG9wbWVudCBpbWdbYWx0PVwiXCJdICsgZGl2IHtcclxuLy8gXHQmOjphZnRlciB7XHJcbi8vIFx0XHRjb250ZW50OiAnSW1hZ2VzIGhpZ2hsaWdodGVkIHJlZCBuZWVkIGFsdCB0ZXh0JztcclxuLy8gXHRcdGJhY2tncm91bmQtY29sb3I6IHJlZDtcclxuLy8gXHRcdGJvdHRvbTogMDtcclxuLy8gXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG4vLyBcdFx0Zm9udC1zaXplOiAxMnB4O1xyXG4vLyBcdFx0Zm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcbi8vIFx0XHRsZWZ0OiAwO1xyXG4vLyBcdFx0cGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogLjUgJGdsb2JhbC1wYWRkaW5nO1xyXG4vLyBcdFx0cG9zaXRpb246IGZpeGVkO1xyXG4vLyBcdFx0ei1pbmRleDogOTk7XHJcbi8vIFx0fVxyXG4vLyB9XHJcbiIsIi8vIFRleHQgbWVhbnQgb25seSBmb3Igc2NyZWVuIHJlYWRlcnMuIEFkZHJlc3NlcyBwYXJ0IG9mIHRoZW1lLWNoZWNrIGlzc3VlICM4NDAuXHJcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9BdXRvbWF0dGljL19zL2Jsb2IvbWFzdGVyL3N0eWxlLmNzc1xyXG4uc2NyZWVuLXJlYWRlci10ZXh0IHtcclxuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XHJcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XHJcbiAgaGVpZ2h0OiAxcHg7XHJcbiAgd2lkdGg6IDFweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4uc2NyZWVuLXJlYWRlci10ZXh0OmZvY3VzIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICBib3gtc2hhZG93OiAwIDAgMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNik7XHJcbiAgY2xpcDogYXV0byAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjMjE3NTliO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBmb250LXNpemU6IDAuODc1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGhlaWdodDogYXV0bztcclxuICBsZWZ0OiA1cHg7XHJcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICBwYWRkaW5nOiAxNXB4IDIzcHggMTRweDtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgdG9wOiA1cHg7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgei1pbmRleDogMTAwMDAwOyAvLyBBYm92ZSBXUCB0b29sYmFyLlxyXG59XHJcblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBSZW1vdmUgYWxsIGFuaW1hdGlvbnMgaWYgdGhlIHVzZXIgaGFzIGl0IHNldC4gVGhpcyBvbmx5IHRha2VzIGVmZmVjdCBpZiB0aGUgdXNlciBoYXMgc2V0IHRoaXMgb24gdGhlaXIgc3lzdGVtcyEgQHRvZG8gU2hvdWxkIHRoaXMgYmUgaW4gYSBkaWZmZXJlbnQgZmlsZSBhbmQgaW5jbHVkZWQgbGFzdCBvdXQgb2YgYWxsIHRoZSBmaWxlcyBpbiBhcHAuc2Nzcz9cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcclxuICAqLFxyXG4gIDo6YmVmb3JlLFxyXG4gIDo6YWZ0ZXIge1xyXG4gICAgYW5pbWF0aW9uLWRlbGF5OiAtMW1zICFpbXBvcnRhbnQ7XHJcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDFtcyAhaW1wb3J0YW50O1xyXG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMSAhaW1wb3J0YW50O1xyXG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBpbml0aWFsICFpbXBvcnRhbnQ7XHJcbiAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG8gIWltcG9ydGFudDtcclxuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDBzICFpbXBvcnRhbnQ7XHJcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcyAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG4iLCIvLyBSZXR1cm4gZGVlcGx5IG5lc3RlZCB2YWx1ZSBmcm9tIGEgbWFwLlxyXG5AZnVuY3Rpb24gbWFwLWRlZXAtZ2V0KCRtYXAsICRrZXlzLi4uKSB7XHJcbiAgQGVhY2ggJGtleSBpbiAka2V5cyB7XHJcbiAgICAkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xyXG4gIH1cclxuICBAcmV0dXJuICRtYXA7XHJcbn1cclxuXHJcbi8vIENyZWF0ZSB0aGUgaGVhZGluZ3Mgc3R5bGVzLlxyXG4uaDEge1xyXG4gIEBleHRlbmQgaDE7XHJcbn1cclxuXHJcbi5oMiB7XHJcbiAgQGV4dGVuZCBoMjtcclxufVxyXG5cclxuLmgzIHtcclxuICBAZXh0ZW5kIGgzO1xyXG59XHJcblxyXG4uaDQge1xyXG4gIEBleHRlbmQgaDQ7XHJcbn1cclxuXHJcbi5oNSB7XHJcbiAgQGV4dGVuZCBoNTtcclxufVxyXG5cclxuLmg2IHtcclxuICBAZXh0ZW5kIGg2O1xyXG59XHJcblxyXG4vLyBBZGRzIGFuIHVuZGVybGluZSB0byBhbiBlbGVtZW50LlxyXG4uaGVhZGluZy11bmRlcmxpbmUge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgYmFja2dyb3VuZDogJGJvZHktZm9udC1jb2xvcjtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGhlaWdodDogM3B4O1xyXG4gICAgLy8gVGhpcyBtaWdodCBuZWVkIHRoZSBsZWZ0IG1hcmdpbiB0d2Vha2luZyBkZXBlbmRpbmcgb24gdGhlIGZvbnQgc3BhY2luZy5cclxuICAgIG1hcmdpbjogKCRnbG9iYWwtbWFyZ2luICogMikgMDtcclxuICAgIHdpZHRoOiA4MHB4O1xyXG4gIH1cclxufVxyXG5cclxuLy8gU2FkbHkgaGFkIHRvIGR1cGxpY2F0ZSB0aGlzIHNvbWV3aGF0IGFzIHVzaW5nIEBleHRlbmQgb24gdGhlIGJsb2NrX19oZWFkaW5nIGNhbnQgaGFuZGxlIGRlZXBseSBuZXN0ZWQgcHNldWRvIHJ1bGVzLlxyXG4uaGVhZGluZy11bmRlcmxpbmUtLWNlbnRlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgYmFja2dyb3VuZDogJGJvZHktZm9udC1jb2xvcjtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGhlaWdodDogM3B4O1xyXG4gICAgbWFyZ2luOiAoJGdsb2JhbC1tYXJnaW4gKiAyKSBhdXRvICgkZ2xvYmFsLW1hcmdpbiAqIDIpO1xyXG4gICAgd2lkdGg6IDgwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBTdWJoZWFkaW5nLlxyXG4uc3ViLWhlYWRpbmcge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMnB4KTtcclxuXHJcbiAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcbn1cclxuXHJcbi8vIExlYWQgdGV4dC5cclxuLmxlYWQge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgyN3B4KTtcclxufVxyXG5cclxuc3Ryb25nLFxyXG5iIHtcclxuICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcclxufVxyXG5cclxuLy8gR2V0IHRoZSBoZWFkZXIgZm9udC1zaXplcyBmcm9tIHRoZSBzZXR0aW5ncyBmaWxlIGFuZCBpbmNsdWRlIHRoZW0gYXMgcmVzcG9uc2l2ZSBmb250IHNpemVzLlxyXG5oMSxcclxuLmgxIHtcclxuICBAaW5jbHVkZSBmb250LXNpemUobWFwLWRlZXAtZ2V0KCRoZWFkZXItc3R5bGVzLCBtZWRpdW0sIGgxLCBmb250LXNpemUpKTtcclxufVxyXG5oMixcclxuLmgyIHtcclxuICBAaW5jbHVkZSBmb250LXNpemUobWFwLWRlZXAtZ2V0KCRoZWFkZXItc3R5bGVzLCBtZWRpdW0sIGgyLCBmb250LXNpemUpKTtcclxufVxyXG5oMyxcclxuLmgzIHtcclxuICBAaW5jbHVkZSBmb250LXNpemUobWFwLWRlZXAtZ2V0KCRoZWFkZXItc3R5bGVzLCBtZWRpdW0sIGgzLCBmb250LXNpemUpKTtcclxufVxyXG5oNCxcclxuLmg0IHtcclxuICBAaW5jbHVkZSBmb250LXNpemUobWFwLWRlZXAtZ2V0KCRoZWFkZXItc3R5bGVzLCBtZWRpdW0sIGg0LCBmb250LXNpemUpKTtcclxufVxyXG5oNSxcclxuLmg1IHtcclxuICBAaW5jbHVkZSBmb250LXNpemUobWFwLWRlZXAtZ2V0KCRoZWFkZXItc3R5bGVzLCBtZWRpdW0sIGg1LCBmb250LXNpemUpKTtcclxufVxyXG5oNixcclxuLmg2IHtcclxuICBAaW5jbHVkZSBmb250LXNpemUobWFwLWRlZXAtZ2V0KCRoZWFkZXItc3R5bGVzLCBtZWRpdW0sIGg2LCBmb250LXNpemUpKTtcclxufVxyXG5cclxuLy8gQmxvY2txdW90ZSBvdmVycmlkZXMsIG1haW4gb3B0aW9ucyBhcmUgaW4gX3NldHRpbmdzLnNjc3NcclxuYmxvY2txdW90ZSB7XHJcbiAgcCB7XHJcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMjVweCk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBGaWdjYXB0aW9uIG92ZXJyaWRlc1xyXG5maWdjYXB0aW9uIHtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgY29sb3I6ICRtZWRpdW0tZ3JheTtcclxuICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgMDtcclxufVxyXG5cclxudGFibGUge1xyXG4gIHRoZWFkIHtcclxuICAgIHRoIHtcclxuICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHRmb290IHtcclxuICAgIHRoLFxyXG4gICAgdGQge1xyXG4gICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcclxuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktYmxhY2tsaXN0LCBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0XG5cbi8vIFNDU1MgUkZTIG1peGluXG4vL1xuLy8gQXV0b21hdGVkIHJlc3BvbnNpdmUgZm9udCBzaXplc1xuLy9cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvcmZzL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXG5cbi8vIENvbmZpZ3VyYXRpb25cblxuLy8gQmFzZSBmb250IHNpemVcbiRyZnMtYmFzZS1mb250LXNpemU6IDEuMjVyZW0gIWRlZmF1bHQ7XG4kcmZzLWZvbnQtc2l6ZS11bml0OiByZW0gIWRlZmF1bHQ7XG5cbkBpZiAkcmZzLWZvbnQtc2l6ZS11bml0ICE9IHJlbSBhbmQgJHJmcy1mb250LXNpemUtdW5pdCAhPSBweCB7XG4gIEBlcnJvciBcImAjeyRyZnMtZm9udC1zaXplLXVuaXR9YCBpcyBub3QgYSB2YWxpZCB1bml0IGZvciAkcmZzLWZvbnQtc2l6ZS11bml0LiBVc2UgYHB4YCBvciBgcmVtYC5cIjtcbn1cblxuLy8gQnJlYWtwb2ludCBhdCB3aGVyZSBmb250LXNpemUgc3RhcnRzIGRlY3JlYXNpbmcgaWYgc2NyZWVuIHdpZHRoIGlzIHNtYWxsZXJcbiRyZnMtYnJlYWtwb2ludDogMTIwMHB4ICFkZWZhdWx0O1xuJHJmcy1icmVha3BvaW50LXVuaXQ6IHB4ICFkZWZhdWx0O1xuXG5AaWYgJHJmcy1icmVha3BvaW50LXVuaXQgIT0gcHggYW5kICRyZnMtYnJlYWtwb2ludC11bml0ICE9IGVtIGFuZCAkcmZzLWJyZWFrcG9pbnQtdW5pdCAhPSByZW0ge1xuICBAZXJyb3IgXCJgI3skcmZzLWJyZWFrcG9pbnQtdW5pdH1gIGlzIG5vdCBhIHZhbGlkIHVuaXQgZm9yICRyZnMtYnJlYWtwb2ludC11bml0LiBVc2UgYHB4YCwgYGVtYCBvciBgcmVtYC5cIjtcbn1cblxuLy8gUmVzaXplIGZvbnQgc2l6ZSBiYXNlZCBvbiBzY3JlZW4gaGVpZ2h0IGFuZCB3aWR0aFxuJHJmcy10d28tZGltZW5zaW9uYWw6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBGYWN0b3Igb2YgZGVjcmVhc2VcbiRyZnMtZmFjdG9yOiAxMCAhZGVmYXVsdDtcblxuQGlmIHR5cGUtb2YoJHJmcy1mYWN0b3IpICE9IFwibnVtYmVyXCIgb3IgJHJmcy1mYWN0b3IgPD0gMSB7XG4gIEBlcnJvciBcImAjeyRyZnMtZmFjdG9yfWAgaXMgbm90IGEgdmFsaWQgICRyZnMtZmFjdG9yLCBpdCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxLlwiO1xufVxuXG4vLyBHZW5lcmF0ZSBlbmFibGUgb3IgZGlzYWJsZSBjbGFzc2VzLiBQb3NzaWJpbGl0aWVzOiBmYWxzZSwgXCJlbmFibGVcIiBvciBcImRpc2FibGVcIlxuJHJmcy1jbGFzczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIDEgcmVtID0gJHJmcy1yZW0tdmFsdWUgcHhcbiRyZnMtcmVtLXZhbHVlOiAxNiAhZGVmYXVsdDtcblxuLy8gU2FmYXJpIGlmcmFtZSByZXNpemUgYnVnOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9yZnMvaXNzdWVzLzE0XG4kcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXg6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBEaXNhYmxlIFJGUyBieSBzZXR0aW5nICRlbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemVzIHRvIGZhbHNlXG4kZW5hYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gQ2FjaGUgJHJmcy1iYXNlLWZvbnQtc2l6ZSB1bml0XG4kcmZzLWJhc2UtZm9udC1zaXplLXVuaXQ6IHVuaXQoJHJmcy1iYXNlLWZvbnQtc2l6ZSk7XG5cbi8vIFJlbW92ZSBweC11bml0IGZyb20gJHJmcy1iYXNlLWZvbnQtc2l6ZSBmb3IgY2FsY3VsYXRpb25zXG5AaWYgJHJmcy1iYXNlLWZvbnQtc2l6ZS11bml0ID09IFwicHhcIiB7XG4gICRyZnMtYmFzZS1mb250LXNpemU6ICRyZnMtYmFzZS1mb250LXNpemUgLyAoJHJmcy1iYXNlLWZvbnQtc2l6ZSAqIDAgKyAxKTtcbn1cbkBlbHNlIGlmICRyZnMtYmFzZS1mb250LXNpemUtdW5pdCA9PSBcInJlbVwiIHtcbiAgJHJmcy1iYXNlLWZvbnQtc2l6ZTogJHJmcy1iYXNlLWZvbnQtc2l6ZSAvICgkcmZzLWJhc2UtZm9udC1zaXplICogMCArIDEgLyAkcmZzLXJlbS12YWx1ZSk7XG59XG5cbi8vIENhY2hlICRyZnMtYnJlYWtwb2ludCB1bml0IHRvIHByZXZlbnQgbXVsdGlwbGUgY2FsbHNcbiRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlOiB1bml0KCRyZnMtYnJlYWtwb2ludCk7XG5cbi8vIFJlbW92ZSB1bml0IGZyb20gJHJmcy1icmVha3BvaW50IGZvciBjYWxjdWxhdGlvbnNcbkBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBcInB4XCIge1xuICAkcmZzLWJyZWFrcG9pbnQ6ICRyZnMtYnJlYWtwb2ludCAvICgkcmZzLWJyZWFrcG9pbnQgKiAwICsgMSk7XG59XG5AZWxzZSBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBcInJlbVwiIG9yICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IFwiZW1cIiB7XG4gICRyZnMtYnJlYWtwb2ludDogJHJmcy1icmVha3BvaW50IC8gKCRyZnMtYnJlYWtwb2ludCAqIDAgKyAxIC8gJHJmcy1yZW0tdmFsdWUpO1xufVxuXG4vLyBJbnRlcm5hbCBtaXhpbiB0aGF0IGFkZHMgZGlzYWJsZSBjbGFzc2VzIHRvIHRoZSBzZWxlY3RvciBpZiBuZWVkZWQuXG5AbWl4aW4gX3Jmcy1kaXNhYmxlLWNsYXNzIHtcbiAgQGlmICRyZnMtY2xhc3MgPT0gXCJkaXNhYmxlXCIge1xuICAgIC8vIEFkZGluZyBhbiBleHRyYSBjbGFzcyBpbmNyZWFzZXMgc3BlY2lmaWNpdHksIHdoaWNoIHByZXZlbnRzIHRoZSBtZWRpYSBxdWVyeSB0byBvdmVycmlkZSB0aGUgZm9udCBzaXplXG4gICAgJixcbiAgICAuZGlzYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSAmLFxuICAgICYuZGlzYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIEludGVybmFsIG1peGluIHRoYXQgYWRkcyBlbmFibGUgY2xhc3NlcyB0byB0aGUgc2VsZWN0b3IgaWYgbmVlZGVkLlxuQG1peGluIF9yZnMtZW5hYmxlLWNsYXNzIHtcbiAgQGlmICRyZnMtY2xhc3MgPT0gXCJlbmFibGVcIiB7XG4gICAgLmVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSAmLFxuICAgICYuZW5hYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gSW50ZXJuYWwgbWl4aW4gdXNlZCB0byBkZXRlcm1pbmUgd2hpY2ggbWVkaWEgcXVlcnkgbmVlZHMgdG8gYmUgdXNlZFxuQG1peGluIF9yZnMtbWVkaWEtcXVlcnkoJG1xLXZhbHVlKSB7XG4gIEBpZiAkcmZzLXR3by1kaW1lbnNpb25hbCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICN7JG1xLXZhbHVlfSksIChtYXgtaGVpZ2h0OiAjeyRtcS12YWx1ZX0pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICN7JG1xLXZhbHVlfSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIFJlc3BvbnNpdmUgZm9udCBzaXplIG1peGluXG5AbWl4aW4gcmZzKCRmcywgJGltcG9ydGFudDogZmFsc2UpIHtcbiAgLy8gQ2FjaGUgJGZzIHVuaXRcbiAgJGZzLXVuaXQ6IGlmKHR5cGUtb2YoJGZzKSA9PSBcIm51bWJlclwiLCB1bml0KCRmcyksIGZhbHNlKTtcblxuICAvLyBBZGQgIWltcG9ydGFudCBzdWZmaXggaWYgbmVlZGVkXG4gICRyZnMtc3VmZml4OiBpZigkaW1wb3J0YW50LCBcIiAhaW1wb3J0YW50XCIsIFwiXCIpO1xuXG4gIC8vIElmICRmcyBpc24ndCBhIG51bWJlciAobGlrZSBpbmhlcml0KSBvciAkZnMgaGFzIGEgdW5pdCAobm90IHB4IG9yIHJlbSwgbGlrZSAxLjVlbSkgb3IgJCBpcyAwLCBqdXN0IHByaW50IHRoZSB2YWx1ZVxuICBAaWYgbm90ICRmcy11bml0IG9yICRmcy11bml0ICE9IFwiXCIgYW5kICRmcy11bml0ICE9IFwicHhcIiBhbmQgJGZzLXVuaXQgIT0gXCJyZW1cIiBvciAkZnMgPT0gMCB7XG4gICAgZm9udC1zaXplOiAjeyRmc30jeyRyZnMtc3VmZml4fTtcbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gUmVtb3ZlIHVuaXQgZnJvbSAkZnMgZm9yIGNhbGN1bGF0aW9uc1xuICAgIEBpZiAkZnMtdW5pdCA9PSBcInB4XCIge1xuICAgICAgJGZzOiAkZnMgLyAoJGZzICogMCArIDEpO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkZnMtdW5pdCA9PSBcInJlbVwiIHtcbiAgICAgICRmczogJGZzIC8gKCRmcyAqIDAgKyAxIC8gJHJmcy1yZW0tdmFsdWUpO1xuICAgIH1cblxuICAgIC8vIFNldCBkZWZhdWx0IGZvbnQgc2l6ZVxuICAgICRyZnMtc3RhdGljOiBpZigkcmZzLWZvbnQtc2l6ZS11bml0ID09IHJlbSwgI3skZnMgLyAkcmZzLXJlbS12YWx1ZX1yZW0sICN7JGZzfXB4KTtcblxuICAgIC8vIE9ubHkgYWRkIHRoZSBtZWRpYSBxdWVyeSBpZiB0aGUgZm9udCBzaXplIGlzIGJpZ2dlciB0aGFuIHRoZSBtaW5pbXVtIGZvbnQgc2l6ZVxuICAgIEBpZiAkZnMgPD0gJHJmcy1iYXNlLWZvbnQtc2l6ZSBvciBub3QgJGVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZXMge1xuICAgICAgZm9udC1zaXplOiAjeyRyZnMtc3RhdGljfSN7JHJmcy1zdWZmaXh9O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBDYWxjdWxhdGUgdGhlIG1pbmltdW0gZm9udCBzaXplIGZvciAkZnNcbiAgICAgICRmcy1taW46ICRyZnMtYmFzZS1mb250LXNpemUgKyAoJGZzIC0gJHJmcy1iYXNlLWZvbnQtc2l6ZSkgLyAkcmZzLWZhY3RvcjtcblxuICAgICAgLy8gQ2FsY3VsYXRlIGRpZmZlcmVuY2UgYmV0d2VlbiAkZnMgYW5kIHRoZSBtaW5pbXVtIGZvbnQgc2l6ZVxuICAgICAgJGZzLWRpZmY6ICRmcyAtICRmcy1taW47XG5cbiAgICAgIC8vIEJhc2UgZm9udC1zaXplIGZvcm1hdHRpbmdcbiAgICAgICRtaW4td2lkdGg6IGlmKCRyZnMtZm9udC1zaXplLXVuaXQgPT0gcmVtLCAjeyRmcy1taW4gLyAkcmZzLXJlbS12YWx1ZX1yZW0sICN7JGZzLW1pbn1weCk7XG5cbiAgICAgIC8vIFVzZSBgdm1pbmAgaWYgdHdvLWRpbWVuc2lvbmFsIGlzIGVuYWJsZWRcbiAgICAgICR2YXJpYWJsZS11bml0OiBpZigkcmZzLXR3by1kaW1lbnNpb25hbCwgdm1pbiwgdncpO1xuXG4gICAgICAvLyBDYWxjdWxhdGUgdGhlIHZhcmlhYmxlIHdpZHRoIGJldHdlZW4gMCBhbmQgJHJmcy1icmVha3BvaW50XG4gICAgICAkdmFyaWFibGUtd2lkdGg6ICN7JGZzLWRpZmYgKiAxMDAgLyAkcmZzLWJyZWFrcG9pbnR9I3skdmFyaWFibGUtdW5pdH07XG5cbiAgICAgIC8vIFNldCB0aGUgY2FsY3VsYXRlZCBmb250LXNpemVcbiAgICAgICRyZnMtZmx1aWQ6IGNhbGMoI3skbWluLXdpZHRofSArICN7JHZhcmlhYmxlLXdpZHRofSkgI3skcmZzLXN1ZmZpeH07XG5cbiAgICAgIC8vIEJyZWFrcG9pbnQgZm9ybWF0dGluZ1xuICAgICAgJG1xLXZhbHVlOiBpZigkcmZzLWJyZWFrcG9pbnQtdW5pdCA9PSBweCwgI3skcmZzLWJyZWFrcG9pbnR9cHgsICN7JHJmcy1icmVha3BvaW50IC8gJHJmcy1yZW0tdmFsdWV9I3skcmZzLWJyZWFrcG9pbnQtdW5pdH0pO1xuXG4gICAgICBAaW5jbHVkZSBfcmZzLWRpc2FibGUtY2xhc3Mge1xuICAgICAgICBmb250LXNpemU6ICN7JHJmcy1zdGF0aWN9I3skcmZzLXN1ZmZpeH07XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIF9yZnMtbWVkaWEtcXVlcnkoJG1xLXZhbHVlKSB7XG4gICAgICAgIEBpbmNsdWRlIF9yZnMtZW5hYmxlLWNsYXNzIHtcbiAgICAgICAgICBmb250LXNpemU6ICRyZnMtZmx1aWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbmNsdWRlIHNhZmFyaSBpZnJhbWUgcmVzaXplIGZpeCBpZiBuZWVkZWRcbiAgICAgICAgbWluLXdpZHRoOiBpZigkcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXgsICgwICogMXZ3KSwgbnVsbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFRoZSBmb250LXNpemUgJiByZXNwb25zaXZlLWZvbnQtc2l6ZSBtaXhpbnMgdXNlIFJGUyB0byByZXNjYWxlIHRoZSBmb250IHNpemVcbkBtaXhpbiBmb250LXNpemUoJGZzLCAkaW1wb3J0YW50OiBmYWxzZSkge1xuICBAaW5jbHVkZSByZnMoJGZzLCAkaW1wb3J0YW50KTtcbn1cblxuQG1peGluIHJlc3BvbnNpdmUtZm9udC1zaXplKCRmcywgJGltcG9ydGFudDogZmFsc2UpIHtcbiAgQGluY2x1ZGUgcmZzKCRmcywgJGltcG9ydGFudCk7XG59XG4iLCIvLyBGaXggdGhlIGlzc3VlIHdoZXJlIHRoZSBXUCBhZG1pbi1iYXIgb3ZlcmxhcHMgdGhlIG1vYmlsZSBtZW51XHJcbiN3cGFkbWluYmFyIHtcclxuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcclxufVxyXG5cclxuLy8gTWFrZSBzdXJlIHRoYXQgdGhlIFdQIGFkbWluLWJhciBkb2VzIG5vdCBvdmVybGFwIEZvdW5kYXRpb24gY29tcG9uZW50c1xyXG5ib2R5LmFkbWluLWJhciB7XHJcbiAgLy8gT2Zmc2V0IHN0aWNreSB0b3AgYmFyXHJcbiAgJi5mLXRvcGJhci1maXhlZCB7XHJcbiAgICAuc3RpY2t5LmZpeGVkIHtcclxuICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMzIpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyBPZmZzZXQgbW9iaWxlIG9mZi1jYW52YXMgbWVudVxyXG4gICYub2ZmY2FudmFzIHtcclxuICAgIC5vZmYtY2FudmFzLmlzLW9wZW4ge1xyXG4gICAgICB0b3A6IHJlbS1jYWxjKDQ2KTtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg3ODMpIHtcclxuICAgICAgICB0b3A6IHJlbS1jYWxjKDMyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIud3AtY2FwdGlvbiB7XHJcblxyXG4gIC8vIFN0b3AgZmlndXJlIGltYWdlIGJyZWFraW5nIG9uIG1vYmlsZS5cclxuICAmLmFsaWdubGVmdCxcclxuICAmLmFsaWducmlnaHQsXHJcbiAgJi5hbGlnbmNlbnRlciB7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbnAud3AtY2FwdGlvbi10ZXh0e1xyXG4gIGZvbnQtc2l6ZTo5MCU7XHJcbiAgY29sb3I6ICM2NjY7XHJcbiAgcGFkZGluZzpyZW0tY2FsYygxMCkgMDtcclxufVxyXG5cclxuLmFsaWdubGVmdCB7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hbGlnbnJpZ2h0IHtcclxuICBmbG9hdDogcmlnaHQ7XHJcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFsaWduY2VudGVyIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxuICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbn1cclxuXHJcbi5nYWxsZXJ5IHtcclxuICBAaW5jbHVkZSB4eS1ncmlkO1xyXG4gIEBpbmNsdWRlIHh5LWd1dHRlcnMoJG5lZ2F0aXZlOiB0cnVlKTtcclxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDkge1xyXG4gICAgJi5nYWxsZXJ5LWNvbHVtbnMtI3skaX0ge1xyXG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCgyLCAnLmdhbGxlcnktaXRlbScsIHRydWUpO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pe1xyXG4gICAgICAmLmdhbGxlcnktY29sdW1ucy0jeyRpfSB7XHJcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoNCwgJy5nYWxsZXJ5LWl0ZW0nLCB0cnVlLCAoc21hbGw6IDMwcHgpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAmLmdhbGxlcnktY29sdW1ucy0jeyRpfSB7XHJcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoJGksICcuZ2FsbGVyeS1pdGVtJywgdHJ1ZSwgKHNtYWxsOiAzMHB4KSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLmdhbGxlcnktaWNvbiA+IGEge1xyXG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsO1xyXG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsLWxpbms7XHJcbiAgfVxyXG4gIC5nYWxsZXJ5LWljb24gPiBpbWcge1xyXG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsO1xyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgbWF4IHdpZHRoIGNvbnRhaW5lciwgZGVzaWduZWQgdG8gaG91c2UgeW91ciBncmlkIGNvbnRlbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskZ3JpZC1jb250YWluZXJdIC0gYSB3aWR0aCB0byBsaW1pdCB0aGUgY29udGFpbmVyIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJGdyaWQtY29udGFpbmVyLXBhZGRpbmddIC0gcGFkZGluZ3Mgb2YgdGhlIGNvbnRhaW5lci5cbkBtaXhpbiB4eS1ncmlkLWNvbnRhaW5lcihcbiAgJHdpZHRoOiAkZ3JpZC1jb250YWluZXIsXG4gICRwYWRkaW5nOiAkZ3JpZC1jb250YWluZXItcGFkZGluZ1xuKSB7XG4gIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlcnM6ICRwYWRkaW5nLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuXG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLy8vIENyZWF0ZXMgYSBjb250YWluZXIgZm9yIHlvdXIgZmxleCBjZWxscy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbaG9yaXpvbnRhbF0gLSBFaXRoZXIgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBkaXJlY3Rpb24gb2YgY2VsbHMgd2l0aGluLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHdyYXAgW3RydWVdIC0gSWYgdGhlIGNlbGxzIHdpdGhpbiBzaG91bGQgd3JhcCBvciBub3QuXG5AbWl4aW4geHktZ3JpZChcbiAgJGRpcmVjdGlvbjogaG9yaXpvbnRhbCxcbiAgJHdyYXA6IHRydWVcbikge1xuICAkZGlyZWN0aW9uOiBpZigkZGlyZWN0aW9uID09ICdob3Jpem9udGFsJywgcm93LCBjb2x1bW4pO1xuICAkd3JhcDogaWYoJHdyYXAsIHdyYXAsIG5vd3JhcCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiAkZGlyZWN0aW9uICR3cmFwO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlIGd1dHRlcnMgZm9yIGEgY2VsbC9jb250YWluZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGVpdGhlciBtYXJnaW4gb3IgcGFkZGluZy5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW3JpZ2h0IGxlZnRdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJG5lZ2F0aXZlIFtmYWxzZV0gLSBXaGV0aGVyIHRvIGFwcGx5IHRoZSBndXR0ZXIgYXMgYSBuZWdhdGl2ZSB2YWx1ZS4gQ29tbW9ubHkgdXNlZCBmb3IgbmVzdGVkIGdyaWRzLlxuQG1peGluIHh5LWd1dHRlcnMoXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRuZWdhdGl2ZTogZmFsc2Vcbikge1xuICAkb3BlcmF0b3I6IGlmKCRuZWdhdGl2ZSwgJy0nLCAnJyk7XG5cbiAgLy8gSWYgd2UgaGF2ZSBkZWNsYXJlZCBuZWdhdGl2ZSBndXR0ZXJzLCBmb3JjZSB0eXBlIHRvIGBtYXJnaW4uXG4gICRndXR0ZXItdHlwZTogaWYoJG5lZ2F0aXZlLCAnbWFyZ2luJywgJGd1dHRlci10eXBlKTtcblxuICAvLyBPdXRwdXQgb3VyIG1hcmdpbiBndXR0ZXJzLlxuICBAaWYgKHR5cGUtb2YoJGd1dHRlcnMpID09ICdtYXAnKSB7XG4gICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoYXV0bywgJGd1dHRlcnMpIHtcbiAgICAgICRndXR0ZXI6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpIC8gMjtcblxuICAgICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZ3V0dGVyIHBvc2l0aW9uXG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgICN7JGd1dHRlci10eXBlfS0jeyR2YWx1ZX06IHVucXVvdGUoXCIjeyRvcGVyYXRvcn0jeyRndXR0ZXJ9XCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAodHlwZS1vZigkZ3V0dGVycykgPT0gJ251bWJlcicpIHtcbiAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVycykgLyAyO1xuXG4gICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZ3V0dGVyIHBvc2l0aW9uXG4gICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgI3skZ3V0dGVyLXR5cGV9LSN7JHZhbHVlfTogdW5xdW90ZShcIiN7JG9wZXJhdG9yfSN7JGd1dHRlcn1cIik7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBTaXplcyBjaGlsZCBlbGVtZW50cyBzbyB0aGF0IGAkbmAgbnVtYmVyIG9mIGl0ZW1zIGFwcGVhciBvbiBlYWNoIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBlbGVtZW50cyB0byBkaXNwbGF5IHBlciByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJy5jZWxsJ10gLSBTZWxlY3RvcihzKSB0byB1c2UgZm9yIGNoaWxkIGVsZW1lbnRzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGd1dHRlci1vdXRwdXQgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gb3V0cHV0IGd1dHRlcnNcbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gIG9yIGBwYWRkaW5nYC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW3JpZ2h0IGxlZnRdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgYnJlYWtwb2ludCB0byB1c2UgZm9yIHRoZSBjZWxsIGdlbmVyYXRpb24uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNlbGwnLFxuICAkZ3V0dGVyLW91dHB1dDogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkc2l6ZTogcGVyY2VudGFnZSgxLyRuKTtcblxuICAmID4gI3skc2VsZWN0b3J9IHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsKCRzaXplLCAkZ3V0dGVyLW91dHB1dCwgJGd1dHRlcnMsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbiwgJGJyZWFrcG9pbnQsICR2ZXJ0aWNhbCk7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENhbGN1bGF0ZSB0aGUgcGVyY2VudGFnZSBzaXplIG9mIGEgY2VsbC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRzaXplIFskZ3JpZC1jb2x1bW5zXSAtIFNpemUgdG8gbWFrZSB0aGUgY2VsbC4gWW91IGNhbiBwYXNzIGEgdmFsdWUgaW4gbXVsdGlwbGUgZm9ybWF0cywgc3VjaCBhcyBgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8zYC5cbkBmdW5jdGlvbiB4eS1jZWxsLXNpemUoXG4gICRzaXplOiAkZ3JpZC1jb2x1bW5zXG4pIHtcbiAgLy8gUGFyc2luZyBwZXJjZW50cywgZGVjaW1hbHMsIG4gb2YgbiBhbmQgbnVtYmVyIGNvdW50c1xuICBAaWYgdHlwZS1vZigkc2l6ZSkgPT0gJ251bWJlcicge1xuICAgIEBpZiB1bml0KCRzaXplKSA9PSAnJScge1xuICAgICAgJHNpemU6ICRzaXplO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkc2l6ZSA8IDEge1xuICAgICAgJHNpemU6IHBlcmNlbnRhZ2UoJHNpemUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkc2l6ZTogcGVyY2VudGFnZSgkc2l6ZSAvICRncmlkLWNvbHVtbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNpbmcgXCJuIG9mIG5cIiBvciBcIm4vblwiIGV4cHJlc3Npb25zXG4gIEBlbHNlIGlmIHR5cGUtb2YoJHNpemUpID09ICdsaXN0JyB7XG4gICAgQGlmIGxlbmd0aCgkc2l6ZSkgIT0gMyB7XG4gICAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgeHktY2VsbC1zaXplKCkuIFVzZSB0aGUgZm9ybWF0IFwibiBvZiBuXCIgb3IgXCJuL25cIi4nO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkc2l6ZTogcGVyY2VudGFnZShudGgoJHNpemUsIDEpIC8gbnRoKCRzaXplLCAzKSk7XG4gICAgfVxuICB9XG4gIC8vIEFueXRoaW5nIGVsc2UgaXMgaW5jb3JyZWN0XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgeHktY2VsbC1zaXplKCkuIFVzZSBhIG51bWJlciwgZGVjaW1hbCwgcGVyY2VudGFnZSwgb3IgXCJuIG9mIG5cIiAvIFwibi9uXCIuJztcbiAgfVxuXG4gIEByZXR1cm4gJHNpemU7XG59XG5cbi8vLyBTZXRzIGJhc2UgZmxleCBwcm9wZXJ0aWVzIGZvciBjZWxscy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBBY2NlcHRzIGBmdWxsYCwgYGF1dG9gLCBgc2hyaW5rYCBvciBgZ3Jvd2AuXG5AbWl4aW4geHktY2VsbC1iYXNlKCRzaXplOiBmdWxsKSB7XG4gIEBpZigkc2l6ZSA9PSAnZnVsbCcpIHtcbiAgICAvLyBUaGlzIGlzIHRoZSBiYXNlIHN0eWxlLCBhbGwgb3RoZXJzIGluaGVyaXQgZnJvbSBpdFxuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDBweDtcbiAgICBtaW4td2lkdGg6IDBweDtcbiAgfVxuICBAZWxzZSBpZiAoJHNpemUgPT0gJ2F1dG8nKSB7XG4gICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgfVxuICBAZWxzZSBpZiAoJHNpemUgPT0gJ3NocmluaycpIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAoJHNpemUgPT0gJ2dyb3cnKSB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cbn1cblxuLy8vIFJlc2V0cyBhIGNlbGxzIHdpZHRoIChvciBoZWlnaHQgaWYgdmVydGljYWwgaXMgdHJ1ZSkgYXMgd2VsbCBhcyBzdHJpcHMgaXRzIGd1dHRlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG5AbWl4aW4geHktY2VsbC1yZXNldCgkdmVydGljYWw6IHRydWUpIHtcbiAgJGRpcmVjdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIHdpZHRoLCBoZWlnaHQpO1xuICAjeyRkaXJlY3Rpb259OiBhdXRvO1xuICBtYXgtI3skZGlyZWN0aW9ufTogbm9uZTtcbn1cblxuLy8gU2V0cyBvdXIgY2VsbCB3aWR0aHMgb3IgaGVpZ2h0cyBkZXBlbmRpbmcgb24gZ3V0dGVyIHR5cGUuXG5AbWl4aW4gLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgJG1hcmdpbi1ndXR0ZXIsICR2ZXJ0aWNhbCkge1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgaGVpZ2h0LCB3aWR0aCk7XG4gIEBpZigkc2l6ZSA9PSAnZnVsbCcpIHtcbiAgICAkdmFsOiBpZigkbWFyZ2luLWd1dHRlciA9PSAwLCAxMDAlLCBjYWxjKDEwMCUgLSAje3JlbS1jYWxjKCRtYXJnaW4tZ3V0dGVyKX0pKTtcbiAgICAjeyRkaXJlY3Rpb259OiAkdmFsO1xuICB9XG4gIEBlbHNlIGlmICgkc2l6ZSA9PSAnYXV0bycpIHtcbiAgICAjeyRkaXJlY3Rpb259OiBhdXRvO1xuICAgICR2YWw6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsIDEwMCUsIGNhbGMoMTAwJSAtICN7cmVtLWNhbGMoJG1hcmdpbi1ndXR0ZXIpfSkpO1xuICB9XG4gIEBlbHNlIGlmICgkc2l6ZSA9PSAnc2hyaW5rJykge1xuICAgICN7JGRpcmVjdGlvbn06IGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2YWw6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsICN7eHktY2VsbC1zaXplKCRzaXplKX0sIGNhbGMoI3t4eS1jZWxsLXNpemUoJHNpemUpfSAtICN7cmVtLWNhbGMoJG1hcmdpbi1ndXR0ZXIpfSkpO1xuICAgICN7JGRpcmVjdGlvbn06ICR2YWw7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBjZWxsIGZvciB5b3VyIGdyaWQuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKGRlZmF1bHQpIGZvciAxMDAlIHdpZHRoLCBgYXV0b2AgdG8gdXNlIHVwIGF2YWlsYWJsZSBzcGFjZSBhbmQgYHNocmlua2AgdG8gdXNlIHVwIG9ubHkgcmVxdWlyZWQgc3BhY2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlci1vdXRwdXQ6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgJGJwLWlzLWZhbGxiYWNrOiBmYWxzZTtcblxuICBAaWYoJGJyZWFrcG9pbnQgPT0gbnVsbCkge1xuICAgIC8vIElmIGAkYnAtc2l6ZWAgaXMgYXZhaWxhYmxlIHRoZW4gdXNlIHRoaXMsIG90aGVyd2lzZSByZXZlcnQgdG8gdGhlIHNtYWxsZXN0IGJwLlxuICAgIEBpZih2YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIGFuZCB0eXBlLW9mKCQtemYtc2l6ZSkgIT0gJ251bWJlcicpIGFuZCAkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgICAkYnJlYWtwb2ludDogJC16Zi1zaXplO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnQ7XG4gICAgICAkYnAtaXMtZmFsbGJhY2s6IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy8gR2V0IHRoZSBndXR0ZXIgZm9yIHRoZSBnaXZlbiBicmVha3BvaW50L3ZhbHVlLlxuICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBhIGZhbGxiYWNrLCB1c2UgYSBmYWxsYmFjayBndXR0ZXIgYXMgd2VsbFxuICBAaWYgKCRicC1pcy1mYWxsYmFjayA9PSB0cnVlIGFuZCAkZ3V0dGVyID09IG51bGwpIHtcbiAgICAkZ3V0dGVyOiAwO1xuICB9XG5cbiAgQGlmKCRndXR0ZXIgIT0gbnVsbCkge1xuICAgIC8vIEJhc2UgZmxleCBwcm9wZXJ0aWVzXG4gICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKCRzaXplKTtcblxuICAgIEBpZigkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicpIHtcbiAgICAgIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsICRndXR0ZXIsICR2ZXJ0aWNhbCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsIDAsICR2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgQGlmICRndXR0ZXItb3V0cHV0IHtcbiAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlciwgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uKTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICd4eS1jZWxsOiBubyBndXR0ZXJzIHdlcmUgZm91bmQgaW4gYCRndXR0ZXJzYCBmb3IgXCIkYnJlYWtwb2ludDogI3skYnJlYWtwb2ludH1cIiwgY2VsbCB3YXMgbm90IGdlbmVyYXRlZGAnXG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCBzaXplZCBncmlkLiBVc2VkIHRvIGdlbmVyYXRlIG91ciBncmlkIGNsYXNzZXMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKGRlZmF1bHQpIGZvciAxMDAlIHdpZHRoLCBgYXV0b2AgdG8gdXNlIHVwIGF2YWlsYWJsZSBzcGFjZSBhbmQgYHNocmlua2AgdG8gdXNlIHVwIG9ubHkgcmVxdWlyZWQgc3BhY2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG5AbWl4aW4geHktY2VsbC1zdGF0aWMoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyLW91dHB1dDogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50LFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcblxuICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICAkZ3V0dGVyLXBvc2l0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgdG9wIGJvdHRvbSwgbGVmdCByaWdodCk7XG5cbiAgQGlmKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuICAgIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsICRndXR0ZXIsICR2ZXJ0aWNhbCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsIDAsICR2ZXJ0aWNhbCk7XG4gIH1cblxuICAvLyBJZiB3ZSB3YW50IHRvIG91dHB1dCB0aGUgZ3V0dGVyc1xuICBAaWYoJGd1dHRlci1vdXRwdXQpIHtcbiAgICAvLyBUT0RPOiBGaWd1cmUgb3V0IGlmIHdlIG5lZWQgdG8gcGFzcyBicmVha3BvaW50IGluIGhlcmUgdG9vLlxuICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlciwgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uKTtcbiAgfVxufVxuIiwiLypcclxuRnJvbnRlbmQgc3R5bGVzIGZvciBndXRlbmJlcmcgYmxvY2tzXHJcbiovXHJcblxyXG4vKiogPT09IEJhc2UgQ29sb3IgUGFsYXR0ZSA9PT0gKi9cclxuQGVhY2ggJGNvbG9yLCAkY29kZSBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcclxuXHJcbiAgLmhhcy0jeyRjb2xvcn0tYmFja2dyb3VuZC1jb2xvciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlO1xyXG4gIH1cclxuXHJcbiAgLmhhcy0jeyRjb2xvcn0tY29sb3Ige1xyXG4gICAgICBjb2xvcjogJGNvZGU7XHJcbiAgfVxyXG59XHJcblxyXG4vKiogPT09IEJ1dHRvbiA9PT0gKi9cclxuLndwLWJsb2NrLWJ1dHRvbiB7XHJcblxyXG5cdC8vIGFkZCBnZW5lcmFsIGZvdW5kYXRpb24gYnV0dG9uIHN0eWxpbmdcclxuXHQud3AtYmxvY2stYnV0dG9uX19saW5rIHtcclxuXHRcdEBleHRlbmQgLmJ1dHRvbiAhb3B0aW9uYWw7XHJcbiAgICBAZWFjaCAkY29sb3IsICRjb2RlIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xyXG5cclxuICAgICAgJi5oYXMtI3skY29sb3J9LWJhY2tncm91bmQtY29sb3Ige1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuaGFzLSN7JGNvbG9yfS1jb2xvciB7XHJcbiAgICAgICAgICBjb2xvcjogJGNvZGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHR9XHJcblxyXG5cdC8vIGFkZCBzcGVjaWFsIHN0eWxpbmcgZm9yIHNxdWFyZWQgYnV0dG9uc1xyXG5cdCYuaXMtc3R5bGUtc3F1YXJlZCAud3AtYmxvY2stYnV0dG9uX19saW5rIHtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDA7XHJcblx0fVxyXG5cclxuXHQvLyBhZGQgb3V0bGluZSBzdHlsZXNcclxuXHQmLmlzLXN0eWxlLW91dGxpbmUgLndwLWJsb2NrLWJ1dHRvbl9fbGlua3tcclxuXHRcdEBleHRlbmQgLmhvbGxvdyAhb3B0aW9uYWw7XHJcblx0fVxyXG5cclxuXHQvLyBzZXQgdHJhbnNwYXJlbnQgYmFja2dyb3VuZCB0byBibG9jayBmb3Igb3V0bGluZSBidXR0b25cclxuXHQmLmlzLXN0eWxlLW91dGxpbmUsXHJcblx0Ji5pcy1zdHlsZS1vdXRsaW5lOmhvdmVyLFxyXG5cdCYuaXMtc3R5bGUtb3V0bGluZTpmb2N1cyxcclxuXHQmLmlzLXN0eWxlLW91dGxpbmU6YWN0aXZlIHtcclxuICAgIC8vIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgLndwLWJsb2NrLWJ1dHRvbl9fbGlua3tcclxuICAgICAgLy8gYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICB9XHJcblx0fVxyXG59XHJcblxyXG4vKiogPT09IEZpbGUgPT09ICovXHJcbi53cC1ibG9jay1maWxlIC53cC1ibG9jay1maWxlX19idXR0b257XHJcbiAgQGluY2x1ZGUgYnV0dG9uKCk7XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uXG4vLy8vXG5cbi8vLyBGb250IGZhbWlseSBmb3IgYnV0dG9uIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEZvbnRcbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZpbGwgZm9yIGJ1dHRvbnMuIENhbiBlaXRoZXIgYmUgYHNvbGlkYCBvciBgaG9sbG93YC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGl2ZSBmb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciB3aWR0aCBmb3IgaG9sbG93IG91dGxpbmUgYnV0dG9uc1xuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgaG9sbG93IGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCUgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsOiBmbGlwIGZyb20gbWFyZ2luLXJpZ2h0IHRvIG1hcmdpbi1sZWZ0IGZvciBkZWZhdWx0c1xuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAkYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xufVxuXG4vLy8gdHJhbnNpdGlvbnMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8vIEFkZGl0aW9uYWwgcmVzcG9uc2l2ZSBjbGFzc2VzIGZvciAuZXhwYW5kZWRcbi8vLyBAdHlwZSBCb29sZWFuXG4kYnV0dG9uLXJlc3BvbnNpdmUtZXhwYW5kZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBUT0RPOiBEb2N1bWVudCBidXR0b24tYmFzZSgpIG1peGluXG5AbWl4aW4gYnV0dG9uLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcblxuICBAaWYgKHR5cGUtb2YoJGJ1dHRvbi1wYWRkaW5nKSA9PSAnbWFwJykge1xuICAgIEBlYWNoICRzaXplLCAkcGFkZGluZyBpbiAkYnV0dG9uLXBhZGRpbmcge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgdHJhbnNpdGlvbjogJGJ1dHRvbi10cmFuc2l0aW9uO1xuICBmb250LWZhbWlseTogJGJ1dHRvbi1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8vIEV4cGFuZHMgYSBidXR0b24gdG8gbWFrZSBpdCBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSB0aGUgZXhwYW5kIGJlaGF2aW9yLiBTZXQgdG8gYGZhbHNlYCB0byByZXZlcnNlIHRoaXMgYmVoYXZpb3IuXG5AbWl4aW4gYnV0dG9uLWV4cGFuZCgkZXhwYW5kOiB0cnVlKSB7XG4gIEBpZiAkZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1zdHlsZShcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6ICRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3Ncbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRidXR0b24tY29sb3IsICRidXR0b24tY29sb3ItYWx0KSk7XG4gIH1cblxuICBAaWYgJGJhY2tncm91bmQtaG92ZXIgPT0gYXV0byB7XG4gICAgJGJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3MpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyBiYWNrZ3JvdW5kIGZpbGwgb24gaG92ZXIgYW5kIGZvY3VzIGZvciBob2xsb3cgYnV0dG9ucy5cbkBtaXhpbiBidXR0b24taG9sbG93IHtcbiAgJixcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmLmRpc2FibGVkLFxuICAmW2Rpc2FibGVkXSB7XG4gICAgJixcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdy1zdHlsZShcbiAgJGNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzcyxcbiAgJGJvcmRlci13aWR0aDogJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXG4pIHtcbiAgJGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRob3Zlci1saWdodG5lc3MpO1xuXG4gIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50LCByZXNldGluZyB0aGUgY3Vyc29yLCBhbmQgZGlzYWJsaW5nIHBvaW50ZXIgZXZlbnRzLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBkaXNhYmxlZCBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1kaXNhYmxlZChcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yLWFsdCkpO1xuICB9XG5cbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkcm9wZG93biBhcnJvdyB0byBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgWzAuNGVtXSAtIFNpemUgb2YgdGhlIGFycm93LiBXZSByZWNvbW1lbmQgdXNpbmcgYW4gYGVtYCB2YWx1ZSBzbyB0aGUgdHJpYW5nbGUgc2NhbGVzIHdoZW4gdXNlZCBpbnNpZGUgZGlmZmVyZW50IHNpemVzIG9mIGJ1dHRvbnMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvZmZzZXQgWyRidXR0b24tcGFkZGluZ10gLSBEaXN0YW5jZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHQgb2YgdGhlIGJ1dHRvbi4gRGVmYXVsdHMgdG8gd2hhdGV2ZXIgdGhlIHJpZ2h0IHBhZGRpbmcgb2YgYSBidXR0b24gaXMuXG5AbWl4aW4gYnV0dG9uLWRyb3Bkb3duKFxuICAkc2l6ZTogMC40ZW0sXG4gICRjb2xvcjogJHdoaXRlLFxuICAkb2Zmc2V0OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KVxuKSB7XG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHNpemUsICRjb2xvciwgZG93bik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07IC8vIEFsaWducyB0aGUgYXJyb3cgd2l0aCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uXG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1yaWdodH07XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxufVxuXG4vLy8gQWRkcyBhbGwgc3R5bGVzIGZvciBhIGJ1dHRvbi4gRm9yIG1vcmUgZ3JhbnVsYXIgY29udHJvbCBvdmVyIHN0eWxlcywgdXNlIHRoZSBpbmRpdmlkdWFsIGJ1dHRvbiBtaXhpbnMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIG1ha2UgdGhlIGJ1dHRvbiBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHlsZSBbc29saWRdIC0gU2V0IHRvIGBob2xsb3dgIHRvIGNyZWF0ZSBhIGhvbGxvdyBidXR0b24uIFRoZSBjb2xvciBkZWZpbmVkIGluIGAkYmFja2dyb3VuZGAgd2lsbCBiZSB1c2VkIGFzIHRoZSBwcmltYXJ5IGNvbG9yIG9mIHRoZSBidXR0b24uXG5AbWl4aW4gYnV0dG9uKFxuICAkZXhwYW5kOiBmYWxzZSxcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkc3R5bGU6ICRidXR0b24tZmlsbFxuKSB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuXG4gIEBpZiAkc3R5bGUgPT0gc29saWQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXIsICRjb2xvcik7XG4gIH1cbiAgQGVsc2UgaWYgJHN0eWxlID09IGhvbGxvdyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRiYWNrZ3JvdW5kKTtcbiAgfVxuXG4gIEBpZiAkZXhwYW5kIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbiB7XG4gIC5idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbjtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0ge1xuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDsgfVxuXG4gICAgQGlmICRidXR0b24tcmVzcG9uc2l2ZS1leHBhbmRlZCB7XG4gICAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgjeyRzaXplfSBvbmx5KSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1vbmx5LWV4cGFuZGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgjeyRzaXplfSBkb3duKSB7XG4gICAgICAgICAgICAmLiN7JHNpemV9LWRvd24tZXhwYW5kZWQge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoI3skc2l6ZX0pIHtcbiAgICAgICAgICAgICYuI3skc2l6ZX0tZXhwYW5kZWQge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENvbG9yc1xuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi4jeyRuYW1lfS5kcm9wZG93bjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2FibGVkIHN0eWxlXG4gICAgJi5kaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQ7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkKCRjb2xvciwgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIb2xsb3cgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAmLmhvbGxvdyB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGU7XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENsZWFyIHN0eWxlXG4gICAgQGlmICRidXR0b24tZmlsbCAhPSBjbGVhciB7XG4gICAgICAmLmNsZWFyIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcblxuICAgICAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAmLCAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcblxuICAgICAgICAgICAgJiwgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAmLFxuICAgICAgICAgICAgICAmLmRpc2FibGVkLFxuICAgICAgICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERyb3Bkb3duIGFycm93XG4gICAgJi5kcm9wZG93biB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZHJvcGRvd247XG5cbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgPT0gaG9sbG93IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmhvbGxvdywgJi5jbGVhciB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCdXR0b24gd2l0aCBkcm9wZG93biBhcnJvdyBvbmx5XG4gICAgJi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgICB0b3A6IC0wLjFlbTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB9XG4gIH1cblxuICBhLmJ1dHRvbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIkZm9vdGVyLXRleHQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XHJcbiRmb290ZXItZm9udC1zaXplOiAxNHB4O1xyXG4kZm9vdGVyLWZvbnQtc2l6ZS1zbWFsbDogMTJweDtcclxuXHJcbi5mb290ZXIge1xyXG4gIGNvbG9yOiAkZm9vdGVyLXRleHQtY29sb3I7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICB9XHJcblxyXG4gIHAsXHJcbiAgbGksXHJcbiAgYSB7XHJcbiAgICBmb250LXNpemU6ICRmb290ZXItZm9udC1zaXplO1xyXG4gIH1cclxuXHJcbiAgJl9fcm93IHtcclxuICAgIEBleHRlbmQgLm1vbi1yb3c7XHJcbiAgfVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAvLyBUT1AgU0VDVElPTlxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICZfX3RvcCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogMiAwO1xyXG4gIH1cclxuXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLy8gQk9UVE9NIFNFQ1RJT05cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAmX19ib3R0b20ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgZm9udC1zaXplOiAkZm9vdGVyLWZvbnQtc2l6ZS1zbWFsbDtcclxuICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAqIDIgMDtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgfVxyXG5cclxuICAgIHAsXHJcbiAgICBsaSxcclxuICAgIGEge1xyXG4gICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICBmb250LXNpemU6ICRmb290ZXItZm9udC1zaXplLXNtYWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fYm90dG9tLXJvdyB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19ib3R0b20tbGVmdC1wb3J0aW9uIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtYmFzaXM6IDUwJTtcclxuXHJcbiAgICAgIC8vIE1vdmUgdGhlIGxhc3QgZWxlbWVudCB0byB0aGUgcmlnaHRcclxuICAgICAgJiA+ICo6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRnbG9iYWwtbWFyZ2luO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19ib3R0b20tcmlnaHQtcG9ydGlvbiB7XHJcbiAgICBtYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbjtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWJhc2lzOiA1MCU7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2xlZ2FsLXRleHQsXHJcbiAgJl9fY3JlZGl0cyB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLy8gV0lER0VUU1xyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICZfX2l0ZW0ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgIH1cclxuXHJcbiAgICBzcGFuIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHBhZGRpbmc6IDNweCAwO1xyXG4gICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgICAgcGFkZGluZzogMCAkZ2xvYmFsLXBhZGRpbmc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3dpZGdldHMge1xyXG4gICAgJiA+ICo6bGFzdC1jaGlsZCB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG5cclxuICAgICAgJiA+ICoge1xyXG4gICAgICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgICAgIG1hcmdpbjogMCAkZ2xvYmFsLW1hcmdpbiAwIDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIEJBU0lDIFVMIFNUWUxFU1xyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIHVsIHtcclxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICAgIG1hcmdpbjogMDtcclxuXHJcbiAgICAmLmZvb3Rlci1sZWdhbC1tZW51IHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGkge1xyXG4gICAgICAgIG1hcmdpbjogMCAkZ2xvYmFsLW1hcmdpbiAvIDI7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkZ2xvYmFsLW1hcmdpbjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIFNPQ0lBTCBJQ09OIFNIT1JUQ09ERVxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICZfX3NvY2lhbCB7XHJcbiAgICBtYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbjtcclxuICB9XHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIExJTktTXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgfVxyXG59IC8vZm9vdGVyXHJcbiIsIiRkZWZhdWx0LWdyaWQtY29sdW1uczogMTtcclxuJGRlZmF1bHQtZ3JpZC1nYXA6IDMwcHg7XHJcblxyXG5AbWl4aW4gbW9uLWdyaWQoJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zLCAkZ3JpZC1nYXA6ICRkZWZhdWx0LWdyaWQtZ2FwKVxyXG57XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdG1hcmdpbjogMCBhdXRvO1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuXHJcbiAgQHN1cHBvcnRzKCBkaXNwbGF5OiBncmlkICkge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtZ2FwOiAkZ3JpZC1nYXA7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgkZ3JpZC1jb2x1bW5zLCAxZnIpO1xyXG4gIH1cclxufVxyXG5cclxuLy8gRGVmYXVsdCBncmlkLlxyXG4ubW9uLWdyaWQge1xyXG4gIEBpbmNsdWRlIG1vbi1ncmlkKCk7XHJcblxyXG4gICYgPiAqIHtcclxuICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xyXG5cclxuICAgIEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAyIGNvbHVtbiBsYXlvdXQuXHJcbiAgJi0tMiB7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgQGluY2x1ZGUgbW9uLWdyaWQoMik7XHJcblxyXG4gICAgICAmID4gKiB7XHJcbiAgICAgICAgZmxleC1iYXNpczogY2FsYyg1MCUgLSAjeyRnbG9iYWwtbWFyZ2lufSk7XHJcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDUwJSAtICN7JGdsb2JhbC1tYXJnaW59KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gMyBjb2x1bW4gbGF5b3V0LlxyXG4gICYtLTMge1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1vbi1ncmlkKDMpO1xyXG5cclxuICAgICAgJiA+ICoge1xyXG4gICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMzMuMzMlIC0gI3skZ2xvYmFsLW1hcmdpbn0pO1xyXG4gICAgICAgIG1heC13aWR0aDogY2FsYygzMy4zMyUgLSAjeyRnbG9iYWwtbWFyZ2lufSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIDQgY29sdW1uIGxheW91dC5cclxuICAmLS00IHtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBAaW5jbHVkZSBtb24tZ3JpZCg0KTtcclxuXHJcbiAgICAgICYgPiAqIHtcclxuICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDI1JSAtICN7JGdsb2JhbC1tYXJnaW59KTtcclxuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMjUlIC0gI3skZ2xvYmFsLW1hcmdpbn0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHQvLyBUZWFtIGFyY2hpdmUgZ3JpZC5cclxuXHQmLS10ZWFtIHtcclxuXHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBAaW5jbHVkZSBtb24tZ3JpZCgyKTtcclxuXHJcbiAgICAgICYgPiAqIHtcclxuICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDUwJSAtICN7JGdsb2JhbC1tYXJnaW59KTtcclxuICAgICAgfVxyXG5cdFx0fVxyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgQGluY2x1ZGUgbW9uLWdyaWQoNCk7XHJcblxyXG4gICAgICAmID4gKiB7XHJcbiAgICAgICAgZmxleC1iYXNpczogY2FsYygyNSUgLSAjeyRnbG9iYWwtbWFyZ2lufSk7XHJcbiAgICAgIH1cclxuXHRcdH1cclxuICB9XHJcblxyXG4gICYtLWFyY2hpdmUge1xyXG4gICAgQGV4dGVuZCAubW9uLWdyaWQtLTM7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gTWl4aW4gdG8gZGVmaW5lIHdpZHRoIG9mIGFuIGVsZW1lbnQgaW4gMTIgY29sdW1uIGdyaWQuXHJcbkBtaXhpbiBtb24tY29scygkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1jb2x1bW4tY291bnQpIHtcclxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdG1heC13aWR0aDogY2FsYygjeyRncmlkLWNvbHVtbnN9IC8gMTIgKiAxMDAlKTtcclxuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG5cdH1cclxufVxyXG4iLCIvLyBNYWluIGNvbnRlbnQgYXJlYVxyXG4ubWFpbi1jb250ZW50IHtcclxuICAvLyBDb250ZW50IHVzaW5nIG5vbiBmbGV4aWJsZSwgY2xhc3NpYyBlZGl0b3IuIFVzZWZ1bCBmb3IgaW1wb3J0ZWQgYmxvZyBhcnRpY2xlc1xyXG4gICYtLWNsYXNzaWMge1xyXG4gICAgQGluY2x1ZGUgbW9uLWNvbHMoOCk7XHJcbiAgfVxyXG59XHJcblxyXG5odG1sLFxyXG5ib2R5LFxyXG4ub2ZmLWNhbnZhcy13cmFwcGVyIHtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbi5vZmYtY2FudmFzLXdyYXBwZXIge1xyXG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxufVxyXG5cclxuLm9mZi1jYW52YXMtY29udGVudCxcclxuLnN0aWNreS1uYXYtcGFkZGluZyB7XHJcbiAgZmxleDogMSAwIGF1dG87XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG59XHJcblxyXG4ubWFpbi1jb250YWluZXIge1xyXG4gIGZsZXg6IDEgMSBhdXRvO1xyXG59XHJcbiIsIi5idXR0b24tLWxvYWRpbmc6OmFmdGVyIHtcclxuICBjb250ZW50OiBcIlwiO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogMTZweDtcclxuICBoZWlnaHQ6IDE2cHg7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIG1hcmdpbjogYXV0bztcclxuICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBib3JkZXItdG9wLWNvbG9yOiAjZmZmZmZmO1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBhbmltYXRpb246IGJ1dHRvbi1sb2FkaW5nLXNwaW5uZXIgMXMgZWFzZSBpbmZpbml0ZTtcclxufVxyXG4iLCIuYnJlYWRjcnVtYnMge1xyXG4gIEBleHRlbmQgLmJsb2NrO1xyXG4gIFxyXG4gIC5jdXJyZW50LWl0ZW0ge1xyXG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcbiAgfVxyXG59XHJcbiIsIi5idXR0b24ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4gIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgYm9yZGVyLXJhZGl1czogNTBweDtcclxuICBib3JkZXItd2lkdGg6IDJweDtcclxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gIGNvbG9yOiAkd2hpdGU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcclxuICBmb250LXNpemU6IDE5cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nIC8gMS4yNSAkZ2xvYmFsLXBhZGRpbmcgKiAyICRnbG9iYWwtcGFkZGluZztcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyO1xyXG4gIHdpZHRoOiBhdXRvO1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyLFxyXG4gICY6YWN0aXZlLFxyXG4gICY6Zm9jdXMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4gIH1cclxuXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09XHJcbiAgLy8gUHJpbWFyeSBidXR0b25cclxuICAvLyA9PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgLy8gUHJpbWFyeVxyXG4gICYucHJpbWFyeSxcclxuICAmLS1wcmltYXJ5IHtcclxuICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6YWN0aXZlLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkcHJpbWFyeS1jb2xvciwgMTAlKTtcclxuICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJHByaW1hcnktY29sb3IsIDEwJSk7XHJcbiAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcbiAgfSAvLyBwcmltYXJ5XHJcblxyXG4gIC8vIFByaW1hcnkgb3V0bGluZWQgYnV0dG9uXHJcbiAgJi0tb3V0bGluZS1wcmltYXJ5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjphY3RpdmUsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcbiAgfSAvLy0tb3V0bGluZS1wcmltYXJ5XHJcblxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PVxyXG4gIC8vIFNlY29uZGFyeSBidXR0b25cclxuICAvLyA9PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgLy8gU2Vjb25kYXJ5XHJcbiAgJi0tc2Vjb25kYXJ5LFxyXG4gICYuc2Vjb25kYXJ5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XHJcbiAgICBib3JkZXItY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG5cclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmFjdGl2ZSxcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHNlY29uZGFyeS1jb2xvciwgMTUlKTtcclxuICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJHNlY29uZGFyeS1jb2xvciwgMTUlKTtcclxuICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxuICB9IC8vIHNlY29uZGFyeVxyXG5cclxuICAvLyBTZWNvbmRhcnkgb3V0bGluZWQgYnV0dG9uXHJcbiAgJi0tb3V0bGluZS1zZWNvbmRhcnkge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XHJcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjphY3RpdmUsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xyXG4gICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG4gIH0gLy8tLW91dGxpbmUtc2Vjb25kYXJ5XHJcblxyXG4gIC8vIFdhcm5pbmcgb3V0bGluZWQgYnV0dG9uXHJcbiAgJi0tb3V0bGluZS1hbGVydCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlci1jb2xvcjogJGFsZXJ0LWNvbG9yO1xyXG4gICAgY29sb3I6ICRhbGVydC1jb2xvcjtcclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjphY3RpdmUsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFsZXJ0LWNvbG9yO1xyXG4gICAgICBib3JkZXItY29sb3I6ICRhbGVydC1jb2xvcjtcclxuICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxuICB9IC8vLS1vdXRsaW5lLXNlY29uZGFyeVxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PVxyXG4gIC8vIFdoaXRlIGJ1dHRvblxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuICAvLyBXaGl0ZSBidXR0b25cclxuICAmLS13aGl0ZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjphY3RpdmUsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogJHdoaXRlO1xyXG4gICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG4gIH0gLy8tLXdoaXRlXHJcblxyXG4gIC8vIFdoaXRlIG91dGxpbmVkIGJ1dHRvblxyXG4gICYtLW91dGxpbmUtd2hpdGUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItY29sb3I6ICR3aGl0ZTtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6YWN0aXZlLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XHJcbiAgICB9XHJcbiAgfSAvLy0tb3V0bGluZS13aGl0ZVxyXG5cclxuICAvLyBTbWFsbCBidXR0b24uXHJcbiAgJi0tc21hbGwge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgcGFkZGluZy10b3A6ICRnbG9iYWwtcGFkZGluZyAqIDAuODtcclxuICAgIHBhZGRpbmctYm90dG9tOiAkZ2xvYmFsLXBhZGRpbmcgKiAwLjg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6ICRnbG9iYWwtcGFkZGluZztcclxuICAgIHBhZGRpbmctcmlnaHQ6ICRnbG9iYWwtcGFkZGluZztcclxuICAgIG1pbi1oZWlnaHQ6IHJlbV9jYWxjKDMwKTtcclxuICB9XHJcblxyXG4gIC8vIENhcmUgQ29pbnMgTWFuYWdlciBidXR0b25zXHJcbiAgJi5jYy1jYW5jZWwge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYWxlcnQtY29sb3I7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWxlcnQtY29sb3I7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGFsZXJ0LWNvbG9yLCA1JSk7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogbGlnaHRlbigkYWxlcnQtY29sb3IsIDUlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuY2Mtc2VuZC1tb2RhbCB7XHJcbiAgICBAZXh0ZW5kIC5idXR0b24tLXNlY29uZGFyeTtcclxuICB9XHJcblxyXG4gICYtLWxvYWRpbmcgLmJ1dHRvbl9fdGV4dCB7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gIH1cclxuXHJcbiAgJi0tbG9hZGluZzo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHdpZHRoOiAxNnB4O1xyXG4gICAgaGVpZ2h0OiAxNnB4O1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgYm9yZGVyOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjZmZmZmZmO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYW5pbWF0aW9uOiBidXR0b24tbG9hZGluZy1zcGlubmVyIDFzIGVhc2UgaW5maW5pdGU7XHJcbiAgfVxyXG5cclxuICBAa2V5ZnJhbWVzIGJ1dHRvbi1sb2FkaW5nLXNwaW5uZXIge1xyXG4gICAgZnJvbSB7XHJcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDB0dXJuKTtcclxuICAgIH1cclxuXHJcbiAgICB0byB7XHJcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTtcclxuICAgIH1cclxuICB9XHJcbn0gLy9idXR0b25cclxuIiwiLmNhbGxvdXQge1xyXG4gICYgKiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcclxuICB9XHJcblxyXG4gIGg1IHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogJGdsb2JhbC1tYXJnaW4gLyAzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNsb3NlLWJ1dHRvbiB7XHJcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcclxuICB9XHJcbn1cclxuIiwiLy8gRGVmYXVsdCBjYXJkIHN0eWxpbmcuIFN0YW5kYXJkIGJveCBsYXlvdXQgd2l0aCBib3JkZXIuXHJcbi5jYXJkIHtcclxuICBib3JkZXItcmFkaXVzOiBjYWxjKCN7JGdsb2JhbC1yYWRpdXN9IC8gNCk7XHJcbiAgYm94LXNoYWRvdzogJGdsb2JhbC1ib3gtc2hhZG93O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgei1pbmRleDogMTtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xyXG4gICAgei1pbmRleDogMTtcclxuICB9XHJcblxyXG4gIC8vIEZvcmNlIHRoZSBpbWFnZSB0byB1c2UgYSAxNi85IHJhdGlvLCBjaGFuZ2UgYWNjb3JkaW5nbHkuXHJcbiAgJl9faW1hZ2UtY29udGFpbmVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmctdG9wOiAoOSAvIDE2KSAqIDEwMCU7XHJcbiAgfVxyXG5cclxuICAvLyBUaGUgYWN0dWFsIGltZyBmaWxlLCB0aGUgY2xhc3MgaXMgYWRkZWQgaW4gY2FyZC5waHAuXHJcbiAgJl9faW1hZ2UsXHJcbiAgcGljdHVyZSB7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgJl9fY29udGVudCB7XHJcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAqIDI7XHJcblxyXG4gICAgcCB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xyXG4gICAgfVxyXG5cclxuICAgICYgPiAqOmxhc3QtY2hpbGQge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fdGl0bGUge1xyXG4gICAgQGV4dGVuZCBoMztcclxuICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xyXG4gIH1cclxuXHJcbiAgJl9fZXhjZXJwdCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIH1cclxuXHJcbiAgJl9fY2F0ZWdvcnkge1xyXG4gICAgY29sb3I6ICRkYXJrLWdyYXk7XHJcbiAgfVxyXG5cclxuICAmX19sb2NhdGlvbixcclxuICAmX19zcGVjaWFsaXNtIHtcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcblxyXG4gICZfX2Zvb3RlciB7XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleDogMSAwIGF1dG87XHJcbiAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgKiAyO1xyXG4gIH1cclxufVxyXG5cclxuLy8gVGVhbSBjYXJkLlxyXG4uY2FyZC0tdGVhbSB7XHJcbn1cclxuXHJcbi8vIEV2ZW50IGNhcmQuXHJcbi5jYXJkLS1ldmVudCB7XHJcbiAgJl9fZXZlbnQtdmVudWUge1xyXG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcbiAgfVxyXG5cclxuICAmX19ldmVudC1kYXRlIHtcclxuICAgIGNvbG9yOiAkbWVkaXVtLWdyYXk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBSZXNvdXJjZSBjYXJkXHJcbi5jYXJkLS1yZXNvdXJjZSB7XHJcbiAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xyXG5cclxuICAvLyBJY29uIGFuZCB0aXRsZSB3cmFwcGVyLlxyXG4gICZfX2hlYWRpbmcge1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcclxuICB9XHJcblxyXG4gIC8vIE1vdmUgdGhlIGljb24gdG8gdGhlIHJpZ2h0IG9mIHRoZSB0aXRsZS5cclxuICAmX19pY29uIHtcclxuICAgIGZsZXg6IDAgMCAxMCU7XHJcbiAgICBtYXJnaW4tbGVmdDogJGdsb2JhbC1tYXJnaW47XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6ICRnbG9iYWwtbWFyZ2luICogMztcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3RpdGxlIHtcclxuICAgIEBleHRlbmQgaDQ7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZTtcclxuICB9XHJcbn1cclxuXHJcbi5jYXJkLS1ub3RlIHtcclxuICAuY2FyZF9fZm9vdGVyIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcGFkZGluZy10b3A6IDA7XHJcblxyXG4gICAgcCB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luIC8gMjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLmRvdHRlZCB7XHJcbiAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XHJcbiAgbWFyZ2luOiAycmVtIDA7XHJcbn1cclxuIiwiLmJsb2NrLS1mZWF0dXJlZCB7XHJcbiAgQGluY2x1ZGUgbW9uLWNvbHMoOCk7XHJcbiAgaGVpZ2h0OiAwO1xyXG4gIHBhZGRpbmctdG9wOiA1NiU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgcGFkZGluZy10b3A6IDM2JTtcclxuICB9XHJcblxyXG4gIGltZyB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufSIsIi5zb2NpYWwtbGluayB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgaGVpZ2h0OiByZW1fY2FsYygzMnB4KTtcclxuICBtYXJnaW46IDAgcmVtX2NhbGMoM3B4KSAwIHJlbV9jYWxjKDNweCk7XHJcbiAgcGFkZGluZzogcmVtX2NhbGMoNnB4KSAwIDA7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2Utb3V0O1xyXG4gIHdpZHRoOiByZW1fY2FsYygzMnB4KTtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBvcGFjaXR5OiAwLjg7XHJcbiAgfVxyXG5cclxuICAuaWNvbi1saW5rZWRpbiB7XHJcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xyXG4gIH1cclxufVxyXG5cclxuLnN2Zy1pY29uIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgaGVpZ2h0OiAxcmVtO1xyXG4gIHRyYW5zaXRpb246IGZpbGwgMC4ycyBlYXNlLW91dDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gIHdpZHRoOiAxcmVtO1xyXG4gIHN0cm9rZS13aWR0aDogMDtcclxuICBzdHJva2U6ICRncmVlbjtcclxuICBmaWxsOiAkZ3JlZW47XHJcblxyXG4gICYtLXNvY2lhbCB7XHJcbiAgICBoZWlnaHQ6IHJlbV9jYWxjKDIwcHgpO1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgd2lkdGg6IHJlbV9jYWxjKDIwcHgpO1xyXG4gICAgc3Ryb2tlOiAkZ3JlZW47XHJcbiAgICBmaWxsOiAkZ3JlZW47XHJcbiAgfVxyXG59XHJcbiIsIi5jYy1mb3JtIHtcclxuICBAZXh0ZW5kIC5ibG9jay0tc21hbGw7XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5O1xyXG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoI3skZ2xvYmFsLXJhZGl1c30gLyA0KTtcclxuICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgKiAyO1xyXG5cclxuICAmX19ncmlkIHtcclxuICAgIGFsaWduLWl0ZW1zOiBlbmQ7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC1nYXA6ICRnbG9iYWwtbWFyZ2luO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcclxuXHJcbiAgICAmLS00IHtcclxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlucHV0LFxyXG4gIGJ1dHRvbixcclxuICBzZWxlY3Qge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIGhlaWdodDogNTBweDtcclxuICB9XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xyXG4gIH1cclxufVxyXG5cclxuLnVzZXItZGVsZXRlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWxlcnQtY29sb3I7XHJcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiAgY29sb3I6ICR3aGl0ZTtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcclxufVxyXG5cclxuLmNjLW5vdGlmaWNhdGlvbiB7XHJcbiAgJi0taXMtYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRzdWNjZXNzLWNvbG9yO1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEFwcGx5IG91dGxpbmUgc3R5bGVzIG9ubHkgd2hlbiBpbnB1dCBtZXRob2QgaXMga2V5Ym9hcmRcclxuLy8gcmVtb3ZlIDpmb2N1cyBzdHlsZSB2aWEgV2hhdCBJbnB1dCB1c2luZyBwcm9ncmVzc2l2ZSBlbmhhbmNlbWVudFxyXG4vLyBzbyA6Zm9jdXMgaXNuJ3QgbGVmdCBicm9rZW4gaWYgSmF2YVNjcmlwdCBmYWlsc1xyXG5cclxuW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gYTpmb2N1cyxcclxuYnV0dG9uOmZvY3VzIFtkYXRhLXdoYXRpbnB1dD1cInRvdWNoXCJdIGE6Zm9jdXMsXHJcbmJ1dHRvbjpmb2N1cyB7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuLy8gSW5saW5lIGxpbmsgc3R5bGUuXHJcbi5saW5rLWlubGluZSB7XHJcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRwcmltYXJ5LWNvbG9yO1xyXG4gIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbWVkaXVtO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSAwLjJzIGVhc2UtaW47XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEoJHByaW1hcnktY29sb3IsIDApO1xyXG4gIH1cclxuXHJcbiAgJi0tc2Vjb25kYXJ5IHtcclxuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkc2Vjb25kYXJ5LWNvbG9yO1xyXG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XHJcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItYm90dG9tIDAuMnMgZWFzZS1pbjtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEoJHNlY29uZGFyeS1jb2xvciwgMCk7XHJcbiAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gQW5jaG9yIGluIGhlYWRlciBmb3Igc2tpcHBpbmcgdG8gcGFnZSBjb250ZW50IG9uIGFsbCBwYWdlcy5cclxuLnNraXAtdG8tY29udGVudC1saW5rIHtcclxuICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcclxuICBjb2xvcjogJHdoaXRlO1xyXG4gIGhlaWdodDogNDBweDtcclxuICBsZWZ0OiAxMHB4O1xyXG4gIHBhZGRpbmc6IDhweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA0MHB4O1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICB0b3A6IDA7XHJcbiAgfVxyXG5cclxuICAmOmZvY3VzIHtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xyXG4gICAgei1pbmRleDogMjtcclxuICB9XHJcbn1cclxuXHJcbnAgYSB7XHJcbiAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XHJcbn1cclxuIiwiLy8gQ3VzdG9tIExpc3Qgb3B0aW9ucy5cclxuLmxpc3Qge1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgbWFyZ2luLWxlZnQ6IDA7XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICBicmVhay1pbnNpZGU6IGF2b2lkO1xyXG4gICAgY29sdW1uLWZpbGw6IGJhbGFuY2U7XHJcbiAgICBjb2x1bW4tZ2FwOiAkZ2xvYmFsLW1hcmdpbiAqIDI7XHJcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XHJcbiAgfVxyXG5cclxuICBsaSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAvIDEuMjtcclxuICB9XHJcblxyXG4gICYtLXR3byB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBjb2x1bW5zOiAyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8mLS10aHJlZSB7XHJcbiAgLy8gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgLy8gICAgY29sdW1uczogMztcclxuICAvLyAgfVxyXG4gIC8vfVxyXG4gIC8vXHJcbiAgLy8mLS1mb3VyIHtcclxuICAvLyAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAvLyAgICBjb2x1bW5zOiA0O1xyXG4gIC8vICB9XHJcbiAgLy99XHJcblxyXG4gICYtLWRvd25sb2FkIHtcclxuICAgIGxpIHtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGF1dG87XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBjZW50ZXI7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvZG93bmxvYWQtaWNvbi5zdmcnKTtcclxuICAgICAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2xvYmFsLW1hcmdpbiAvIDI7XHJcbiAgICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXRpY2sge1xyXG4gICAgbGkge1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0bztcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy90aWNrLnN2ZycpO1xyXG4gICAgICAgIGhlaWdodDogMjBweDtcclxuICAgICAgICB3aWR0aDogMjBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tc3R5bGVkLWJ1bGxldCB7XHJcbiAgICBsaSB7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMS4zO1xyXG5cclxuICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogJGdsb2JhbC1tYXJnaW4gLyAxLjc1O1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgICAgICB3aWR0aDogMTBweDtcclxuICAgICAgICBmbGV4OiAwIDAgMTBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiLnBhZ2luYXRpb24ge1xyXG4gIG1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luICogMjtcclxuICBhIHtcclxuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuNHMgZWFzZTtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBQcmV2aW91cyBhbmQgbmV4dCBidXR0b25zLlxyXG4gIC5wcmV2LFxyXG4gIC5uZXh0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4gICAgcGFkZGluZzogMCAkZ2xvYmFsLXBhZGRpbmc7XHJcbiAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgfVxyXG5cclxuICAuY3VycmVudCB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNlY29uZGFyeS1jb2xvcjtcclxuICB9XHJcbn1cclxuIiwiLnJldmVhbCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgJHdoaXRlO1xyXG59XHJcbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBTdHlsZXMgZm9yIHNlYXJjaCBmb3JtIGluIGhlYWRlclxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuI3NlYXJjaGZvcm0ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgJGRhcmstZ3JheTtcclxuICBsZWZ0OiAwO1xyXG4gIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAqIDEuNTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAtMTUwcHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgei1pbmRleDogMjtcclxuXHJcbiAgLy8gUmVtb3ZlIHRoZSBkZWZhdWx0IGZvY3VzIHN0YXRlIGZyb20gdGhlIGRpdiBhcyB0aGUgb3BlbmluZyBzaG91bGQgYmUgZW5vdWdoIG9mIGEgdmlzdWFsIHF1ZS5cclxuICAmOmZvY3VzIHtcclxuICAgIG91dGxpbmU6bm9uZTtcclxuICAgIGJveC1zaGFkb3c6bm9uZTtcclxuICB9XHJcblxyXG4gIC5pbnB1dC1ncm91cCB7XHJcbiAgICBtYXJnaW46IDA7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgQGluY2x1ZGUgbW9uLWNvbHMoNSk7XHJcbiAgICB9XHJcblxyXG4gICAgLmlucHV0LWdyb3VwLWZpZWxkIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gICAgICBib3JkZXItcmlnaHQ6IDA7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XHJcblxyXG4gICAgICAmOjpwbGFjZWhvbGRlciB7XHJcbiAgICAgICAgY29sb3I6ICRkYXJrLWdyYXk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBSZWR1Y2UgdGhlIGRlZmF1bHQgYnV0dG9uIHBhZGRpbmcuXHJcbiAgICAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b24ge1xyXG4gICAgICBAZXh0ZW5kIC5idXR0b247XHJcblxyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICBtaW4td2lkdGg6IGluaGVyaXQgIWltcG9ydGFudDtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAkZ2xvYmFsLXBhZGRpbmcgKiAyO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkZ2xvYmFsLXBhZGRpbmcgKiAyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUG9zaXRpb24gdGhlIHNlYXJjaGZyb20gc28gaXQgZG9lc24ndCBvdmVybGFwIHRoZSBoZWFkZXIuXHJcbiAgJi5pcy1hY3RpdmUge1xyXG4gICAgdG9wOiA0OHB4O1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgdG9wOiA3MnB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5wdXRbdHlwZT0ndGV4dCddIHtcclxuICAgIGhlaWdodDogMy4ycmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDI7XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi5zZWFyY2gtc25pcHBldCB7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAqIDI7XHJcbiAgcGFkZGluZy1ib3R0b206ICRnbG9iYWwtcGFkZGluZyAqIDI7XHJcblxyXG4gICY6bGFzdC1vZi10eXBlIHtcclxuICAgIGJvcmRlci1ib3R0b206IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgfVxyXG5cclxuICAmX19sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgfVxyXG5cclxuICAmX190aXRsZSB7XHJcbiAgICBAZXh0ZW5kIC5oMztcclxuXHJcbiAgICBtYXJnaW46ICRnbG9iYWwtbWFyZ2luIDA7XHJcbiAgfVxyXG5cclxuICAmX190aXRsZS1saW5rIHtcclxuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xyXG4gICAgdHJhbnNpdGlvbjogLjJzIGxpbmVhciBjb2xvcjtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIuc2l0ZS10aXRsZS1iYXIge1xyXG5cdHBhZGRpbmc6IHJlbV9jYWxjKDUpICRnbG9iYWwtcGFkZGluZztcclxufSIsIi53aWRnZXQge1xyXG4gIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICogMjtcclxufVxyXG5cclxuLndpZGdldC10aXRsZSB7XHJcbiAgQGV4dGVuZCBoNjtcclxuXHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcbn1cclxuIiwiLmFyY2hpdmVfX3RheG9ub215LWZpbHRlciB7XHJcbiAgQGV4dGVuZCAuYmxvY2stLXNtYWxsO1xyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgfVxyXG5cclxuICAjZHluYW1pY19zZWFyY2hmb3JtIHtcclxuICAgIGZsZXg6IDAgMCAxMDAlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgZmxleDogMCAwIDUwJTtcclxuICAgICAgbWFyZ2luOiAwIDAgMCAkZ2xvYmFsLW1hcmdpbjtcclxuICAgICAgbWF4LXdpZHRoOiA1MCU7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICBmbGV4OiAwIDAgMzUlO1xyXG4gICAgICBtYXgtd2lkdGg6IDM1JTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5keW5hbWljLXRheG9ub215LWZpbHRlciB7XHJcbiAgICBmbGV4OiAwIDAgMTAwJTtcclxuICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgIGZsZXg6IDAgMCAzMCU7XHJcbiAgICAgIG1hcmdpbjogMCAwIDAgJGdsb2JhbC1tYXJnaW47XHJcbiAgICAgIG1heC13aWR0aDogMzAlO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgZmxleDogMCAwIDIwJTtcclxuICAgICAgbWF4LXdpZHRoOiAyMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3QsXHJcbiAgaW5wdXQge1xyXG4gICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcblxyXG4gIHNlbGVjdCB7XHJcbiAgICBwYWRkaW5nOiAwICgkZ2xvYmFsLXBhZGRpbmcgKiAyKSAwICgkZ2xvYmFsLXBhZGRpbmcgKiAxLjI1KTtcclxuICB9XHJcbn1cclxuIiwiLm5ldy1ub3RlLWNvbnRhaW5lciB7XHJcbiAgQGV4dGVuZCAuYmxvY2s7XHJcblxyXG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoI3skZ2xvYmFsLXJhZGl1c30gLyA0KTtcclxuICBib3gtc2hhZG93OiAkZ2xvYmFsLWJveC1zaGFkb3c7XHJcbiAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogMjtcclxuXHJcbiAgZm9ybSB7XHJcbiAgICBsYWJlbCB7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xyXG4gICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luIC8gMjtcclxuICAgIH1cclxuXHJcbiAgICAuY2hlY2tib3hlcyxcclxuICAgIC5yYWRpby1idXR0b25zIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG5cclxuICAgICAgbGFiZWwge1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcclxuICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybS1ncm91cC1jb250YWluZXIge1xyXG4gICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xyXG4gICAgICBncmlkLWdhcDogJGdsb2JhbC1tYXJnaW47XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm0tZ3JvdXAge1xyXG4gICAgICAmLS1yYWJpX25vdGVfcmVhc29ucyB7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi0tcmFiaV9ub3RlX2FnZV9ncm91cCxcclxuICAgICAgJi0tcmFiaV9ub3RlX2dlbmRlcixcclxuICAgICAgJi0tcmFiaV9ub3RlX2xvY2F0aW9uIHtcclxuICAgICAgICBncmlkLXJvdzogMTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi0tcmFiaV9ub3RlX3R5cGVfb2ZfZmFybWluZ19wZXJzb24ge1xyXG4gICAgICAgIGdyaWQtcm93OiAyO1xyXG4gICAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLS1yYWJpX25vdGVfdHlwZV9vZl9mYXJtaW5nIHtcclxuICAgICAgICBncmlkLXJvdzogMjtcclxuICAgICAgICBncmlkLWNvbHVtbjogMyAvIC0xO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLS1yYWJpX25vdGVfdHlwZV9vZl9jb3Vuc2VsbGluZyB7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi0tbm90ZSB7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mb290ZXIge1xyXG4gICAgICBtYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbiAqIDI7XHJcbiAgICB9XHJcbiAgfSAvL2Zvcm1cclxufVxyXG4iLCIuc2luZ2xlLW5vdGUge1xyXG4gICZfX2J1dHRvbi1ncm91cCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAqIDIgMDtcclxuXHJcbiAgICAmID4gKiB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogJGdsb2JhbC1tYXJnaW4gLyAyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJcclxuLmV2ZW50LWhlYWRlciB7XHJcbiAgQGV4dGVuZCAuYmxvY2s7XHJcbn1cclxuXHJcbi5ldmVudC1wYW5lbCB7XHJcbiAgQGV4dGVuZCAuYmxvY2s7XHJcblxyXG5cdGJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xyXG5cdHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAqIDI7XHJcbn1cclxuXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQoIG1lZGl1bSApIHtcclxuICAuZXZlbnQtcGFuZWwge1xyXG5cdFx0ZGlzcGxheTogZ3JpZDtcclxuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KCAzLCAxZnIgKTtcclxuXHRcdGdyaWQtZ2FwOiAxcmVtO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi5ldmVudC1wYW5lbF9fbGlzdCB7XHJcblx0bGlzdC1zdHlsZTogbm9uZTtcclxuXHRtYXJnaW46IDAgMCAxcmVtO1xyXG59XHJcblxyXG4uZXZlbnQtcGFuZWxfX2xpc3QtaXRlbSB7XHJcblx0bWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gLyAyO1xyXG59XHJcblxyXG4uZXZlbnQtcGFuZWxfX3N1YmhlYWRpbmcge1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4uZXZlbnQtcGFuZWxfX2RldGFpbHMge1xyXG5cdGdyaWQtY29sdW1uOiAxIC8gc3BhbiAxO1xyXG59XHJcblxyXG4uZXZlbnQtcGFuZWxfX3ZlbnVlIHtcclxuXHRncmlkLWNvbHVtbjogMiAvIHNwYW4gMTtcclxufVxyXG5cclxuLmV2ZW50LXBhbmVsX19vcmdhbmlzZXIge1xyXG5cdGdyaWQtY29sdW1uOiAzIC8gc3BhbiAxO1xyXG59XHJcblxyXG4uZXZlbnQtcGFuZWxfX21hcCB7XHJcblx0Z3JpZC1yb3c6IDI7XHJcblx0Z3JpZC1jb2x1bW46IDEgLyAtMTtcclxufVxyXG5cclxuLmV2ZW50LW1hcC1jb250YWluZXIge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdHBhZGRpbmctdG9wOiA1Ni4yNSU7XHJcbn1cclxuXHJcbi5ldmVudC1tYXAtY29udGFpbmVyIGlmcmFtZSB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdCAgdG9wOiAwO1xyXG5cdCAgbGVmdDogMDtcclxuXHQgIHdpZHRoOiAxMDAlO1xyXG5cdCAgaGVpZ2h0OiAxMDAlO1xyXG5cdCAgYm9yZGVyOiAwO1xyXG4gfVxyXG4iLCIuc2luZ2xlLXRlYW0ge1xyXG5cclxuXHJcbiAgJl9faGVhZGVyIHtcclxuICAgIEBleHRlbmQgLmJsb2NrO1xyXG5cclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xyXG4gICAgcGFkZGluZzogMCAkZ2xvYmFsLXBhZGRpbmc7XHJcblxyXG4gICAgQHN1cHBvcnRzKCBkaXNwbGF5OiBncmlkICkge1xyXG4gICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICBncmlkLXJvdy1nYXA6ICRnbG9iYWwtbWFyZ2luO1xyXG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICRnbG9iYWwtcGFkZGluZyByZXBlYXQoIDEyLCAxZnIgKSAkZ2xvYmFsLXBhZGRpbmc7XHJcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogbWluLWNvbnRlbnQgYXV0byAxZnI7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgcGFkZGluZzogMDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoIHhsYXJnZSApIHtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGNhbGMoICggMTAwdncgLSAjeyRnbG9iYWwtd2lkdGggLSAkZ2xvYmFsLXBhZGRpbmcgKiAyfSApIC8gMiApIHJlcGVhdCggMTIsIDFmciApIGNhbGMoICggMTAwdncgLSAjeyRnbG9iYWwtd2lkdGggLSAkZ2xvYmFsLXBhZGRpbmcgKiAyfSApIC8gMiApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQSBzdGFja2VkIGhlYWRlciB2YXJpYW50XHJcbiAgICAmLnZlcnRpY2FsIHtcclxuICAgICAgLnNpbmdsZS10ZWFtX190aXRsZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcclxuICAgICAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgKiAyIDA7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuc2luZ2xlLXRlYW1fX2ltYWdlIHtcclxuICAgICAgICBncmlkLXJvdzogMiAvIDM7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoIG1lZGl1bSApIHtcclxuICAgICAgICAgIGdyaWQtcm93OiAyIC8gLTE7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgJl9fdGl0bGUge1xyXG4gICAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDY7XHJcbiAgICBncmlkLXJvdzogMTtcclxuICB9XHJcblxyXG4gICZfX2RldGFpbHMge1xyXG4gICAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDY7XHJcbiAgICBncmlkLXJvdzogMjtcclxuICAgIHBhZGRpbmctcmlnaHQ6ICRnbG9iYWwtcGFkZGluZztcclxuICB9XHJcblxyXG4gICZfX2ltYWdlIHtcclxuICAgIGdyaWQtY29sdW1uOiA4IC8gc3BhbiA2O1xyXG4gICAgZ3JpZC1yb3c6IDEgLyAzO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgb2JqZWN0LWZpdDogY292ZXI7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCggbWVkaXVtICkge1xyXG4gICAgICBncmlkLXJvdzogMSAvIC0xO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fZXhjZXJwdCB7XHJcbiAgICBncmlkLWNvbHVtbjogMiAvIHNwYW4gMTI7XHJcbiAgICBncmlkLXJvdzogMztcclxuICAgIHBhZGRpbmctcmlnaHQ6ICRnbG9iYWwtcGFkZGluZztcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCBtZWRpdW0gKSB7XHJcbiAgICAgIGdyaWQtY29sdW1uOiAyIC8gc3BhbiA2O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vIFNJVEUgSEVBREVSXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLnNpdGUtaGVhZGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB0cmFuc2l0aW9uOiBhbGwgbGluZWFyIDAuM3M7XHJcbiAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICYtLWZpeGVkIHtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICByaWdodDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIHotaW5kZXg6IDk5O1xyXG4gIH1cclxuXHJcbiAgJi0tc2Nyb2xsZWQge1xyXG4gICAgYm94LXNoYWRvdzogJGdsb2JhbC1ib3gtc2hhZG93O1xyXG4gIH1cclxufVxyXG5cclxuYm9keS5hZG1pbi1iYXIge1xyXG4gIC5zaXRlLWhlYWRlci0tZml4ZWQge1xyXG4gICAgdG9wOiA0NnB4O1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgdG9wOiAzMnB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vIFRPUCBCQVJcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4udG9wLWJhciB7XHJcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBtYXJnaW46IGF1dG87XHJcbiAgbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xyXG4gIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAvIDIgJGdsb2JhbC1wYWRkaW5nO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XHJcbiAgICBwYWRkaW5nOiAwICRnbG9iYWwtcGFkZGluZztcclxuICB9XHJcblxyXG4gICZfX2xlZnQge1xyXG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgJl9fcmlnaHQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcbiAgfVxyXG5cclxuICAmX19sb2dvIHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAyMDBweDtcclxuICB9XHJcblxyXG4gICZfX2VsZW1lbnRzIHtcclxuICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG4gICAgcGFkZGluZzogMCAkZ2xvYmFsLXBhZGRpbmc7XHJcblxyXG4gICAgLy8gYWxpZ24gYWxsIGVsZW1lbnRzIHRvIHRoZSByaWdodFxyXG4gICAgJi5yaWdodCB7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLy8ganVzdGlmeSBhbGwgZWxlbWVudHMgc3BhY2UgYmV0d2VlblxyXG4gICAgJi5qdXN0aWZpZWQge1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19kZXNrdG9wLXBob25lIHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgb3JkZXI6IDE7XHJcbiAgfVxyXG5cclxuICAmX19kZXNrdG9wLW1lbnUge1xyXG4gICAgb3JkZXI6IDI7XHJcbiAgfVxyXG5cclxuICAmX19zZWFyY2gtaWNvbiB7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG9yZGVyOiAzO1xyXG4gICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nIC8gMjtcclxuICB9XHJcblxyXG4gICZfX2J1dHRvbnMge1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICBtYXJnaW46IDAgKC0kZ2xvYmFsLW1hcmdpbikgMCAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5idXR0b24ge1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgbWFyZ2luOiAwICRnbG9iYWwtbWFyZ2luIDAgMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2J1dHRvbi1vbmUge1xyXG4gICAgQGV4dGVuZCAuYnV0dG9uLS1wcmltYXJ5O1xyXG4gICAgcGFkZGluZy1sZWZ0OiAkZ2xvYmFsLXBhZGRpbmc7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAkZ2xvYmFsLXBhZGRpbmc7XHJcbiAgfVxyXG59XHJcblxyXG4uc2l0ZS1uYXZpZ2F0aW9uX19idXR0b24ge1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGhlaWdodDogcmVtLWNhbGMoNDgpO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHBhZGRpbmc6IDAgcmVtLWNhbGMoNSk7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiByZW0tY2FsYyg0OCk7XHJcblxyXG4gICYtbGFiZWwge1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xyXG4gICAgZm9udC1zaXplOiByZW0tY2FsYyg4KTtcclxuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoOCk7XHJcbiAgfVxyXG5cclxuICAmLS1waG9uZSB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcclxuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoMTYpO1xyXG4gICAgICBtYXJnaW46IDAgYXV0byByZW0tY2FsYyg1KTtcclxuICAgICAgd2lkdGg6IHJlbS1jYWxjKDE2KTtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3Bob25lLnN2Z1wiKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5oZWFkZXItbG9naW4tbGluayB7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBtYXJnaW4tbGVmdDogJGdsb2JhbC1tYXJnaW47XHJcbiAgcGFkZGluZzogMCAkZ2xvYmFsLXBhZGRpbmcgLyAxLjU7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbn1cclxuIiwiLypcclxuXHRIYW1idXJnZXIgU3R5bGVzIHdpdGggYW5pbWF0ZWQgbGluZXMuIF9oYW1idXJnZXIuc2Nzc1xyXG5cdCovXHJcblxyXG4uaGFtYnVyZ2VyIHtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBoZWlnaHQ6IGF1dG87XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nIC8gMjtcclxuICB3aWR0aDogYXV0bztcclxuICB6LWluZGV4OiA5O1xyXG5cclxuICAubGluZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBoZWlnaHQ6IDNweDtcclxuICAgIG1hcmdpbjogM3B4IDA7XHJcbiAgICB3aWR0aDogMzJweDtcclxuICAgIHotaW5kZXg6IDI7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBUaGUgY2xvc2UgYnV0dG9uIVxyXG4ubW9iaWxlLWhhbWJ1cmdlciB7XHJcbiAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xyXG59XHJcbiIsIi8vIFN0eWxlcyBmb3Igb2ZmY2FudmFzIHN0dWZmIF9vZmZjYW52YXMuc2Nzcy5cclxuXHJcbi8vIERvIG5vdCBtZXNzIHdpdGggdGhpcyBhcyBpdCBhZmZlY3RzIHRoZSBzY3JvbGxlciBzdGlja3kgcG9zaXRpb25pbmcuXHJcbi5vZmYtY2FudmFzLXdyYXBwZXIge1xyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICB9XHJcbn1cclxuXHJcbi5vZmYtY2FudmFzIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcblxyXG4gICZfX2hlYWRlciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAkZ2xvYmFsLXBhZGRpbmcgJGdsb2JhbC1wYWRkaW5nICogMztcclxuICB9XHJcblxyXG4gICZfX2Zvb3RlciB7XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZmxleDogMSAwIGF1dG87XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgcGFkZGluZzogMCAkZ2xvYmFsLXBhZGRpbmcgJGdsb2JhbC1wYWRkaW5nICogNDtcclxuXHJcbiAgICAucGhvbmUtbnVtYmVyIHtcclxuICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgZm9udC1zaXplOiAzMnB4O1xyXG4gICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3Bob25lLW51bWJlciB7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbWVkaXVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiAgfVxyXG5cclxuICAmX19idXR0b24ge1xyXG4gICAgZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG59XHJcblxyXG4uanMtb2ZmLWNhbnZhcy1vdmVybGF5IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNSk7XHJcbn1cclxuIiwiLypcclxuXHROYXZpZ2F0aW9uIHN0eWxlcyBmb3IgZHJvcGRvd24gJiBtZWdhIG1lbnUgdmFyaWF0aW9uXHJcblx0Ki9cclxuJG1lZ2EtbWVudS13aWR0aDogJGdsb2JhbC13aWR0aDsgLy8gQ2hhbmdlIHRvIDEwMCUgdG8gbWFrZSBmdWxsIHdpZHRoLlxyXG4kZHJvcGRvd24tbWVudS13aWR0aDogcmVtX2NhbGMoMjgwKTtcclxuXHJcbi5kcm9wZG93biB7XHJcbiAgQGluY2x1ZGUgc2hvdy1mb3IobGFyZ2UpO1xyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxuXHJcbiAgbGkge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICA+IGEge1xyXG4gICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICBwYWRkaW5nOiAoJGdsb2JhbC1wYWRkaW5nICogMS41KSAkZ2xvYmFsLXBhZGRpbmc7XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgdWwge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xyXG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBIaWdobGlnaHQgY3VycmVudCBwYWdlIGl0ZW0gaW4gbWFpbiBuYXYgYW5kIGRyb3Bkb3duLlxyXG4gICAgJi5jdXJyZW50LW1lbnUtaXRlbSxcclxuICAgICYuY3VycmVudC1wYWdlLXBhcmVudCB7XHJcbiAgICAgICYgPiBhIHtcclxuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBTdHlsZSB0aGUgZHJvcGRvd24gcGFyZW50IGxpbmtzXHJcbiAgICAmLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgcGFkZGluZy1yaWdodDogMnJlbTtcclxuXHJcbiAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgICAgIGJvcmRlci13aWR0aDogMnB4IDJweCAwIDA7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgaGVpZ2h0OiA4cHg7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHJpZ2h0OiAkZ2xvYmFsLW1hcmdpbjtcclxuICAgICAgICB0b3A6IGNhbGMoNTAlIC0gNXB4KTtcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgICAgd2lkdGg6IDhweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdWwge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgbGVmdDogMDtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDEwMCU7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IGVhc2Utb3V0IDAuMnM7XHJcbiAgICB3aWR0aDogJGRyb3Bkb3duLW1lbnUtd2lkdGg7XHJcbiAgICB6LWluZGV4OiAyO1xyXG5cclxuICAgIGxpIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICBhIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuanMtZHJvcGRvd24tYWN0aXZlIHtcclxuICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIE1lZ2EgbWVudSBzdHlsZXNcclxuICAmLm1lZ2EtbWVudSB7XHJcbiAgICBsaSB7XHJcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICB9XHJcblxyXG4gICAgdWwge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDE0cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBtYXJnaW46IGF1dG87XHJcbiAgICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIHRvcDogMTAwJTtcclxuICAgICAgd2lkdGg6ICRtZWdhLW1lbnUtd2lkdGg7XHJcbiAgICAgIGdyaWQtZ2FwOiAkZ2xvYmFsLW1hcmdpbjtcclxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcclxuICAgICAgei1pbmRleDogMTA7XHJcblxyXG4gICAgICBsaSB7XHJcbiAgICAgICAgZmxleDogMCAwIDMzLjMzJTtcclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcblxyXG4gICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWVudS1kZXNjcmlwdGlvbiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIHBhZGRpbmc6IDAgMXJlbSAwLjVyZW0gMXJlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIENsYXNzIHRvIGFkZCB1bmRlcmxpbmVkIGxpbmsgc3R5bGVzIGFkZCB0aGlzIHRvIHRoZSBwYXJlbnQgdWwgaW4gbGlicmFyeS9uYXZpZ2F0aW9uLnBocCBvbiBsaW5lIDM1IG9yIDUwLlxyXG4gICYudW5kZXJsaW5lZC1saW5rcyB7XHJcbiAgICA+IGxpIHtcclxuICAgICAgbWFyZ2luOiAwICRnbG9iYWwtbWFyZ2luO1xyXG5cclxuICAgICAgPiBhIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmN1cnJlbnQtbWVudS1pdGVtLFxyXG4gICAgICAmLmN1cnJlbnQtcGFnZS1wYXJlbnQge1xyXG4gICAgICAgICYgPiBhIHtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKlxyXG5cdE5hdmlnYXRpb24gc3R5bGVzIGZvciBhY2NvcmRpb24gbWVudVxyXG5cdCovXHJcblxyXG4vLyBNb2JpbGUgbWVudSAodmVydGljYWwgYWNjb3JkaW9uKS5cclxuLm1vYmlsZS1tZW51IHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcblx0ZGlzcGxheTogbm9uZTtcclxuXHRsZWZ0OiAwO1xyXG5cdG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSA2MHB4KTtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiAxMDAlO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdEBpbmNsdWRlIGhpZGUtZm9yKGxhcmdlKTtcclxuXHJcblx0Ji5pcy1hY3RpdmUge1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0fVxyXG5cclxuXHRsaSB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHJcblx0XHRhIHtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgKiAuNyAkZ2xvYmFsLXBhZGRpbmc7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dWwge1xyXG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcclxuXHRcdG1hcmdpbjogMDtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdH1cclxuXHJcblx0LnN1Ym1lbnUtdG9nZ2xlIHtcclxuXHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XHJcblx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdHRvcDogMDtcclxuXHRcdHdpZHRoOiA0MHB4O1xyXG5cdH1cclxuXHJcblx0LnN1Ym1lbnUtdG9nZ2xlLXRleHQge1xyXG5cdFx0Ym9yZGVyOiAwO1xyXG5cdFx0Y2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcclxuXHRcdGhlaWdodDogMXB4O1xyXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdHBhZGRpbmc6IDA7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdFx0d2lkdGg6IDFweDtcclxuXHR9XHJcblxyXG5cdC5zdWJtZW51LXRvZ2dsZTphZnRlciB7XHJcblx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XHJcblx0XHRjb250ZW50OiAnKyc7XHJcblx0XHRmb250LXNpemU6IDE0MCU7XHJcblx0XHRsZWZ0OiAuOHJlbTtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHRvcDogLjZyZW07XHJcblx0fVxyXG5cclxuXHQuc3VibWVudS10b2dnbGVbYXJpYS1leHBhbmRlZD0ndHJ1ZSddOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6ICctJztcclxuXHR9XHJcbn1cclxuIiwiXHJcbi8qXHJcblx0TmF2aWdhdGlvbiBzdHlsZXMgZm9yIGRyaWxsZG93biBtZW51LiBfbW9iaWxlLWRyaWxsZG93bi1tZW51LnNjc3NcclxuXHRAVE9ETyByZW1vdmUgcmVsaWFuY2Ugb24gZm91bmRhdGlvbiBwcmVzcyBkcmlsbGRvd24gbWVudS5cclxuXHQqL1xyXG5cclxuLy8gTW9iaWxlIG1lbnUgKERyaWxsZG93bikuXHJcbi5pcy1kcmlsbGRvd24ge1xyXG4gIG1pbi1oZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgLy8gSW1wb3J0YW50IG5lZWRlZCB0byBvdmVycmlkZSBKUyBpbnNlcnRpb24gZnJvbSBGUC5cclxuXHRtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgLy8gSW1wb3J0YW50IG5lZWRlZCB0byBvdmVycmlkZSBKUyBpbnNlcnRpb24gZnJvbSBGUC5cclxuXHRvdmVyZmxvdzogaW5pdGlhbDtcclxuXHJcblx0dWwge1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDA7XHJcblx0fVxyXG5cdGxpIHtcclxuXHRcdHBvc2l0aW9uOiBzdGF0aWM7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHJcblx0XHRhIHtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdGZvbnQtc2l6ZTogMjhweDtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW1lZGl1bTtcclxuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdFx0XHRwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgLyAyICRnbG9iYWwtcGFkZGluZyAqIDEuNTtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5qcy1kcmlsbGRvd24tYmFjayB7XHJcblx0XHRcdGEge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogMXJlbTtcclxuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblxyXG5cdFx0XHRcdCY6OmJlZm9yZSB7XHJcblx0XHRcdFx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHRcdFx0XHRjb250ZW50OiB1cmwoJy4uL2ltYWdlcy9pY29ucy93aGl0ZS1jaGV2cm9uLXJpZ2h0LnN2ZycpO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xyXG5cdFx0XHRcdFx0bWFyZ2luOiAwICRnbG9iYWwtbWFyZ2luIDAgMDtcclxuXHRcdFx0XHRcdHdpZHRoOiA2cHg7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdFx0XHR0b3A6IDA7XHJcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XHJcbn1cclxuXHJcbi5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcclxuXHRib3JkZXI6IG5vbmU7XHJcblx0Y29udGVudDogdXJsKCcuLi9pbWFnZXMvaWNvbnMvd2hpdGUtY2hldnJvbi1yaWdodC5zdmcnKTtcclxuXHRoZWlnaHQ6IGF1dG87XHJcblx0d2lkdGg6IDZweDtcclxuXHRwb3NpdGlvbjogc3RhdGljO1xyXG59XHJcbiIsIi5oZWFkZXItYmFzaWMge1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBtYXJnaW46IDAgYXV0bztcclxuXHRtYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGg7XHJcblx0cGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogMiAwO1xyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG5cdFx0cGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogNCAwO1xyXG5cdH1cclxufVxyXG4iLCIuY2MtZGFzaGJvYXJkIHtcclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIH1cclxuXHJcbiAgJl9fc2lkZWJhciB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcclxuICAgIGZsZXg6IDAgMSAyMCU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcclxuICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcclxuICB9XHJcblxyXG4gICZfX2NvbnRlbnQge1xyXG4gICAgZmxleDogMCAxIDc1JTtcclxuXHJcbiAgICB0YWJsZSB7XHJcbiAgICAgIGJveC1zaGFkb3c6ICRnbG9iYWwtYm94LXNoYWRvdztcclxuICAgICAgdGhlYWQge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRkYXJrLWJsdWU7XHJcbiAgICAgIH1cclxuICAgICAgdGgge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRib2R5IHtcclxuICAgICAgICB0ciB7XHJcbiAgICAgICAgICB0ZDpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0ZCBzcGFuLnVzZXItZGlzcGxheS1uYW1lIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgQGV4dGVuZCAuYnV0dG9uLS1zbWFsbDtcclxuXHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fbmF2IHtcclxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG5cclxuICAgIGxpIHtcclxuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4gICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gLyAyO1xyXG5cclxuICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogJGdsb2JhbC1tYXJnaW4gLyAyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnB1cmNoYXNlZDo6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiBcIvCfkY1cIjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5zZW50OjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwi8J+TpFwiO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnJlY2VpdmVkOjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwi8J+TqFwiO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnBlbmRpbmc6OmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogXCLij7NcIjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5hc3NpZ25lZDo6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiBcIvCfkrxcIjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5zcGVudDo6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiBcIvCfkrhcIjtcclxuICAgICAgfVxyXG5cclxuICAgICAgYSB7XHJcbiAgICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIE5vdGlmaWNhdGlvbnNcclxuLmNjLW5vdGlmaWNhdGlvbnMge1xyXG4gIC5jYWxsb3V0IHtcclxuICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBUYWJsZXNcclxudGFibGUge1xyXG4gICYjdXNlclNlYXJjaFRhYmxlIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgJi5oYXMtcmVzdWx0cyB7XHJcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIuZGF0ZS1yYW5nZS1waWNrZXItZm9ybSB7XHJcbiAgQGV4dGVuZCAuYmxvY2s7XHJcblxyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7XHJcbiAgYm9yZGVyLXJhZGl1czogY2FsYygjeyRnbG9iYWwtcmFkaXVzfSAvIDQpO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgJGdsb2JhbC1wYWRkaW5nICogMjtcclxuXHJcbiAgYnV0dG9uIHtcclxuICAgIGZsZXg6IDAgMCBhdXRvO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcblxyXG4gIC5kYXRlLXJhbmdlLXBpY2tlciB7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZmxleDogMCAwIGF1dG87XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAkZ2xvYmFsLW1hcmdpbjtcclxuXHJcbiAgICBzcGFuIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBtYXJnaW46IDAgJGdsb2JhbC1tYXJnaW47XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubm90ZS1jaGFydHMge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgZ3JpZC1nYXA6ICRnbG9iYWwtbWFyZ2luICogNCAkZ2xvYmFsLW1hcmdpbiAqIDI7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcclxuXHJcbiAgJl9faXRlbSB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgaDQge1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy89PSBmb3VuZGF0aW9uYWwgdmFyaWFibGVzID09Ly9cbiRibGFjazogaHNsKDAsIDAlLCA0JSkgIWRlZmF1bHQ7XG4kd2hpdGU6IGhzbCgwLCAwJSwgMTAwJSkgIWRlZmF1bHQ7XG4kbGlnaHQ6IGhzbCgwLCAwJSwgOTYlKSAhZGVmYXVsdDsgLy8gd2hpdGUtdGVyXG4kZGFyazogaHNsKDAsIDAlLCAyMSUpICFkZWZhdWx0OyAgLy8gZ3JleS1kYXJrZXJcbiRsaW5rOiBoc2woMjE3LCA3MSUsIDUzJSkgIWRlZmF1bHQ7IC8vIGJsdWVcblxuJGdyZXktZGFyazogbGlnaHRlbigkYmxhY2ssIDI1JSkgIWRlZmF1bHQ7XG4kZ3JleS1saWdodDogZGFya2VuKCRsaWdodCwgMjUlKSAhZGVmYXVsdDtcbiRncmV5LWxpZ2h0ZXI6IGRhcmtlbigkbGlnaHQsIDEwJSkgIWRlZmF1bHQ7XG5cbi8vPT0gZGF0ZXBpY2tlciB2YXJpYWJsZXMgPT0vL1xuJGRwLWJhY2tncm91bmQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRkcC1ib3JkZXItY29sb3I6ICRncmV5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG4kZHAtYm9yZGVyLXJhZGl1czogNHB4ICFkZWZhdWx0O1xuJGRwLWJvcmRlci1yYWRpdXMtc21hbGw6IDJweCAhZGVmYXVsdDtcbiRkcC1saW5lLWhlaWdodC1iYXNlOiAxLjUgIWRlZmF1bHQ7XG4kZHAtZm9udC1zaXplLW5vcm1hbDogMXJlbSAhZGVmYXVsdDtcbiRkcC1mb250LXNpemUtc21hbGw6IDAuNzVyZW0gIWRlZmF1bHQ7XG4kZHAtZm9udC13ZWlnaHQtc2VtaWJvbGQ6IDYwMCAhZGVmYXVsdDtcbiRkcC1mb250LXdlaWdodC1ib2xkOiA3MDAgIWRlZmF1bHQ7XG4kZHAtZHJvcGRvd24tb2Zmc2V0OiA0cHggIWRlZmF1bHQ7XG4kZHAtZHJvcGRvd24tc2hhZG93OiAwIDJweCAzcHggcmdiYSgkYmxhY2ssIDAuMSksIDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4xKSAhZGVmYXVsdDtcbiRkcC1kcm9wZG93bi16OiAyMCAhZGVmYXVsdDtcblxuJGRwLXRpdGxlLWJhY2tncm91bmQtY29sb3I6ICRsaWdodCAhZGVmYXVsdDtcblxuJGRwLWNlbGwtc2l6ZS1iYXNlOiAyLjI1cmVtICFkZWZhdWx0O1xuJGRwLWNlbGwtZm9jdXMtYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRsaWdodCwgNSUpICFkZWZhdWx0O1xuJGRwLWNlbGwtcHJldm5leHQtY29sb3I6IGhzbCgwLCAwJSwgNDglKSAhZGVmYXVsdDsgLy8gZ3JleVxuJGRwLWNlbGwtZGlzYWJsZWQtY29sb3I6ICRncmV5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG4kZHAtY2VsbC1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkbGluayAhZGVmYXVsdDtcbiRkcC1jZWxsLXNlbGVjdGVkLWNvbG9yOiAjZmZmICFkZWZhdWx0OyAvLyBsaW5rKGJsdWUpLWludmVydFxuJGRwLWNlbGwtc2VsZWN0ZWQtZm9udC13ZWlnaHQ6IDYwMCAhZGVmYXVsdDtcbiRkcC1jZWxsLXRvZGF5LWJhY2tncm91bmQtY29sb3I6IGhzbCgxNzEsIDEwMCUsIDQxJSkgIWRlZmF1bHQ7ICAvLyB0dXJxdW9pc2UgKHByaW1hcnkpXG4kZHAtY2VsbC10b2RheS1jb2xvcjogI2ZmZiAhZGVmYXVsdDsgIC8vIHR1cnF1b2lzZS1pbnZlcnRcbiRkcC1jZWxsLWhpZ2hsaWdodGVkLWJhY2tncm91bmQtY29sb3I6ICRsaWdodCAhZGVmYXVsdDtcbiRkcC1yYW5nZS1zdGFydC1lbmQtYmFja2dyb3VuZC1jb2xvcjogJGdyZXktbGlnaHQgIWRlZmF1bHQ7XG4kZHAtcmFuZ2Utc3RhcnQtZW5kLWNvbG9yOiAkZHAtY2VsbC1zZWxlY3RlZC1jb2xvciAhZGVmYXVsdDtcbiRkcC1yYW5nZS1iYWNrZ3JvdW5kLWNvbG9yOiAkZ3JleS1saWdodGVyICFkZWZhdWx0O1xuJGRwLXJhbmdlLXRvZGF5LWJhY2tncm91bmQtY29sb3I6ICRkcC1jZWxsLXRvZGF5LWJhY2tncm91bmQtY29sb3IgIWRlZmF1bHQ7XG4kZHAtd2Vlay1jb2xvcjogJGdyZXktbGlnaHQgIWRlZmF1bHQ7XG5cbiRkcC1mb290ZXItYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0ICFkZWZhdWx0O1xuXG4kZHAtaW5wdXQtaW4tZWRpdC1ib3JkZXItY29sb3I6IGRhcmtlbigkbGluaywgNSUpICFkZWZhdWx0O1xuJGRwLWlucHV0LWluLWVkaXQtZm9jdXMtYm94LXNoYWRvdy1zaXplOiAwIDAgMC4yNWVtIDAuMjVlbSAhZGVmYXVsdDtcblxuLy89PSBub24tY29uZmlndXJhYmxlIHZhcmlhYmxlcyA9PS8vXG4kZHAtY2VsbC1zaHJpbmstdGhyZXNob2xkOiAkZHAtY2VsbC1zaXplLWJhc2UgKiAxMDsgIC8vID0gOCAqIDEuMjVcbiRkcC1jZWxsLXNocmlua2VkLXdpZHRoOiAkZHAtY2VsbC1zaXplLWJhc2UgKiA3IC8gODtcblxuLy89PSBtaXhpbnMgPT0vL1xuQGltcG9ydCAnbWl4aW5zJztcblxuLy89PSBzdHlsZXMgPT0vL1xuLmRhdGVwaWNrZXIge1xuICBkaXNwbGF5OiBub25lO1xuXG4gICYuYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4uZGF0ZXBpY2tlci1kcm9wZG93biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAkZHAtZHJvcGRvd24tejtcbiAgcGFkZGluZy10b3A6ICRkcC1kcm9wZG93bi1vZmZzZXQ7XG5cbiAgJi5kYXRlcGlja2VyLW9yaWVudC10b3Age1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAkZHAtZHJvcGRvd24tb2Zmc2V0O1xuICB9XG59XG5cbi5kYXRlcGlja2VyLXBpY2tlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJhZGl1czogJGRwLWJvcmRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRkcC1iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gIC5kYXRlcGlja2VyLWRyb3Bkb3duICYge1xuICAgIGJveC1zaGFkb3c6ICRkcC1kcm9wZG93bi1zaGFkb3c7XG4gIH1cblxuICBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAxO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZHAtYm9yZGVyLXJhZGl1cztcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxufVxuXG4uZGF0ZXBpY2tlci1tYWluIHtcbiAgcGFkZGluZzogMnB4O1xufVxuXG4uZGF0ZXBpY2tlci1mb290ZXIge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgkYmxhY2ssIDAuMSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICRkcC1mb290ZXItYmFja2dyb3VuZC1jb2xvcjtcbn1cblxuJWZsZXgtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuJWZsZXgtd3JhcCB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuJWZsZXgtYmFzaXMtZGF5IHtcbiAgZmxleC1iYXNpczogcGVyY2VudGFnZSgxIC8gNyk7XG59XG5cbiVmbGV4LWJhc2lzLW1vbnRoLXllYXIge1xuICBmbGV4LWJhc2lzOiAyNSU7XG59XG5cbiVkYXRlcGlja2VyLWNlbGwtaGVpZ2h0IHtcbiAgaGVpZ2h0OiAkZHAtY2VsbC1zaXplLWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiAkZHAtY2VsbC1zaXplLWJhc2U7XG59XG5cbi5kYXRlcGlja2VyLXRpdGxlIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDFweCByZ2JhKCRibGFjaywgMC4xKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRwLXRpdGxlLWJhY2tncm91bmQtY29sb3I7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNzVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6ICRkcC1mb250LXdlaWdodC1ib2xkO1xufVxuXG4uZGF0ZXBpY2tlci1jb250cm9scyB7XG4gIEBleHRlbmQgJWZsZXgtY29udGFpbmVyO1xuXG4gIC5kYXRlcGlja2VyLWhlYWRlciAmIHtcbiAgICBwYWRkaW5nOiAycHggMnB4IDA7XG4gIH1cblxuICBAaWYgbWl4aW4tZXhpc3RzKGRwLWJ1dHRvbikge1xuICAgIEBpbmNsdWRlIGRwLWJ1dHRvbjtcbiAgfSBAZWxzZSB7XG4gICAgLmJ1dHRvbiB7XG4gICAgICAkYnV0dG9uLWNvbG9yOiAkZGFyaztcbiAgICAgICRidXR0b24tYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXG4gICAgICAkYnV0dG9uLWJvcmRlci1jb2xvcjogJGdyZXktbGlnaHRlcjtcbiAgICAgICRidXR0b24tYm9yZGVyLXdpZHRoOiAxcHg7XG5cbiAgICAgICRidXR0b24tcGFkZGluZy12ZXJ0aWNhbDogY2FsYygwLjM3NWVtIC0gI3skYnV0dG9uLWJvcmRlci13aWR0aH0pO1xuICAgICAgJGJ1dHRvbi1wYWRkaW5nLWhvcml6b250YWw6IDAuNzVlbTtcblxuICAgICAgJGJ1dHRvbi1ob3Zlci1jb2xvcjogJGRhcms7IC8vIGxpbmstaG92ZXJcbiAgICAgICRidXR0b24taG92ZXItYm9yZGVyLWNvbG9yOiAkZ3JleS1saWdodDsgIC8vIGxpbmstaG92ZXItYm9yZGVyXG5cbiAgICAgICRidXR0b24tZm9jdXMtY29sb3I6ICRkYXJrOyAvLyBsaW5rLWZvY3VzXG4gICAgICAkYnV0dG9uLWZvY3VzLWJvcmRlci1jb2xvcjogJGxpbms7ICAvLyBsaW5rLWZvY3VzLWJvcmRlclxuICAgICAgJGJ1dHRvbi1mb2N1cy1ib3gtc2hhZG93LXNpemU6IDAgMCAwIDAuMTI1ZW07XG4gICAgICAkYnV0dG9uLWZvY3VzLWJveC1zaGFkb3ctY29sb3I6IHJnYmEoJGxpbmssIDAuMjUpO1xuXG4gICAgICAkYnV0dG9uLWFjdGl2ZS1jb2xvcjogJGRhcms7ICAvLyBsaW5rLWFjdGl2ZVxuICAgICAgJGJ1dHRvbi1hY3RpdmUtYm9yZGVyLWNvbG9yOiAkZ3JleS1kYXJrOyAgLy8gbGluay1hY3RpdmUtYm9yZGVyXG5cbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgYm9yZGVyOiAkYnV0dG9uLWJvcmRlci13aWR0aCBzb2xpZCAkYnV0dG9uLWJvcmRlci1jb2xvcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRkcC1ib3JkZXItcmFkaXVzOyAvLyBjb250cm9sLXJhZGl1c1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZy12ZXJ0aWNhbCAkYnV0dG9uLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAgIGhlaWdodDogMi4yNWVtOyAvLyBjb250cm9sLWhlaWdodFxuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkZHAtbGluZS1oZWlnaHQtYmFzZTsgIC8vIGNvbnRyb2wtbGluZS1oZWlnaHRcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBjb2xvcjogJGJ1dHRvbi1jb2xvcjtcbiAgICAgIGZvbnQtc2l6ZTogJGRwLWZvbnQtc2l6ZS1ub3JtYWw7ICAvLyBzaXplLW5vcm1hbFxuXG4gICAgICAmOmZvY3VzLFxuICAgICAgJjphY3RpdmUge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYnV0dG9uLWhvdmVyLWJvcmRlci1jb2xvcjtcbiAgICAgICAgY29sb3I6ICRidXR0b24taG92ZXItY29sb3I7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICRidXR0b24tZm9jdXMtYm9yZGVyLWNvbG9yO1xuICAgICAgICBjb2xvcjogJGJ1dHRvbi1mb2N1cy1jb2xvcjtcblxuICAgICAgICAmOm5vdCg6YWN0aXZlKSB7XG4gICAgICAgICAgYm94LXNoYWRvdzogJGJ1dHRvbi1mb2N1cy1ib3gtc2hhZG93LXNpemUgJGJ1dHRvbi1mb2N1cy1ib3gtc2hhZG93LWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYnV0dG9uLWFjdGl2ZS1ib3JkZXItY29sb3I7XG4gICAgICAgIGNvbG9yOiAkYnV0dG9uLWFjdGl2ZS1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgfVxuXG4gICAgICAuZGF0ZXBpY2tlci1oZWFkZXIgJiB7XG4gICAgICAgIEBpbmNsdWRlIGRwLWhlYWRlci1idXR0b24tY29tbW9uO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkd2hpdGUsIDIuNSUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgJjpub3QoOmFjdGl2ZSkge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMC4xMjVlbSByZ2JhKCR3aGl0ZSwgMC4yNSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkd2hpdGUsIDUlKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5kYXRlcGlja2VyLWZvb3RlciAmIHtcbiAgICAgICAgQGluY2x1ZGUgZHAtZm9vdGVyLWJ1dHRvbi1jb21tb247XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnZpZXctc3dpdGNoIHtcbiAgICBmbGV4OiBhdXRvO1xuICB9XG5cbiAgLnByZXYtYnRuLFxuICAubmV4dC1idG4ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuMzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC4zNzVyZW07XG4gICAgd2lkdGg6ICRkcC1jZWxsLXNpemUtYmFzZTtcblxuICAgICYuZGlzYWJsZWQge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbiAgfVxufVxuXG4uZGF0ZXBpY2tlci12aWV3IHtcbiAgQGV4dGVuZCAlZmxleC1jb250YWluZXI7XG5cbiAgLmRheXMtb2Ytd2VlayB7XG4gICAgQGV4dGVuZCAlZmxleC1jb250YWluZXI7XG4gIH1cblxuICAuZG93IHtcbiAgICBAZXh0ZW5kICVmbGV4LWJhc2lzLWRheTtcbiAgICBoZWlnaHQ6ICRkcC1mb250LXNpemUtbm9ybWFsICogJGRwLWxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgbGluZS1oZWlnaHQ6ICRkcC1mb250LXNpemUtbm9ybWFsICogJGRwLWxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgZm9udC1zaXplOiAoJGRwLWZvbnQtc2l6ZS1zbWFsbCArICRkcC1mb250LXNpemUtbm9ybWFsKSAvIDI7XG4gICAgZm9udC13ZWlnaHQ6ICRkcC1mb250LXdlaWdodC1ib2xkO1xuICB9XG5cbiAgLndlZWsge1xuICAgIEBleHRlbmQgJWRhdGVwaWNrZXItY2VsbC1oZWlnaHQ7XG4gICAgd2lkdGg6ICRkcC1jZWxsLXNpemUtYmFzZTtcbiAgICBjb2xvcjogJGRwLXdlZWstY29sb3I7XG4gICAgZm9udC1zaXplOiAkZHAtZm9udC1zaXplLXNtYWxsO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRkcC1jZWxsLXNocmluay10aHJlc2hvbGQpIHtcbiAgICAgIHdpZHRoOiAkZHAtY2VsbC1zaHJpbmtlZC13aWR0aDtcbiAgICB9XG4gIH1cbn1cblxuLmRhdGVwaWNrZXItZ3JpZCB7XG4gIEBleHRlbmQgJWZsZXgtY29udGFpbmVyO1xuICBAZXh0ZW5kICVmbGV4LXdyYXA7XG5cbiAgd2lkdGg6ICRkcC1jZWxsLXNpemUtYmFzZSAqIDc7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6ICRkcC1jZWxsLXNocmluay10aHJlc2hvbGQpIHtcbiAgICAuY2FsZW5kYXItd2Vla3MgKyAuZGF5cyAmIHtcbiAgICAgIHdpZHRoOiAkZHAtY2VsbC1zaHJpbmtlZC13aWR0aCAqIDc7XG4gICAgfVxuICB9XG59XG5cbi5kYXRlcGlja2VyLWNlbGwge1xuICBAZXh0ZW5kICVkYXRlcGlja2VyLWNlbGwtaGVpZ2h0O1xuXG4gICY6bm90KC5kaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZHAtYmFja2dyb3VuZC1jb2xvciwgMi41JSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJi5mb2N1c2VkOm5vdCguc2VsZWN0ZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHAtY2VsbC1mb2N1cy1iYWNrZ3JvdW5kLWNvbG9yO1xuICB9XG5cbiAgJi5zZWxlY3RlZCB7XG4gICAgJixcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkcC1jZWxsLXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3I7XG4gICAgICBjb2xvcjogJGRwLWNlbGwtc2VsZWN0ZWQtY29sb3I7XG4gICAgICBmb250LXdlaWdodDogJGRwLWNlbGwtc2VsZWN0ZWQtZm9udC13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgJi5kaXNhYmxlZCB7XG4gICAgY29sb3I6ICRkcC1jZWxsLWRpc2FibGVkLWNvbG9yO1xuICB9XG5cbiAgJi5wcmV2LFxuICAmLm5leHQge1xuICAgICY6bm90KC5kaXNhYmxlZCkge1xuICAgICAgY29sb3I6ICRkcC1jZWxsLXByZXZuZXh0LWNvbG9yO1xuICAgIH1cblxuICAgICYuc2VsZWN0ZWQge1xuICAgICAgY29sb3I6IGRhcmtlbigkZHAtY2VsbC1zZWxlY3RlZC1jb2xvciwgMTAlKTtcbiAgICB9XG4gIH1cblxuICAmLmhpZ2hsaWdodGVkOm5vdCguc2VsZWN0ZWQpOm5vdCgucmFuZ2UpOm5vdCgudG9kYXkpIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcC1jZWxsLWhpZ2hsaWdodGVkLWJhY2tncm91bmQtY29sb3I7XG5cbiAgICAmOm5vdCguZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZHAtY2VsbC1oaWdobGlnaHRlZC1iYWNrZ3JvdW5kLWNvbG9yLCAyLjUlKTtcbiAgICB9XG5cbiAgICAmLmZvY3VzZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRwLWNlbGwtZm9jdXMtYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAmLnRvZGF5IHtcbiAgICAmOm5vdCguc2VsZWN0ZWQpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkcC1jZWxsLXRvZGF5LWJhY2tncm91bmQtY29sb3I7XG5cbiAgICAgICY6bm90KC5kaXNhYmxlZCkge1xuICAgICAgICBjb2xvcjogJGRwLWNlbGwtdG9kYXktY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5mb2N1c2VkOm5vdCguc2VsZWN0ZWQpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZHAtY2VsbC10b2RheS1iYWNrZ3JvdW5kLWNvbG9yLCAyLjUlKTtcbiAgICB9XG4gIH1cblxuICAmJXJhbmdlLXN0YXJ0LWVuZC1jb21tb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcC1yYW5nZS1zdGFydC1lbmQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogJGRwLXJhbmdlLXN0YXJ0LWVuZC1jb2xvcjtcbiAgfVxuXG4gICYlcmFuZ2Utc3RhcnQtZW5kLWZvY3VzZWQtY29tbW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGRwLXJhbmdlLXN0YXJ0LWVuZC1iYWNrZ3JvdW5kLWNvbG9yLCAyLjUlKTtcbiAgfVxuXG4gICYucmFuZ2Utc3RhcnQge1xuICAgIGJvcmRlci1yYWRpdXM6ICRkcC1ib3JkZXItcmFkaXVzIDAgMCAkZHAtYm9yZGVyLXJhZGl1cztcblxuICAgICY6bm90KC5zZWxlY3RlZCkge1xuICAgICAgQGV4dGVuZCAlcmFuZ2Utc3RhcnQtZW5kLWNvbW1vbjtcbiAgICB9XG5cbiAgICAmLmZvY3VzZWQ6bm90KC5zZWxlY3RlZCkge1xuICAgICAgQGV4dGVuZCAlcmFuZ2Utc3RhcnQtZW5kLWZvY3VzZWQtY29tbW9uO1xuICAgIH1cbiAgfVxuXG4gICYucmFuZ2UtZW5kIHtcbiAgICBib3JkZXItcmFkaXVzOiAwICRkcC1ib3JkZXItcmFkaXVzICRkcC1ib3JkZXItcmFkaXVzIDA7XG5cbiAgICAmOm5vdCguc2VsZWN0ZWQpIHtcbiAgICAgIEBleHRlbmQgJXJhbmdlLXN0YXJ0LWVuZC1jb21tb247XG4gICAgfVxuXG4gICAgJi5mb2N1c2VkOm5vdCguc2VsZWN0ZWQpIHtcbiAgICAgIEBleHRlbmQgJXJhbmdlLXN0YXJ0LWVuZC1mb2N1c2VkLWNvbW1vbjtcbiAgICB9XG4gIH1cblxuICAmLnJhbmdlIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcC1yYW5nZS1iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgJjpub3QoLmRpc2FibGVkKTpub3QoLmZvY3VzZWQpOm5vdCgudG9kYXkpOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZHAtcmFuZ2UtYmFja2dyb3VuZC1jb2xvciwgMi41JSk7XG4gICAgfVxuXG4gICAgJi5kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogZGFya2VuKCRkcC1yYW5nZS1iYWNrZ3JvdW5kLWNvbG9yLCAxMCUpO1xuICAgIH1cblxuICAgICYuZm9jdXNlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGRwLXJhbmdlLWJhY2tncm91bmQtY29sb3IsIDUlKTtcbiAgICB9XG5cbiAgICBAaWYgJGRwLXJhbmdlLXRvZGF5LWJhY2tncm91bmQtY29sb3IgIT0gJGRwLWNlbGwtdG9kYXktYmFja2dyb3VuZC1jb2xvciB7XG4gICAgICAmLnRvZGF5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRwLXJhbmdlLXRvZGF5LWJhY2tncm91bmQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmRhdGVwaWNrZXItdmlldyAuZGF5cyAmIHtcbiAgICBAZXh0ZW5kICVmbGV4LWJhc2lzLWRheTtcbiAgfVxuXG4gIC5kYXRlcGlja2VyLXZpZXcuZGF0ZXBpY2tlci1ncmlkICYge1xuICAgIEBleHRlbmQgJWZsZXgtYmFzaXMtbW9udGgteWVhcjtcbiAgICBoZWlnaHQ6ICRkcC1jZWxsLXNpemUtYmFzZSAqIDI7XG4gICAgbGluZS1oZWlnaHQ6ICRkcC1jZWxsLXNpemUtYmFzZSAqIDI7XG4gIH1cbn1cblxuLmRhdGVwaWNrZXItaW5wdXQuaW4tZWRpdCB7XG4gIGJvcmRlci1jb2xvcjogJGRwLWlucHV0LWluLWVkaXQtYm9yZGVyLWNvbG9yO1xuXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiAkZHAtaW5wdXQtaW4tZWRpdC1mb2N1cy1ib3gtc2hhZG93LXNpemUgcmdiYSgkZHAtaW5wdXQtaW4tZWRpdC1ib3JkZXItY29sb3IsIDAuMik7XG4gIH1cbn1cbiIsIlxuQG1peGluIGRwLWhlYWRlci1idXR0b24tY29tbW9uIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbkBtaXhpbiBkcC1mb290ZXItYnV0dG9uLWNvbW1vbiB7XG4gIG1hcmdpbjogY2FsYygwLjM3NXJlbSAtIDFweCkgMC4zNzVyZW07XG4gIGJvcmRlci1yYWRpdXM6ICRkcC1ib3JkZXItcmFkaXVzLXNtYWxsO1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAkZHAtZm9udC1zaXplLXNtYWxsO1xufVxuIiwiJGRwLWJhY2tncm91bmQtY29sb3I6ICRib2R5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kZHAtYm9yZGVyLWNvbG9yOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcbiRkcC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiRkcC1ib3JkZXItcmFkaXVzLXNtYWxsOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiRkcC1saW5lLWhlaWdodC1iYXNlOiAkZ2xvYmFsLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG4kZHAtZm9udC1zaXplLW5vcm1hbDogMXJlbSAhZGVmYXVsdDtcbiRkcC1mb250LXNpemUtc21hbGw6IDAuNzVyZW0gIWRlZmF1bHQ7XG4kZHAtZm9udC13ZWlnaHQtc2VtaWJvbGQ6IHNlbWlib2xkICFkZWZhdWx0O1xuJGRwLWZvbnQtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG4kZHAtZHJvcGRvd24tb2Zmc2V0OiA0cHggIWRlZmF1bHQ7XG4kZHAtZHJvcGRvd24tc2hhZG93OiAwIDAgMCAxcHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuJGRwLWRyb3Bkb3duLXo6IDEwICFkZWZhdWx0O1xuXG4kZHAtdGl0bGUtYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbiRkcC1jZWxsLXNpemUtYmFzZTogMi4yNXJlbSAhZGVmYXVsdDtcbiRkcC1jZWxsLWZvY3VzLWJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkd2hpdGUsIDUlKSAhZGVmYXVsdDtcbiRkcC1jZWxsLXByZXZuZXh0LWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG4kZHAtY2VsbC1kaXNhYmxlZC1jb2xvcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG4kZHAtY2VsbC1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yOiBnZXQtY29sb3IoJ3ByaW1hcnknKSAhZGVmYXVsdDtcbiRkcC1jZWxsLXNlbGVjdGVkLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kZHAtY2VsbC1zZWxlY3RlZC1mb250LXdlaWdodDogJGRwLWZvbnQtd2VpZ2h0LXNlbWlib2xkICFkZWZhdWx0O1xuJGRwLWNlbGwtdG9kYXktYmFja2dyb3VuZC1jb2xvcjogc2NhbGUtY29sb3IoZ2V0LWNvbG9yKCdwcmltYXJ5JyksICRsaWdodG5lc3M6IDg1JSkgIWRlZmF1bHQ7XG4kZHAtY2VsbC10b2RheS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcbiRkcC1jZWxsLWhpZ2hsaWdodGVkLWJhY2tncm91bmQtY29sb3I6IHNjYWxlLWNvbG9yKCRtZWRpdW0tZ3JheSwgJGxpZ2h0bmVzczogODUlKSAhZGVmYXVsdDtcbiRkcC1yYW5nZS1zdGFydC1lbmQtYmFja2dyb3VuZC1jb2xvcjogZ2V0LWNvbG9yKCdzZWNvbmRhcnknKSAhZGVmYXVsdDtcbiRkcC1yYW5nZS1zdGFydC1lbmQtY29sb3I6ICRkcC1jZWxsLXNlbGVjdGVkLWNvbG9yICFkZWZhdWx0O1xuJGRwLXJhbmdlLWJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuJGRwLXJhbmdlLXRvZGF5LWJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZHAtY2VsbC10b2RheS1iYWNrZ3JvdW5kLWNvbG9yLCA4JSkgIWRlZmF1bHQ7XG4kZHAtd2Vlay1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuJGRwLWZvb3Rlci1iYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuJGRwLWlucHV0LWluLWVkaXQtYm9yZGVyLWNvbG9yOiBkYXJrZW4oJG1lZGl1bS1ncmF5LCAxNSUpICFkZWZhdWx0O1xuJGRwLWlucHV0LWluLWVkaXQtZm9jdXMtYm94LXNoYWRvdy1zaXplOiAwIDAgMC4yNWVtIDAuMjVlbSAhZGVmYXVsdDtcblxuQGltcG9ydCAnbWl4aW5zJztcblxuQG1peGluIGRwLWJ1dHRvbiB7XG4gIC5idXR0b24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHAtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZS1jb2xvcigkZHAtYmFja2dyb3VuZC1jb2xvciwgJGxpZ2h0bmVzczogLTE1JSk7XG5cbiAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgb3BhY2l0eTogMC4yNTsgIC8vICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHAtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRhdGVwaWNrZXItaGVhZGVyICYge1xuICAgICAgQGluY2x1ZGUgZHAtaGVhZGVyLWJ1dHRvbi1jb21tb247XG4gICAgfVxuXG4gICAgLmRhdGVwaWNrZXItZm9vdGVyICYge1xuICAgICAgQGluY2x1ZGUgZHAtZm9vdGVyLWJ1dHRvbi1jb21tb247XG4gICAgfVxuICB9XG59XG5cbkBpbXBvcnQgJ2RhdGVwaWNrZXInO1xuIiwiLy8gR2VuZXJpYyBzdHlsaW5nIGZvciBhbGwgYmxvY2tzXHJcbi5ibG9jayB7XHJcbiAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gKiA0O1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gKiA1O1xyXG4gIH1cclxuXHJcbiAgLy8gUmVtb3ZlIHRoZSB2aXN1YWwgZm9jdXMgYXJvdW5kIHRoZSBkaXYgd2hlbiBhIHNtb290aCBzY3JvbGwgYW5jaG9yIGlzIHVzZWQgdG8gbGluayB0byBpdC4gTm90IHRoZSBiZXN0IG9mIGFjY2Vzc2liaWxpdHkgcHJhY3RpY2VzIGJ1dCB0aGlzIHdvbnQgYWZmZWN0IHNjcmVlbiByZWFkZXJzLlxyXG4gICY6Zm9jdXMge1xyXG4gICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgfVxyXG5cclxuICAmLS1zbWFsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAqIDI7XHJcbiAgfVxyXG5cclxuICAmLm5vLW1hcmdpbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIH1cclxuXHJcbiAgLy8gVXNlZCBmb3IgcGFkZGluZyBvdXQgdGhlIGZ1bGwgd2lkdGggYmxvY2tzIHdpdGggYmFja2dyb3VuZCBjb2xvcnMuXHJcbiAgJi0tcGFkZGluZyB7XHJcbiAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgKiAzIDA7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogNSAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gVXNlZCBmb3IgcGFkZGluZyB0aGUgaGVybyB1bml0IGJsb2NrLlxyXG4gICYtLXBhZGRpbmctaGVybyB7XHJcbiAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgKiA2IDA7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogMTAgMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXBhZGRpbmctc21hbGwge1xyXG4gICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogMS41IDA7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogMi41IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBCYWNrZ3JvdW5kIGNvbG9yIG9wdGlvbnMuXHJcbiAgJi0tZGVmYXVsdCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iYWNrZ3JvdW5kO1xyXG4gIH1cclxuXHJcbiAgJi0td2hpdGUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJvZHktYmFja2dyb3VuZDtcclxuXHJcbiAgICBoMSxcclxuICAgIGgyLFxyXG4gICAgaDMsXHJcbiAgICBoNCxcclxuICAgIGg1LFxyXG4gICAgaDYsXHJcbiAgICBwLFxyXG4gICAgbGFiZWwsXHJcbiAgICBzcGFuIHtcclxuICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWdyYXkge1xyXG4gICAgQGV4dGVuZCAuYmxvY2stLWNvbG9yZWQtdGV4dDtcclxuXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtYmx1ZTtcclxuICB9XHJcblxyXG4gICYtLWJsdWUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcclxuICB9XHJcblxyXG4gICYtLWdyZWVuIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRtZWRpdW0tZ3JlZW47XHJcbiAgfVxyXG5cclxuICAvLyBDaGFuZ2UgdGhlIHRleHQgY29sb3Igd2hlbiBhIGJsb2NrIGJhY2tncm91bmQgY29sb3IgaGFzIGJlZW4gYXBwbGllZC4gVGhpcyBjbGFzcyBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5IHRvIGJhY2tncm91bmQgY29sb3IgYmxvY2tzLlxyXG4gICYtLWNvbG9yZWQtdGV4dCB7XHJcbiAgICBoMSxcclxuICAgIGgyLFxyXG4gICAgaDMsXHJcbiAgICBoNCxcclxuICAgIGg1LFxyXG4gICAgaDYsXHJcbiAgICBwLFxyXG4gICAgbGksXHJcbiAgICBsYWJlbCB7XHJcbiAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19oZWFkaW5nLXJvdyB7XHJcbiAgICBAZXh0ZW5kIC5ibG9jaztcclxuICB9XHJcblxyXG4gIC8vIEhlYWRpbmcgc3R5bGVzIG9uIGFsbCBibG9ja3MgdGhhdCBoYXZlIHRoaXMgZmllbGQuXHJcbiAgJl9faGVhZGluZyB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG5cclxuICAgICYtLWNlbnRlciB7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAmLS1zbWFsbCB7XHJcbiAgICAgIEBleHRlbmQgaDM7XHJcbiAgICB9XHJcblxyXG4gICAgJi0tdW5kZXJsaW5lIHtcclxuICAgICAgQGV4dGVuZCAuaGVhZGluZy11bmRlcmxpbmUgIW9wdGlvbmFsO1xyXG4gICAgfVxyXG5cclxuICAgICYtLXVuZGVybGluZS1jZW50ZXIge1xyXG4gICAgICBAZXh0ZW5kIC5oZWFkaW5nLXVuZGVybGluZS0tY2VudGVyICFvcHRpb25hbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3N1YmhlYWRpbmcge1xyXG4gICAgbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAwIDA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAmX19oZWFkaW5nLXd5c3l3aWcge1xyXG4gICAgJiA+ICo6bGFzdC1jaGlsZCB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubW9uLXJvdyB7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbiAgbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xyXG4gIHBhZGRpbmc6IDAgJGdsb2JhbC1wYWRkaW5nO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcbiIsIi8vIEFkZCBwYWdlIHJlbmRlcmluZyBwZXJmb3JtYW5jZSB0byBhbGwgZWxlbWVudHMgd2l0aCB0aGUgYmxvY2sgY2xhc3MuIGh0dHBzOi8vd2ViLmRldi9jb250ZW50LXZpc2liaWxpdHkvI3NraXBwaW5nLXJlbmRlcmluZy13b3JrLXdpdGgtY29udGVudC12aXNpYmlsaXR5XHJcbmZvb3RlciB7XHJcbiAgY29udGVudC12aXNpYmlsaXR5OiBhdXRvO1xyXG59XHJcbiIsIi5tb24tYWNjb3JkaW9uIHtcclxuXHJcbiAgLmFjY29yZGlvbiB7XHJcblxyXG4gICAgLy8gY2VudGVyIHRoZSBidXR0b24gYW5kIGFkZCBtYXJnaW4gdG9wIGFzIHdlIGNhbnQga25vdyBpZiB0aGlzIHdpbGwgYmUgdXNlZC5cclxuICAgICZfX3ZpZXctYWxsIHtcclxuICAgICAgbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW4gKiAzO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIERlZmluZXMgdGhlIGRlZmF1bHQgMiBjb2x1bW4gZ3JpZC5cclxuLmNvbHVtbnNfX2dyaWQge1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XHJcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgIGdyaWQtZ2FwOiAkZGVmYXVsdC1ncmlkLWdhcDtcclxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHJcbiAgICAuY29sdW1uc19fY29udGVudCB7XHJcbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xyXG4gICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiA2O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmbGV4LWdyb3c6IDA7XHJcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgICBmbGV4LWJhc2lzOiBjYWxjKDUwJSAtICN7JGRlZmF1bHQtZ3JpZC1nYXB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAvLyBEZWZpbmVzIHRoZSAzIGNvbHVtbiBncmlkLlxyXG4gICYtLTMge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuXHJcbiAgICAgIC5jb2x1bW5zX19jb250ZW50IHtcclxuICAgICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcclxuICAgICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiA0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZmxleC1ncm93OiAwO1xyXG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMzMuMzMlIC0gI3skZGVmYXVsdC1ncmlkLWdhcH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gRGVmaW5lcyB0aGUgNCBjb2x1bW4gZ3JpZC5cclxuICAmLS00IHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcblxyXG4gICAgICAuY29sdW1uc19fY29udGVudCB7XHJcbiAgICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XHJcbiAgICAgICAgICBncmlkLWNvbHVtbjogYXV0byAvIHNwYW4gMztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZsZXgtZ3JvdzogMDtcclxuICAgICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDI1JSAtICN7JGRlZmF1bHQtZ3JpZC1nYXB9KTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIERlZmluZXMgdGhlIDEgdGhpcmQgLSAyIHRoaXJkcyBjb2x1bW4gZ3JpZC5cclxuICAmLS0xLTMge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuXHJcbiAgICAgIC5jb2x1bW5zX19jb250ZW50IHtcclxuICAgICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcclxuICAgICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiA0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZmxleC1ncm93OiAwO1xyXG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMzMuMzMlIC0gI3skZGVmYXVsdC1ncmlkLWdhcH0pO1xyXG5cclxuICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XHJcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiA4O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGZsZXgtZ3JvdzogMDtcclxuICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgICAgICAgZmxleC1iYXNpczogY2FsYyg2NiUgLSAjeyRkZWZhdWx0LWdyaWQtZ2FwfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIERlZmluZXMgdGhlIDIgdGhpcmQgLSAxIHRoaXJkcyBjb2x1bW4gZ3JpZC5cclxuICAmLS0zLTEge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuXHJcbiAgICAgIC5jb2x1bW5zX19jb250ZW50IHtcclxuICAgICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcclxuICAgICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiA4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZmxleC1ncm93OiAwO1xyXG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoNjYlIC0gI3skZGVmYXVsdC1ncmlkLWdhcH0pO1xyXG5cclxuICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XHJcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiA0O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGZsZXgtZ3JvdzogMDtcclxuICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgICAgICAgZmxleC1iYXNpczogY2FsYygzMy4zMyUgLSAjeyRkZWZhdWx0LWdyaWQtZ2FwfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLmNvbnRlbnQtaW1hZ2Uge1xyXG5cclxuICAvLyBGaXggZm9yIHRoZSBtYXJnaW4tYm90dG9tIG9wdGlvbiB0aGF0IG5lZWRzIHRvIGJlIGFwcGxpZWQgaW4gdGhlIGJsb2NrIHNldHRpbmdzLiBXZSBuZWVkIGEgbWFyZ2luIG9uIG1vYmlsZSBvbmx5XHJcbiAgJiArIC5jb250ZW50LWltYWdlIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xyXG4gICAgICBtYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbiAqIDM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19ncmlkIHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgIEBzdXBwb3J0cyhkaXNwbGF5OiBncmlkKSB7XHJcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xyXG4gICAgICBncmlkLXJvdy1nYXA6ICRkZWZhdWx0LWdyaWQtZ2FwIC8gMjtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBAc3VwcG9ydHMoZGlzcGxheTogZ3JpZCkge1xyXG4gICAgICAgIGdyaWQtZ2FwOiAkZGVmYXVsdC1ncmlkLWdhcCAqIDI7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoIDEyLCAxZnIgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fY29udGVudCB7XHJcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBmbGV4OiAwIDAgMTAwJTtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBmbGV4LWJhc2lzOiBjYWxjKDUwJSAtICN7JGdsb2JhbC1tYXJnaW4gKiAzfSk7XHJcbiAgICAgIG1heC13aWR0aDogY2FsYyg1MCUgLSAjeyRnbG9iYWwtbWFyZ2luICogM30pO1xyXG4gICAgfVxyXG5cclxuICAgIEBzdXBwb3J0cyhkaXNwbGF5OiBncmlkKSB7XHJcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAmID4gKjpsYXN0LWNoaWxkIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuXHJcbiAgICAgICYgKjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgJl9fY29udGFpbmVyIHtcclxuICAgIGZsZXg6IDAgMCAxMDAlO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZy10b3A6IDUwJTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgIGZsZXgtYmFzaXM6IGNhbGMoNTAlIC0gI3skZ2xvYmFsLW1hcmdpbiAqIDN9KTtcclxuICAgICAgbWF4LXdpZHRoOiBjYWxjKDUwJSAtICN7JGdsb2JhbC1tYXJnaW4gKiAzfSk7XHJcbiAgICB9XHJcblxyXG4gICAgQHN1cHBvcnRzKGRpc3BsYXk6IGdyaWQpIHtcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICBwYWRkaW5nLXRvcDogKCAxIC8gMSApICogMTAwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFdyYXBwZXIgd2hlbiBmaWd1cmUgaXMgdXNlZC5cclxuICAmX19maWd1cmUge1xyXG4gICAgZmxleDogMCAwIDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBmbGV4LWJhc2lzOiBjYWxjKDUwJSAtICN7JGdsb2JhbC1tYXJnaW4gKiAzfSk7XHJcbiAgICAgIG1heC13aWR0aDogY2FsYyg1MCUgLSAjeyRnbG9iYWwtbWFyZ2luICogM30pO1xyXG4gICAgfVxyXG5cclxuICAgIEBzdXBwb3J0cyhkaXNwbGF5OiBncmlkKSB7XHJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAuY29udGVudC1pbWFnZV9faW1hZ2Uge1xyXG4gICAgICBwb3NpdGlvbjogaW5pdGlhbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2ltYWdlIHtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgJi0tbGVmdCB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICAuY29udGVudC1pbWFnZV9fY29udGFpbmVyLFxyXG4gICAgICAuY29udGVudC1pbWFnZV9fZmlndXJlIHtcclxuICAgICAgICBncmlkLWNvbHVtbjogMSAvIDc7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5jb250ZW50LWltYWdlX19jb250ZW50IHtcclxuICAgICAgICBncmlkLWNvbHVtbjogNyAvIC0xO1xyXG4gICAgICAgIGdyaWQtcm93OiAxIC8gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tcmlnaHQge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgLmNvbnRlbnQtaW1hZ2VfX2NvbnRlbnQge1xyXG4gICAgICAgIGdyaWQtY29sdW1uOiAxIC8gNztcclxuICAgICAgICBvcmRlcjogMVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuY29udGVudC1pbWFnZV9fY29udGFpbmVyLFxyXG4gICAgICAuY29udGVudC1pbWFnZV9fZmlndXJlIHtcclxuICAgICAgICBncmlkLWNvbHVtbjogNyAvIC0xO1xyXG4gICAgICAgIGdyaWQtcm93OiAxIC8gMTtcclxuICAgICAgICBvcmRlcjogMjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gRnVsbCBibGVlZCBpbWFnZXMgb3B0aW9ucy5cclxuICAmLS1mdWxsLWJsZWVkIHtcclxuXHJcbiAgICAuY29udGVudC1pbWFnZV9fY29udGVudCB7XHJcbiAgICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcclxuXHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgICAgcGFkZGluZzogKCRnbG9iYWwtcGFkZGluZyAqIDQpICRnbG9iYWwtcGFkZGluZztcclxuICAgICAgfVxyXG5cclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcclxuICAgICAgICBwYWRkaW5nOiAoJGdsb2JhbC1wYWRkaW5nICogNikgJGdsb2JhbC1wYWRkaW5nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbnRlbnQtaW1hZ2VfX2NvbnRhaW5lciB7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgLy8gVGhpcyBudW1iZXIgbmVlZCB0d2Vha2luZyBkZXBlbmRpbmcgb24gdGhlIGRlc2lnbi4gQnV0IHRoaXMgc3RvcHMgdGhlIGltYWdlIGNvbnN0YW50bHkgc3RyZXRjaGluZy4gQ2hhbmdlIGl0IGluIHNldHRpbmdzLnNjc3NcclxuICAgICAgbWF4LXdpZHRoOiAkZ2xvYmFsLW1heC1ibGVlZC1zaXplO1xyXG4gICAgICBwYWRkaW5nLXRvcDogMTAwJTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY29udGVudC1pbWFnZS0tbGVmdCB7XHJcblxyXG4gICAgICAuY29udGVudC1pbWFnZV9fY29udGFpbmVyIHtcclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UpIHtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmNvbnRlbnQtaW1hZ2VfX2NvbnRlbnQge1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogJGdsb2JhbC1wYWRkaW5nICogMy44NzU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xyXG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCgxMDAlIC0gKCN7JGdsb2JhbC13aWR0aCAvIDJ9IC0gKCN7JGdsb2JhbC1wYWRkaW5nfSkpKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbnRlbnQtaW1hZ2UtLXJpZ2h0IHtcclxuXHJcbiAgICAgIC5jb250ZW50LWltYWdlX19jb250YWluZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xyXG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmNvbnRlbnQtaW1hZ2VfX2NvbnRlbnQge1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRnbG9iYWwtcGFkZGluZyAqIDMuODc1O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKCAoIDEwMCUgLSAoICN7JGdsb2JhbC13aWR0aCAvIDJ9IC0gKCAjeyRnbG9iYWwtcGFkZGluZ30gKSApICkgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLmN0YSB7XHJcbiAgJl9fZ3JpZCB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAmX19idXR0b25zIHtcclxuICAgIC8vIFJlbW92ZSB0aGUgbWFyZ2luIGZyb20gdGhlIGJ1dHRvbnMuXHJcbiAgICAuYnV0dG9uIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uLS1jdGEtLXR3byB7XHJcbiAgICAgIG1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luO1xyXG5cclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkZ2xvYmFsLW1hcmdpbiAvIDI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWdsb2JhbCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ibHVlO1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuXHJcbiAgICAmICo6bm90KC5idXR0b24pIHtcclxuICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxuXHJcbiAgICAuY3RhX19jb250ZW50IHtcclxuICAgICAgQGluY2x1ZGUgbW9uLWNvbHMoNyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi5oZXJvIHtcclxuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBtYXgtaGVpZ2h0OiA3MDBweDtcclxuICBwYWRkaW5nOiAyNSUgMDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gIEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLWdhcDogJGdsb2JhbC1wYWRkaW5nO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XHJcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCggJGdsb2JhbC1wYWRkaW5nICogMiwgJGdsb2JhbC1wYWRkaW5nICogNCApIG1pbi1jb250ZW50IG1pbm1heCggJGdsb2JhbC1wYWRkaW5nICogMiwgJGdsb2JhbC1wYWRkaW5nICogNCApO1xyXG4gICAgbWF4LWhlaWdodDogaW5oZXJpdDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG5cclxuICAvLyBNYWtlIHRoZSBpbWFnZSB0YWtlIHVwIHRoZSBlbnRpcmUgb3V0ZXIgZ3JpZCBsaWtlIGEgYmFja2dyb3VuZCBpbWFnZS5cclxuICAmX19pbWFnZSxcclxuICBwaWN0dXJlIHtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB6LWluZGV4OiAwO1xyXG5cclxuICAgIEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcclxuICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcclxuICAgICAgZ3JpZC1yb3c6IDEgLyAtMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIERlZmluZXMgdGhlIGNvbnRlbnQgZ3JpZC5cclxuICAmX19jb250ZW50IHtcclxuICAgIEBleHRlbmQgLm1vbi1yb3c7XHJcblxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB6LWluZGV4OiAyO1xyXG5cclxuICAgIEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcclxuICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcclxuICAgICAgZ3JpZC1yb3c6IDIgLyAzO1xyXG4gICAgICB6LWluZGV4OiAyO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgIEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcclxuICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpO1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDIsIGF1dG8pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuZW50cnktdGl0bGUsXHJcbiAgLmhlcm9fX3RpdGxlIHtcclxuICAgIHdpZHRoOiA2NiU7XHJcbiAgICBsaW5lLWhlaWdodDogMS4xO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuXHJcbiAgICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gNztcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19leGNlcnB0IHtcclxuICAgIG1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luO1xyXG4gICAgd2lkdGg6IDY2JTtcclxuXHJcbiAgICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gNztcclxuICAgICAgZ3JpZC1yb3c6IDIgLyAzO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAvLyByZW1vdmUgdGhlIG1hcmdpbiBmcm9tIHRoZSBsYXN0IGVsZW1lbnRcclxuICAgICYgPiAqOmxhc3QtY2hpbGQge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tcGFkZGluZy1sYXJnZSB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCBtZWRpdW0gKSB7XHJcbiAgICAgIEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCggJGdsb2JhbC1wYWRkaW5nICogMiwgJGdsb2JhbC1wYWRkaW5nICogMTAgKSBtaW4tY29udGVudCBtaW5tYXgoICRnbG9iYWwtcGFkZGluZyAqIDIsICRnbG9iYWwtcGFkZGluZyAqIDEwICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCBsYXJnZSApIHtcclxuICAgICAgQHN1cHBvcnRzKCBkaXNwbGF5OiBncmlkICkge1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KCAkZ2xvYmFsLXBhZGRpbmcgKiAyLCAkZ2xvYmFsLXBhZGRpbmcgKiAxNSApIG1pbi1jb250ZW50IG1pbm1heCggJGdsb2JhbC1wYWRkaW5nICogMiwgJGdsb2JhbC1wYWRkaW5nICogMTUgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gICYtLXN0YWNrLW9uLW1vYmlsZSB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcclxuICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiA1MHZ3IG1pbi1jb250ZW50O1xyXG5cclxuICAgICAgLmhlcm9fX2ltYWdlLFxyXG4gICAgICBwaWN0dXJlIHtcclxuICAgICAgICBncmlkLXJvdzogMSAvIHNwYW4gMTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmhlcm9fX2NvbnRlbnQge1xyXG4gICAgICAgIGdyaWQtcm93OiAyIC8gc3BhbiAxO1xyXG4gICAgICB9XHJcbiAgICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gSGVybyB1bml0IGxlZnQgdmFyaWFudCBhbGlnbm1lbnQgcnVsZXMuXHJcbi5oZXJvLS1sZWZ0IHtcclxuXHJcbiAgLmVudHJ5LXRpdGxlLFxyXG4gIC5oZXJvX190aXRsZSB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyA3O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuaGVyb19fZXhjZXJwdCB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyA3O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxufVxyXG5cclxuLy8gSGVybyB1bml0IHJpZ2h0IHZhcmlhbnQgYWxpZ25tZW50IHJ1bGVzLlxyXG4uaGVyby0tcmlnaHQge1xyXG5cclxuICAuaGVyb19fY29udGVudCB7XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAgfVxyXG5cclxuICAuZW50cnktdGl0bGUsXHJcbiAgLmhlcm9fX3RpdGxlIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgIEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcclxuICAgICAgICBncmlkLWNvbHVtbjogNyAvIC0xO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuaGVyb19fZXhjZXJwdCB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDcgLyAtMTtcclxuICAgICAgICBncmlkLXJvdzogMiAvIDM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIEhlcm8gdW5pdCBjZW50ZXIgdmFyaWFudCBhbGlnbm1lbnQgcnVsZXMuXHJcbi5oZXJvLS1jZW50ZXIge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgLmhlcm9fX2NvbnRlbnQge1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC5lbnRyeS10aXRsZSxcclxuICAuaGVyb19fdGl0bGUge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgQHN1cHBvcnRzKCBkaXNwbGF5OiBncmlkICkge1xyXG4gICAgICAgIGdyaWQtY29sdW1uOiA0IC8gc3BhbiA2O1xyXG4gICAgICAgIGdyaWQtcm93OiAxIC8gMjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmhlcm9fX2V4Y2VycHQge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgQHN1cHBvcnRzKCBkaXNwbGF5OiBncmlkICkge1xyXG4gICAgICAgIGdyaWQtY29sdW1uOiA0IC8gc3BhbiA2O1xyXG4gICAgICAgIGdyaWQtcm93OiAyIC8gMztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIuaGVyby1mZWF0dXJlZCB7XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgbWF4LWhlaWdodDogNzAwcHg7XHJcbiAgcGFkZGluZzogMjUlIDA7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC1nYXA6ICRnbG9iYWwtcGFkZGluZztcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtaW5tYXgoICRnbG9iYWwtcGFkZGluZyAqIDIsICRnbG9iYWwtcGFkZGluZyAqIDQgKSBtaW4tY29udGVudCBtaW5tYXgoICRnbG9iYWwtcGFkZGluZyAqIDIsICRnbG9iYWwtcGFkZGluZyAqIDQgKTtcclxuICAgIG1heC1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbiAgLy8gTWFrZSB0aGUgaW1hZ2UgdGFrZSB1cCB0aGUgZW50aXJlIG91dGVyIGdyaWQgbGlrZSBhIGJhY2tncm91bmQgaW1hZ2UuXHJcbiAgJl9faW1hZ2UsXHJcbiAgcGljdHVyZSB7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgei1pbmRleDogMDtcclxuXHJcbiAgICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XHJcbiAgICAgIGdyaWQtcm93OiAxIC8gLTE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBEZWZpbmVzIHRoZSBjb250ZW50IGdyaWQuXHJcbiAgJl9fY29udGVudCB7XHJcbiAgICBAZXh0ZW5kIC5tb24tcm93O1xyXG5cclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMjtcclxuXHJcbiAgICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XHJcbiAgICAgIGdyaWQtcm93OiAyIC8gMztcclxuICAgICAgei1pbmRleDogMjtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgMWZyKTtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCgyLCBhdXRvKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmVudHJ5LXRpdGxlLFxyXG4gIC5oZXJvLWZlYXR1cmVkX190aXRsZSB7XHJcbiAgICB3aWR0aDogNjYlO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcblxyXG4gICAgQHN1cHBvcnRzKCBkaXNwbGF5OiBncmlkICkge1xyXG4gICAgICBncmlkLWNvbHVtbjogMSAvIDc7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fZXhjZXJwdCB7XHJcbiAgICBtYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbjtcclxuICAgIHdpZHRoOiA2NiU7XHJcblxyXG4gICAgQHN1cHBvcnRzKCBkaXNwbGF5OiBncmlkICkge1xyXG4gICAgICBncmlkLWNvbHVtbjogMSAvIDc7XHJcbiAgICAgIGdyaWQtcm93OiAyIC8gMztcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gcmVtb3ZlIHRoZSBtYXJnaW4gZnJvbSB0aGUgbGFzdCBlbGVtZW50XHJcbiAgICAmID4gKjpsYXN0LWNoaWxkIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXBhZGRpbmctbGFyZ2Uge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCggbWVkaXVtICkge1xyXG4gICAgICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtaW5tYXgoICRnbG9iYWwtcGFkZGluZyAqIDIsICRnbG9iYWwtcGFkZGluZyAqIDEwICkgbWluLWNvbnRlbnQgbWlubWF4KCAkZ2xvYmFsLXBhZGRpbmcgKiAyLCAkZ2xvYmFsLXBhZGRpbmcgKiAxMCApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCggbGFyZ2UgKSB7XHJcbiAgICAgIEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCggJGdsb2JhbC1wYWRkaW5nICogMiwgJGdsb2JhbC1wYWRkaW5nICogMTUgKSBtaW4tY29udGVudCBtaW5tYXgoICRnbG9iYWwtcGFkZGluZyAqIDIsICRnbG9iYWwtcGFkZGluZyAqIDE1ICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAmLS1zdGFjay1vbi1tb2JpbGUge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XHJcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogNTB2dyBtaW4tY29udGVudDtcclxuXHJcbiAgICAgIC5oZXJvLWZlYXR1cmVkX19pbWFnZSxcclxuICAgICAgcGljdHVyZSB7XHJcbiAgICAgICAgZ3JpZC1yb3c6IDEgLyBzcGFuIDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5oZXJvLWZlYXR1cmVkX19jb250ZW50IHtcclxuICAgICAgICBncmlkLXJvdzogMiAvIHNwYW4gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gSGVybyB1bml0IGxlZnQgdmFyaWFudCBhbGlnbm1lbnQgcnVsZXMuXHJcbi5oZXJvLWZlYXR1cmVkLS1sZWZ0IHtcclxuXHJcbiAgLmVudHJ5LXRpdGxlLFxyXG4gIC5oZXJvLWZlYXR1cmVkX190aXRsZSB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyA3O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuaGVyby1mZWF0dXJlZF9fZXhjZXJwdCB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyA3O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxufVxyXG5cclxuLy8gSGVybyB1bml0IHJpZ2h0IHZhcmlhbnQgYWxpZ25tZW50IHJ1bGVzLlxyXG4uaGVyby1mZWF0dXJlZC0tcmlnaHQge1xyXG5cclxuICAuaGVyby1mZWF0dXJlZF9fY29udGVudCB7XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAgfVxyXG5cclxuICAuZW50cnktdGl0bGUsXHJcbiAgLmhlcm8tZmVhdHVyZWRfX3RpdGxlIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgIEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcclxuICAgICAgICBncmlkLWNvbHVtbjogNyAvIC0xO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuaGVyby1mZWF0dXJlZF9fZXhjZXJwdCB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDcgLyAtMTtcclxuICAgICAgICBncmlkLXJvdzogMiAvIDM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIEhlcm8gdW5pdCBjZW50ZXIgdmFyaWFudCBhbGlnbm1lbnQgcnVsZXMuXHJcbi5oZXJvLWZlYXR1cmVkLS1jZW50ZXIge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgLmhlcm8tZmVhdHVyZWRfX2NvbnRlbnQge1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC5lbnRyeS10aXRsZSxcclxuICAuaGVyby1mZWF0dXJlZF9fdGl0bGUge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgQHN1cHBvcnRzKCBkaXNwbGF5OiBncmlkICkge1xyXG4gICAgICAgIGdyaWQtY29sdW1uOiA0IC8gc3BhbiA2O1xyXG4gICAgICAgIGdyaWQtcm93OiAxIC8gMjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmhlcm8tZmVhdHVyZWRfX2V4Y2VycHQge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgQHN1cHBvcnRzKCBkaXNwbGF5OiBncmlkICkge1xyXG4gICAgICAgIGdyaWQtY29sdW1uOiA0IC8gc3BhbiA2O1xyXG4gICAgICAgIGdyaWQtcm93OiAyIC8gMztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIuaGVyby0tdmlkZW8ge1xyXG5cclxuICAmLmhlcm8tLWNvbG9yZWQtdGV4dCB7XHJcbiAgICAuaGVyb19fY29udGVudCB7XHJcbiAgICAgICYgKjpub3QoLmJ1dHRvbikge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuaGVyby0tc3RhY2stb24tbW9iaWxlIHtcclxuICAgIC5oZXJvX19jb250ZW50IHtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCggc21hbGwgb25seSApIHtcclxuICAgICAgICAmICo6bm90KC5idXR0b24pIHtcclxuICAgICAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiLnJlcGVhdGVyLWljb24ge1xyXG5cclxuICAvLy0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIERlZmF1bHQgY2FyZCBzdHlsZXMuXHJcbiAgLy8tLS0tLS0tLS0tLS0tLS1cclxuICAmX19pdGVtIHtcclxuICAgIG1hcmdpbi1ib3R0b206ICRkZWZhdWx0LWdyaWQtZ2FwO1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICBtYXJnaW46IDAgKCRkZWZhdWx0LWdyaWQtZ2FwIC8gMikgJGRlZmF1bHQtZ3JpZC1nYXA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIC8vIE9ubHkgd2F5IHRvIG92ZXJyaWRlIHRoZSBmbGV4IG1heC13aWR0aCBydWxlcy5cclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpudGgtY2hpbGQobis0KSB7XHJcbiAgICAgICAgZmxleC1ncm93OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgJl9faXRlbS1oZWFkaW5nIHtcclxuICAgIEBleHRlbmQgaDMgIW9wdGlvbmFsO1xyXG5cclxuICAgIG1hcmdpbjogJGdsb2JhbC1tYXJnaW4gMDtcclxuICAgIHRyYW5zaXRpb246IC4yNXMgbGluZWFyIGFsbDtcclxuICB9XHJcblxyXG4gICZfX2ltYWdlIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcblxyXG4gICZfX3RleHQge1xyXG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgLy8tLS0tLS0tLS0tLS0tLS1cclxuICAvLyBTdHlsZSBvcHRpb25zLlxyXG4gIC8vLS0tLS0tLS0tLS0tLS0tXHJcbiAgJl9fZ3JpZCB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcclxuICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgIGdyaWQtZ2FwOiAkZGVmYXVsdC1ncmlkLWdhcDtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgMWZyKTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgbWFyZ2luOiAwIC0gJGdsb2JhbC1tYXJnaW4gLyAyO1xyXG4gICAgfVxyXG5cclxuICAgICYtLWNlbnRlciB7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgJi0tbGVmdCB7XHJcbiAgICAgIC5yZXBlYXRlci1pY29uX19pdGVtLFxyXG4gICAgICAucmVwZWF0ZXItaWNvbl9faW1hZ2UsXHJcbiAgICAgIC5yZXBlYXRlci1pY29uX19pdGVtLWhlYWRpbmcsXHJcbiAgICAgIC5yZXBlYXRlci1pY29uX190ZXh0IHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi0tY2FyZCB7XHJcbiAgICAgIC5yZXBlYXRlci1pY29uX19pdGVtIHtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XHJcbiAgICAgICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogMjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnJlcGVhdGVyLWljb25fX2ltYWdlLFxyXG4gICAgICAucmVwZWF0ZXItaWNvbl9faXRlbS1oZWFkaW5nLFxyXG4gICAgICAucmVwZWF0ZXItaWNvbl9fdGV4dCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnJlcGVhdGVyLWljb25fX2hlYWRpbmcge1xyXG4gICAgICAgIGFsaWduLXNlbGY6IHN0YXJ0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8tLS0tLS0tLS0tLS0tLS1cclxuICAgIC8vIExheW91dCBvcHRpb25zLlxyXG4gICAgLy8tLS0tLS0tLS0tLS0tLS1cclxuICAgICYtLTIge1xyXG5cclxuICAgICAgLnJlcGVhdGVyLWljb25fX2l0ZW0ge1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcclxuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IGF1dG8gLyBzcGFuIDY7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgZmxleC1iYXNpczogY2FsYyg1MCUgLSAjeyRkZWZhdWx0LWdyaWQtZ2FwfSk7XHJcbiAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoNTAlIC0gI3skZGVmYXVsdC1ncmlkLWdhcH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtLTMge1xyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICAgIC5yZXBlYXRlci1pY29uX19pdGVtIHtcclxuICAgICAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xyXG4gICAgICAgICAgICBncmlkLWNvbHVtbjogYXV0byAvIHNwYW4gNDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDMzLjMzJSAtICN7JGRlZmF1bHQtZ3JpZC1nYXB9KTtcclxuICAgICAgICAgIG1heC13aWR0aDogY2FsYygzMy4zMyUgLSAjeyRkZWZhdWx0LWdyaWQtZ2FwfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi0tNCB7XHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgICAgLnJlcGVhdGVyLWljb25fX2l0ZW0ge1xyXG4gICAgICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XHJcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiAzO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMjUlIC0gI3skZGVmYXVsdC1ncmlkLWdhcH0pO1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDI1JSAtICN7JGRlZmF1bHQtZ3JpZC1nYXB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLS0tLS0tLS0tLS0tLS0tXHJcbi8vIEhvdmVyIHN0YXRlcyBmb3IgY2FyZHMgaWYgYSBsaW5rIGhhcyBiZWVuIGVuYWJsZWQuXHJcbi8vLS0tLS0tLS0tLS0tLS0tXHJcbmEucmVwZWF0ZXItaWNvbl9faXRlbSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgdHJhbnNpdGlvbjogLjI1cyBsaW5lYXIgYWxsO1xyXG5cclxuICAucmVwZWF0ZXItaWNvbl9fdGV4dCB7XHJcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuICB9XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuXHJcbiAgICAucmVwZWF0ZXItaWNvbl9faXRlbS1oZWFkaW5nIHtcclxuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIuc3RhbmRhcmQtaW1hZ2Uge1xyXG5cclxuICAvLyBEZWZhdWx0IHNldHRpbmcgd2l0aCBubyB3aWR0aHMgc2V0IGlzIHRoZSBzYW1lIGFzIHRoZSBmdWxsIHNldHRpbmcuXHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gIG1heC13aWR0aDogJGdsb2JhbC13aWR0aDtcclxuICBwYWRkaW5nOiAwICRnbG9iYWwtcGFkZGluZztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gIEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLWdhcDogJGRlZmF1bHQtZ3JpZC1nYXA7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heCggYXV0bywgY2FsYygxMiAvIDEyICogMTAwJSkgKSBhdXRvO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW1nLFxyXG4gIGZpZ3VyZSxcclxuICBwaWN0dXJlIHtcclxuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgQHN1cHBvcnRzKCBkaXNwbGF5OiBncmlkICkge1xyXG4gICAgICBncmlkLWNvbHVtbjogMiAvIHNwYW4gMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWNlbnRlciB7XHJcbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcclxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heCggYXV0bywgY2FsYygxMCAvIDEyICogMTAwJSkgKSBhdXRvO1xyXG5cclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gbWlubWF4KCBhdXRvLCBjYWxjKDggLyAxMiAqIDEwMCUpICkgYXV0bztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIEZhZmZlcnkgZm9yIGZsZXggZmFsbGJhY2suXHJcbiAgICBpbWcsXHJcbiAgICBmaWd1cmUsXHJcbiAgICBwaWN0dXJlIHtcclxuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICAgIHdpZHRoOiA4MCU7XHJcblxyXG4gICAgICAvLyBIYXZlIHRvIG92ZXJyaWRlIGFnYWluIGZvciBncmlkLiBESUUgSUUgMTEhXHJcbiAgICAgIEBzdXBwb3J0cyAoIGRpc3BsYXk6IGdyaWQgKSB7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDE7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXdpZGUge1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMDtcclxuXHJcbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcclxuICAgICAgZ3JpZC1nYXA6IDA7XHJcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xyXG4gICAgfVxyXG5cclxuICAgIGltZyxcclxuICAgIGZpZ3VyZSxcclxuICAgIHBpY3R1cmUsIHtcclxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFN0b3AgdGhlIGltYWdlIHRha2luZyB1cCB0aGUgZW50aXJlIHZpZXdwb3J0LlxyXG4gICAgICBtYXgtaGVpZ2h0OiA3MDBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEFkZCBkZWZhdWx0IFdQIGZpZ2NhcHRpb24gc3R5bGVzLlxyXG4gIGZpZ2NhcHRpb24ge1xyXG4gICAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgICBjb2xvcjogIzk5OTtcclxuICAgIHBhZGRpbmc6IDAuMjVyZW0gMDtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgfVxyXG5cclxufVxyXG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gRGVmYXVsdCByZXBlYXRlciBsb2dvLlxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLnJlcGVhdGVyLWxvZ28ge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgLy8gUGFyZW50IGZsZXggY29udGFpbmVyLlxyXG4gICZfX2l0ZW1zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IC0gJGdsb2JhbC1tYXJnaW4gKiAyO1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19pdGVtIHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleDogMCAxIGNhbGMoIDUwJSAtICN7JGdsb2JhbC1tYXJnaW59KTtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMCAkZ2xvYmFsLW1hcmdpbiAvIDIgJGdsb2JhbC1tYXJnaW4gKiAyO1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgIGZsZXg6IDAgMCAyMCU7XHJcbiAgICAgIG1heC13aWR0aDogMjAlO1xyXG4gICAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBDZW50ZXIgdGhlIGxpbmsgYXQgdGhlIGJvdHRvbSBpZiBpdCdzIGFkZGVkLlxyXG4gICZfX2xpbmsge1xyXG4gICAgQGV4dGVuZCAuYnV0dG9uO1xyXG4gICAgQGV4dGVuZCAuYnV0dG9uLS1wcmltYXJ5O1xyXG4gIH1cclxufVxyXG4iLCIvLyBEZWZpbmVzIHRoZSBncmlkIHdoZW4gdGhlIHZlcnRpY2FsIHJhZGlvIGJ1dHRvbiBpcyBzZWxlY3RlZFxyXG4ucHJpY2luZy10YWJsZV9fZ3JpZCB7XHJcblxyXG5cdC8vIDEgdG8gMiBjb2x1bW4gbGF5b3V0IG9uIG1lZGl1bS5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtd3JhcDogd3JhcDtcclxuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHR9XHJcblxyXG5cdCYtLWhvcml6b250YWwge1xyXG5cclxuXHRcdEBleHRlbmQgLnByaWNpbmctdGFibGVfX2dyaWQ7XHJcblxyXG5cdFx0Ly8gMSB0byAyIGNvbHVtbiBsYXlvdXQgb24gbWVkaXVtLlxyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuXHRcdFx0LnByaWNpbmctdGFibGVfX3RhYmxlIHtcclxuXHRcdFx0XHRmbGV4LWJhc2lzOiBjYWxjKCA1MCUgLSAjeyRnbG9iYWwtbWFyZ2lufSApO1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICogMjtcclxuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoIDUwJSAtICN7JGdsb2JhbC1tYXJnaW59ICk7XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCxcclxuICAgICAgICAmOm50aC1sYXN0LWNoaWxkKDIpIHtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgfVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gMS8yLzMvNCBjb2x1bW4gbGF5b3V0IG9uIGxhcmdlLlxyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG5cdFx0XHQucHJpY2luZy10YWJsZV9fdGFibGUge1xyXG5cdFx0XHRcdGZsZXgtYmFzaXM6IGNhbGMoIDI1JSAtICN7JGdsb2JhbC1tYXJnaW59ICk7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdFx0XHRtYXgtd2lkdGg6IGNhbGMoIDI1JSAtICN7JGdsb2JhbC1tYXJnaW59ICk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5wcmljaW5nLXRhYmxlIHtcclxuXHJcbiAgJl9faGVhZGluZyB7XHJcbiAgICBAZXh0ZW5kIC5ibG9jay0tc21hbGwgIW9wdGlvbmFsO1xyXG4gIH1cclxuXHJcblx0Jl9fdGFibGUge1xyXG5cdFx0YWxpZ24tY29udGVudDogY2VudGVyO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAqIDI7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcclxuXHJcbiAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcblx0XHRcdGZsZXgtYmFzaXM6IGNhbGMoIDUwJSAtICN7JGdsb2JhbC1tYXJnaW59ICk7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICogMjtcclxuICAgICAgbWF4LXdpZHRoOiBjYWxjKCA1MCUgLSAjeyRnbG9iYWwtbWFyZ2lufSApO1xyXG5cclxuICAgICAgJjpudGgtbGFzdC1jaGlsZCgyKSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgfVxyXG5cdFx0fVxyXG5cclxuXHR9XHJcblxyXG5cdCZfX2J1dHRvbiB7XHJcblx0XHRhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1ncm93OiAxO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuXHRcdC5idXR0b24ge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Jl9faGlnaGxpZ2h0IHtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHR9XHJcblxyXG5cdCZfX2xpbmsge1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0fVxyXG59XHJcblxyXG4vLyBTdHlsZXMgZm9yIGV2ZXJ5IG90aGVyIHRhYmxlLlxyXG4ucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikge1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG5cdGNvbG9yOiAkd2hpdGU7XHJcblxyXG5cdC5oNCxcclxuXHQucHJpY2luZy10YWJsZV9faGlnaGxpZ2h0IHtcclxuXHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0fVxyXG5cclxuXHQucHJpY2luZy10YWJsZV9fYnV0dG9uIC5idXR0b24ge1xyXG5cdFx0QGV4dGVuZCAuYnV0dG9uLS1wcmltYXJ5O1xyXG5cdH1cclxufVxyXG4iLCIvLyBTaWducG9zdCBzdHlsZXMuIE9wdGlvbnMgZm9yIHNpbmdsZSwgMiBjb2x1bW4gYW5kIDMgY29sdW1uIHNpZ25wb3N0IGJsb2NrLlxyXG5cclxuLnNpZ25wb3N0IHtcclxuXHJcblx0Jl9faGVhZGluZyB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAqIDI7XHJcblx0fVxyXG5cclxuXHQmX19ncmlkIHtcclxuICAgIEBleHRlbmQgLm1vbi1ncmlkO1xyXG5cclxuXHRcdCYtLWNvbC0yIHtcclxuICAgICAgQGV4dGVuZCAubW9uLWdyaWQtLTIgIW9wdGlvbmFsO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuXHJcblx0XHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCYtLWNvbC0zIHtcclxuICAgICAgQGV4dGVuZCAubW9uLWdyaWQtLTMgIW9wdGlvbmFsO1xyXG5cclxuICAgICAgZ3JpZC1nYXA6ICRnbG9iYWwtbWFyZ2luO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuXHRcdFx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQuc2lnbnBvc3RfX3RpdGxlIHtcclxuXHRcdFx0XHRAZXh0ZW5kIGg0ICFvcHRpb25hbDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG4gIH1cclxuXHJcbiAgJl9faXRlbSB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcbiAgICBib3gtc2hhZG93OiAkZ2xvYmFsLWJveC1zaGFkb3c7XHJcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcGFkZGluZzogJGNhbGxvdXQtcGFkZGluZyAkY2FsbG91dC1wYWRkaW5nICogNCAkY2FsbG91dC1wYWRkaW5nICRjYWxsb3V0LXBhZGRpbmc7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZS1vdXQgLjJzO1xyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICBjb250ZW50OiB1cmwoLi4vaW1hZ2VzL2ljb25zL2NoZXZyb24tcmlnaHQuc3ZnKTtcclxuICAgICAgbWFyZ2luLXRvcDogLThweDtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICByaWdodDogMnJlbTtcclxuICAgICAgdG9wOiA1MCU7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS40KTtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xyXG5cclxuICAgICAgLnNpZ25wb3N0X190aXRsZSB7XHJcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuc2lnbnBvc3RfX3RleHQge1xyXG4gICAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX190aXRsZSB7XHJcbiAgICBAZXh0ZW5kIGgzICFvcHRpb25hbDtcclxuXHJcbiAgICB0cmFuc2l0aW9uOiBjb2xvciBlYXNlLW91dCAuMnM7XHJcbiAgfVxyXG5cclxuICAmX190ZXh0IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG5cclxufVxyXG4iLCIvLyBTdGF0aXN0aWNzIGJsb2NrLlxyXG4uc3RhdHMge1xyXG4gIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAqIDMgMDtcclxuXHJcbiAgLy8gRmxleCB0aGUgd3JhcHBlci5cclxuICAmX193cmFwcGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgJl9faXRlbSB7XHJcbiAgICBmbGV4OiAxIDAgYXV0bztcclxuICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBmbGV4OiAxIDAgNTAlO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgZmxleDogMSAwIDI1JTtcclxuICAgIH1cclxuXHJcbiAgICAmLS1oZWFkaW5nIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcbiAgICAmLS1jb250ZW50IHtcclxuICAgICAgQGV4dGVuZCBoMjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBPZmZzZXRzIGR1ZSB0byBleHRyYSBzcGFjZSBjcmVhdGVkIGJ5IG1hcmt1cC5cclxuICAgICYtcHJlZml4IHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4O1xyXG4gICAgfVxyXG4gICAgJi1zeW1ib2wge1xyXG4gICAgICBtYXJnaW4tbGVmdDogLThweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLnRlc3RpbW9uaWFsIHtcclxuXHJcbiAgJl9fZ3JpZCB7XHJcbiAgICBAaW5jbHVkZSBtb24tY29scyg4KTtcclxuICB9XHJcblxyXG4gICZfX2NhcmQge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgJl9faWNvbiB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2ljb25zL3F1b3RlLW1hcmsuc3ZnKTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGhlaWdodDogMzBweDtcclxuICAgIG1hcmdpbjogMCBhdXRvICRnbG9iYWwtbWFyZ2luICogMS41O1xyXG4gICAgd2lkdGg6IDMwcHg7XHJcbiAgfVxyXG59XHJcbiIsIi52aWRlbyB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAvLyBGYWxsYmFjayBpbWFnZS5cclxuXHQmX19pbWFnZSB7XHJcblx0XHRvYmplY3QtZml0OiBjb3ZlcjtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XHJcblx0XHRcdG1heC1oZWlnaHQ6IDcwMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcbiAgLy8gQ29udGFpbnMgdGhlIGVtYmVkIGZpbGVzXHJcblx0Jl9fdmlkZW8ge1xyXG5cdFx0b2JqZWN0LWZpdDogY292ZXI7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG5cdFx0XHRsZWZ0OiAwO1xyXG5cdFx0XHRyaWdodDogMDtcclxuXHRcdH1cclxuXHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xyXG5cdFx0XHRtYXgtaGVpZ2h0OiA3MDBweDtcclxuXHRcdH1cclxuXHJcbiAgICAvLyBVc2UgdGhlIHJlc3BvbnNpdmUgdmlkZW8gbWl4aW4uXHJcbiAgICAmLS1yZXNwb25zaXZlIHtcclxuICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1lbWJlZCh3aWRlc2NyZWVuKTtcclxuICAgIH1cclxuXHJcblx0fVxyXG5cclxufVxyXG4iLCIvLyBEZWZhdWx0IFdZU1dZRyBnb2VzIDggY29sdW1ucyB0aGUgc2FtZSBhcyBtZWRpdW0gc28gdGhleSBjYW4gY2hhbmdlIHRoaXMgb3B0aW9uIGlmIG5lZWRlZC5cclxuLnd5c2l3eWdfX2NvbnRlbnQge1xyXG5cclxuICAvLyBTZXQgZGVmYXVsdCBzaXplIHRvIHNtYWxsLlxyXG4gIEBpbmNsdWRlIG1vbi1jb2xzKDgpO1xyXG5cclxuXHJcblx0Ji0td2lkZSB7XHJcblx0XHRAaW5jbHVkZSBtb24tY29scygxMCk7XHJcblx0fVxyXG5cclxuXHQmLS1mdWxsIHtcclxuXHRcdEBpbmNsdWRlIG1vbi1jb2xzKDEyKTtcclxuXHR9XHJcblxyXG4gICYgPiAqOmxhc3QtY2hpbGQge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuXHJcbiAgICAmICo6bGFzdC1jaGlsZCB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHQvLyBGaXggZmlndXJlIHdpZHRocyBpbiB3eXNpd3lnLlxyXG5cdGZpZ3VyZSB7XHJcblx0XHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG5cdH1cclxufVxyXG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gVGhlIGNvcmUgZW1iZWQgZGVmYXVsdCBzdHlsZXMgdGhhdCBhcmUgYXBwbGllZCB0byBhbGwgZW1iZWQgYmxvY2tzLlxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuJHZpZGVvX2NvbnRhaW5lcl9jb2x1bW5zOiAxMDtcclxuXHJcbi8vIE1ha2UgdGhlIHBhcmVudCBlbWJlZCB3cmFwcGVyIHVzZSB0aGUgcm93IGNsYXNzLlxyXG4ud3AtYmxvY2stZW1iZWQge1xyXG4gIEBleHRlbmQgLm1vbi1yb3c7XHJcbn1cclxuXHJcbi8vIERlZmF1bHQgbXA0IHZpZGVvIGJsb2NrLlxyXG4ud3AtYmxvY2stdmlkZW8ge1xyXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gIG1hcmdpbi1yaWdodDogYXV0bztcclxuICBtYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGg7XHJcbiAgcGFkZGluZzogMCAkZ2xvYmFsLXBhZGRpbmc7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIEBleHRlbmQgLmJsb2NrO1xyXG5cclxuICB2aWRlbyB7XHJcbiAgICBAaW5jbHVkZSBtb24tY29scygkdmlkZW9fY29udGFpbmVyX2NvbHVtbnMpO1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBFeHRlbmQgdGhlIGZvdW5kYXRpb24gcmVzcG9uc2l2ZSB2aWRlbyBjbGFzc2VzLCB0aGVzZSB3aWxsIGFwcGx5IHRvIGFueSB2aWRlbyBlbWJlZC5cclxuLmlzLXR5cGUtdmlkZW8gLndwLWJsb2NrLWVtYmVkX193cmFwcGVyIHtcclxuXHJcbiAgQGV4dGVuZCAucmVzcG9uc2l2ZS1lbWJlZCAhb3B0aW9uYWw7XHJcbiAgQGV4dGVuZCAud2lkZXNjcmVlbiAhb3B0aW9uYWw7XHJcblxyXG4gIC8vIExhenkgbG9hZCBwbHVnaW4gZml4IGZvciBZb3VUdWJlLlxyXG4gIC5jb250YWluZXItbGF6eWxvYWQge1xyXG4gICAgQGV4dGVuZCAucmVzcG9uc2l2ZS1lbWJlZCAhb3B0aW9uYWw7XHJcbiAgICBAZXh0ZW5kIC53aWRlc2NyZWVuICFvcHRpb25hbDtcclxuICB9XHJcblxyXG59XHJcblxyXG4vLyBBZGQgdGhlIGJsb2NrIG1hcmdpbiB0byB2aWRlbyBlbWJlZGQgYmxvY2tzLlxyXG4ud3AtYmxvY2stdmlkZW8sXHJcbi53cC1ibG9jay1lbWJlZC53cC1ibG9jay1lbWJlZC12aW1lbyxcclxuLndwLWJsb2NrLWVtYmVkLndwLWJsb2NrLWVtYmVkLXlvdXR1YmUge1xyXG4gIEBleHRlbmQgLmJsb2NrO1xyXG5cclxuICAvLyBBbGxvd3MgdmlkZW9zIHRvIGJlIHJlc3RyaWN0ZWQgdG8gYSBjb2x1bW4gd2lkdGguXHJcbiAgLndwLWJsb2NrLWVtYmVkX193cmFwcGVyIHtcclxuICAgIEBpbmNsdWRlIG1vbi1jb2xzKCR2aWRlb19jb250YWluZXJfY29sdW1ucyk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBpZnJhbWUgYmxvY2suXHJcbi5tb24taWZyYW1lIGlmcmFtZSB7XHJcbiAgaGVpZ2h0OiAzNTBweDtcclxuICB3aWR0aDogMTAwJTtcclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgIGhlaWdodDogNDAwcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XHJcbiAgICBoZWlnaHQ6IDU1MHB4O1xyXG4gIH1cclxufVxyXG4iLCIkcHJpY2UtYnViYmxlLWRpbWVuc2lvbjogcmVtLWNhbGMoNTUpO1xyXG5cclxuLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdCB7XHJcbiAgJl9fbGluayB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgLnByaWNlIHtcclxuICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XHJcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuXHJcbiAgICAgIGRlbCB7XHJcbiAgICAgICAgY29sb3I6ICRhbGVydC1jb2xvcjtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRnbG9iYWwtbWFyZ2luIC8gMjtcclxuICAgICAgfVxyXG5cclxuICAgICAgaW5zIHtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3RpdGxlIHtcclxuICAgIGNvbG9yOiAkZGFyay1ibHVlO1xyXG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XHJcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIyKTtcclxuICAgIG1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luICogMjtcclxuICB9XHJcbn1cclxuIiwiLndvb2NvbW1lcmNlLWFyY2hpdmUtd3JhcCB7XHJcblxyXG4gICZfX2ZpbHRlcmluZyB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCBtZWRpdW0pIHtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxufSIsIi5oZWFkZXItYmFza2V0LWxpbmsge1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XHJcbn1cclxuIiwiLndvb2NvbW1lcmNlLXNoaXBwaW5nLW1ldGhvZHMge1xyXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB1bCxcclxudWwud29vY29tbWVyY2UtU2F2ZWRQYXltZW50TWV0aG9kcyB7XHJcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gIG1hcmdpbi1sZWZ0OiAwO1xyXG59XHJcbiIsIi8vID09PT09PT09PT09PT1cclxuLy8gV29vIG1lc3NhZ2VzXHJcbi8vID09PT09PT09PT09PT1cclxuXHJcbkBtaXhpbiB3b29tZXNzYWdlKCkge1xyXG5cdGJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG5cdGJvcmRlci10b3A6IDNweCBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcclxuXHRtYXJnaW46ICRnbG9iYWwtbWFyZ2luIGF1dG87XHJcblx0cGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLndvb2NvbW1lcmNlLW5vdGljZXMtd3JhcHBlciB7XHJcbiAgQGV4dGVuZCAubW9uLXJvdztcclxufVxyXG5cclxuLndvb2NvbW1lcmNlLWluZm8ge1xyXG4gIEBpbmNsdWRlIHdvb21lc3NhZ2UoKTtcclxuXHJcbiAgLy8gc3BlY2lhbCBzdHlsaW5nIGZvciB0aGUgZW1weSBjYXJ0IG1lc3NhZ2VcclxuICAmLmNhcnQtZW1wdHkge1xyXG4gICAgZmxleDogMSAwIDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG4ud29vY29tbWVyY2UtbWVzc2FnZSB7XHJcblx0QGluY2x1ZGUgd29vbWVzc2FnZSgpO1xyXG5cclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0ZmxleC1mbG93OiBjb2x1bW4tcmV2ZXJzZTtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCggbWVkaXVtICkge1xyXG4gICAgZmxleC1mbG93OiByb3ctcmV2ZXJzZTtcclxuICB9XHJcblxyXG5cdC5idXR0b24ge1xyXG5cdFx0bWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAwIDA7XHJcblxyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbWVkaXVtICkge1xyXG5cdFx0XHRtYXJnaW46IDAgMCAwICRnbG9iYWwtbWFyZ2luO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcbn1cclxuXHJcbi53b29jb21tZXJjZS1lcnJvciB7XHJcblx0QGluY2x1ZGUgd29vbWVzc2FnZSgpO1xyXG5cclxuXHRib3JkZXItdG9wLWNvbG9yOiAkYWxlcnQtY29sb3I7XHJcblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG59XHJcbiIsInVsLnBhZ2UtbnVtYmVycyB7XHJcbiAgQGV4dGVuZCAucGFnaW5hdGlvbjtcclxuXHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59IiwidWwucHJvZHVjdHMge1xyXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICBtYXJnaW46ICRnbG9iYWwtbWFyZ2luIDAgMDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuXHJcbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC1nYXA6ICRnbG9iYWwtbWFyZ2luO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxODhweCwgMWZyKSk7XHJcbiAgfVxyXG5cclxuICAucHJvZHVjdCB7XHJcbiAgICBmbGV4OiAxIDAgYXV0bztcclxuICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgIGZsZXg6IDAgMCAzMSU7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxJTtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAxJTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBmbGV4OiAwIDAgMjMlO1xyXG4gICAgfVxyXG5cclxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIub25zYWxlIHtcclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG5cdGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcblx0Y29sb3I6ICR3aGl0ZTtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGhlaWdodDogJHByaWNlLWJ1YmJsZS1kaW1lbnNpb247XHJcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0cmlnaHQ6ICRnbG9iYWwtbWFyZ2luIC8gMjtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiAkZ2xvYmFsLW1hcmdpbiAvIDI7XHJcbiAgd2lkdGg6ICRwcmljZS1idWJibGUtZGltZW5zaW9uO1xyXG4gIHotaW5kZXg6IDE7XHJcbn0iLCJ0YWJsZS5jYXJ0IHtcclxuXHJcblxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoIHNtYWxsIG9ubHkgKSB7XHJcblx0XHRAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcblxyXG5cdFx0XHR0aGVhZCB7XHJcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcdFxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0Ym9keSB7XHJcblxyXG5cdFx0XHRcdHRyIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6IGdyaWQ7XHJcblx0XHRcdFx0XHRncmlkLWdhcDogJGdsb2JhbC1wYWRkaW5nO1xyXG5cdFx0XHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMmZyO1xyXG5cdFx0XHRcdFx0Z3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoNiwgYXV0byk7IFxyXG5cdFx0XHRcdFx0cGFkZGluZzogJGdsb2JhbC1wYWRkaW5nIC8gMjtcdFxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XHJcblx0XHRcdFx0XHRcdGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRkIHtcclxuXHRcdFx0XHRwYWRkaW5nOiAwO1xyXG5cclxuXHRcdFx0XHQmLnByb2R1Y3QtcmVtb3ZlIHtcclxuXHRcdFx0XHRcdGdyaWQtY29sdW1uOiAyO1xyXG5cdFx0XHRcdFx0Z3JpZC1yb3c6IC0xO1xyXG5cclxuXHRcdFx0XHRcdGEucmVtb3ZlIHtcclxuXHRcdFx0XHRcdFx0Ly8gQGV4dGVuZCAuYnV0dG9uO1xyXG5cdFx0XHRcdFx0XHQvLyBAZXh0ZW5kIC5idXR0b24uYWxlcnQ7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjogMDtcclxuXHJcblxyXG5cdFx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdFx0Y29udGVudDogXCJSZW1vdmUgaXRlbVwiO1xyXG5cdFx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogNXB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fS8vJi5wcm9kdWN0LXJlbW92ZVx0XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ji5wcm9kdWN0LW5hbWUge1xyXG5cdFx0XHRcdFx0YWxpZ24tc2VsZjogY2VudGVyO1xyXG5cclxuXHRcdFx0XHRcdGRsLnZhcmlhdGlvbiB7XHJcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblxyXG5cdFx0XHRcdFx0XHRkZCB7XHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDVweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0vLyYucHJvZHVjdC1uYW1lXHRcdFxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCYucHJvZHVjdC1wcmljZSxcclxuXHRcdFx0XHQmLnByb2R1Y3QtcXVhbnRpdHksXHJcblx0XHRcdFx0Ji5wcm9kdWN0LXN1YnRvdGFsIHtcclxuXHRcdFx0XHRcdGdyaWQtY29sdW1uOiAyO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ji5wcm9kdWN0LXByaWNlIHtcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0Y29udGVudDogXCJQcmljZVwiO1xyXG5cdFx0XHRcdFx0XHRmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiA1cHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVx0XHRcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmLnByb2R1Y3QtcXVhbnRpdHkge1xyXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRjb250ZW50OiBcIlF1YW50aXR5XCI7XHJcblx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDVweDtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQucXVhbnRpdHkge1xyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0aW5wdXQge1xyXG5cdFx0XHRcdFx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cdFxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCYucHJvZHVjdC1zdWJ0b3RhbCB7XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwiVG90YWxcIjtcclxuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogNXB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHJcblx0XHRcdH0vL3RkXHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xyXG5cclxuXHRcdC5idXR0b24ge1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdH1cdFx0XHJcblxyXG5cclxuXHRcdFxyXG5cclxuXHJcblxyXG5cclxuXHR9Ly9AaW5jbHVkZSBicmVha3BvaW50KHNtYWxsKVxyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KCBtZWRpdW0gKSB7XHJcblxyXG5cdFx0dGQucHJvZHVjdC1yZW1vdmUge1xyXG5cclxuXHRcdFx0YS5yZW1vdmUge1xyXG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMTAwJTtcclxuXHRcdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdFx0Zm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcblx0XHRcdFx0aGVpZ2h0OiAkZ2xvYmFsLW1hcmdpbiAqIDEuNTtcclxuXHRcdFx0XHRsaW5lLWhlaWdodDogMDtcclxuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdFx0XHR3aWR0aDogJGdsb2JhbC1tYXJnaW4gKiAxLjU7XHJcblxyXG5cdFx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC5wcm9kdWN0LXRodW1ibmFpbCB7XHJcblx0XHRcdFx0bWF4LXdpZHRoOiByZW0tY2FsYyg3NSk7XHRcclxuXHRcdH1cclxuXHJcblx0XHQucHJvZHVjdC1uYW1lIHtcclxuXHRcdFx0ZGwge1xyXG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHJcblx0XHRcdFx0cCB7XHJcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0ZHQge1xyXG5cdFx0XHRcdG1hcmdpbjogMCAkZ2xvYmFsLW1hcmdpbiAvIDIgMCAwO1xyXG5cdFx0XHR9XHJcblx0XHR9Ly8ucHJvZHVjdC1uYW1lXHJcblxyXG5cdFx0LnByb2R1Y3QtcXVhbnRpdHkge1xyXG5cdFx0XHRpbnB1dCB7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdFx0fVxyXG5cdFx0fS8vLnByb2R1Y3QtcXVhbnRpdHlcclxuXHJcblxyXG5cclxuXHR9Ly9AaW5jbHVkZSBicmVha3BvaW50KCBtZWRpdW0gKVxyXG5cclxuXHJcblx0Ly8gU3R5bGUgdGhlIGNvdXBvbiBhbmQgY2FydCB0b3RhbHMgdGRcclxuXHQuYWN0aW9ucyB7XHJcblx0XHRncmlkLWNvbHVtbjogMSAvIC0xO1x0XHRcclxuXHJcblx0XHQuY291cG9uIHtcclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbWVkaXVtICkge1xyXG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7IC8vb2xkIHNrb29sIVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRsYWJlbCB7XHJcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aW5wdXQsXHJcblx0XHRcdC5idXR0b24ge1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpbnB1dCB7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbWVkaXVtICkge1xyXG5cdFx0XHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHRcdH1cdFx0XHRcdFxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQuYnV0dG9uIHtcclxuXHRcdFx0XHRtYXJnaW46IDA7XHJcblxyXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIG1lZGl1bSApIHtcclxuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAkZ2xvYmFsLW1hcmdpbiAvIDI7XHJcblx0XHRcdFx0XHRtaW4td2lkdGg6ICRnbG9iYWwtbWFyZ2luICogMTA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0fS8vLmNvdXBvblxyXG5cclxuXHRcdC5idXR0b24ge1xyXG5cdFx0XHRtYXJnaW46ICRnbG9iYWwtbWFyZ2luIDAgMDtcclxuXHJcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIG1lZGl1bSApIHtcclxuXHRcdFx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVx0XHJcblx0XHJcbn0vL3RhYmxlLmNhcnRcclxuXHJcblxyXG4vL0B0b2RvIHRpZHkgdXAgYW5kIHNldCBvbmx5IGZvciBzbWFsbCBzY3JlZW5zIHkwICIsInRhYmxlLnZhcmlhdGlvbnMge1xyXG5cclxuXHR0aGVhZCxcclxuXHR0Ym9keSxcclxuICB0Zm9vdCxcclxuICB0ciB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRcdGJvcmRlcjogMDtcclxuICB9XHJcblxyXG4gIHRyIHtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICB9XHJcblxyXG5cdHRkLmxhYmVsIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cdFx0Zm9udC1zaXplOiAxcmVtO1xyXG4gICAgbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW47XHJcbiAgICBtaW4td2lkdGg6ICRnbG9iYWwtbWFyZ2luICogMztcclxuXHRcdHBhZGRpbmc6IDA7XHJcbiAgfVxyXG5cclxuICB0ZC52YWx1ZSB7XHJcbiAgICBzZWxlY3Qge1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHR0Ym9keSB0ciB7XHJcblx0XHRib3JkZXI6IDA7XHJcblx0fVxyXG5cclxufVxyXG4iLCIud29vY29tbWVyY2UtYXJjaGl2ZS13cmFwIHtcclxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgIGdyaWQtZ2FwOiAkZ2xvYmFsLW1hcmdpbiAqIDI7XHJcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDNmcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2NvbnRlbnQge1xyXG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcclxuICAgIG9yZGVyOiAyO1xyXG4gIH1cclxuXHJcbiAgLy8gYWRkIHRoZSBibG9jayBtYXJnaW4gdG8gdGhlIHByb2R1Y3QgbG9vcCBvbiB0aGUgYXJjaGl2ZSB2aWV3c1xyXG4gIHVsLnByb2R1Y3RzIHtcclxuICAgIEBleHRlbmQgLmJsb2NrO1xyXG4gIH1cclxufVxyXG4iLCIud29vY29tbWVyY2UtY2FydCB7XHJcbiAgbWFpbiB7XHJcbiAgICBAZXh0ZW5kIC5ibG9jaztcclxuICB9XHJcblxyXG4gIC53b29jb21tZXJjZSB7XHJcbiAgICBAZXh0ZW5kIC5tb24tcm93O1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICB9XHJcblxyXG4gICAgLndvb2NvbW1lcmNlLW5vdGljZXMtd3JhcHBlciB7XHJcbiAgICAgIC8vIFJlbW92ZSBhbGwgbm90aWNlcyBvbiB3b29jb21tZXJjZSBjYXJ0IHBhZ2VcclxuICAgICAgLndvb2NvbW1lcmNlLW1lc3NhZ2Uge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAud29vY29tbWVyY2UtY2FydC1mb3JtIHtcclxuICAgICAgbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW47XHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgICBmbGV4OiAwIDAgY2FsYyg2NiUgLSAjeyRnbG9iYWwtbWFyZ2lufSk7XHJcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDY2JSAtICN7JGdsb2JhbC1tYXJnaW59KTtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNhcnQtY29sbGF0ZXJhbHMge1xyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XHJcbiAgICAgICAgZmxleDogMCAwIGNhbGMoMzMlIC0gI3skZ2xvYmFsLW1hcmdpbn0pO1xyXG4gICAgICAgIG1heC13aWR0aDogY2FsYygzMyUgLSAjeyRnbG9iYWwtbWFyZ2lufSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IC8vLndvb2NvbW1lcmNlXHJcbn0gLy8ud29vY29tbWVyY2UtY2FydFxyXG5cclxuLmN1c3RvbS1jYXJ0IHtcclxuICAmX19yb3cge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIHBhZGRpbmctYm90dG9tOiAkZ2xvYmFsLXBhZGRpbmc7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAkZ2xvYmFsLXBhZGRpbmcgKiAxLjc1O1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAqIDEuNzU7XHJcbiAgICB9XHJcblxyXG4gICAgJjpsYXN0LW9mLXR5cGUge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAwO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgIH1cclxuICB9IC8vX19yb3dcclxuXHJcbiAgJl9faXRlbSB7XHJcbiAgICAmLnByb2R1Y3QtbmFtZSxcclxuICAgICYucHJvZHVjdC1wcmljZSB7XHJcbiAgICAgIGEsXHJcbiAgICAgIHNwYW4ge1xyXG4gICAgICAgIGNvbG9yOiAkYmxhY2s7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW1lZGl1bTtcclxuICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLnByb2R1Y3QtbmFtZSB7XHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkZ2xvYmFsLXBhZGRpbmcgKiA4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnByb2R1Y3QtdmFyaWF0aW9uLW5hbWUge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgICAgIG1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luIC8gMjtcclxuICAgIH1cclxuXHJcbiAgICBkbC52YXJpYXRpb24ge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICAgZHQge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogJGdsb2JhbC1tYXJnaW4gLyAyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5wcm9kdWN0LXByaWNlIHtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhLnJlbW92ZSB7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDAgMCAxMiAxNik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IC8vX19pdGVtXHJcblxyXG4gICZfX2ltYWdlLWNvbnRhaW5lciB7XHJcbiAgICBmbGV4OiAwIDAgMjMlO1xyXG4gICAgbWF4LXdpZHRoOiAyMyU7XHJcbiAgfSAvL19faW1hZ2UtY29udGFpbmVyXHJcblxyXG4gICZfX2NvbnRlbnQtY29udGFpbmVyIHtcclxuICAgIGZsZXg6IDAgMCBjYWxjKDc3JSAtICN7JGdsb2JhbC1tYXJnaW59KTtcclxuICAgIG1heC13aWR0aDogY2FsYyg3NyUgLSAjeyRnbG9iYWwtbWFyZ2lufSk7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIH1cclxuICB9IC8vX19jb250ZW50LWNvbnRhaW5lclxyXG5cclxuICAmX19wcm9kdWN0LXByaWNlLXF1YW50aXR5IHtcclxuICAgIGZsZXg6IDEgMCBhdXRvO1xyXG4gICAgbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW47XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAgIH1cclxuXHJcbiAgICAucXVhbnRpdHlfX2Jsb2NrIHtcclxuICAgICAgbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY291cG9uLXRvZ2dsZSB7XHJcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZmxleDogMSAwIDEwMCU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAvIDI7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgIH1cclxuICB9XHJcbn0gLy8uY3VzdG9tLWNhcnRcclxuXHJcbi5jYXJ0LWNvbGxhdGVyYWxzIHtcclxuICBtYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbjtcclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLmNhcnRfdG90YWxzIHtcclxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcclxuICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAqIDI7XHJcblxyXG4gICAgLy8gQWRkIHN0aWNreSBmb3IgSUUxMStcclxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xyXG4gICAgICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgICB0b3A6IDEwMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgPiBoMiB7XHJcbiAgICBmb250LXNpemU6ICRnbG9iYWwtbWFyZ2luO1xyXG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRhYmxlIHtcclxuICAgIHRib2R5IHtcclxuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XHJcbiAgICAgIGJvcmRlci1yaWdodDogMDtcclxuICAgICAgYm9yZGVyLWxlZnQ6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgdHIge1xyXG4gICAgICAmOm50aC1jaGlsZCgybikge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuICAgICAgfVxyXG4gICAgICB0aCB7XHJcbiAgICAgICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nIC8gMiAwO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgIH1cclxuICAgICAgdGQge1xyXG4gICAgICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAvIDIgMDtcclxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgfVxyXG4gICAgfSAvL3RyXHJcbiAgfSAvL3RhYmxlXHJcbn0gLy8uY2FydF90b3RhbHNcclxuXHJcbi5jaGVja291dC1idXR0b24uYnV0dG9uIHtcclxuICBwYWRkaW5nLXJpZ2h0OiAxZW07XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gICY6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4uY2FydC1jb2xsYXRlcmFscy0tdG9wIHtcclxuICAuY2FydF90b3RhbHMge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogJGdsb2JhbC1wYWRkaW5nO1xyXG4gICAgdGFibGUgdGJvZHkge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNhcnRfdG90YWxzID4gaDIsXHJcbiAgLmNhcnQtc3VidG90YWwsXHJcbiAgLmRlbGl2ZXJ5LW1lc3NhZ2UsXHJcbiAgLmNhcnQtcGF5bWVudC1sb2dvcyB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLmxpbmstLWNvbnRpbnVlLXNob3BwaW5nIHtcclxuICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcclxuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gIH1cclxufVxyXG5cclxuLmNhcnQtcGF5bWVudC1sb2dvcyB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4ud2MtcHJvY2VlZC10by1jaGVja291dC0tdG9wIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xyXG4gIG1hcmdpbi1sZWZ0OiAtJGdsb2JhbC1tYXJnaW47XHJcbiAgbWFyZ2luLXJpZ2h0OiAtJGdsb2JhbC1tYXJnaW47XHJcbiAgbWFyZ2luLXRvcDogLSRnbG9iYWwtbWFyZ2luO1xyXG4gIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcclxuICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gIHRvcDogMDtcclxuICB6LWluZGV4OiAxO1xyXG4gIC5idXR0b24ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcbn1cclxuXHJcbi5jb3Vwb24tYmxvY2sge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICBmbGV4OiAwIDAgNTAlO1xyXG4gICAgbWFyZ2luLWxlZnQ6ICRnbG9iYWwtbWFyZ2luO1xyXG4gIH1cclxufVxyXG4iLCIud29vY29tbWVyY2UtY2hlY2tvdXQge1xyXG4gIG1haW4ge1xyXG4gICAgQGV4dGVuZCAuYmxvY2s7XHJcbiAgfVxyXG5cclxuICAud29vY29tbWVyY2Uge1xyXG4gICAgQGV4dGVuZCAubW9uLXJvdztcclxuXHJcbiAgICAmID4gKiB7XHJcbiAgICAgIEBpbmNsdWRlIG1vbi1jb2xzKDYpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQsXHJcbi53b29jb21tZXJjZS1vcmRlciB7XHJcbiAgQGV4dGVuZCAuYmxvY2s7XHJcblxyXG4gIGgyIHtcclxuICAgIEBleHRlbmQgaDQ7XHJcbiAgfVxyXG5cclxuICA+IHVsIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBUaGUgdGhhbmsgeW91IGNoZWNrb3V0IHBhZ2VcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4ud29vY29tbWVyY2Utb3JkZXItZGV0YWlscyB7XHJcbiAgbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAqIDIgMDtcclxufVxyXG4iLCIud29vY29tbWVyY2UtYWNjb3VudCB7XHJcbiAgbWFpbiB7XHJcbiAgICBAZXh0ZW5kIC5ibG9jaztcclxuICB9XHJcblxyXG4gIC53b29jb21tZXJjZSB7XHJcbiAgICBAZXh0ZW5kIC5tb24tcm93O1xyXG5cclxuICAgIG1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luICogMjtcclxuXHJcbiAgICAjY3VzdG9tZXJfbG9naW4ge1xyXG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICAgIGdyaWQtZ2FwOiAkZ2xvYmFsLW1hcmdpbiAqIDQ7XHJcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBBZGp1c3QgdGhlIGdyaWQgZm9yIGEgbG9nZ2VkIGluIHVzZXJcclxuICAmLmxvZ2dlZC1pbiB7XHJcbiAgICAud29vY29tbWVyY2Uge1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG5cclxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgICAgICBncmlkLWdhcDogJGdsb2JhbC1tYXJnaW4gKiA0O1xyXG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgM2ZyO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmhlYWRlci1iYXNpYyB7XHJcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAvLyBTdHlsZSB0aGUgYWNjb3VudCBuYXZpZ2F0aW9uXHJcbiAgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHtcclxuICAgIEBleHRlbmQgLmJsb2NrO1xyXG5cclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xyXG4gICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcblxyXG4gICAgdWwge1xyXG4gICAgICBsaSB7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICAgICAmOmxhc3QtY2hpbGQgYSB7XHJcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICBjb250ZW50OiBcIvCfl4TvuI9cIjtcclxuICAgICAgICAgIG1hcmdpbi1yaWdodDogJGdsb2JhbC1tYXJnaW4gLyAyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbi1saW5rLS1vcmRlcnM6OmJlZm9yZSB7XHJcbiAgICAgICAgICBjb250ZW50OiBcIvCfm5JcIjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24tbGluay0tZWRpdC1hZGRyZXNzOjpiZWZvcmUge1xyXG4gICAgICAgICAgY29udGVudDogXCLinI3vuI9cIjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24tbGluay0tZWRpdC1hY2NvdW50OjpiZWZvcmUge1xyXG4gICAgICAgICAgY29udGVudDogXCLwn5eC77iPXCI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uLWxpbmstLWN1c3RvbWVyLWxvZ291dDo6YmVmb3JlIHtcclxuICAgICAgICAgIGNvbnRlbnQ6IFwi8J+Ri1wiO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XHJcbiAgICAgICAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgLyAyO1xyXG5cclxuICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59IC8vLndvb2NvbW1lcmNlLWFjY291bnRcclxuIiwiLnNpbmdsZS1wcm9kdWN0IHtcclxuXHJcblx0Jl9fY29udGFpbmVyIHtcclxuICAgIEBleHRlbmQgLm1vbi1yb3c7XHJcblxyXG4gICAgcGFkZGluZy10b3A6ICRnbG9iYWwtcGFkZGluZyAqIDM7XHJcblx0fVxyXG5cclxuXHQvLyBUaGUgaW1hZ2UgYW5kIHByb2R1Y3QgaW5mb1xyXG5cdCZfX2hlYWRlciB7XHJcblxyXG4gICAgQHN1cHBvcnRzKCBkaXNwbGF5OiBncmlkICkge1xyXG5cdFx0XHRkaXNwbGF5OiBncmlkO1xyXG5cdFx0XHRncmlkLWdhcDogJGdsb2JhbC1wYWRkaW5nO1xyXG5cdFx0XHRncmlkLXRlbXBsYXRlLWFyZWFzOlxyXG5cdFx0XHRcdFwiaW1hZ2VcIlxyXG5cdFx0XHRcdFwic3VtbWFyeVwiXHJcblx0XHRcdDtcclxuXHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCBtZWRpdW0gKSB7XHJcblx0XHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xyXG5cdFx0XHRcdGdyaWQtdGVtcGxhdGUtYXJlYXM6XHJcblx0XHRcdFx0XCJpbWFnZSBzdW1tYXJ5XCJcclxuXHRcdFx0O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCBsYXJnZSApIHtcclxuXHRcdFx0XHRncmlkLWdhcDogJGdsb2JhbC1wYWRkaW5nICogMztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0vL19faGVhZGVyXHJcblxyXG5cdC8vIFdyYXAgdGhlIGZsZXhzbGlkZXJcclxuXHQmX19oZWFkZXItaW1hZ2Utd3JhcCB7XHJcblxyXG5cclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0XHRAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcblx0XHRcdGdyaWQtYXJlYTogaW1hZ2U7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0fVxyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIG1lZGl1bSApIHtcclxuXHJcblx0XHRcdEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XHJcblx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0fS8vJl9faGVhZGVyLWltYWdlLXdyYXBcclxuXHJcblx0Ly8gV3JhcCB0aGUgdGl0bGUgYW5kIG90aGVyIGluZm9cclxuXHQuc3VtbWFyeS5lbnRyeS1zdW1tYXJ5IHtcclxuXHJcblxyXG5cdFx0QHN1cHBvcnRzKCBkaXNwbGF5OiBncmlkICkge1xyXG5cdFx0XHRncmlkLWFyZWE6IHN1bW1hcnk7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0fVxyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIG1lZGl1bSApIHtcclxuXHJcblxyXG5cdFx0XHRAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XHJcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdH0vLy5zdW1tYXJ5LmVudHJ5LXN1bW1hcnlcclxuXHJcblx0Ly8gYW55IGNvbnRlbnQgc3VjaCBhcyB0aXRsZSwgcHJpY2UsIGF0dHJpYnV0ZXMgZXRjXHJcblx0Jl9faGVhZGVyLWNvbnRlbnQge1xyXG5cclxuXHRcdC5wcmljZSB7XHJcblx0XHRcdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbWVkaXVtICkge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMzIpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRkZWwge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogJGdsb2JhbC1tYXJnaW47XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6ICRnbG9iYWwtbWFyZ2luO1xyXG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcblx0XHRcdFx0PiBzcGFuIHtcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0Y29udGVudDogXCJXQVNcIjtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aW5zIHtcclxuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH0vL3ByaWNlXHJcblxyXG5cdH0vLyZfX2hlYWRlci1jb250ZW50XHJcblxyXG5cdCZfX2NvbnRlbnQge1xyXG5cdFx0bWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW4gKiAyO1xyXG5cdH0vLyZfX2NvbnRlbnQge1xyXG5cclxufVxyXG5cclxuLy8gV29vY29tbWVyY2UgZ2FsbGVyeVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4ud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5IHtcclxuXHJcblx0LmZsZXgtY29udHJvbC1uYXYge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtd3JhcDogd3JhcDtcclxuXHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuXHRcdG1hcmdpbjogJGdsb2JhbC1tYXJnaW4gMCAwIC0kZ2xvYmFsLW1hcmdpbjtcclxuXHJcblx0XHRAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcblx0XHRcdGRpc3BsYXk6IGdyaWQ7XHJcblx0XHRcdGdyaWQtZ2FwOiAkZ2xvYmFsLW1hcmdpbiAvIDI7XHJcblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDkycHgsIDFmcikpO1xyXG5cdFx0XHRtYXJnaW46ICRnbG9iYWwtbWFyZ2luIC8gMiAwIDA7XHJcblx0XHR9XHJcblxyXG5cdFx0bGkge1xyXG5cdFx0XHRtYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAkZ2xvYmFsLW1hcmdpbjtcclxuXHJcblx0XHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XHJcblx0XHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpbWcge1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHR9XHJcblx0XHR9Ly9saVxyXG5cclxuXHR9Ly8uZmxleC1jb250cm9sLW5hdlxyXG5cclxufS8vLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeVxyXG5cclxuLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9fdHJpZ2dlciB7XHJcblx0bGVmdDogMDtcclxuXHRwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgLyAyO1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6IDA7XHJcblx0ei1pbmRleDogMTtcclxufVxyXG5cclxuXHJcbi5yZWxhdGVkLnByb2R1Y3RzIHtcclxuXHRtYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbiAqIDI7XHJcblx0bWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xyXG5cclxuXHQ+IGgyIHtcclxuXHRcdEBleHRlbmQgLmgzO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDE7XHJcblx0XHRtYXJnaW46IDA7XHJcblx0fVxyXG5cclxuXHR1bC5wcm9kdWN0cyB7XHJcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XHJcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE0MHB4LCAxZnIpKTtcclxuXHRcdG1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luO1xyXG5cdFx0cGFkZGluZy10b3A6ICRnbG9iYWwtcGFkZGluZztcclxuXHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCBtZWRpdW0gKSB7XHJcblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XHJcblx0XHR9XHJcblxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8vIEZvcm1zICh2YXJpYXRpb25zLCBncm91cGVkIGFuZCBzaW1wbGUgcHJvZHVjdClcclxuXHJcblxyXG4vLyBib3RoIHNpbXBsZSBhbmQgdGhlIHZhcmlhdGlvbiBhZGQgdG8gY2FydCBzaGFyZSB0aGUgc2FtZSBsYXlvdXRcclxuLndvb2NvbW1lcmNlLXZhcmlhdGlvbi1hZGQtdG8tY2FydCxcclxuZm9ybS5jYXJ0IHtcclxuXHJcblx0YnV0dG9uIHtcclxuXHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdH1cclxufVxyXG5cclxuLy8gc3R5bGUgdGhlIHZhcmlhdGlvbiBhbmQgZ3JvdXBlZCBhbW91bnQgZm9ybXNcclxuZm9ybSB7XHJcblxyXG5cdCYudmFyaWF0aW9uc19mb3JtLFxyXG5cdCYuZ3JvdXBlZF9mb3JtIHtcclxuXHRcdG1hcmdpbjogMDtcclxuXHR9XHJcblxyXG5cdCYuZ3JvdXBlZF9mb3JtIHtcclxuXHRcdC5xdWFudGl0eSB7XHJcblx0XHRcdGlucHV0IHtcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxufS8vZm9ybVxyXG5cclxuLy8gU3R5bGUgcXVhbnRpdHkgdXAgYW5kIGRvd24gYnV0dG9uc1xyXG4ucXVhbnRpdHkge1xyXG5cdCZfX2Jsb2NrIHtcclxuXHRcdGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdG1hcmdpbjogMDtcclxuXHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCBsYXJnZSApIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdH1cclxuXHJcblx0XHRpbnB1dFt0eXBlPW51bWJlcl0ge1xyXG5cdFx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcclxuXHRcdGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XHJcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgYXBwZWFyYW5jZTogbm9uZTtcclxuXHRcdH1cclxuXHJcblx0XHRpbnB1dCB7XHJcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XHJcblx0XHRcdGJvcmRlcjoxcHggc29saWQgJGxpZ2h0LWdyYXk7XHJcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdGhlaWdodDogJGdsb2JhbC1tYXJnaW4gKiAzO1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdFx0cGFkZGluZzogMDtcclxuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0XHR3aWR0aDogJGdsb2JhbC1tYXJnaW4gKiAzO1xyXG5cdFx0fVxyXG5cdH0vLyZfX2Jsb2NrXHJcblxyXG5cdCZfX21pbnVzLFxyXG5cdCZfX3BsdXN7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0YmFja2dyb3VuZDokd2hpdGU7XHJcblx0XHRib3JkZXItcmFkaXVzOiAwO1xyXG5cdFx0Ym9yZGVyOjFweCBzb2xpZCAkbGlnaHQtZ3JheTtcclxuXHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmb250LXNpemU6IDIycHg7XHJcblx0XHRoZWlnaHQ6ICRnbG9iYWwtbWFyZ2luICogMztcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0cGFkZGluZzogMDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHR3aWR0aDogJGdsb2JhbC1tYXJnaW4gKiAzO1xyXG5cclxuXHRcdCY6aG92ZXIsXHJcblx0XHQmOmZvY3VzLFxyXG5cdFx0JjphY3RpdmUge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG59Ly9xdWFudGl0eVxyXG5cclxuXHJcbiJdfQ== */
