@charset "UTF-8";
/******************************************************************
	
Stylesheet: Main Stylesheet
Here's where the magic happens. Here is where you import
all of your Sass files so they can compile into one CSS file. 

******************************************************************/
/******************************************************************

Stylesheet: Mixins & Constants Stylesheet
This is where you can take advantage of Sass' great features: Mixins & Constants.

******************************************************************/
/*********************
GLOBAL TRANSITION MIXIN
Use like this: @include transition(property1, property2);
*********************/
/*********************
COLORS
*********************/
/*********************
CSS3 GRADIENTS.
*********************/
/* @include css-gradient(#dfdfdf,#f8f8f8); */
/*********************
WooCommerce MixinsP
*********************/
/**
 * Deprecated
 * Fallback for bourbon equivalent
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Use bourbon mixin instead `@include transform(scale(1.5));`
 */
/**
 * Deprecated
 * Use bourbon mixin instead `@include box-sizing(border-box);`
 */
/**
 * Objects
 */
/**
 * Foundation for Sites
 * Version 6.6.3
 * https://get.foundation
 * Licensed under MIT Open Source
 */
/*! 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 {
  font-size: 2em;
  margin: 0.67em 0;
}

hr {
  -webkit-box-sizing: content-box;
          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;
  -webkit-text-decoration: underline dotted;
          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 {
  -webkit-box-sizing: border-box;
          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"] {
  -webkit-box-sizing: border-box;
          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=65.625em&xlarge=81.25em&xxlarge=93.75em";
}

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

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

body {
  margin: 0;
  padding: 0;
  background: #fff;
  font-family: "DINPro", "Helvetica Neue", "Roboto", "Helvetica", "Arial", sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #000;
  -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: 0.1875rem;
}

select {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  border-radius: 0.1875rem;
}

.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: 0.1875rem;
  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;
}

.row {
  max-width: 97.5rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

.row .row {
  margin-right: -1.09375rem;
  margin-left: -1.09375rem;
}

@media print, screen and (min-width: 40em) {
  .row .row {
    margin-right: -1.09375rem;
    margin-left: -1.09375rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  .row .row {
    margin-right: -1.09375rem;
    margin-left: -1.09375rem;
  }
}

@media screen and (min-width: 81.25em) {
  .row .row {
    margin-right: -1.09375rem;
    margin-left: -1.09375rem;
  }
}

@media screen and (min-width: 93.75em) {
  .row .row {
    margin-right: -1.09375rem;
    margin-left: -1.09375rem;
  }
}

.row .row.collapse {
  margin-right: 0;
  margin-left: 0;
}

.row.expanded {
  max-width: none;
}

.row.expanded .row {
  margin-right: auto;
  margin-left: auto;
}

.row:not(.expanded) .row {
  max-width: none;
}

.row.collapse > .column, .row.collapse > .columns {
  padding-right: 0;
  padding-left: 0;
}

.row.is-collapse-child,
.row.collapse > .column > .row,
.row.collapse > .columns > .row {
  margin-right: 0;
  margin-left: 0;
}

.column, .columns {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  padding-right: 1.09375rem;
  padding-left: 1.09375rem;
  min-width: 0;
}

@media print, screen and (min-width: 40em) {
  .column, .columns {
    padding-right: 1.09375rem;
    padding-left: 1.09375rem;
  }
}

.column.row.row, .row.row.columns {
  float: none;
  display: block;
}

.row .column.row.row, .row .row.row.columns {
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0;
}

.small-1 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 8.33333333%;
          flex: 0 0 8.33333333%;
  max-width: 8.33333333%;
}

.small-offset-0 {
  margin-left: 0%;
}

.small-2 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 16.66666667%;
          flex: 0 0 16.66666667%;
  max-width: 16.66666667%;
}

.small-offset-1 {
  margin-left: 8.33333333%;
}

.small-3 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
  max-width: 25%;
}

.small-offset-2 {
  margin-left: 16.66666667%;
}

.small-4 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 33.33333333%;
          flex: 0 0 33.33333333%;
  max-width: 33.33333333%;
}

.small-offset-3 {
  margin-left: 25%;
}

.small-5 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 41.66666667%;
          flex: 0 0 41.66666667%;
  max-width: 41.66666667%;
}

.small-offset-4 {
  margin-left: 33.33333333%;
}

.small-6 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%;
}

.small-offset-5 {
  margin-left: 41.66666667%;
}

.small-7 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 58.33333333%;
          flex: 0 0 58.33333333%;
  max-width: 58.33333333%;
}

.small-offset-6 {
  margin-left: 50%;
}

.small-8 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 66.66666667%;
          flex: 0 0 66.66666667%;
  max-width: 66.66666667%;
}

.small-offset-7 {
  margin-left: 58.33333333%;
}

.small-9 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 75%;
          flex: 0 0 75%;
  max-width: 75%;
}

.small-offset-8 {
  margin-left: 66.66666667%;
}

.small-10 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 83.33333333%;
          flex: 0 0 83.33333333%;
  max-width: 83.33333333%;
}

.small-offset-9 {
  margin-left: 75%;
}

.small-11 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 91.66666667%;
          flex: 0 0 91.66666667%;
  max-width: 91.66666667%;
}

.small-offset-10 {
  margin-left: 83.33333333%;
}

.small-12 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
}

.small-offset-11 {
  margin-left: 91.66666667%;
}

.small-up-1 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-1 > .column, .small-up-1 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
}

.small-up-2 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-2 > .column, .small-up-2 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%;
}

.small-up-3 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-3 > .column, .small-up-3 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 33.33333333%;
          flex: 0 0 33.33333333%;
  max-width: 33.33333333%;
}

.small-up-4 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-4 > .column, .small-up-4 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
  max-width: 25%;
}

.small-up-5 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-5 > .column, .small-up-5 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 20%;
          flex: 0 0 20%;
  max-width: 20%;
}

.small-up-6 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-6 > .column, .small-up-6 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 16.66666667%;
          flex: 0 0 16.66666667%;
  max-width: 16.66666667%;
}

.small-up-7 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-7 > .column, .small-up-7 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 14.28571429%;
          flex: 0 0 14.28571429%;
  max-width: 14.28571429%;
}

.small-up-8 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-8 > .column, .small-up-8 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 12.5%;
          flex: 0 0 12.5%;
  max-width: 12.5%;
}

.small-collapse > .column, .small-collapse > .columns {
  padding-right: 0;
  padding-left: 0;
}

.small-uncollapse > .column, .small-uncollapse > .columns {
  padding-right: 1.09375rem;
  padding-left: 1.09375rem;
}

@media print, screen and (min-width: 40em) {
  .medium-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333333%;
            flex: 0 0 8.33333333%;
    max-width: 8.33333333%;
  }
  .medium-offset-0 {
    margin-left: 0%;
  }
  .medium-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66666667%;
            flex: 0 0 16.66666667%;
    max-width: 16.66666667%;
  }
  .medium-offset-1 {
    margin-left: 8.33333333%;
  }
  .medium-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .medium-offset-2 {
    margin-left: 16.66666667%;
  }
  .medium-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333333%;
            flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
  }
  .medium-offset-3 {
    margin-left: 25%;
  }
  .medium-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66666667%;
            flex: 0 0 41.66666667%;
    max-width: 41.66666667%;
  }
  .medium-offset-4 {
    margin-left: 33.33333333%;
  }
  .medium-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .medium-offset-5 {
    margin-left: 41.66666667%;
  }
  .medium-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333333%;
            flex: 0 0 58.33333333%;
    max-width: 58.33333333%;
  }
  .medium-offset-6 {
    margin-left: 50%;
  }
  .medium-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66666667%;
            flex: 0 0 66.66666667%;
    max-width: 66.66666667%;
  }
  .medium-offset-7 {
    margin-left: 58.33333333%;
  }
  .medium-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%;
  }
  .medium-offset-8 {
    margin-left: 66.66666667%;
  }
  .medium-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333333%;
            flex: 0 0 83.33333333%;
    max-width: 83.33333333%;
  }
  .medium-offset-9 {
    margin-left: 75%;
  }
  .medium-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66666667%;
            flex: 0 0 91.66666667%;
    max-width: 91.66666667%;
  }
  .medium-offset-10 {
    margin-left: 83.33333333%;
  }
  .medium-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .medium-offset-11 {
    margin-left: 91.66666667%;
  }
  .medium-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .medium-up-1 > .column, .medium-up-1 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .medium-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .medium-up-2 > .column, .medium-up-2 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .medium-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .medium-up-3 > .column, .medium-up-3 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333333%;
            flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
  }
  .medium-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .medium-up-4 > .column, .medium-up-4 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .medium-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .medium-up-5 > .column, .medium-up-5 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 20%;
            flex: 0 0 20%;
    max-width: 20%;
  }
  .medium-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .medium-up-6 > .column, .medium-up-6 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66666667%;
            flex: 0 0 16.66666667%;
    max-width: 16.66666667%;
  }
  .medium-up-7 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .medium-up-7 > .column, .medium-up-7 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 14.28571429%;
            flex: 0 0 14.28571429%;
    max-width: 14.28571429%;
  }
  .medium-up-8 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .medium-up-8 > .column, .medium-up-8 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 12.5%;
            flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .medium-expand {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

.row.medium-unstack > .column, .row.medium-unstack > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
}

@media print, screen and (min-width: 40em) {
  .row.medium-unstack > .column, .row.medium-unstack > .columns {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 40em) {
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-right: 1.09375rem;
    padding-left: 1.09375rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  .large-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333333%;
            flex: 0 0 8.33333333%;
    max-width: 8.33333333%;
  }
  .large-offset-0 {
    margin-left: 0%;
  }
  .large-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66666667%;
            flex: 0 0 16.66666667%;
    max-width: 16.66666667%;
  }
  .large-offset-1 {
    margin-left: 8.33333333%;
  }
  .large-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .large-offset-2 {
    margin-left: 16.66666667%;
  }
  .large-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333333%;
            flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
  }
  .large-offset-3 {
    margin-left: 25%;
  }
  .large-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66666667%;
            flex: 0 0 41.66666667%;
    max-width: 41.66666667%;
  }
  .large-offset-4 {
    margin-left: 33.33333333%;
  }
  .large-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .large-offset-5 {
    margin-left: 41.66666667%;
  }
  .large-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333333%;
            flex: 0 0 58.33333333%;
    max-width: 58.33333333%;
  }
  .large-offset-6 {
    margin-left: 50%;
  }
  .large-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66666667%;
            flex: 0 0 66.66666667%;
    max-width: 66.66666667%;
  }
  .large-offset-7 {
    margin-left: 58.33333333%;
  }
  .large-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%;
  }
  .large-offset-8 {
    margin-left: 66.66666667%;
  }
  .large-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333333%;
            flex: 0 0 83.33333333%;
    max-width: 83.33333333%;
  }
  .large-offset-9 {
    margin-left: 75%;
  }
  .large-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66666667%;
            flex: 0 0 91.66666667%;
    max-width: 91.66666667%;
  }
  .large-offset-10 {
    margin-left: 83.33333333%;
  }
  .large-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .large-offset-11 {
    margin-left: 91.66666667%;
  }
  .large-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .large-up-1 > .column, .large-up-1 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .large-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .large-up-2 > .column, .large-up-2 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .large-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .large-up-3 > .column, .large-up-3 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333333%;
            flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
  }
  .large-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .large-up-4 > .column, .large-up-4 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .large-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .large-up-5 > .column, .large-up-5 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 20%;
            flex: 0 0 20%;
    max-width: 20%;
  }
  .large-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .large-up-6 > .column, .large-up-6 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66666667%;
            flex: 0 0 16.66666667%;
    max-width: 16.66666667%;
  }
  .large-up-7 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .large-up-7 > .column, .large-up-7 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 14.28571429%;
            flex: 0 0 14.28571429%;
    max-width: 14.28571429%;
  }
  .large-up-8 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .large-up-8 > .column, .large-up-8 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 12.5%;
            flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}

@media print, screen and (min-width: 65.625em) and (min-width: 65.625em) {
  .large-expand {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

.row.large-unstack > .column, .row.large-unstack > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
}

@media print, screen and (min-width: 65.625em) {
  .row.large-unstack > .column, .row.large-unstack > .columns {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 65.625em) {
  .large-collapse > .column, .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-right: 1.09375rem;
    padding-left: 1.09375rem;
  }
}

@media screen and (min-width: 81.25em) {
  .xlarge-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333333%;
            flex: 0 0 8.33333333%;
    max-width: 8.33333333%;
  }
  .xlarge-offset-0 {
    margin-left: 0%;
  }
  .xlarge-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66666667%;
            flex: 0 0 16.66666667%;
    max-width: 16.66666667%;
  }
  .xlarge-offset-1 {
    margin-left: 8.33333333%;
  }
  .xlarge-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .xlarge-offset-2 {
    margin-left: 16.66666667%;
  }
  .xlarge-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333333%;
            flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
  }
  .xlarge-offset-3 {
    margin-left: 25%;
  }
  .xlarge-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66666667%;
            flex: 0 0 41.66666667%;
    max-width: 41.66666667%;
  }
  .xlarge-offset-4 {
    margin-left: 33.33333333%;
  }
  .xlarge-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .xlarge-offset-5 {
    margin-left: 41.66666667%;
  }
  .xlarge-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333333%;
            flex: 0 0 58.33333333%;
    max-width: 58.33333333%;
  }
  .xlarge-offset-6 {
    margin-left: 50%;
  }
  .xlarge-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66666667%;
            flex: 0 0 66.66666667%;
    max-width: 66.66666667%;
  }
  .xlarge-offset-7 {
    margin-left: 58.33333333%;
  }
  .xlarge-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%;
  }
  .xlarge-offset-8 {
    margin-left: 66.66666667%;
  }
  .xlarge-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333333%;
            flex: 0 0 83.33333333%;
    max-width: 83.33333333%;
  }
  .xlarge-offset-9 {
    margin-left: 75%;
  }
  .xlarge-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66666667%;
            flex: 0 0 91.66666667%;
    max-width: 91.66666667%;
  }
  .xlarge-offset-10 {
    margin-left: 83.33333333%;
  }
  .xlarge-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .xlarge-offset-11 {
    margin-left: 91.66666667%;
  }
  .xlarge-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xlarge-up-1 > .column, .xlarge-up-1 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .xlarge-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xlarge-up-2 > .column, .xlarge-up-2 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .xlarge-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xlarge-up-3 > .column, .xlarge-up-3 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333333%;
            flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
  }
  .xlarge-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xlarge-up-4 > .column, .xlarge-up-4 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .xlarge-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xlarge-up-5 > .column, .xlarge-up-5 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 20%;
            flex: 0 0 20%;
    max-width: 20%;
  }
  .xlarge-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xlarge-up-6 > .column, .xlarge-up-6 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66666667%;
            flex: 0 0 16.66666667%;
    max-width: 16.66666667%;
  }
  .xlarge-up-7 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xlarge-up-7 > .column, .xlarge-up-7 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 14.28571429%;
            flex: 0 0 14.28571429%;
    max-width: 14.28571429%;
  }
  .xlarge-up-8 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xlarge-up-8 > .column, .xlarge-up-8 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 12.5%;
            flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}

@media screen and (min-width: 81.25em) and (min-width: 81.25em) {
  .xlarge-expand {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

.row.xlarge-unstack > .column, .row.xlarge-unstack > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
}

@media screen and (min-width: 81.25em) {
  .row.xlarge-unstack > .column, .row.xlarge-unstack > .columns {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

@media screen and (min-width: 81.25em) {
  .xlarge-collapse > .column, .xlarge-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }
  .xlarge-uncollapse > .column, .xlarge-uncollapse > .columns {
    padding-right: 1.09375rem;
    padding-left: 1.09375rem;
  }
}

@media screen and (min-width: 93.75em) {
  .xxlarge-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333333%;
            flex: 0 0 8.33333333%;
    max-width: 8.33333333%;
  }
  .xxlarge-offset-0 {
    margin-left: 0%;
  }
  .xxlarge-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66666667%;
            flex: 0 0 16.66666667%;
    max-width: 16.66666667%;
  }
  .xxlarge-offset-1 {
    margin-left: 8.33333333%;
  }
  .xxlarge-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .xxlarge-offset-2 {
    margin-left: 16.66666667%;
  }
  .xxlarge-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333333%;
            flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
  }
  .xxlarge-offset-3 {
    margin-left: 25%;
  }
  .xxlarge-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66666667%;
            flex: 0 0 41.66666667%;
    max-width: 41.66666667%;
  }
  .xxlarge-offset-4 {
    margin-left: 33.33333333%;
  }
  .xxlarge-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .xxlarge-offset-5 {
    margin-left: 41.66666667%;
  }
  .xxlarge-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333333%;
            flex: 0 0 58.33333333%;
    max-width: 58.33333333%;
  }
  .xxlarge-offset-6 {
    margin-left: 50%;
  }
  .xxlarge-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66666667%;
            flex: 0 0 66.66666667%;
    max-width: 66.66666667%;
  }
  .xxlarge-offset-7 {
    margin-left: 58.33333333%;
  }
  .xxlarge-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%;
  }
  .xxlarge-offset-8 {
    margin-left: 66.66666667%;
  }
  .xxlarge-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333333%;
            flex: 0 0 83.33333333%;
    max-width: 83.33333333%;
  }
  .xxlarge-offset-9 {
    margin-left: 75%;
  }
  .xxlarge-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66666667%;
            flex: 0 0 91.66666667%;
    max-width: 91.66666667%;
  }
  .xxlarge-offset-10 {
    margin-left: 83.33333333%;
  }
  .xxlarge-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .xxlarge-offset-11 {
    margin-left: 91.66666667%;
  }
  .xxlarge-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xxlarge-up-1 > .column, .xxlarge-up-1 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .xxlarge-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xxlarge-up-2 > .column, .xxlarge-up-2 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .xxlarge-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xxlarge-up-3 > .column, .xxlarge-up-3 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333333%;
            flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
  }
  .xxlarge-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xxlarge-up-4 > .column, .xxlarge-up-4 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .xxlarge-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xxlarge-up-5 > .column, .xxlarge-up-5 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 20%;
            flex: 0 0 20%;
    max-width: 20%;
  }
  .xxlarge-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xxlarge-up-6 > .column, .xxlarge-up-6 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66666667%;
            flex: 0 0 16.66666667%;
    max-width: 16.66666667%;
  }
  .xxlarge-up-7 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xxlarge-up-7 > .column, .xxlarge-up-7 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 14.28571429%;
            flex: 0 0 14.28571429%;
    max-width: 14.28571429%;
  }
  .xxlarge-up-8 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xxlarge-up-8 > .column, .xxlarge-up-8 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 12.5%;
            flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}

@media screen and (min-width: 93.75em) and (min-width: 93.75em) {
  .xxlarge-expand {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

.row.xxlarge-unstack > .column, .row.xxlarge-unstack > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
}

@media screen and (min-width: 93.75em) {
  .row.xxlarge-unstack > .column, .row.xxlarge-unstack > .columns {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

@media screen and (min-width: 93.75em) {
  .xxlarge-collapse > .column, .xxlarge-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }
  .xxlarge-uncollapse > .column, .xxlarge-uncollapse > .columns {
    padding-right: 1.09375rem;
    padding-left: 1.09375rem;
  }
}

.shrink {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  max-width: 100%;
}

.column-block {
  margin-bottom: 2.1875rem;
}

.column-block > :last-child {
  margin-bottom: 0;
}

@media print, screen and (min-width: 40em) {
  .column-block {
    margin-bottom: 2.1875rem;
  }
  .column-block > :last-child {
    margin-bottom: 0;
  }
}

.align-left {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

.align-right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.align-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.align-justify {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.align-spaced {
  -ms-flex-pack: distribute;
      justify-content: space-around;
}

.align-left.vertical.menu > li > a {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

.align-right.vertical.menu > li > a {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.align-center.vertical.menu > li > a {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.align-top {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.align-self-top {
  -ms-flex-item-align: start;
      align-self: flex-start;
}

.align-bottom {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}

.align-self-bottom {
  -ms-flex-item-align: end;
      align-self: flex-end;
}

.align-middle {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.align-self-middle {
  -ms-flex-item-align: center;
      align-self: center;
}

.align-stretch {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

.align-self-stretch {
  -ms-flex-item-align: stretch;
      align-self: stretch;
}

.align-center-middle {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-line-pack: center;
      align-content: center;
}

.small-order-1 {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.small-order-2 {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}

.small-order-3 {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}

.small-order-4 {
  -webkit-box-ordinal-group: 5;
      -ms-flex-order: 4;
          order: 4;
}

.small-order-5 {
  -webkit-box-ordinal-group: 6;
      -ms-flex-order: 5;
          order: 5;
}

.small-order-6 {
  -webkit-box-ordinal-group: 7;
      -ms-flex-order: 6;
          order: 6;
}

@media print, screen and (min-width: 40em) {
  .medium-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .medium-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .medium-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .medium-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .medium-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .medium-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
}

@media print, screen and (min-width: 65.625em) {
  .large-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .large-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .large-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .large-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .large-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .large-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
}

@media screen and (min-width: 81.25em) {
  .xlarge-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .xlarge-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .xlarge-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .xlarge-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .xlarge-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .xlarge-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
}

@media screen and (min-width: 93.75em) {
  .xxlarge-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .xxlarge-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .xxlarge-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .xxlarge-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .xxlarge-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .xxlarge-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
}

.flex-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.flex-child-auto {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
}

.flex-child-grow {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
}

.flex-child-shrink {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
}

.flex-dir-row {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

.flex-dir-row-reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}

.flex-dir-column {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.flex-dir-column-reverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
}

@media print, screen and (min-width: 40em) {
  .medium-flex-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .medium-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }
  .medium-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto;
  }
  .medium-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }
  .medium-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .medium-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
  .medium-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .medium-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}

@media print, screen and (min-width: 65.625em) {
  .large-flex-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .large-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }
  .large-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto;
  }
  .large-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }
  .large-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .large-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
  .large-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .large-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}

@media screen and (min-width: 81.25em) {
  .xlarge-flex-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .xlarge-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }
  .xlarge-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto;
  }
  .xlarge-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }
  .xlarge-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .xlarge-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
  .xlarge-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .xlarge-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}

@media screen and (min-width: 93.75em) {
  .xxlarge-flex-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .xxlarge-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }
  .xxlarge-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto;
  }
  .xxlarge-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }
  .xxlarge-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .xxlarge-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
  .xxlarge-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .xxlarge-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}

.hide {
  display: none !important;
}

.invisible {
  visibility: hidden;
}

@media print, 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 print, screen and (min-width: 40em) and (max-width: 65.62375em) {
  .hide-for-medium-only {
    display: none !important;
  }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.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;
  }
}

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0;
}

p {
  margin-bottom: 1rem;
  font-size: inherit;
  line-height: 1.6;
  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,
h2, .h2,
h3, .h3, .menu--offcanvas .menu__item .menu__link,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-family: "DINPro-Bold", "Impact", "Arial Black", "Helvetica", "Arial", sans-serif;
  font-style: normal;
  font-weight: normal;
  color: inherit;
  text-rendering: optimizeLegibility;
}

h1 small, .h1 small,
h2 small, .h2 small,
h3 small, .h3 small, .menu--offcanvas .menu__item .menu__link small,
h4 small, .h4 small,
h5 small, .h5 small,
h6 small, .h6 small {
  line-height: 0;
  color: #e8e5da;
}

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

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

h3, .h3, .menu--offcanvas .menu__item .menu__link {
  font-size: 1.1875rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.75rem;
}

h4, .h4 {
  font-size: 1.125rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.75rem;
}

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

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

@media print, screen and (min-width: 40em) {
  h1, .h1 {
    font-size: 3rem;
  }
  h2, .h2 {
    font-size: 2.5rem;
  }
  h3, .h3, .menu--offcanvas .menu__item .menu__link {
    font-size: 1.9375rem;
  }
  h4, .h4 {
    font-size: 1.5625rem;
  }
  h5, .h5 {
    font-size: 1.25rem;
  }
  h6, .h6 {
    font-size: 1rem;
  }
}

a {
  line-height: inherit;
  color: #38D430;
  text-decoration: none;
  cursor: pointer;
}

a:hover, a:focus {
  color: #2eb926;
}

a img {
  border: 0;
}

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

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

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 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #e8e5da;
}

blockquote, blockquote p {
  line-height: 1.6;
  color: #151515;
}

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

figure {
  margin: 0;
}

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #fbfbfb;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  color: #000;
  border-radius: 0.1875rem;
}

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

.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;
}

.cite-block, cite {
  display: block;
  color: #151515;
  font-size: 0.8125rem;
}

.cite-block:before, cite:before {
  content: "\2014   ";
}

.code-inline, code {
  border: 1px solid #e8e5da;
  background-color: #fbfbfb;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #000;
  display: inline;
  max-width: 100%;
  word-wrap: break-word;
  padding: 0.125rem 0.3125rem 0.0625rem;
}

.code-block {
  border: 1px solid #e8e5da;
  background-color: #fbfbfb;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #000;
  display: block;
  overflow: auto;
  white-space: pre;
  padding: 1rem;
  margin-bottom: 1.5rem;
}

.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: 65.625em) {
  .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: 81.25em) {
  .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: 93.75em) {
  .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;
    color: black !important;
    color-adjust: economy;
    -webkit-box-shadow: none !important;
            box-shadow: none !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 #151515;
    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,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .print-break-inside {
    page-break-inside: auto;
  }
}

.responsive-embed,
.flex-video {
  position: relative;
  height: 0;
  margin-bottom: 1rem;
  padding-bottom: 56.25%;
  overflow: hidden;
}

.responsive-embed iframe,
.responsive-embed object,
.responsive-embed embed,
.responsive-embed 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,
.flex-video.widescreen {
  padding-bottom: 56.25%;
}

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

.js-off-canvas-overlay {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 11;
  width: 100%;
  height: 100%;
  -webkit-transition: opacity 0.5s ease, visibility 0.5s ease;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  background: rgba(0, 0, 0, 0.65);
  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;
  -webkit-transition: -webkit-transform 0.5s ease;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #000;
}

[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 {
  -webkit-box-shadow: none;
          box-shadow: none;
}

.off-canvas.is-open {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.off-canvas-absolute {
  position: absolute;
  z-index: 12;
  -webkit-transition: -webkit-transform 0.5s ease;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #000;
}

[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 {
  -webkit-box-shadow: none;
          box-shadow: none;
}

.off-canvas-absolute.is-open {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.position-left {
  top: 0;
  left: 0;
  height: 100%;
  overflow-y: auto;
  width: 18.75rem;
  -webkit-transform: translateX(-18.75rem);
          transform: translateX(-18.75rem);
}

@media print, screen and (min-width: 65.625em) {
  .position-left {
    width: 37.5rem;
    -webkit-transform: translateX(-37.5rem);
            transform: translateX(-37.5rem);
  }
}

.off-canvas-content .off-canvas.position-left {
  -webkit-transform: translateX(-18.75rem);
          transform: translateX(-18.75rem);
}

@media print, screen and (min-width: 65.625em) {
  .off-canvas-content .off-canvas.position-left {
    -webkit-transform: translateX(-37.5rem);
            transform: translateX(-37.5rem);
  }
}

.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.off-canvas-content.is-open-left.has-transition-push {
  -webkit-transform: translateX(18.75rem);
          transform: translateX(18.75rem);
}

@media print, screen and (min-width: 65.625em) {
  .off-canvas-content.is-open-left.has-transition-push {
    -webkit-transform: translateX(37.5rem);
            transform: translateX(37.5rem);
  }
}

.position-left.is-transition-push {
  -webkit-box-shadow: inset -13px 0 20px -13px rgba(0, 0, 0, 0.25);
          box-shadow: inset -13px 0 20px -13px rgba(0, 0, 0, 0.25);
}

.position-right {
  top: 0;
  right: 0;
  height: 100%;
  overflow-y: auto;
  width: 18.75rem;
  -webkit-transform: translateX(18.75rem);
          transform: translateX(18.75rem);
}

@media print, screen and (min-width: 65.625em) {
  .position-right {
    width: 37.5rem;
    -webkit-transform: translateX(37.5rem);
            transform: translateX(37.5rem);
  }
}

.off-canvas-content .off-canvas.position-right {
  -webkit-transform: translateX(18.75rem);
          transform: translateX(18.75rem);
}

@media print, screen and (min-width: 65.625em) {
  .off-canvas-content .off-canvas.position-right {
    -webkit-transform: translateX(37.5rem);
            transform: translateX(37.5rem);
  }
}

.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.off-canvas-content.is-open-right.has-transition-push {
  -webkit-transform: translateX(-18.75rem);
          transform: translateX(-18.75rem);
}

@media print, screen and (min-width: 65.625em) {
  .off-canvas-content.is-open-right.has-transition-push {
    -webkit-transform: translateX(-37.5rem);
            transform: translateX(-37.5rem);
  }
}

.position-right.is-transition-push {
  -webkit-box-shadow: inset 13px 0 20px -13px rgba(0, 0, 0, 0.25);
          box-shadow: inset 13px 0 20px -13px rgba(0, 0, 0, 0.25);
}

.position-top {
  top: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  -webkit-transform: translateY(-250px);
          transform: translateY(-250px);
}

@media print, screen and (min-width: 40em) {
  .position-top {
    height: 250px;
    -webkit-transform: translateY(-250px);
            transform: translateY(-250px);
  }
}

.off-canvas-content .off-canvas.position-top {
  -webkit-transform: translateY(-250px);
          transform: translateY(-250px);
}

@media print, screen and (min-width: 40em) {
  .off-canvas-content .off-canvas.position-top {
    -webkit-transform: translateY(-250px);
            transform: translateY(-250px);
  }
}

.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.off-canvas-content.is-open-top.has-transition-push {
  -webkit-transform: translateY(250px);
          transform: translateY(250px);
}

@media print, screen and (min-width: 40em) {
  .off-canvas-content.is-open-top.has-transition-push {
    -webkit-transform: translateY(250px);
            transform: translateY(250px);
  }
}

.position-top.is-transition-push {
  -webkit-box-shadow: inset 0 -13px 20px -13px rgba(0, 0, 0, 0.25);
          box-shadow: inset 0 -13px 20px -13px rgba(0, 0, 0, 0.25);
}

.position-bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  -webkit-transform: translateY(250px);
          transform: translateY(250px);
}

@media print, screen and (min-width: 40em) {
  .position-bottom {
    height: 250px;
    -webkit-transform: translateY(250px);
            transform: translateY(250px);
  }
}

.off-canvas-content .off-canvas.position-bottom {
  -webkit-transform: translateY(250px);
          transform: translateY(250px);
}

@media print, screen and (min-width: 40em) {
  .off-canvas-content .off-canvas.position-bottom {
    -webkit-transform: translateY(250px);
            transform: translateY(250px);
  }
}

.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.off-canvas-content.is-open-bottom.has-transition-push {
  -webkit-transform: translateY(-250px);
          transform: translateY(-250px);
}

@media print, screen and (min-width: 40em) {
  .off-canvas-content.is-open-bottom.has-transition-push {
    -webkit-transform: translateY(-250px);
            transform: translateY(-250px);
  }
}

.position-bottom.is-transition-push {
  -webkit-box-shadow: inset 0 13px 20px -13px rgba(0, 0, 0, 0.25);
          box-shadow: inset 0 13px 20px -13px rgba(0, 0, 0, 0.25);
}

.off-canvas-content {
  -webkit-transform: none;
          transform: none;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {
  -webkit-transition: -webkit-transform 0.5s ease;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
}

.off-canvas-content.has-transition-push {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.off-canvas-content .off-canvas.is-open {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

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

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

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

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

@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;
    -webkit-transition: none;
    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 {
    -webkit-box-shadow: none;
            box-shadow: none;
    -webkit-transform: none;
            transform: none;
  }
  .off-canvas.in-canvas-for-medium .close-button {
    display: none;
  }
}

@media print, screen and (min-width: 65.625em) {
  .off-canvas.in-canvas-for-large {
    visibility: visible;
    height: auto;
    position: static;
    background: none;
    width: auto;
    overflow: visible;
    -webkit-transition: none;
    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 {
    -webkit-box-shadow: none;
            box-shadow: none;
    -webkit-transform: none;
            transform: none;
  }
  .off-canvas.in-canvas-for-large .close-button {
    display: none;
  }
}

@media screen and (min-width: 81.25em) {
  .off-canvas.in-canvas-for-xlarge {
    visibility: visible;
    height: auto;
    position: static;
    background: none;
    width: auto;
    overflow: visible;
    -webkit-transition: none;
    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 {
    -webkit-box-shadow: none;
            box-shadow: none;
    -webkit-transform: none;
            transform: none;
  }
  .off-canvas.in-canvas-for-xlarge .close-button {
    display: none;
  }
}

@media screen and (min-width: 93.75em) {
  .off-canvas.in-canvas-for-xxlarge {
    visibility: visible;
    height: auto;
    position: static;
    background: none;
    width: auto;
    overflow: visible;
    -webkit-transition: none;
    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 {
    -webkit-box-shadow: none;
            box-shadow: none;
    -webkit-transform: none;
            transform: none;
  }
  .off-canvas.in-canvas-for-xxlarge .close-button {
    display: none;
  }
}

.tabs {
  margin: 0;
  border: 1px solid #fbfbfb;
  background: #fff;
  list-style-type: none;
}

.tabs::before, .tabs::after {
  display: table;
  content: ' ';
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.tabs::after {
  clear: both;
}

.tabs.vertical > li {
  display: block;
  float: none;
  width: auto;
}

.tabs.simple > li > a {
  padding: 0;
}

.tabs.simple > li > a:hover {
  background: transparent;
}

.tabs.primary {
  background: #38D430;
}

.tabs.primary > li > a {
  color: #000;
}

.tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
  background: #32cd2a;
}

.tabs-title {
  float: left;
}

.tabs-title > a {
  display: block;
  padding: 1.25rem 1.5rem;
  font-size: 0.75rem;
  line-height: 1;
  color: #38D430;
}

[data-whatinput='mouse'] .tabs-title > a {
  outline: 0;
}

.tabs-title > a:hover {
  background: #fff;
  color: #2eb926;
}

.tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {
  background: #fbfbfb;
  color: #38D430;
}

.tabs-content {
  border: 1px solid #fbfbfb;
  border-top: 0;
  background: #fff;
  color: #000;
  -webkit-transition: all 0.5s ease;
  transition: all 0.5s ease;
}

.tabs-content.vertical {
  border: 1px solid #fbfbfb;
  border-left: 0;
}

.tabs-panel {
  display: none;
  padding: 1rem;
}

.tabs-panel.is-active {
  display: block;
}

/*
 * ------------------------------------------------------------
 * reaktTheme Specific Styling
 * ------------------------------------------------------------
*/
/*
	* Helpers – Space-top, space-bottom, text-left etc.
	*/
/*********************
BORDERS
*********************/
.border--all {
  border: 0.125rem solid #fbfbfb;
}

.border--top {
  border-top: 0.125rem solid #fbfbfb;
}

.border--bottom {
  border-bottom: 0.125rem solid #fbfbfb;
}

/*********************
TEXT ALIGNS
*********************/
.text-center {
  text-align: center;
}

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

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

/*********************
TEXT STYLES
*********************/
.text-uppercase {
  font-size: 0.625rem;
  line-height: 1.1;
  letter-spacing: 0.125rem;
  text-transform: uppercase;
}

@media print, screen and (min-width: 40em) {
  .text-uppercase {
    font-size: 0.75rem;
  }
}

.text-capital-letters {
  letter-spacing: 0.125rem;
  text-transform: uppercase;
}

.text-medium {
  font-weight: 500;
}

.text-bold {
  font-weight: 700;
}

.text-hide, .header__logo, .brand-logo {
  text-indent: 200%;
  white-space: nowrap;
  overflow: hidden;
}

/*********************
BACKGROUND IMAGE
*********************/
.bg-image {
  background-repeat: no-repeat;
  background-position: center center;
}

.bg-image--fit {
  background-size: contain;
}

.bg-image--fill {
  background-size: cover;
}

.object-fit__image {
  position: relative;
  overflow: hidden;
}

.object-fit__image:hover img {
  -webkit-transform: scale(1.15);
          transform: scale(1.15);
}

.object-fit__image img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transition-duration: .35s;
          transition-duration: .35s;
}

/*********************
BACKGROUND COLORS
*********************/
.bg-primary {
  background-color: #38D430;
}

.bg-white {
  background-color: #fff;
}

.bg-lightgray {
  background-color: #fbfbfb;
}

.bg-black {
  background-color: #000;
}

.bg-transparent {
  background-color: transparent;
}

/*********************
SPACE CLASSES
*********************/
.space {
  padding-top: 2.1875rem;
  padding-bottom: 2.1875rem;
}

@media print, screen and (min-width: 40em) {
  .space {
    padding-top: 3.125rem;
    padding-bottom: 3.4375rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  .space {
    padding-top: 3.75rem;
    padding-bottom: 4.0625rem;
  }
}

@media screen and (min-width: 81.25em) {
  .space {
    padding-top: 5rem;
    padding-bottom: 5.3125rem;
  }
}

.space.boxes {
  padding-bottom: 0;
}

@media print, screen and (min-width: 40em) {
  .space.boxes {
    padding-bottom: 0.9375rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  .space.boxes {
    padding-bottom: 1.5625rem;
  }
}

@media screen and (min-width: 81.25em) {
  .space.boxes {
    padding-bottom: 2.8125rem;
  }
}

.space--large {
  padding-top: 3.4375rem;
  padding-bottom: 3.4375rem;
}

@media print, screen and (min-width: 40em) {
  .space--large {
    padding-top: 3.75rem;
    padding-bottom: 4.0625rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  .space--large {
    padding-top: 5rem;
    padding-bottom: 5.3125rem;
  }
}

@media screen and (min-width: 105.0625em) {
  .space--large {
    padding-top: 7.5rem;
    padding-bottom: 7.8125rem;
  }
}

@media screen and (min-width: 120em) {
  .space--large {
    padding-top: 9.375rem;
    padding-bottom: 9.6875rem;
  }
}

.space--small {
  padding-top: 1.875rem;
  padding-bottom: 1.875rem;
}

@media print, screen and (min-width: 40em) {
  .space--small {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  .space--small {
    padding-top: 3.125rem;
    padding-bottom: 3.125rem;
  }
}

@media screen and (min-width: 81.25em) {
  .space--small {
    padding-top: 3.75rem;
    padding-bottom: 3.75rem;
  }
}

.no-padding-bottom {
  padding-bottom: 0;
}

.no-padding-top {
  padding-top: 0;
}

.no-margin-bottom {
  margin-bottom: 0 !important;
}

.no-margin-top {
  margin-top: 0 !important;
}

/*********************
MISC
*********************/
.image-container {
  overflow: hidden;
  border-radius: 0.3125rem;
}

@media print, screen and (max-width: 65.62375em) {
  .selling-points .row {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}

.selling-points__wrapper {
  padding: 0.3125rem 0;
  margin-bottom: 3.125rem;
}

@media print, screen and (max-width: 39.99875em) {
  .selling-points__wrapper p {
    font-size: 18px;
  }
}

@media print, screen and (min-width: 40em) {
  .selling-points__wrapper {
    padding: 0.625rem 0 1.25rem;
  }
}

.selling-points__content {
  margin: 0 auto;
  max-width: none;
}

@media print, screen and (min-width: 40em) {
  .selling-points__content {
    max-width: 50%;
  }
}

@media print, screen and (min-width: 65.625em) {
  .selling-points__content {
    padding: 1.5em;
    max-width: none;
  }
}

.full-height {
  min-height: 100vh;
}

.half-height {
  min-height: 50vh;
}

.first-section {
  margin-top: 6.25rem;
}

.bg-black {
  background-color: black;
  color: white;
}

.bg-black h1, .bg-black .h1,
.bg-black h2, .bg-black .h2 {
  color: white;
}

.vc {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.image-gallery {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

.image-gallery__image--half {
  width: 50%;
}

.image-gallery__image--full {
  width: 100%;
}

.image-gallery__inner {
  padding: .5rem;
}

.shift-one-screen-height {
  margin-top: 100vh;
}

.footer-slant {
  position: relative;
}

.footer-slant:before {
  content: "";
  position: absolute;
  top: 0px;
  left: 0;
  height: 100px;
  width: 100%;
  background: #fbfbfb;
  -webkit-transform-origin: top left;
          transform-origin: top left;
  -webkit-transform: skewY(-2deg);
          transform: skewY(-2deg);
}

.slanted {
  position: relative;
  margin-top: 100px;
}

.slanted:before {
  content: "";
  position: absolute;
  top: -100px;
  left: 0;
  height: 100px;
  width: 100%;
  background: #000;
  -webkit-transform-origin: top left;
          transform-origin: top left;
  -webkit-transform: skewY(4deg);
          transform: skewY(4deg);
}

.slanted--gray:before {
  background: #fbfbfb;
}

.slanted.shift-one-screen-height {
  margin-top: calc(100vh + 100px);
}

/*
	* Typography
	*/
/*********************
LINK STYLES
*********************/
a {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  -webkit-transition: color ease-in-out 0.2s;
  transition: color ease-in-out 0.2s;
}

a:link {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0.3);
}

.link-styling, .lwa .lwa-links-remember {
  display: inline-block;
  background-image: -webkit-gradient(linear, left top, right top, from(#38D430), to(#38D430));
  background-image: linear-gradient(to right, #38D430 0%, #38D430 100%);
  background-repeat: no-repeat;
  background-size: 0% 0.125rem;
  background-position: left bottom;
  -webkit-transition: background-size 0.55s cubic-bezier(0.2, 0.75, 0.5, 1), color 0.5s ease;
  transition: background-size 0.55s cubic-bezier(0.2, 0.75, 0.5, 1), color 0.5s ease;
}

.link-styling:hover, .lwa .lwa-links-remember:hover {
  background-size: 100% 0.125rem;
}

/*********************
TYPOGRAPHY STYLES
*********************/
strong,
b {
  font-weight: 700;
}

.brixton-lead, h1, .h1, h2, .h2, h3, .h3, .menu--offcanvas .menu__item .menu__link {
  font-family: "DINPro-Bold", "Impact", "Arial Black", "Helvetica", "Arial", sans-serif !important;
  font-weight: 400;
  letter-spacing: 0.15rem;
}

.body-font {
  font-family: "DINPro", "Helvetica Neue", "Roboto", "Helvetica", "Arial", sans-serif !important;
  letter-spacing: 0;
  font-weight: 500;
}

h1, .h1,
h2, .h2,
h3, .h3, .menu--offcanvas .menu__item .menu__link,
h4, .h4,
h5, .h5,
h6, .h6 {
  margin: 0 0 0.9375rem;
  line-height: 1.25;
  font-weight: 500;
  letter-spacing: -.03em;
}

h1.black, .h1.black, h2.black, .h2.black, h3.black, .h3.black, .menu--offcanvas .menu__item .black.menu__link, h4.black, .h4.black, h5.black, .h5.black, h6.black, .h6.black {
  font-family: 'DINPro-Black' !important;
}

@media print, screen and (min-width: 65.625em) {
  h1, .h1,
  h2, .h2,
  h3, .h3, .menu--offcanvas .menu__item .menu__link,
  h4, .h4,
  h5, .h5,
  h6, .h6 {
    margin: 0 0 1.5625rem;
  }
}

h1 a, .h1 a, h2 a, .h2 a, h3 a, .h3 a, .menu--offcanvas .menu__item .menu__link a, h4 a, .h4 a, h5 a, .h5 a, h6 a, .h6 a {
  text-decoration: none;
}

h1 a:hover, .h1 a:hover, h2 a:hover, .h2 a:hover, h3 a:hover, .h3 a:hover, .menu--offcanvas .menu__item .menu__link a:hover, h4 a:hover, .h4 a:hover, h5 a:hover, .h5 a:hover, h6 a:hover, .h6 a:hover {
  color: #000;
}

@media print, screen and (max-width: 39.99875em) {
  h1 br, .h1 br, h2 br, .h2 br, h3 br, .h3 br, .menu--offcanvas .menu__item .menu__link br, h4 br, .h4 br, h5 br, .h5 br, h6 br, .h6 br {
    display: none;
  }
}

h1, .h1 {
  color: #000;
  font-size: 2.5rem;
  line-height: 1;
}

@media print, screen and (min-width: 40em) {
  h1, .h1 {
    font-size: 5rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  h1, .h1 {
    font-size: 5.625rem;
    line-height: 1.1;
  }
}

@media screen and (min-width: 81.25em) {
  h1, .h1 {
    font-size: 6.25rem;
    line-height: 1.1;
  }
}

@media screen and (min-width: 93.75em) {
  h1, .h1 {
    font-size: 7.5rem;
    line-height: 1.1;
  }
}

h1.body-font, .h1.body-font {
  font-size: 2.25rem;
}

@media print, screen and (min-width: 40em) {
  h1.body-font, .h1.body-font {
    font-size: 2.8125rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  h1.body-font, .h1.body-font {
    font-size: 3.125rem;
    line-height: 1.1;
  }
}

@media screen and (min-width: 81.25em) {
  h1.body-font, .h1.body-font {
    font-size: 3.75rem;
    line-height: 1.1;
  }
}

h2, .h2 {
  color: #000;
  font-size: 2rem;
}

@media print, screen and (min-width: 40em) {
  h2, .h2 {
    font-size: 3.25rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  h2, .h2 {
    font-size: 4.125rem;
    line-height: 1.1;
  }
}

h2.body-font, .h2.body-font {
  font-size: 1.875rem;
}

@media print, screen and (min-width: 40em) {
  h2.body-font, .h2.body-font {
    font-size: 2.375rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  h2.body-font, .h2.body-font {
    font-size: 2.875rem;
  }
}

h3, .h3, .menu--offcanvas .menu__item .menu__link {
  font-size: 1.625rem;
  color: #000;
}

@media print, screen and (min-width: 65.625em) {
  h3, .h3, .menu--offcanvas .menu__item .menu__link {
    font-size: 2.625rem;
    margin: 0 0 1.5625rem;
  }
}

h3.body-font, .h3.body-font, .menu--offcanvas .menu__item .body-font.menu__link {
  font-size: 1.5rem;
}

@media print, screen and (min-width: 65.625em) {
  h3.body-font, .h3.body-font, .menu--offcanvas .menu__item .body-font.menu__link {
    font-size: 2.25rem;
  }
}

h4, .h4 {
  font-family: "DINPro", "Helvetica Neue", "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 1.0625rem;
  margin: 0 0 0.625rem;
}

@media print, screen and (min-width: 65.625em) {
  h4, .h4 {
    font-size: 1.5rem;
  }
}

h4.brixton-lead, h4.h1, h4.h2, h4.h3, .menu--offcanvas .menu__item h4.menu__link, .h4.brixton-lead, h1.h4, .h4.h1, h2.h4, .h4.h2, h3.h4, .h4.h3, .menu--offcanvas .menu__item .h4.menu__link {
  font-size: 1.3125rem;
}

@media print, screen and (min-width: 65.625em) {
  h4.brixton-lead, h4.h1, h4.h2, h4.h3, .menu--offcanvas .menu__item h4.menu__link, .h4.brixton-lead, h1.h4, .h4.h1, h2.h4, .h4.h2, h3.h4, .h4.h3, .menu--offcanvas .menu__item .h4.menu__link {
    font-size: 1.75rem;
  }
}

h5, .h5 {
  font-family: "DINPro", "Helvetica Neue", "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 0.875rem;
  margin: 0 0 0.625rem;
}

@media print, screen and (min-width: 65.625em) {
  h5, .h5 {
    font-size: 1.125rem;
  }
}

h5.brixton-lead, h5.h1, h5.h2, h5.h3, .menu--offcanvas .menu__item h5.menu__link, .h5.brixton-lead, h1.h5, .h5.h1, h2.h5, .h5.h2, h3.h5, .h5.h3, .menu--offcanvas .menu__item .h5.menu__link {
  font-size: 1.125rem;
}

@media print, screen and (min-width: 65.625em) {
  h5.brixton-lead, h5.h1, h5.h2, h5.h3, .menu--offcanvas .menu__item h5.menu__link, .h5.brixton-lead, h1.h5, .h5.h1, h2.h5, .h5.h2, h3.h5, .h5.h3, .menu--offcanvas .menu__item .h5.menu__link {
    font-size: 1.5rem;
  }
}

h6, .h6 {
  font-family: "DINPro", "Helvetica Neue", "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 0.75rem;
  margin: 0 0 0.625rem;
}

@media print, screen and (min-width: 65.625em) {
  h6, .h6 {
    font-size: 1rem;
  }
}

p, ul li, ol li,
.text-default {
  font-family: "DINPro", "Helvetica Neue", "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 0.875rem;
  line-height: 1.6;
  margin: 0 0 0.9375rem;
}

@media print, screen and (min-width: 40em) {
  p, ul li, ol li,
  .text-default {
    font-size: 0.9375rem;
    letter-spacing: -0.015rem;
    line-height: 1.8;
  }
}

@media print, screen and (min-width: 65.625em) {
  p, ul li, ol li,
  .text-default {
    font-size: 1.125rem;
    letter-spacing: -0.01rem;
  }
}

ul li, ol li {
  line-height: 1.25;
  margin: 0.625rem 0;
}

.text-large, .alternating-grid__content p {
  font-size: 0.9375rem;
  line-height: 1.5;
  font-weight: 400;
  margin: 0 0 0.9375rem;
}

@media print, screen and (min-width: 40em) {
  .text-large, .alternating-grid__content p {
    font-size: 1.125rem;
    line-height: 1.7;
    margin: 0 0 1.25rem;
  }
}

@media screen and (min-width: 81.25em) {
  .text-large, .alternating-grid__content p {
    font-size: 1.25rem;
    margin: 0 0 1.5625rem;
  }
}

.text-large a, .alternating-grid__content p a {
  font-weight: 500;
  color: #38D430;
  -webkit-transition: color ease-in-out 0.2s;
  transition: color ease-in-out 0.2s;
}

.text-large a:hover, .alternating-grid__content p a:hover {
  color: #000;
}

.text-small, .boxes__text p {
  font-family: "DINPro", "Helvetica Neue", "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 0.9375rem;
  line-height: 1.6;
  margin: 0 0 0.9375rem;
}

@media print, screen and (min-width: 65.625em) {
  .text-small, .boxes__text p {
    font-size: 0.875rem;
    line-height: 1.8;
  }
}

.text-outline {
  -webkit-text-stroke-width: 0.02em;
  -webkit-text-stroke-color: inherit;
  -webkit-text-fill-color: rgba(0, 0, 0, 0);
}

h2 .text-outline {
  -webkit-text-stroke-width: 0.03em;
}

.heading-divider {
  position: relative;
}

.heading-divider:after {
  content: '';
  display: block;
  width: 2.5rem;
  height: 0.1875rem;
  margin: 1.875rem auto;
  background-color: #38D430;
}

.heading-divider--large:after {
  width: 3.125rem;
  margin: 3.125rem auto 4.375rem;
}

.text-highlight {
  background-color: #000;
  -webkit-box-shadow: 0.2em 0 0 #000, -0.2em 0 0 #000;
          box-shadow: 0.2em 0 0 #000, -0.2em 0 0 #000;
  color: #fff !important;
  display: inline;
  padding: .12em 0 .18em;
  margin: 0 1em 0 0;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  bottom: 0.375rem;
  position: relative;
}

.text-highlight.brixton-lead, h1.text-highlight, .text-highlight.h1, h2.text-highlight, .text-highlight.h2, h3.text-highlight, .text-highlight.h3, .menu--offcanvas .menu__item .text-highlight.menu__link {
  padding: .12em 0 .2em .2em;
  left: .2em;
}

/*********************
TEXT COLORS
*********************/
.text-white {
  color: #fff;
}

.text-black {
  color: #000;
}

.text-primary {
  color: #38D430;
}

blockquote {
  padding: .12em 0 .18em;
  margin: 0 1em 0 0;
  position: relative;
  font-size: 1.25rem;
  max-width: 94%;
  display: block;
  margin: .5rem auto;
  text-align: center;
  border-left: none;
  background: rgba(0, 0, 0, 0.02);
  border-radius: 10px;
  padding: 1.2rem 1rem;
}

@media print, screen and (min-width: 40em) {
  blockquote {
    max-width: 85%;
  }
}

@media print, screen and (min-width: 65.625em) {
  blockquote {
    max-width: 75%;
  }
}

blockquote p {
  font-size: 1rem;
  margin: 0;
}

@media print, screen and (min-width: 40em) {
  blockquote p {
    font-size: 1.15rem;
  }
}

h1.hero__heading {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 90vw;
  -webkit-transform: translateX(-50%) translateY(-50%);
          transform: translateX(-50%) translateY(-50%);
  display: inline-block;
  padding: 0;
  text-transform: uppercase;
  font-family: 'DINPro-Black' !important;
  font-weight: 900 !important;
  letter-spacing: -.005em;
  line-height: 1.7;
}

h1.hero__heading span {
  background-color: #38D430;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  padding: .1em;
}

.Typewriter__cursor {
  margin-left: 0px !important;
  display: none;
}

.inline-smiley {
  display: inline-block;
  position: relative;
  padding-right: .3em;
}

.inline-smiley .smiley {
  content: "";
  position: absolute;
  top: .23em;
  right: -2px;
  width: .3em;
  height: .3em;
}

.inline-smiley .smiley svg {
  max-width: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.inline-smiley .smiley #smiley-logo {
  fill: white;
}

.text-upper {
  text-transform: uppercase;
}

.heading-icon {
  max-width: 100px;
  margin: 0;
  padding: 0rem 0 1rem;
}

@media print, screen and (min-width: 65.625em) {
  .heading-icon {
    padding: 3rem 0 4rem;
  }
}

.case__content h2, .case__content .h2,
.case__content h3, .case__content .h3, .case__content .menu--offcanvas .menu__item .menu__link, .menu--offcanvas .menu__item .case__content .menu__link {
  margin-bottom: .25em;
}

.footer a.social-link {
  margin: 0 10px;
  width: 40px;
  height: 40px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  background: white;
  border-radius: 50%;
  text-decoration: none;
  color: #000;
  -webkit-transition: .15s ease-out all;
  transition: .15s ease-out all;
}

.footer a.social-link:hover {
  text-decoration: none;
  -webkit-box-shadow: 0 0 0 2px #38D430;
          box-shadow: 0 0 0 2px #38D430;
}

.footer a.social-link:hover:after {
  display: none;
}

/*
	* Animations – @keyframe type animation classes.
	*/
.emerge[data-emergence=hidden] {
  opacity: 0;
  -webkit-transform: translateY(-60px);
          transform: translateY(-60px);
  -webkit-transition: all 0.85s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: all 0.85s cubic-bezier(0.165, 0.84, 0.44, 1);
  /* easeOutQuart */
}

.emerge[data-emergence=visible] {
  opacity: 1;
  -webkit-transform: translateY(0px);
          transform: translateY(0px);
  -webkit-transition: all 0.85s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: all 0.85s cubic-bezier(0.165, 0.84, 0.44, 1);
  /* easeOutQuart */
}

.accordion-column {
  margin-bottom: 2.5rem;
}

@media print, screen and (min-width: 65.625em) {
  .accordion-column {
    margin-bottom: 4.0625rem;
  }
}

.accordion-column:last-child {
  margin-bottom: 0;
}

.accordion__item {
  position: relative;
  -webkit-transition: -webkit-box-shadow ease-in-out 0.2s;
  transition: -webkit-box-shadow ease-in-out 0.2s;
  transition: box-shadow ease-in-out 0.2s;
  transition: box-shadow ease-in-out 0.2s, -webkit-box-shadow ease-in-out 0.2s;
  border-radius: 0.625rem;
}

@media print, screen and (max-width: 65.62375em) {
  .accordion__item .accordion__icon {
    height: 1.25rem;
    width: 1.25rem;
  }
}

.accordion__item .accordion__icon__fill {
  fill: #e8e5da;
}

.accordion__item .accordion__icon .line-horizontal {
  -webkit-transform-origin: center;
          transform-origin: center;
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
  -webkit-transition: -webkit-transform linear .15s;
  transition: -webkit-transform linear .15s;
  transition: transform linear .15s;
  transition: transform linear .15s, -webkit-transform linear .15s;
}

.accordion__item.is-active {
  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.14), 0 -6px 40px rgba(0, 0, 0, 0.08), 0 -12px 40px rgba(0, 0, 0, 0.02);
          box-shadow: 0 1px 4px rgba(0, 0, 0, 0.14), 0 -6px 40px rgba(0, 0, 0, 0.08), 0 -12px 40px rgba(0, 0, 0, 0.02);
  z-index: 5;
}

.accordion__item.is-active .accordion-title {
  margin-bottom: 0.5rem;
}

.accordion__item.is-active .accordion__icon .line-horizontal {
  -webkit-transform: rotate(-90deg);
          transform: rotate(-90deg);
}

.accordion__item:hover {
  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.14), 0 -6px 40px rgba(0, 0, 0, 0.08), 0 -12px 40px rgba(0, 0, 0, 0.02);
          box-shadow: 0 1px 4px rgba(0, 0, 0, 0.14), 0 -6px 40px rgba(0, 0, 0, 0.08), 0 -12px 40px rgba(0, 0, 0, 0.02);
  z-index: 5;
}

.accordion__item:hover .accordion-inner {
  border-top-color: transparent !important;
  border-bottom-color: transparent !important;
}

.accordion-inner {
  background-color: #fff;
  border-radius: 0.625rem;
  margin-bottom: 1.25rem;
  padding: 0.625rem 1.125rem;
  position: relative;
  z-index: 3;
}

.is-active .accordion-inner {
  border-color: transparent !important;
}

@media print, screen and (min-width: 40em) {
  .accordion-inner {
    padding: 1rem 1.5rem;
  }
}

.accordion-content {
  display: none;
}

.accordion-content__inner {
  padding-bottom: 0.5rem;
}

.accordion-content__inner p:last-child {
  margin-bottom: 0;
}

.accordion-title {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  font-weight: 500;
  padding: 0.625rem 0 0.75rem;
  margin-bottom: 0;
  -webkit-transition: margin ease-in-out 0.2s;
  transition: margin ease-in-out 0.2s;
}

.accordion-title:before {
  color: #38D430;
  font-size: 1.125rem;
  position: absolute;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.accordion-title h3 {
  margin: 0;
}

.accordion--preview .accordion-column .accordion__item {
  -webkit-transition-duration: 0.25s;
          transition-duration: 0.25s;
}

.accordion--preview .accordion-column .accordion__item:not(.is-active) {
  max-height: 0;
  overflow: hidden;
}

.accordion--preview .accordion-column .accordion__item:not(.is-active):nth-child(1), .accordion--preview .accordion-column .accordion__item:not(.is-active):nth-child(2), .accordion--preview .accordion-column .accordion__item:not(.is-active):nth-child(3) {
  max-height: 999rem;
}

/*
	* Fonts
	*/
@font-face {
  font-family: 'DINPro';
  src: url("../fonts/DINPro-Regular.woff2") format("woff2"), url("../fonts/DINPro-Regular.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

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

@font-face {
  font-family: 'DINPro-Black';
  src: url("../fonts/DINPro-Black.woff2") format("woff2"), url("../fonts/DINPro-Black.woff") format("woff");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

/*
	* Glyphs
	* icon-fonts
	*/
.bg-video {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  z-index: -1;
}

.bg-video #player {
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: -2;
}

.bg-video .overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 1;
}

.symbols {
  margin-bottom: 3.125rem;
}

@media print, screen and (min-width: 40em) {
  .symbols {
    margin-bottom: 5.625rem;
  }
}

.symbols__row {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border-top: 0.125rem solid #fbfbfb;
  border-bottom: 0.125rem solid #fbfbfb;
}

.symbols__wrapper {
  padding: 1.125rem 1.875rem 1.25rem;
}

@media print, screen and (min-width: 40em) {
  .symbols__wrapper {
    padding: 1.125rem 2.5rem 1.25rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  .symbols__wrapper {
    padding: 0 2.5rem 0;
  }
}

.symbols__symbol__wrapper {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: #38D430;
  padding: 1.3125rem 0.9375rem 1.4375rem;
  border-radius: 12.5rem;
  height: 5.375rem;
  width: 5.375rem;
  -webkit-transition: .3s ease background;
  transition: .3s ease background;
}

@media print, screen and (min-width: 40em) {
  .symbols__symbol__wrapper {
    height: 6.25rem;
    width: 6.25rem;
    padding: 1.5625rem 1.375rem 1.6875rem;
  }
}

.symbols__link .symbols__symbol__wrapper:hover, .symbols__link .symbols__symbol__wrapper:focus {
  background: #61dd5a;
}

.symbols__symbol {
  width: 100%;
  height: 100%;
}

.symbols__text {
  font-size: 0.8125rem;
  text-align: center;
  margin-top: 1.25rem;
  max-width: 5.375rem;
  letter-spacing: -0.03125rem;
}

@media print, screen and (min-width: 40em) {
  .symbols__text {
    max-width: 6.25rem;
    font-size: 0.875rem;
  }
}

/*
	* Buttons
	*/
/**
* Buttons
*/
.button, input[type="submit"],
a.button,
button.button,
input.button,
input[type="submit"],
#respond input#submit {
  cursor: pointer;
  font-family: "DINPro-Bold", "Impact", "Arial Black", "Helvetica", "Arial", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  text-align: center;
  line-height: 1;
  color: #fff;
  background-color: #38D430;
  display: inline-block;
  position: relative;
  overflow: visible;
  padding: 0.625rem 1.25rem 0.6875rem;
  border: 0.125rem solid transparent;
  -webkit-box-shadow: none;
          box-shadow: none;
  text-shadow: none;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .05em;
  -webkit-transition: all ease-in-out 0.2s;
  transition: all ease-in-out 0.2s;
}

@media print, screen and (min-width: 65.625em) {
  .button, input[type="submit"],
  a.button,
  button.button,
  input.button,
  input[type="submit"],
  #respond input#submit {
    padding: 1.125rem 2rem 1.25rem;
    font-size: 1rem;
    margin-right: 1.125rem;
  }
}

.button--full,
a.button--full,
button.button--full,
input.button--full,
#respond input#submit--full {
  width: 100%;
  display: block;
}

.button:hover, input:hover[type="submit"], .button:focus, input:focus[type="submit"],
a.button:hover,
a.button:focus,
button.button:hover,
button.button:focus,
input.button:hover,
input:hover[type="submit"],
input.button:focus,
input:focus[type="submit"],
#respond input#submit:hover,
#respond input#submit:focus {
  background-color: #000;
  text-decoration: none;
  background-image: none;
  color: #fff;
  outline: none;
  -webkit-box-shadow: 0 20px 38px rgba(0, 0, 0, 0.16);
          box-shadow: 0 20px 38px rgba(0, 0, 0, 0.16);
  -webkit-transform: translateY(-3px);
          transform: translateY(-3px);
}

.top-section .button, .top-section input[type="submit"], .top-section a.button, .top-section button.button, .top-section input.button, .top-section input[type="submit"], .top-section
#respond input#submit {
  background-color: #fff;
  border-color: #fff;
  color: #000;
}

.top-section .button:hover, .top-section input:hover[type="submit"], .top-section .button:focus, .top-section input:focus[type="submit"], .top-section a.button:hover, .top-section a.button:focus, .top-section button.button:hover, .top-section button.button:focus, .top-section input.button:hover, .top-section input:hover[type="submit"], .top-section input.button:focus, .top-section input:focus[type="submit"], .top-section
#respond input#submit:hover, .top-section
#respond input#submit:focus {
  background-color: #fff;
  border-color: #fff;
  color: #000;
}

.button--hollow,
a.button--hollow,
button.button--hollow,
input.button--hollow,
#respond input#submit--hollow {
  background-color: transparent;
  border: 0.1875rem solid #38D430;
  color: #38D430;
}

.button--hollow:hover, .button--hollow:focus,
a.button--hollow:hover,
a.button--hollow:focus,
button.button--hollow:hover,
button.button--hollow:focus,
input.button--hollow:hover,
input.button--hollow:focus,
#respond input#submit--hollow:hover,
#respond input#submit--hollow:focus {
  background-color: #38D430;
  border-color: #38D430;
  color: #fff;
}

.top-section .button--hollow, .top-section
a.button--hollow, .top-section
button.button--hollow, .top-section
input.button--hollow, .top-section
#respond input#submit--hollow {
  background-color: transparent;
  border: 0.1875rem solid white;
  color: white;
}

.top-section .button--hollow:hover, .top-section .button--hollow:focus, .top-section
a.button--hollow:hover, .top-section
a.button--hollow:focus, .top-section
button.button--hollow:hover, .top-section
button.button--hollow:focus, .top-section
input.button--hollow:hover, .top-section
input.button--hollow:focus, .top-section
#respond input#submit--hollow:hover, .top-section
#respond input#submit--hollow:focus {
  background-color: white;
  border-color: white;
  color: #000;
}

.button--inline,
a.button--inline,
button.button--inline,
input.button--inline,
#respond input#submit--inline {
  border-radius: 0.1875rem !important;
}

@media print, screen and (min-width: 40em) {
  .button--inline,
  a.button--inline,
  button.button--inline,
  input.button--inline,
  #respond input#submit--inline {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    height: 2.9375rem;
    margin-left: -0.625rem;
  }
}

.button--small,
a.button--small,
button.button--small,
input.button--small,
#respond input#submit--small {
  font-size: 0.8125rem;
  padding: 0.5rem 1.125rem;
}

.button:disabled, input:disabled[type="submit"], .button.disabled, input.disabled[type="submit"], .button:disabled[disabled], input:disabled[disabled][type="submit"],
a.button:disabled,
a.button.disabled,
a.button:disabled[disabled],
button.button:disabled,
button.button.disabled,
button.button:disabled[disabled],
input.button:disabled,
input:disabled[type="submit"],
input.button.disabled,
input.disabled[type="submit"],
input.button:disabled[disabled],
input:disabled[disabled][type="submit"],
#respond input#submit:disabled,
#respond input#submit.disabled,
#respond input#submit:disabled[disabled] {
  background-color: #e8e5da;
  color: inherit;
  cursor: not-allowed;
  opacity: 0.5;
}

.button:disabled:hover, input:disabled:hover[type="submit"], .button.disabled:hover, input.disabled:hover[type="submit"], .button:disabled[disabled]:hover, input:disabled[disabled]:hover[type="submit"],
a.button:disabled:hover,
a.button.disabled:hover,
a.button:disabled[disabled]:hover,
button.button:disabled:hover,
button.button.disabled:hover,
button.button:disabled[disabled]:hover,
input.button:disabled:hover,
input:disabled:hover[type="submit"],
input.button.disabled:hover,
input.disabled:hover[type="submit"],
input.button:disabled[disabled]:hover,
input:disabled[disabled]:hover[type="submit"],
#respond input#submit:disabled:hover,
#respond input#submit.disabled:hover,
#respond input#submit:disabled[disabled]:hover {
  background-color: #e8e5da;
}

.action-container {
  display: block;
  text-align: center;
  padding: 4rem 0 2rem;
  width: 100%;
}

/*
	* Navigation
	*/
/*********************
DESKTOP MENU STYLING
*********************/
.menu {
  list-style: none;
}

.menu--main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

@media print, screen and (max-width: 39.99875em) {
  .menu--main .menu__item {
    margin: 0;
  }
}

@media print, screen and (max-width: 39.99875em) {
  .menu--main .wpml-ls-flag {
    display: none;
  }
}

.menu__item {
  position: relative;
  display: inline-block;
  list-style: none;
  margin: 0 1rem;
}

.menu__link {
  font-size: 0.875rem;
  font-weight: 500;
  margin: 0;
  outline: 0 !important;
}

@media print, screen and (min-width: 40em) {
  .menu__link {
    font-size: 1rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  .menu__link {
    font-size: 1.125rem;
  }
}

@media print, screen and (max-width: 39.99875em) {
  .menu__link {
    white-space: nowrap;
    text-align: right;
  }
}

/*********************
DESKTOP DROPDOWN MENU
*********************/
@media print, screen and (min-width: 65.625em) {
  .menu--main .menu__item.has-children:hover .sub__menu {
    display: block;
    z-index: 10;
  }
}

@media print, screen and (min-width: 65.625em) {
  .menu--main .sub__menu {
    display: none;
    position: absolute;
    white-space: nowrap;
    max-width: 18.75rem;
    min-width: 11.25rem;
    margin: 0;
    padding: 0.875rem 0.1875rem 0.875rem 0;
    top: 2.875rem;
    -webkit-transform: translate(-50%, 0);
            transform: translate(-50%, 0);
    left: 50%;
    background-color: #fff;
    text-align: left;
    -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.14), 0 -8px 40px rgba(0, 0, 0, 0.08), 0 -18px 40px rgba(0, 0, 0, 0.02);
            box-shadow: 0 1px 4px rgba(0, 0, 0, 0.14), 0 -8px 40px rgba(0, 0, 0, 0.08), 0 -18px 40px rgba(0, 0, 0, 0.02);
  }
  .menu--main .sub__menu:before {
    content: "";
    display: block;
    position: absolute;
    background-color: #ffffff;
    width: 1.125rem;
    height: 1.125rem;
    top: -2px;
    left: 0;
    right: 0;
    margin: 0 auto;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  .menu--main .sub__menu .menu__item {
    display: block;
    width: 100%;
    padding: 0.1875rem 0.625rem;
    border-top: none !important;
    border-left: 3px solid transparent;
  }
  .state--scrolled .menu--main .sub__menu .menu__item {
    padding: 0.1875rem 1.0625rem;
  }
  .menu--main .sub__menu .menu__item.is-active {
    border-top: none !important;
  }
}

/*********************
MOBILE MENU STYLING
*********************/
.menu-toggle {
  outline: none;
  position: relative;
  z-index: 2;
  width: 2.5rem;
  height: 2.5rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-transition: all ease 0.3s;
  transition: all ease 0.3s;
}

.hamburger {
  position: relative;
  display: block;
  height: 2.5rem;
  width: 2.5rem;
  top: -0.25rem;
  background-color: #38D430;
  padding: 0;
  margin: 0;
  cursor: pointer;
  -webkit-transition: .15s ease-out all;
  transition: .15s ease-out all;
}

.hamburger:hover {
  background-color: #259820;
}

.hamburger__bar {
  display: block;
  background-color: #000;
  width: calc(70% - 1px);
  height: 0.3125rem;
  position: absolute;
  left: calc(15% + 1px);
  right: 0;
  cursor: pointer;
  -webkit-transition: top 0.3s ease, opacity 0.3s ease, -webkit-transform 0.3s ease;
  transition: top 0.3s ease, opacity 0.3s ease, -webkit-transform 0.3s ease;
  transition: top 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
  transition: top 0.3s ease, opacity 0.3s ease, transform 0.3s ease, -webkit-transform 0.3s ease;
}

.hamburger__bar:nth-of-type(1) {
  top: 0.5625rem;
}

.hamburger__bar:nth-of-type(2) {
  top: 1.0625rem;
  opacity: 1;
}

.hamburger__bar:nth-of-type(3) {
  top: 1.5625rem;
}

.header__main--inverted .hamburger__bar {
  background-color: #fff;
}

.state--scrolled .header__main--inverted .hamburger__bar {
  background-color: #fff;
}

.menu-toggle[aria-expanded="true"] .hamburger__bar {
  -webkit-transition: top opacity transform;
  transition: top opacity transform;
}

.menu-toggle[aria-expanded="true"] .hamburger__bar:nth-of-type(2) {
  opacity: 0;
}

.menu-toggle[aria-expanded="true"] .hamburger__bar:nth-of-type(1) {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  top: 16px;
}

.menu-toggle[aria-expanded="true"] .hamburger__bar:nth-of-type(3) {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  top: 16px;
}

/*********************
OFF-CANVAS STYLING
*********************/
.off-canvas {
  opacity: 0;
  text-align: center;
  -webkit-transition: .5s ease-out opacity;
  transition: .5s ease-out opacity;
}

.off-canvas.is-open {
  opacity: 1;
  width: 100%;
}

.off-canvas .menu__item {
  display: inline-block;
  width: 100%;
  margin: 0;
}

.off-canvas .menu__link {
  border-bottom: 0;
  border-left: 0 solid transparent;
}

@media print, screen and (max-width: 65.62375em) {
  .off-canvas__container {
    padding: 0;
  }
}

.off-canvas__inner {
  padding: 1.5625rem;
  height: 100%;
}

@media print, screen and (min-width: 65.625em) {
  .off-canvas__inner {
    padding: 3.125rem;
  }
}

.off-canvas.is-open .menu__item {
  -webkit-transform: translateY(0);
          transform: translateY(0);
  opacity: 1;
}

.off-canvas.is-open .menu__item:nth-child(1) {
  -webkit-transition-delay: .1s;
          transition-delay: .1s;
}

.off-canvas.is-open .menu__item:nth-child(2) {
  -webkit-transition-delay: .2s;
          transition-delay: .2s;
}

.off-canvas.is-open .menu__item:nth-child(3) {
  -webkit-transition-delay: .3s;
          transition-delay: .3s;
}

.off-canvas.is-open .menu__item:nth-child(4) {
  -webkit-transition-delay: .4s;
          transition-delay: .4s;
}

.off-canvas.is-open .menu__item:nth-child(5) {
  -webkit-transition-delay: .5s;
          transition-delay: .5s;
}

.off-canvas.is-open .menu__item:nth-child(6) {
  -webkit-transition-delay: .6s;
          transition-delay: .6s;
}

.menu--offcanvas .menu__item {
  position: relative;
  text-align: left;
  -webkit-transform: translateY(-15px);
          transform: translateY(-15px);
  opacity: 0;
  -webkit-transition: all 0.55s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: all 0.55s cubic-bezier(0.165, 0.84, 0.44, 1);
  /* easeOutQuart */
}

.menu--offcanvas .menu__item.has-children:after {
  content: "";
  background: url("../images/icons/arrow-down-white.svg") no-repeat center;
  position: absolute;
  top: 0;
  right: 0;
  display: inline-block;
  font-family: "DINPro", "Helvetica Neue", "Roboto", "Helvetica", "Arial", sans-serif;
  height: 35px;
  width: 35px;
  line-height: 2.125rem;
  font-size: 1.875rem;
  text-align: center;
  color: #000;
  margin-left: 5px;
  cursor: pointer;
  z-index: -1;
}

.menu--offcanvas .menu__item.has-children.is-open:after {
  content: "";
  background: url("../images/icons/arrow-up-white.svg") no-repeat center;
}

.menu--offcanvas .menu__item .menu__link {
  display: inline-block;
  position: relative;
  width: auto;
  padding: 0.625rem 0;
  margin: 0.625rem 0;
  color: #fff;
  font-weight: 700;
  -webkit-transition: all 0.55s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: all 0.55s cubic-bezier(0.165, 0.84, 0.44, 1);
  /* easeOutQuart */
}

.menu--offcanvas .menu__item .menu__link:after {
  z-index: -1;
  content: "";
  position: absolute;
  top: 0;
  left: -5%;
  width: 0;
  height: 100%;
  background: #38D430;
  border: 0 !important;
  -webkit-transition: all 0.55s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: all 0.55s cubic-bezier(0.165, 0.84, 0.44, 1);
  opacity: 0;
}

.menu--offcanvas .menu__item .menu__link:after:focus {
  opacity: 0;
}

.menu--offcanvas .menu__item .menu__link:focus:hover:after, .menu--offcanvas .menu__item .menu__link:hover:after {
  opacity: 1;
  width: calc(110%);
}

.menu--offcanvas .menu__item .menu__link .wpml-ls-native {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-size: 0.9375rem;
  margin-top: 1.25rem;
  top: -3px;
  position: relative;
}

@media print, screen and (min-width: 65.625em) {
  .menu--offcanvas .menu__item .menu__link .wpml-ls-native {
    font-size: 1.25rem;
  }
}

.menu--offcanvas .menu__item .menu__link .wpml-ls-native:before {
  content: url("../images/icons/icon-language.svg");
  display: inline-block;
  margin-right: 0.625rem;
}

.menu--offcanvas .menu__item .menu,
.menu--offcanvas .menu__item .sub-menu {
  display: none;
  padding: 0.3125rem 0.625rem 0.375rem;
  margin: 0;
}

.menu--offcanvas .menu__item .menu .menu__item,
.menu--offcanvas .menu__item .sub-menu .menu__item {
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
}

.menu--offcanvas .menu__item .menu .menu__link,
.menu--offcanvas .menu__item .sub-menu .menu__link {
  display: block;
  width: 100%;
  padding: 0.3125rem 0.9375rem 0.625rem;
  font-size: 0.8125rem;
}

/*********************
PAGINATION STYLING
*********************/
.page-navigation {
  text-align: center;
  -webkit-box-flex: 2;
      -ms-flex: 2 0 auto;
          flex: 2 0 auto;
  margin-bottom: 1.25rem;
}

@media print, screen and (min-width: 40em) {
  .page-navigation {
    margin-bottom: 0;
  }
}

.page-navigation ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  white-space: nowrap;
  padding: 0;
  border-right: 0;
  margin: 1px;
}

@media print, screen and (min-width: 40em) and (max-width: 65.62375em) {
  .page-navigation ul {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
}

.page-navigation ul li {
  padding: 0;
  margin: 0 0.625rem;
  list-style: none;
}

@media print, screen and (min-width: 40em) and (max-width: 65.62375em) {
  .page-navigation ul li {
    margin: 0 0.9375rem 0 0;
  }
}

.page-navigation ul li a, .page-navigation ul li.current {
  width: 1.875rem;
  height: 1.875rem;
  border-radius: 0.4375rem;
  border: 2px solid #e2e1e1;
  text-decoration: none;
  line-height: 1;
  font-size: 0.75rem;
  font-weight: 500;
  padding: 0.4375rem 0.6875rem 0.4375rem;
  display: block;
}

@media print, screen and (min-width: 65.625em) {
  .page-navigation ul li a, .page-navigation ul li.current {
    font-size: 0.9375rem;
    width: 2.25rem;
    height: 2.0625rem;
    padding: 0.375rem 0.6875rem;
  }
}

.page-navigation ul li.current {
  border-color: #38D430;
  background-color: #38D430;
  color: #fff;
}

.page-navigation ul li span.current,
.page-navigation ul li a:hover,
.page-navigation ul li a:focus {
  color: #fff;
  background-color: #38D430;
  border-color: #38D430;
}

.page-navigation ul li:last-child, .page-navigation ul li:first-child {
  width: auto;
}

.page-navigation ul li:last-child a, .page-navigation ul li:first-child a {
  width: auto;
}

.is-logged-in {
  display: none;
}

.logged-in .is-logged-in {
  display: inline-block;
}

.logged-in .is-logged-in .menu__link {
  font-size: 1.25rem;
  margin-top: 1.25rem;
}

/*
	* Lists
	*/
/*********************
LIST ( UL, LI ) - STYLES
*********************/
.main-header ul, ul.menu {
  padding: 0;
  margin: 0;
}

.list--clean {
  list-style: none;
  text-decoration: none;
  padding: 0;
  margin: 0;
}

.list--horizontal .list__item {
  display: inline-block;
}

.image-grid {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
  .image-grid {
    max-width: 1600px;
    -ms-flex-item-align: center;
        align-self: center;
  }
}

.image-grid__content {
  position: relative;
}

.image-grid__item {
  position: relative;
  width: 50%;
}

@media print, screen and (min-width: 40em) {
  .image-grid__item {
    width: 33%;
  }
}

@media print, screen and (min-width: 65.625em) {
  .image-grid__item {
    width: 25%;
  }
}

@media screen and (min-width: 81.25em) {
  .image-grid__item {
    width: 20%;
  }
}

.image-grid__item:hover .image-grid__hover {
  opacity: 1;
}

.image-grid--large .image-grid__item {
  width: 100%;
}

@media print, screen and (min-width: 40em) {
  .image-grid--large .image-grid__item {
    width: 50%;
  }
}

@media print, screen and (min-width: 65.625em) {
  .image-grid--large .image-grid__item {
    width: 33.333333%;
  }
}

@media screen and (min-width: 81.25em) {
  .image-grid--large .image-grid__item {
    width: 33.33333%;
  }
}

.image-grid--spaced .image-grid__content {
  padding: 0;
}

@media print, screen and (min-width: 40em) {
  .image-grid--spaced .image-grid__content {
    padding: 1em;
  }
}

.image-grid--case .image-grid__hover {
  position: absolute;
  pointer-events: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  top: auto;
  bottom: 0em !important;
  left: 0;
  width: 100%;
  height: auto;
  padding-bottom: 1.5em;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0)), to(black));
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, black 100%);
  opacity: 1;
  color: white;
  -webkit-transition: .25s ease-out all;
  transition: .25s ease-out all;
}

@media print, screen and (min-width: 40em) {
  .image-grid--case .image-grid__hover {
    top: 1em;
    left: 1em;
    bottom: auto;
    width: calc(100% - 2em);
    height: calc(100% - 2em);
    padding-bottom: 0;
  }
}

@media print, screen and (min-width: 40em) {
  .image-grid--case .image-grid__hover {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    opacity: 0;
    background: #38D430;
  }
}

.image-grid--case .image-grid__hover h4 {
  display: block;
}

@media print, screen and (max-width: 39.99875em) {
  .image-grid--case .image-grid__hover h4 {
    font-size: 24px;
    margin-bottom: .2em;
  }
}

.image-grid--case .image-grid__hover h5 {
  margin: 0;
  padding: 0;
}

@media print, screen and (max-width: 39.99875em) {
  .image-grid--case .image-grid__hover h5 {
    font-size: 20px;
  }
}

.image-grid--case .image-grid__hover p {
  margin: 0;
  padding: 0;
}

@media print, screen and (max-width: 39.99875em) {
  .image-grid--case .image-grid__hover p {
    font-size: 18px;
    margin-top: 0;
  }
}

.image-grid__hover {
  position: absolute;
  top: 1em;
  left: 1em;
  bottom: auto;
  pointer-events: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: calc(100% - 2em);
  height: calc(100% - 2em);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  opacity: 0;
  background: #38D430;
  color: white;
  -webkit-transition: .25s ease-out all;
  transition: .25s ease-out all;
}

.image-grid__hover h4 {
  display: block;
}

@media print, screen and (max-width: 39.99875em) {
  .image-grid__hover h4 {
    font-size: 24px;
  }
}

.image-grid__hover h5 {
  margin: 0;
  padding: 0;
}

@media print, screen and (max-width: 39.99875em) {
  .image-grid__hover h5 {
    font-size: 20px;
  }
}

.alternating-grid__image-wrapper {
  position: relative;
}

.alternating-grid__heading {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translateX(-50%) translateY(-50%);
          transform: translateX(-50%) translateY(-50%);
  z-index: 4;
  text-align: center;
}

.alternating-grid__content {
  text-align: center;
  padding: 7rem 2rem;
}

@media print, screen and (min-width: 65.625em) {
  .alternating-grid__content {
    padding: 4rem;
  }
}

/*
	* Sliders
	*/
.half-height .carousel__cell {
  height: 50vh !important;
}

.carousel--quote, .carousel--usp, .carousel--cases, .carousel--headers {
  margin-top: 0;
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  background-color: black;
  color: white;
}

.carousel--quote__image, .carousel--usp__image, .carousel--cases__image, .carousel--headers__image {
  background-size: cover;
  background-position: center center;
}

.carousel--quote__cell, .carousel--usp__cell, .carousel--cases__cell, .carousel--headers__cell {
  width: 100%;
  height: 100vh;
  margin: 0;
  overflow: visible;
  margin: 0;
  opacity: 0.5;
  -webkit-transition: opacity .35s ease;
  transition: opacity .35s ease;
}

.carousel--quote__cell.is-selected, .carousel--usp__cell.is-selected, .carousel--cases__cell.is-selected, .carousel--headers__cell.is-selected {
  opacity: 1;
  -webkit-transform: perspective(800px) translateX(0px) rotateY(0deg) translateZ(0px);
          transform: perspective(800px) translateX(0px) rotateY(0deg) translateZ(0px);
}

.carousel--ready .carousel--quote__cell, .carousel--ready .carousel--usp__cell, .carousel--ready .carousel--cases__cell, .carousel--ready .carousel--headers__cell {
  height: 100%;
  min-height: 100%;
}

.carousel--quote__wrapper, .carousel--usp__wrapper, .carousel--cases__wrapper, .carousel--headers__wrapper {
  height: 100%;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
}

.carousel--quote__left, .carousel--quote__right, .carousel--usp__left, .carousel--usp__right, .carousel--cases__left, .carousel--cases__right, .carousel--headers__left, .carousel--headers__right {
  width: 50%;
}

.carousel--quote__left, .carousel--usp__left, .carousel--cases__left, .carousel--headers__left {
  padding: 0 3rem;
}

.carousel--quote__inner, .carousel--usp__inner, .carousel--cases__inner, .carousel--headers__inner {
  overflow: hidden;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  background-size: cover;
  background-position: center center;
}

@media print, screen and (min-width: 40em) {
  .carousel--quote__inner, .carousel--usp__inner, .carousel--cases__inner, .carousel--headers__inner {
    padding: 0;
  }
}

@media print, screen and (min-width: 65.625em) {
  .carousel--quote__inner, .carousel--usp__inner, .carousel--cases__inner, .carousel--headers__inner {
    padding: 0;
  }
}

.carousel--quote__inner *:last-child, .carousel--usp__inner *:last-child, .carousel--cases__inner *:last-child, .carousel--headers__inner *:last-child {
  margin-bottom: 0;
}

.carousel .flickity-slider {
  width: 100%;
  height: 100%;
}

.carousel .flickity-viewport {
  position: relative;
  margin-bottom: 0;
}

@media print, screen and (min-width: 40em) {
  .carousel .flickity-viewport {
    margin-bottom: 0;
  }
}

@media print, screen and (min-width: 65.625em) {
  .carousel .flickity-viewport {
    margin-bottom: 0;
  }
}

.carousel.is-draggable:focus {
  outline: none;
}

.carousel.is-draggable .flickity-viewport {
  cursor: -webkit-grab;
  cursor: grab;
}

.carousel.is-draggable .flickity-viewport.is-pointer-down {
  cursor: -webkit-grabbing;
  cursor: grabbing;
}

.visibility-overlay {
  position: absolute;
  z-index: 9;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 25vh;
  background: white;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0)), to(black));
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, black 100%);
  opacity: .9;
}

.case__heading,
.carousel--cases__heading,
.carousel--headers__heading {
  z-index: 10;
  position: absolute;
  width: 95%;
  bottom: 4rem;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  text-align: center;
}

@media print, screen and (min-width: 65.625em) {
  .case__heading,
  .carousel--cases__heading,
  .carousel--headers__heading {
    width: auto;
    text-align: left;
    bottom: 4rem;
    left: 4rem;
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}

.case__heading h2,
.carousel--cases__heading h2,
.carousel--headers__heading h2 {
  font-family: 'DINPro-Black' !important;
  text-transform: uppercase;
  color: white !important;
  line-height: 1em;
  -webkit-transition: all 500ms cubic-bezier(0.23, 1, 0.32, 1);
  transition: all 500ms cubic-bezier(0.23, 1, 0.32, 1);
  /* easeOutQuint */
  position: relative;
  font-size: 1.625rem;
}

@media print, screen and (min-width: 40em) {
  .case__heading h2,
  .carousel--cases__heading h2,
  .carousel--headers__heading h2 {
    font-size: 3.25rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  .case__heading h2,
  .carousel--cases__heading h2,
  .carousel--headers__heading h2 {
    font-size: 4.125rem;
    line-height: 1.1;
  }
}

.case__heading h2:after,
.carousel--cases__heading h2:after,
.carousel--headers__heading h2:after {
  content: "";
  position: absolute;
  height: .1em;
  width: 0;
  bottom: -.1em;
  left: -20px;
  background: white;
  opacity: 0;
  -webkit-transition: all 500ms cubic-bezier(0.23, 1, 0.32, 1);
  transition: all 500ms cubic-bezier(0.23, 1, 0.32, 1);
  /* easeOutQuint */
}

.case__heading h3,
.carousel--cases__heading h3,
.carousel--headers__heading h3 {
  font-family: 'DINPro-Bold' !important;
  text-transform: uppercase;
  color: white !important;
  line-height: 0em;
  -webkit-transition: all 500ms cubic-bezier(0.23, 1, 0.32, 1);
  transition: all 500ms cubic-bezier(0.23, 1, 0.32, 1);
  /* easeOutQuint */
  font-size: 1.25rem;
}

@media print, screen and (min-width: 40em) {
  .case__heading h3,
  .carousel--cases__heading h3,
  .carousel--headers__heading h3 {
    font-size: 2.625rem;
    margin: 0 0 1.5625rem;
  }
}

.carousel--cases__heading:hover a {
  color: white !important;
}

.carousel--cases__heading:hover h2:after {
  width: calc(100% + 40px);
  opacity: 1;
}

.carousel--cases__heading:hover h2 {
  -webkit-transform: translateX(10px);
          transform: translateX(10px);
}

.carousel--cases__heading:hover h3 {
  -webkit-transform: translateX(-10px);
          transform: translateX(-10px);
}

.flickity-button,
.flickity-button:focus,
.flickity-button:active,
.flickity-button:hover {
  background: transparent;
  color: white;
}

.flickity-button[disabled] {
  opacity: 0;
}

.flickity-prev-next-button {
  border-radius: 0;
}

.flickity-page-dots {
  position: absolute;
  top: 20%;
  left: 5%;
  list-style: none;
  text-align: center;
  line-height: 1;
  width: auto;
  height: 50px;
  text-align: left;
  padding: 0;
  margin: 0;
  counter-reset: a;
}

@media print, screen and (min-width: 40em) {
  .flickity-page-dots {
    height: 100px;
  }
}

.flickity-page-dots .dot {
  display: inline-block;
  position: relative;
  height: 2.1875rem;
  width: 2.1875rem;
  list-style: none;
  cursor: pointer;
  margin: 0 10px 0 0;
  -webkit-transition: .25s ease-out all;
  transition: .25s ease-out all;
  border-radius: 0;
  background-color: #454545;
  color: black;
  opacity: 1;
  text-align: center;
  font-family: 'DINPro-Black';
  padding: 0;
}

.flickity-page-dots .dot:after {
  content: counter(a);
  counter-increment: a;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translateX(-50%) translateY(-50%);
          transform: translateX(-50%) translateY(-50%);
  font-size: 2rem;
}

.flickity-page-dots .dot.is-selected {
  background: white;
  height: 40px;
}

.carousel--cases .flickity-page-dots,
.carousel--headers .flickity-page-dots {
  top: auto;
  left: auto;
  bottom: -15px;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

@media print, screen and (min-width: 40em) {
  .carousel--cases .flickity-page-dots,
  .carousel--headers .flickity-page-dots {
    text-align: right;
    bottom: 1rem;
    right: 5rem;
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}

.carousel--cases .flickity-page-dots .dot,
.carousel--headers .flickity-page-dots .dot {
  background: white;
  width: 15px;
  height: 15px;
}

@media print, screen and (min-width: 40em) {
  .carousel--cases .flickity-page-dots .dot,
  .carousel--headers .flickity-page-dots .dot {
    width: 25px;
    height: 25px;
  }
}

.carousel--cases .flickity-page-dots .dot.is-selected,
.carousel--headers .flickity-page-dots .dot.is-selected {
  background: #38D430;
  height: 20px;
  width: 20px;
}

@media print, screen and (min-width: 40em) {
  .carousel--cases .flickity-page-dots .dot.is-selected,
  .carousel--headers .flickity-page-dots .dot.is-selected {
    height: 35px;
    width: 35px;
  }
}

.carousel--cases .flickity-page-dots .dot:after,
.carousel--headers .flickity-page-dots .dot:after {
  display: none;
}

/*
	* Forms
	*/
/*********************
FORM STYLES
*********************/
form {
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
}

.input,
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="url"],
input[type="search"],
input[type="password"],
textarea, select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  font-family: "DINPro", "Helvetica Neue", "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 0.875rem;
  font-weight: 400;
  padding: 0.5625rem 1rem 0.625rem !important;
  margin: 0 0 0.625rem;
  border: 0.0625rem solid #cac6bd;
  border-radius: 0.1875rem;
  background-color: #fff;
  max-width: 100%;
  width: 100%;
  -webkit-box-shadow: 0 0 0px 1000px #fff inset, 0 0 0 0.0625rem rgba(56, 212, 48, 0);
          box-shadow: 0 0 0px 1000px #fff inset, 0 0 0 0.0625rem rgba(56, 212, 48, 0);
  -webkit-transition: -webkit-box-shadow ease 0.35;
  transition: -webkit-box-shadow ease 0.35;
  transition: box-shadow ease 0.35;
  transition: box-shadow ease 0.35, -webkit-box-shadow ease 0.35;
}

.input:focus,
input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="password"]:focus,
textarea:focus, select:focus {
  border-color: #38D430;
  -webkit-box-shadow: 0 0 0px 1000px #fff inset, 0 0 0 0.25rem rgba(56, 212, 48, 0.2);
          box-shadow: 0 0 0px 1000px #fff inset, 0 0 0 0.25rem rgba(56, 212, 48, 0.2);
  outline: none;
}

@media print, screen and (min-width: 65.625em) {
  .input,
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="number"],
  input[type="url"],
  input[type="search"],
  input[type="password"],
  textarea, select {
    font-size: 1rem;
    padding: 0.75rem 1rem 0.8125rem !important;
  }
}

.input.input--inline,
input[type="text"].input--inline,
input[type="email"].input--inline,
input[type="tel"].input--inline,
input[type="number"].input--inline,
input[type="url"].input--inline,
input[type="search"].input--inline,
input[type="password"].input--inline,
textarea.input--inline, select.input--inline {
  width: auto;
}

input.input--50 {
  width: 100%;
}

@media print, screen and (min-width: 40em) {
  input.input--50 {
    display: inline-block;
    width: calc(50% - 0.5rem);
  }
}

@media print, screen and (min-width: 40em) {
  input.input--50:first-child {
    margin-right: 1rem;
  }
}

input.input--33 {
  width: 100%;
}

@media print, screen and (min-width: 40em) {
  input.input--33 {
    display: inline-block;
    width: calc(33.333% - 1rem);
    margin-left: 1.5rem;
  }
}

@media print, screen and (min-width: 40em) {
  input.input--33:first-child {
    margin-left: 0;
  }
}

form label {
  display: block;
  font-family: "DINPro", "Helvetica Neue", "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  margin-bottom: 0.25rem;
}

[type="checkbox"] {
  cursor: pointer;
  appearance: button;
  -moz-appearance: button;
  /* Firefox */
  -webkit-appearance: button;
  /* Safari and Chrome */
  border: 1px solid rgba(56, 212, 48, 0.5);
  border-radius: 2px;
  position: relative;
  top: 0.25rem;
  background-color: transparent;
  height: 1.125rem;
  width: 1.125rem;
}

[type="checkbox"]:hover {
  border-color: #38D430;
}

[type="checkbox"]:focus {
  outline: none;
}

[type="checkbox"]:checked {
  -webkit-filter: grayscale(100%);
  border-color: #38D430;
  background: url("../images/icons/check-primary.svg") no-repeat center;
  background-size: 0.875rem;
}

[type="checkbox"] + label,
[type="checkbox"] + span {
  display: inline;
  padding-left: 0.5rem;
}

#form__login .button, #form__login input[type="submit"] {
  width: 100%;
}

select {
  background-image: url("../images/icons/arrow-down-black.svg");
  background-repeat: no-repeat;
  background-position: right +16px center;
  background-size: 0.875rem;
  -webkit-box-shadow: none;
          box-shadow: none;
}

@media print, screen and (max-width: 39.99875em) {
  select {
    line-height: 2 !important;
  }
}

@media print, screen and (min-width: 40em) {
  select {
    background-size: 1rem;
  }
}

select:focus {
  -webkit-box-shadow: none;
          box-shadow: none;
}

/*********************
PLUGIN STYLES
*********************/
.gform_body ul {
  list-style: none outside none;
  margin: 0;
}

body .gform_wrapper .gform_footer,
body .gform_wrapper .ginput_container_consent {
  text-align: center;
}

body .gform_wrapper .gfield_required {
  color: #000;
}

.ginput_container_consent {
  margin-bottom: 1.25rem;
}

.gfield_consent_label {
  font-weight: 400 !important;
}

.gfield_consent_label a {
  text-decoration: underline;
}

.gfield_price .instruction {
  display: none;
}

.gfield_total {
  border-radius: 3px;
}

@media print, screen and (min-width: 40em) {
  .gfield_total {
    margin: 0.875rem;
  }
}

.gfield_total .ginput_container, .gfield_total .ginput_total {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

input:-internal-autofill-selected,
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-internal-autofill-selected,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0px 1000px #fff inset !important;
          box-shadow: 0 0 0px 1000px #fff inset !important;
}

.form__bottom {
  position: relative;
}

.form__bottom textarea {
  margin-bottom: 0;
  height: 11.25rem;
}

.form__bottom input[type="submit"] {
  position: absolute;
  right: 0.9375rem;
  bottom: 1.25rem;
  padding: 0.5625rem 1.375rem 0.6875rem;
}

#mc_embed_signup .form__group {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  max-width: 35rem;
  margin-bottom: 0.9375rem;
}

#mc_embed_signup .form__group .email {
  margin-bottom: 0;
  margin-right: 1.25rem;
  height: 3.25rem;
}

@media print, screen and (min-width: 65.625em) {
  #mc_embed_signup .form__group .email {
    width: 28.125rem;
    max-width: 100%;
  }
}

body .gform_wrapper span.ginput_total {
  color: #000;
}

.lwa tr {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

.lwa td {
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
}

.lwa .lwa-rememberme {
  display: none;
}

.lwa .lwa-submit-links {
  text-align: center;
}

.lwa .lwa-submit-links > label {
  display: none;
}

.lwa .lwa-links-remember {
  font-size: 0.875rem;
}

.lwa #lwa_wp-submit {
  margin-right: 0;
  width: 100%;
}

.gfield_description {
  padding-top: 0 !important;
  margin-bottom: 29px !important;
  font-style: italic;
}

.gform_legacy_markup_wrapper ul.gform_fields li.gfield,
.gfield--width-full,
.gfield  {
  padding-right: 0 !important;
}

/*
	* Modals
	*/
/*
	* Header
	*/
/*********************
Main Header
*********************/
body.admin-bar .header__main {
  top: 32px;
}

.header__main {
  will-change: padding, top, transform;
  background-color: transparent;
  padding: 1.5rem 0;
  position: fixed;
  z-index: 20;
  top: 0;
  -webkit-transition: .2s ease padding, .2s ease top, .35s ease transform;
  transition: .2s ease padding, .2s ease top, .35s ease transform;
}

.state--scrolled-down .header__main {
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
}

.state--scrolled-up .header__main {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.state--scrolled .header__main {
  background-color: transparent;
}

.state--scrolled .header__main .header__logo {
  background-image: url("../images/logo/happify-logo-green.svg");
}

@media print, screen and (min-width: 40em) {
  .header__main {
    padding: 2.125rem 0 1.875rem;
  }
}

@media screen and (min-width: 81.25em) {
  .header__main {
    padding: 2.75rem 0 1.875rem;
  }
  .header__main .row {
    padding-left: 2.75rem;
    padding-right: 2.75rem;
  }
}

.header__main--inverted {
  position: fixed;
  width: 100%;
  color: #fff;
  top: 0;
}

.state--scrolled .header__main--inverted {
  top: 0;
  color: #000;
}

@media print, screen and (max-width: 65.62375em) {
  .header__main__left {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}

.header__main__center {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

@media print, screen and (max-width: 39.99875em) {
  .header__main__center {
    padding: 0;
  }
}

.header__logo {
  display: block;
  overflow: hidden;
  height: 2.25rem;
  width: 7.9375rem;
  background-image: url("../images/logo/happify-logo-green.svg");
  background-repeat: no-repeat;
  background-position: left center;
  background-size: contain;
  -webkit-transition: width height 0.2s;
  transition: width height 0.2s;
}

@media print, screen and (min-width: 40em) {
  .header__logo {
    height: 2.75rem;
    width: 9.6875rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  .header__logo {
    height: 3.125rem;
    width: 10.3125rem;
  }
}

.brand-logo {
  display: block;
  overflow: hidden;
  height: 1.25rem;
  width: 5.625rem;
  background-image: url("../images/logo/happify-logo-green.svg");
  background-repeat: no-repeat;
  background-position: left center;
  background-size: contain;
}

/*********************
HEADER TOP BAR
*********************/
.header__top {
  position: relative;
  color: #fff;
  background-color: #000;
  padding: 0.3125rem 0 0.5rem;
  z-index: 5;
}

.off-canvas--menu-inverted .header__top {
  border-bottom: 0.0625rem solid rgba(255, 255, 255, 0.15);
}

@media print, screen and (min-width: 40em) {
  .header__top {
    padding: 0.5rem 0 0.5625rem;
  }
}

.header__top__link, .header__top__text {
  font-size: 0.6875rem;
  font-weight: 500;
  margin-bottom: 0;
}

@media print, screen and (min-width: 40em) {
  .header__top__link, .header__top__text {
    font-size: 0.8125rem;
  }
}

.header__top__selling-points {
  display: inline-block;
  margin: 0 0 0 0.5rem;
}

@media print, screen and (min-width: 40em) {
  .header__top__selling-points {
    margin: 0 0.5rem;
  }
}

.header__top__icon {
  max-height: 0.5625rem;
  margin-right: 0.125rem;
  display: inline-block;
  position: relative;
}

@media print, screen and (min-width: 40em) {
  .header__top__icon {
    max-height: 0.8125rem;
    top: -1px;
  }
}

.header__top__left {
  line-height: 1.1;
}

@media print, screen and (max-width: 39.99875em) {
  .header__top__left {
    display: none;
  }
}

.header__top__right {
  text-align: right;
  line-height: 1.1;
}

.case__header {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  position: relative;
}

/*
	* Content – Styling for entry-content, articles, comments etc.
	*/
/*********************
Toggle Content Links
*********************/
.toggle__link {
  display: none;
}

.toggle__link.is-active {
  display: inline;
}

/*********************
ENTRY CONTENT
*********************/
img.aligncenter {
  margin-top: 0.75rem;
  margin-bottom: 0.75rem;
}

.text-content ul, .text-content ol {
  font-family: "DINPro", "Helvetica Neue", "Roboto", "Helvetica", "Arial", sans-serif;
}

.entry-content h1, .entry-content .h1, .entry-content h2, .entry-content .h2, .entry-content h3, .entry-content .h3, .entry-content .menu--offcanvas .menu__item .menu__link, .menu--offcanvas .menu__item .entry-content .menu__link, .entry-content h4, .entry-content .h4, .entry-content h5, .entry-content .h5, .entry-content h6, .entry-content .h6, .term-description h1, .term-description .h1, .term-description h2, .term-description .h2, .term-description h3, .term-description .h3, .term-description .menu--offcanvas .menu__item .menu__link, .menu--offcanvas .menu__item .term-description .menu__link, .term-description h4, .term-description .h4, .term-description h5, .term-description .h5, .term-description h6, .term-description .h6 {
  margin: 0 0 0.3125rem;
}

.entry-content a, .term-description a {
  color: #38D430;
  font-weight: 500;
}

.entry-content img, .term-description img {
  max-width: 100%;
  height: auto;
}

.entry-content .alignleft, .entry-content img.alignleft, .term-description .alignleft, .term-description img.alignleft {
  margin: 1.5625rem 1.5625rem 1.5625rem 0;
  display: inline;
  float: left;
}

.entry-content .alignright, .entry-content img.alignright, .term-description .alignright, .term-description img.alignright {
  margin: 1.5625rem 0 1.5625rem 1.5625rem;
  display: inline;
  float: right;
}

.entry-content .aligncenter, .entry-content img.aligncenter, .term-description .aligncenter, .term-description img.aligncenter {
  margin: 1.5625rem auto;
  display: block;
  clear: both;
}

.entry-content video, .entry-content object, .term-description video, .term-description object {
  max-width: 100%;
  height: auto;
}

.entry-content pre, .term-description pre {
  background: #eee;
  border: 1px solid #cecece;
  padding: 10px;
}

.post-meta {
  padding: 0.25rem 0;
}

.post-meta .category-list {
  display: inline-block;
  padding-left: 0.25rem;
}

/*********************
POSTS INDEX
*********************/
#posts article {
  padding-bottom: 1.5625rem;
}

#posts .article__body {
  padding-top: 0.9375rem;
}

#posts img {
  margin-bottom: 0.9375rem;
}

/*********************
SINGLE POST
*********************/
.single-post__top-section {
  border-bottom: 0.0625rem solid #e8e5da;
}

.single-post__intro {
  padding: 1.875rem 0 0.3125rem;
  margin-bottom: 0;
}

/*********************
MISC
*********************/
@media print, screen and (min-width: 40em) {
  #scroll-to-content .more-content {
    -webkit-column-count: 2;
       -moz-column-count: 2;
            column-count: 2;
  }
}

.wp-caption {
  max-width: 100%;
}

.wp-caption img {
  max-width: 100%;
  margin-bottom: 0;
}

.wp-caption-text {
  font-size: 0.85em;
  margin: 0.35rem 0 1.5rem;
}

.grecaptcha-badge {
  opacity: 0;
}

.iframe-section iframe {
  background-color: #fff;
}

/*
	* Events
	*/
.archive__article {
  position: relative;
  margin-bottom: 1.5625rem;
}

@media print, screen and (min-width: 40em) {
  .archive__article {
    margin-bottom: 3.75rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  .archive__article {
    margin-bottom: 5rem;
  }
}

.archive__header--event {
  background: #fff;
  padding: 1.625rem 1.75rem;
}

@media print, screen and (min-width: 40em) {
  .archive__header--event {
    background: rgba(255, 255, 255, 0.94);
    position: absolute;
    max-width: 22.5rem;
    bottom: 2.5rem;
    left: -1.875rem;
    padding: 1.875rem 2rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  .archive__header--event {
    max-width: 31.25rem;
    top: 2.5rem;
    left: -2.5rem;
    bottom: auto;
  }
}

.event__article {
  margin-bottom: 2.25rem;
}

.event-box {
  overflow: hidden;
  position: relative;
  padding-top: 75%;
  max-width: 100%;
}

.event-box__date__bg {
  z-index: 5;
  position: absolute;
  background-color: #38D430;
  -webkit-transition: -webkit-transform .5s;
  transition: -webkit-transform .5s;
  transition: transform .5s;
  transition: transform .5s, -webkit-transform .5s;
  width: 133px;
  height: 211px;
  bottom: -74px;
  left: -50px;
  -webkit-transform: rotate(-40deg);
          transform: rotate(-40deg);
}

.event-box--vod .event-box__date__bg {
  width: 13.75rem;
  height: 15.625rem;
  bottom: -6.875rem;
  left: -7.125rem;
}

.event-box__link:hover .event-box__date__bg {
  -webkit-transform: scale(1.1) rotate(-40deg);
          transform: scale(1.1) rotate(-40deg);
}

.event-box__date__text {
  color: #fff;
  z-index: 1000;
  position: absolute;
  left: 1rem;
  bottom: 0.875rem;
  line-height: 1;
}

.event-box__date__text br {
  display: block;
}

.event-box__date__text * {
  margin: 0;
}

.event-box__image {
  position: absolute;
  top: 0;
  transition: -webkit-transform .5s;
  -webkit-transition: -webkit-transform .5s;
  transition: transform .5s;
  transition: transform .5s, -webkit-transform .5s;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}

.event-box__link:hover .event-box__image {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.event-meta {
  margin-top: 1.625rem;
}

@media print, screen and (min-width: 65.625em) {
  .event-meta__link {
    font-size: 1.125rem;
  }
}

/*
	* Events
	*/
.flex-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.bg-video__container {
  position: relative;
  overflow: hidden;
  height: 100vh;
  border: none !important;
}

@media print, screen and (min-width: 40em) {
  .bg-video__container {
    height: 100vh;
  }
}

.bg-video__container:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

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

.align-middle {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.align-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.bg-video__content {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  z-index: 1;
}

.stream-finished__content {
  max-width: 90%;
}

@media print, screen and (min-width: 40em) {
  .stream-finished__content {
    max-width: 85%;
  }
}

@media print, screen and (min-width: 65.625em) {
  .stream-finished__content {
    max-width: 85%;
  }
}

.bg-video {
  position: absolute;
  -o-object-fit: cover;
  object-fit: cover;
  top: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
}

/*
	* Content – Styling for entry-content, articles, comments etc.
	*/
.tabs-content {
  border: 1px solid #ddd !important;
  -webkit-box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.05);
          box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.05);
  padding: 1em;
}

.tabs {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
}

@media print, screen and (min-width: 65.625em) {
  .tabs {
    padding: 0;
  }
}

.tabs .tabs-title {
  padding: 0;
  margin: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.tabs .tabs-title a {
  position: relative;
  padding: .75rem 1rem;
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border: 1px solid transparent;
}

.tabs .tabs-title > a:hover {
  background: transparent;
}

.tabs .tabs-title .payment-image-swish {
  max-width: 24px;
  margin-right: 10px;
}

.tabs .tabs-title .payment-image-creditcard {
  max-width: 32px;
  margin-right: 6px;
}

.tabs .tabs-title.is-active {
  background: white;
}

.tabs .tabs-title.is-active a, .tabs .tabs-title.is-active a:hover {
  background: white;
  border: 1px solid #ddd;
  border-bottom: none;
  position: relative;
}

.tabs .tabs-title.is-active a:after, .tabs .tabs-title.is-active a:hover:after {
  content: "";
  position: absolute;
  z-index: 1;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 1px;
  background: white;
}

.tabs li a {
  margin-right: 0;
  color: rgba(0, 0, 0, 0.5);
  font-size: 0.875rem !important;
  font-weight: 600;
}

@media print, screen and (min-width: 65.625em) {
  .tabs li a {
    margin-right: 0;
  }
}

.tabs li a:hover {
  color: #000;
}

.tabs li.active a {
  color: #000;
}

.swish-form {
  margin-top: 15px;
}

.swish-form label {
  font-weight: 500;
  margin-bottom: 10px;
  display: block;
  font-size: 0.9375rem;
  letter-spacing: -0.01rem;
}

.swish-form .input-group {
  margin-bottom: 26px;
}

.swish-form .input-group--half {
  width: 48%;
  display: inline-block;
}

.swish-form .input-group--half:first-of-type {
  margin-right: 2%;
}

.swish-form .input-group input {
  margin-bottom: 6px;
}

.swish-form p.small {
  padding-top: 0;
  font-style: italic;
  margin: 0;
  font-size: .813em;
  letter-spacing: 0;
}

#swish-form-error {
  padding: 1em;
  margin: 1em 0;
  background: #ff7675;
  color: white;
}

/*
	* Footer
	*/
.footer {
  position: relative;
  color: black;
  background-color: #fbfbfb;
}

.footer p {
  font-family: 'DINPro-Bold';
}

.footer a {
  color: #38D430;
}

.footer a:hover {
  text-decoration: underline;
}

.footer__menu {
  margin-top: 2.8125rem;
  text-align: center;
}

.footer__inner {
  margin-bottom: 2rem;
}

@media print, screen and (min-width: 40em) {
  .footer__inner {
    margin-bottom: 0;
  }
}

.footer__inner:last-child {
  margin-bottom: 0;
}

.menu--footer {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  justify-items: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.menu--footer li {
  text-align: center;
  margin: 0 1.25rem;
  font-size: 0.875rem;
}

.footer__image {
  margin-top: 1.25rem;
}

/*
	* Section Specific
	*/
.image-text + .image-text {
  padding-top: 0;
}

.image-text__text {
  padding: 0 2.1875rem;
}

@media print, screen and (min-width: 40em) {
  .image-text__text.medium-order-2 {
    padding-top: 2.8125rem;
    padding-bottom: 3.4375rem;
    padding-left: 1.875rem;
  }
  .image-text__text.medium-order-1 {
    padding-top: 2.8125rem;
    padding-bottom: 3.4375rem;
    padding-right: 1.875rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  .image-text__text.medium-order-2 {
    padding-top: 4.0625rem;
    padding-bottom: 4.6875rem;
    padding-left: 3.75rem;
  }
  .image-text__text.medium-order-1 {
    padding-top: 4.0625rem;
    padding-bottom: 4.6875rem;
    padding-right: 3.75rem;
  }
}

.image-text__image {
  position: relative;
}

@media print, screen and (max-width: 39.99875em) {
  .image-text__image {
    margin-bottom: 1.25rem;
  }
}

.image-text__image img, .image-text__image video {
  top: 0;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}

.image-text .button, .image-text input[type="submit"] {
  margin-top: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .image-text .button, .image-text input[type="submit"] {
    margin-top: 0.9375rem;
  }
}

@media print, screen and (max-width: 39.99875em) {
  .image-text__video .hero-slider__image {
    position: relative;
  }
}

.boxes__box {
  margin-bottom: 2.5rem;
}

.boxes__image {
  position: relative;
  margin-bottom: 1.875rem;
  height: 11.25rem;
}

@media print, screen and (min-width: 40em) {
  .boxes__image {
    height: 13.75rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  .boxes__image {
    height: 17.5rem;
    margin-bottom: 2.1875rem;
  }
}

.xlarge-3 .boxes__image {
  height: 10rem;
}

@media print, screen and (min-width: 40em) {
  .xlarge-3 .boxes__image {
    height: 12.5rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  .xlarge-3 .boxes__image {
    height: 13.75rem;
  }
}

.boxes__image img {
  position: absolute;
  top: 0;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}

.boxes__text + .boxes__button {
  margin-top: 0.9375rem;
}

.contact__form iframe {
  width: 100%;
  height: 30.9375rem;
  margin-top: 1.875rem;
}

@media screen and (min-width: 38.4375em) {
  .contact__form iframe {
    height: 16.25rem;
  }
}

.banner {
  padding: 1.875rem 0;
}

.banner.no-padding-top {
  padding-top: 0;
}

.banner.no-padding-bottom {
  padding-bottom: 0;
}

.banner__wrapper {
  position: relative;
}

.banner__wrapper.bg-black, .banner__wrapper.bg-primary {
  color: #fff;
}

.banner__wrapper .button, .banner__wrapper input[type="submit"] {
  margin-top: 1.125rem;
}

.banner__content {
  padding: 1.5625rem 2rem 1.875rem;
}

@media print, screen and (min-width: 40em) {
  .banner__content {
    padding: 2.1875rem 2.625rem 2.5rem;
  }
}

.banner__title {
  margin-bottom: 0;
}

.banner__intro {
  margin-bottom: 0;
}

.banner__image {
  position: absolute;
  top: 0;
  z-index: -1;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}

.full-width-image {
  background-size: cover;
  padding: 2rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.full-width-image__mobile {
  max-height: 400px;
  max-width: 100%;
}

.full-width-image__main {
  max-height: 500px;
  max-width: 100%;
}

.off-canvas--menu-inverted .top-section--event > .row,
.off-canvas--menu-inverted .top-section--simple > .row {
  padding-top: 1.875rem;
}

@media print, screen and (min-width: 65.625em) {
  .off-canvas--menu-inverted .top-section--event > .row,
  .off-canvas--menu-inverted .top-section--simple > .row {
    padding-top: 4.375rem;
  }
}

.top-section {
  background-color: #000;
}

.top-section--fixed {
  background-color: #000;
  position: fixed !important;
  width: 100vw;
  height: 100vh;
  top: 0;
  left: 0;
  z-index: -1;
}

.top-section .column, .top-section .columns {
  color: #fff;
}

@media print, screen and (min-width: 65.625em) {
  .top-section--image-text {
    padding-top: 12rem !important;
  }
}

@media print, screen and (max-width: 39.99875em) {
  .top-section__text {
    padding-top: 1.5625rem;
    padding-bottom: 1.875rem;
  }
}

@media print, screen and (min-width: 40em) and (max-width: 65.62375em) {
  .top-section__text {
    padding-top: 2.5rem;
    padding-bottom: 1.875rem;
  }
}

@media print, screen and (min-width: 40em) and (max-width: 65.62375em) {
  .top-section__image {
    padding-top: 0;
    padding-bottom: 0;
  }
}

@media screen and (min-width: 55em) and (max-width: 64em) {
  .top-section__image .image-container {
    text-align: center;
    max-width: 83.33333333%;
    margin: 0 auto;
  }
}

.top-section .button, .top-section input[type="submit"] {
  margin-top: 1.25rem;
  margin-right: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .top-section .button, .top-section input[type="submit"] {
    margin-top: 1.5625rem;
  }
}

.top-section a:hover {
  color: #fff;
}

.top-section__promo__image {
  margin-bottom: 2.1875rem;
}

.top-section__promo__output {
  background-color: #151515;
}

.top-section__trailers {
  margin-bottom: 1.875rem;
}

@media print, screen and (min-width: 40em) {
  .top-section__trailers {
    margin-bottom: 0;
  }
}

.top-section--event .top-section__title-header {
  margin-bottom: 2.5rem;
}

@media print, screen and (min-width: 65.625em) {
  .top-section--event .top-section__text {
    padding-left: 2.5rem;
  }
}

.top-section--bg-image {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  min-height: 67vh;
  position: relative;
}

@media print, screen and (max-width: 39.99875em) {
  .top-section--bg-image .align-middle {
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
}

@media print, screen and (min-width: 40em) {
  .top-section--bg-image {
    min-height: 60vh;
    padding-top: 10rem;
    padding-bottom: 6.25rem;
  }
}

.top-section--bg-image.top-section--compact {
  min-height: auto;
}

.top-section--bg-image > .row {
  width: 100%;
  z-index: 2;
}

.top-section--bg-image:after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: '';
  display: block;
  border-radius: 2px;
  z-index: 1;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.off-canvas--menu-inverted .top-section--bg-image:before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: ' ';
  display: block;
  border-radius: 2px;
  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), color-stop(20%, transparent));
  background-image: linear-gradient(-180deg, rgba(0, 0, 0, 0.5) 0%, transparent 20%);
  z-index: 1;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.top-section__content-image {
  width: 100%;
  max-width: 60rem;
  margin: 2.5rem 0;
}

.top-section__button-group {
  position: absolute;
  bottom: 1.5625rem;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 100%;
  max-width: 100%;
  z-index: 9;
}

@media print, screen and (min-width: 40em) {
  .top-section__button-group {
    bottom: 2.5rem;
  }
}

@media print, screen and (min-width: 65.625em) {
  .top-section__button-group {
    bottom: 4.375rem;
  }
}

.top-section__divider {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  border-top: 0.0625rem solid #38D430;
  border-bottom: 0.0625rem solid #38D430;
  padding: 1rem 0;
  margin-top: 2.5rem;
}

.top-section__divider * {
  line-height: 1.2;
}

.wpml-ls-flag {
  margin-right: 7px;
}

.cover {
  position: relative;
}

.cover.text-white {
  background-color: #000;
}

.cover.text-black {
  background-color: #e6e6e6;
}

.cover .row {
  position: relative;
  z-index: 2;
}

.cover .cover__bg-video,
.cover .cover__bg-image {
  position: absolute;
  top: 0;
  z-index: 1;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}

.cover:after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: '';
  display: block;
  border-radius: 2px;
  z-index: 1;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

/*
	* Base
	* Base styling or any other styling that 
	* don't fit in any other module goes here
	*/
::-moz-selection {
  color: #000;
  background-color: #38D430;
}
::selection {
  color: #000;
  background-color: #38D430;
}

body {
  background-color: #fff;
}

body:after {
  position: fixed;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-color: black;
  content: '';
  z-index: 200;
  -webkit-transition-delay: .5s;
          transition-delay: .5s;
  -webkit-transition: all .75s;
  transition: all .75s;
}

body.is-loaded:after {
  opacity: 0;
  z-index: -1;
}

body#tinymce {
  padding: 30px;
  background-image: none;
  background-color: white;
}

body#tinymce:after {
  content: none;
}

@media print, screen and (max-width: 93.74875em) {
  .row {
    padding-left: 2.75rem;
    padding-right: 2.75rem;
  }
}

@media print, screen and (max-width: 65.62375em) {
  .row {
    padding-left: 2.125rem;
    padding-right: 2.125rem;
  }
}

@media print, screen and (max-width: 39.99875em) {
  .row {
    padding-left: initial;
    padding-right: initial;
  }
}

/******************************************************************

Stylesheet: Print Stylesheet

This is the print stylesheet. There's probably not a lot
of reasons to edit this stylesheet. 

Remember to add things that won't make sense to print at 
the bottom. Things like nav, ads, and forms shouldbe set 
to display none.
******************************************************************/
@media print {
  * {
    background: transparent !important;
    color: black !important;
    text-shadow: none !important;
    -webkit-filter: none !important;
            filter: none !important;
    -ms-filter: none !important;
  }
  a,
  a:visited {
    color: #444 !important;
    text-decoration: underline;
  }
  a:after, a:visited:after {
    content: " (" attr(href) ")";
  }
  a abbr[title]:after, a:visited abbr[title]:after {
    content: " (" attr(title) ")";
  }
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: "";
  }
  pre,
  blockquote {
    border: 1px solid #999;
    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,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .sidebar,
  .page-navigation,
  .wp-prev-next,
  .respond-form,
  nav {
    display: none;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9zdHlsZS5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zY3NzL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL19nbG9iYWwuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9fc2V0dGluZ3Muc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3VuaXQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21peGlucy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19yb3cuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2JyZWFrcG9pbnQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2d1dHRlci5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWF0aC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcG9zaXRpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2ZsZXguc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Jlc3BvbnNpdmUtZW1iZWQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29mZi1jYW52YXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2NvbG9yLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Njc3MvY29tcG9uZW50cy9faGVscGVycy5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zY3NzL2NvbXBvbmVudHMvX3R5cG9ncmFwaHkuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9jb21wb25lbnRzL19hbmltYXRpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9ucy5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zY3NzL2NvbXBvbmVudHMvX2ZvbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Njc3MvY29tcG9uZW50cy9fc3ltYm9scy5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9jb21wb25lbnRzL19uYXZpZ2F0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Njc3MvY29tcG9uZW50cy9fbGlzdHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9jb21wb25lbnRzL19zbGlkZXJzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Njc3MvY29tcG9uZW50cy9fZm9ybXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9jb21wb25lbnRzL19oZWFkZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9jb21wb25lbnRzL19jb250ZW50LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Njc3MvY29tcG9uZW50cy9fZXZlbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Njc3MvY29tcG9uZW50cy9fdmlkZW8uc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9jb21wb25lbnRzL190YWJzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Njc3MvY29tcG9uZW50cy9fZm9vdGVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Njc3Mvc2VjdGlvbnMvX2ltYWdlLXRleHQuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9zZWN0aW9ucy9fYm94ZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9zZWN0aW9ucy9fY29udGFjdC5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zY3NzL3NlY3Rpb25zL19iYW5uZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9zZWN0aW9ucy9fdG9wLXNlY3Rpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9zZWN0aW9ucy9fY292ZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9fYmFzZS5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zY3NzL19wcmludC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUFqQjs7Ozs7O21FQU1tRTtBQ05uRTs7Ozs7bUVBS21FO0FBRW5FOzs7c0JBR3NCO0FBT3RCOztzQkFFc0I7QUFLdEI7O3NCQUVzQjtBQUV0Qiw2Q0FBNkM7QUFVN0M7O3NCQUVzQjtBQUV0Qjs7O0dBR0c7QUFlSDs7O0dBR0c7QUFLSDs7O0dBR0c7QUFNSDs7O0dBR0c7QUFNSDs7O0dBR0c7QUFNSDs7O0dBR0c7QUFNSDs7O0dBR0c7QUFLSDs7O0dBR0c7QUFLSDs7O0dBR0c7QUFLSDs7O0dBR0c7QUFLSDs7O0dBR0c7QUFNSDs7O0dBR0c7QUFLSDs7O0dBR0c7QUFNSDs7O0dBR0c7QUFjSDs7R0FFRztBQ3JMSDs7Ozs7R0FLRztBQ0pELDRFQUE0RTtBQVE1RTtFQUNFLGtCQUFpQjtFQUNqQiwrQkFBOEI7Q0FDL0I7O0FBT0Q7RUFDRSxVQUFTO0NBQ1Y7O0FBS0Q7RUFDRSxlQUFjO0VBQ2QsaUJBQWdCO0NBQ2pCOztBQVFEO0VBQ0UsZ0NBQXVCO1VBQXZCLHdCQUF1QjtFQUN2QixVQUFTO0VBQ1Qsa0JBQWlCO0NBQ2xCOztBQUtEO0VBQ0Usa0NBQWlDO0VBQ2pDLGVBQWM7Q0FDZjs7QUFPRDtFQUNFLDhCQUE2QjtDQUM5Qjs7QUFLRDtFQUNFLG9CQUFtQjtFQUNuQiwyQkFBMEI7RUFDMUIsMENBQWlDO1VBQWpDLGtDQUFpQztDQUNsQzs7QUFJRDs7RUFFRSxvQkFBbUI7Q0FDcEI7O0FBS0Q7OztFQUdFLGtDQUFpQztFQUNqQyxlQUFjO0NBQ2Y7O0FBSUQ7RUFDRSxlQUFjO0NBQ2Y7O0FBS0Q7O0VBRUUsZUFB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RDtJQUcvRCx5QkFIK0Q7R0R3RDlEO0NScVFKOztBUWhSQztFQVFNLGdCQUFlO0VBQ2YsZUFBYztDQUNmOztBQVZMO0VDOUJBLGdCQUhhO0NEc0RWOztBQXJCSDtFQWtCTSxtQkFBa0I7RUFDbEIsa0JBQWlCO0NBQ2xCOztBQXBCTDtFQzlCQSxnQkFIYTtDRDBEVjs7QUF6Qkg7RUd6R0UsaUJMdUVTO0VLdEVULGdCTHNFUztDRWdFTjs7QUE5Qkw7OztFQXFDSSxnQkFBZTtFQUNmLGVBQWM7Q0FDZjs7QUFJSDtFQXREQSxvQkF4RGM7TUF3RGQsa0JBeERjO1VBd0RkLGNBeERjO0VHdENaLDBCQUZxQztFQUdyQyx5QkFIcUM7RUhxRXJDLGFBQVk7Q0FtRmI7O0FFSUs7RUZOTjtJR3BKRSwwQkFGcUM7SUFHckMseUJBSHFDO0dId0p0QztDUitRRjs7QVEzUUM7RUFDRSxZQUFXO0VBQ1gsZUFBYztDQUNmOztBQUdEO0VBQ0UsZ0JBQWU7RUFDZixlQUFjO0VBQ2QsaUJBQWdCO0VBQ2hCLGdCQUFlO0NBQ2hCOztBQUtHO0VBQ0Usb0JJaERxRDtNSmdEckQsMEJJaERxRDtVSmdEckQsc0JJaERxRDtFSmlEckQsdUJJakRxRDtDSmtEdEQ7O0FBS0Q7RUt0SUosZ0JEK0UyRDtDSnlEdEQ7O0FBVkQ7RUFDRSxvQkloRHFEO01KZ0RyRCwyQkloRHFEO1VKZ0RyRCx1QkloRHFEO0VKaURyRCx3QklqRHFEO0NKa0R0RDs7QUFLRDtFS3RJSix5QkQrRTJEO0NKeUR0RDs7QUFWRDtFQUNFLG9CSWhEcUQ7TUpnRHJELGtCSWhEcUQ7VUpnRHJELGNJaERxRDtFSmlEckQsZUlqRHFEO0NKa0R0RDs7QUFLRDtFS3RJSiwwQkQrRTJEO0NKeUR0RDs7QUFWRDtFQUNFLG9CSWhEcUQ7TUpnRHJELDJCSWhEcUQ7VUpnRHJELHVCSWhEcUQ7RUppRHJELHdCSWpEcUQ7Q0prRHREOztBQUtEO0VLdElKLGlCRCtFMkQ7Q0p5RHREOztBQVZEO0VBQ0Usb0JJaERxRDtNSmdEckQsMkJJaERxRDtVSmdEckQsdUJJaERxRDtFSmlEckQsd0JJakRxRDtDSmtEdEQ7O0FBS0Q7RUt0SUosMEJEK0UyRDtDSnlEdEQ7O0FBVkQ7RUFDRSxvQkloRHFEO01KZ0RyRCxrQkloRHFEO1VKZ0RyRCxjSWhEcUQ7RUppRHJELGVJakRxRDtDSmtEdEQ7O0FBS0Q7RUt0SUosMEJEK0UyRDtDSnlEdEQ7O0FBVkQ7RUFDRSxvQkloRHFEO01KZ0RyRCwyQkloRHFEO1VKZ0RyRCx1QkloRHFEO0VKaURyRCx3QklqRHFEO0NKa0R0RDs7QUFLRDtFS3RJSixpQkQrRTJEO0NKeUR0RDs7QUFWRDtFQUNFLG9CSWhEcUQ7TUpnRHJELDJCSWhEcUQ7VUpnRHJELHVCSWhEcUQ7RUppRHJELHdCSWpEcUQ7Q0prRHREOztBQUtEO0VLdElKLDBCRCtFMkQ7Q0p5RHREOztBQVZEO0VBQ0Usb0JJaERxRDtNSmdEckQsa0JJaERxRDtVSmdEckQsY0loRHFEO0VKaURyRCxlSWpEcUQ7Q0prRHREOztBQUtEO0VLdElKLDBCRCtFMkQ7Q0p5RHREOztBQVZEO0VBQ0Usb0JJaERxRDtNSmdEckQsMkJJaERxRDtVSmdEckQsdUJJaERxRDtFSmlEckQsd0JJakRxRDtDSmtEdEQ7O0FBS0Q7RUt0SUosaUJEK0UyRDtDSnlEdEQ7O0FBVkQ7RUFDRSxvQkloRHFEO01KZ0RyRCwyQkloRHFEO1VKZ0RyRCx1QkloRHFEO0VKaURyRCx3QklqRHFEO0NKa0R0RDs7QUFLRDtFS3RJSiwwQkQrRTJEO0NKeUR0RDs7QUFWRDtFQUNFLG9CSWhEcUQ7TUpnRHJELG1CSWhEcUQ7VUpnRHJELGVJaERxRDtFSmlEckQsZ0JJakRxRDtDSmtEdEQ7O0FBS0Q7RUt0SUosMEJEK0UyRDtDSnlEdEQ7O0FBS0Q7RUExR0osb0JBQWU7TUFBZixnQkFBZTtDQTRHVjs7QUExR0w7RUFHRSxvQkFGc0I7TUFFdEIsbUJBRnNCO1VBRXRCLGVBRnNCO0VBR3RCLGdCQUhzQjtDQUl2Qjs7QUFtR0c7RUExR0osb0JBQWU7TUFBZixnQkFBZTtDQTRHVjs7QUExR0w7RUFHRSxvQkFGc0I7TUFFdEIsa0JBRnNCO1VBRXRCLGNBRnNCO0VBR3RCLGVBSHNCO0NBSXZCOztBQW1HRztFQTFHSixvQkFBZTtNQUFmLGdCQUFlO0NBNEdWOztBQTFHTDtFQUdFLG9CQUZzQjtNQUV0QiwyQkFGc0I7VUFFdEIsdUJBRnNCO0VBR3RCLHdCQUhzQjtDQUl2Qjs7QUFtR0c7RUExR0osb0JBQWU7TUFBZixnQkFBZTtDQTRHVjs7QUExR0w7RUFHRSxvQkFGc0I7TUFFdEIsa0JBRnNCO1VBRXRCLGNBRnNCO0VBR3RCLGVBSHNCO0NBSXZCOztBQW1HRztFQTFHSixvQkFBZTtNQUFmLGdCQUFlO0NBNEdWOztBQTFHTDtFQUdFLG9CQUZzQjtNQUV0QixrQkFGc0I7VUFFdEIsY0FGc0I7RUFHdEIsZUFIc0I7Q0FJdkI7O0FBbUdHO0VBMUdKLG9CQUFlO01BQWYsZ0JBQWU7Q0E0R1Y7O0FBMUdMO0VBR0Usb0JBRnNCO01BRXRCLDJCQUZzQjtVQUV0Qix1QkFGc0I7RUFHdEIsd0JBSHNCO0NBSXZCOztBQW1HRztFQTFHSixvQkFBZTtNQUFmLGdCQUFlO0NBNEdWOztBQTFHTDtFQUdFLG9CQUZzQjtNQUV0QiwyQkFGc0I7VUFFdEIsdUJBRnNCO0VBR3RCLHdCQUhzQjtDQUl2Qjs7QUFtR0c7RUExR0osb0JBQWU7TUFBZixnQkFBZTtDQTRHVjs7QUExR0w7RUFHRSxvQkFGc0I7TUFFdEIsb0JBRnNCO1VBRXRCLGdCQUZzQjtFQUd0QixpQkFIc0I7Q0FJdkI7O0FBK0hDO0VHck5BLGlCTHVFUztFS3RFVCxnQkxzRVM7Q0UrSW1DOztBQUc1QztFR3pOQSwwQkFGcUM7RUFHckMseUJBSHFDO0NINE5nQjs7QUVoRWpEO0VGZ0JGO0lBQ0Usb0JJaERxRDtRSmdEckQsMEJJaERxRDtZSmdEckQsc0JJaERxRDtJSmlEckQsdUJJakRxRDtHSmtEdEQ7RUFLRDtJS3RJSixnQkQrRTJEO0dKeUR0RDtFQVZEO0lBQ0Usb0JJaERxRDtRSmdEckQsMkJJaERxRDtZSmdEckQsdUJJaERxRDtJSmlEckQsd0JJakRxRDtHSmtEdEQ7RUFLRDtJS3RJSix5QkQrRTJEO0dKeUR0RDtFQVZEO0lBQ0Usb0JJaERxRDtRSmdEckQsa0JJaERxRDtZSmdEckQsY0loRHFEO0lKaURyRCxlSWpEcUQ7R0prRHREO0VBS0Q7SUt0SUosMEJEK0UyRDtHSnlEdEQ7RUFWRDtJQUNFLG9CSWhEcUQ7UUpnRHJELDJCSWhEcUQ7WUpnRHJELHVCSWhEcUQ7SUppRHJELHdCSWpEcUQ7R0prRHREO0VBS0Q7SUt0SUosaUJEK0UyRDtHSnlEdEQ7RUFWRDtJQUNFLG9CSWhEcUQ7UUpnRHJELDJCSWhEcUQ7WUpnRHJELHVCSWhEcUQ7SUppRHJELHdCSWpEcUQ7R0prRHREO0VBS0Q7SUt0SUosMEJEK0UyRDtHSnlEdEQ7RUFWRDtJQUNFLG9CSWhEcUQ7UUpnRHJELGtCSWhEcUQ7WUpnRHJELGNJaERxRDtJSmlEckQsZUlqRHFEO0dKa0R0RDtFQUtEO0lLdElKLDBCRCtFMkQ7R0p5RHREO0VBVkQ7SUFDRSxvQkloRHFEO1FKZ0RyRCwyQkloRHFEO1lKZ0RyRCx1QkloRHFEO0lKaURyRCx3QklqRHFEO0dKa0R0RDtFQUtEO0lLdElKLGlCRCtFMkQ7R0p5RHREO0VBVkQ7SUFDRSxvQkloRHFEO1FKZ0RyRCwyQkloRHFEO1lKZ0RyRCx1QkloRHFEO0lKaURyRCx3QklqRHFEO0dKa0R0RDtFQUtEO0lLdElKLDBCRCtFMkQ7R0p5RHREO0VBVkQ7SUFDRSxvQkloRHFEO1FKZ0RyRCxrQkloRHFEO1lKZ0RyRCxjSWhEcUQ7SUppRHJELGVJakRxRDtHSmtEdEQ7RUFLRDtJS3RJSiwwQkQrRTJEO0dKeUR0RDtFQVZEO0lBQ0Usb0JJaERxRDtRSmdEckQsMkJJaERxRDtZSmdEckQsdUJJaERxRDtJSmlEckQsd0JJakRxRDtHSmtEdEQ7RUFLRDtJS3RJSixpQkQrRTJEO0dKeUR0RDtFQVZEO0lBQ0Usb0JJaERxRDtRSmdEckQsMkJJaERxRDtZSmdEckQsdUJJaERxRDtJSmlEckQsd0JJakRxRDtHSmtEdEQ7RUFLRDtJS3RJSiwwQkQrRTJEO0dKeUR0RDtFQVZEO0lBQ0Usb0JJaERxRDtRSmdEckQsbUJJaERxRDtZSmdEckQsZUloRHFEO0lKaURyRCxnQklqRHFEO0dKa0R0RDtFQUtEO0lLdElKLDBCRCtFMkQ7R0p5RHREO0VBS0Q7SUExR0osb0JBQWU7UUFBZixnQkFBZTtHQTRHVjtFQTFHTDtJQUdFLG9CQUZzQjtRQUV0QixtQkFGc0I7WUFFdEIsZUFGc0I7SUFHdEIsZ0JBSHNCO0dBSXZCO0VBbUdHO0lBMUdKLG9CQUFlO1FBQWYsZ0JBQWU7R0E0R1Y7RUExR0w7SUFHRSxvQkFGc0I7UUFFdEIsa0JBRnNCO1lBRXRCLGNBRnNCO0lBR3RCLGVBSHNCO0dBSXZCO0VBbUdHO0lBMUdKLG9CQUFlO1FBQWYsZ0JBQWU7R0E0R1Y7RUExR0w7SUFHRSxvQkFGc0I7UUFFdEIsMkJBRnNCO1lBRXRCLHVCQUZzQjtJQUd0Qix3QkFIc0I7R0FJdkI7RUFtR0c7SUExR0osb0JBQWU7UUFBZixnQkFBZTtHQTRHVjtFQTFHTDtJQUdFLG9CQUZzQjtRQUV0QixrQkFGc0I7WUFFdEIsY0FGc0I7SUFHdEIsZUFIc0I7R0FJdkI7RUFtR0c7SUExR0osb0JBQWU7UUFBZixnQkFBZTtHQTRHVjtFQTFHTDtJQUdFLG9CQUZzQjtRQUV0QixrQkFGc0I7WUFFdEIsY0FGc0I7SUFHdEIsZUFIc0I7R0FJdkI7RUFtR0c7SUExR0osb0JBQWU7UUFBZixnQkFBZTtHQTRHVjtFQTFHTDtJQUdFLG9CQUZzQjtRQUV0QiwyQkFGc0I7WUFFdEIsdUJBRnNCO0lBR3RCLHdCQUhzQjtHQUl2QjtFQW1HRztJQTFHSixvQkFBZTtRQUFmLGdCQUFlO0dBNEdWO0VBMUdMO0lBR0Usb0JBRnNCO1FBRXRCLDJCQUZzQjtZQUV0Qix1QkFGc0I7SUFHdEIsd0JBSHNCO0dBSXZCO0VBbUdHO0lBMUdKLG9CQUFlO1FBQWYsZ0JBQWU7R0E0R1Y7RUExR0w7SUFHRSxvQkFGc0I7UUFFdEIsb0JBRnNCO1lBRXRCLGdCQUZzQjtJQUd0QixpQkFIc0I7R0FJdkI7Q1J3cUJGOztBVXBtQk87RUZ1Q0E7SUFDRSxvQkE1Sk07UUE0Sk4sa0JBNUpNO1lBNEpOLGNBNUpNO0dBNkpQO0NSaWtCUjs7QVE1akJPO0VBRUksb0JJL0VpRDtNSitFakQsbUJJL0VpRDtVSitFakQsZUkvRWlEO0NKb0ZsRDs7QUVyREg7RUY4Q0E7SUFLTSxvQkF2S0U7UUF1S0Ysa0JBdktFO1lBdUtGLGNBdktFO0dBeUtMO0NSK2pCVjs7QVVwbkJPO0VGMkRKO0lHck5BLGlCTHVFUztJS3RFVCxnQkxzRVM7R0UrSW1DO0VBRzVDO0lHek5BLDBCQUZxQztJQUdyQyx5QkFIcUM7R0g0TmdCO0NSK2pCeEQ7O0FVL25CTztFRmdCRjtJQUNFLG9CSWhEcUQ7UUpnRHJELDBCSWhEcUQ7WUpnRHJELHNCSWhEcUQ7SUppRHJELHVCSWpEcUQ7R0prRHREO0VBS0Q7SUt0SUosZ0JEK0UyRDtHSnlEdEQ7RUFWRDtJQUNFLG9CSWhEcUQ7UUpnRHJELDJCSWhEcUQ7WUpnRHJELHVCSWhEcUQ7SUppRHJELHdCSWpEcUQ7R0prRHREO0VBS0Q7SUt0SUoseUJEK0UyRDtHSnlEdEQ7RUFWRDtJQUNFLG9CSWhEcUQ7UUpnRHJELGtCSWhEcUQ7WUpnRHJELGNJaERxRDtJSmlEckQsZUlqRHFEO0dKa0R0RDtFQUtEO0lLdElKLDBCRCtFMkQ7R0p5RHREO0VBVkQ7SUFDRSxvQkloRHFEO1FKZ0RyRCwyQkloRHFEO1lKZ0RyRCx1QkloRHFEO0lKaURyRCx3QklqRHFEO0dKa0R0RDtFQUtEO0lLdElKLGlCRCtFMkQ7R0p5RHREO0VBVkQ7SUFDRSxvQkloRHFEO1FKZ0RyRCwyQkloRHFEO1lKZ0RyRCx1QkloRHFEO0lKaURyRCx3QklqRHFEO0dKa0R0RDtFQUtEO0lLdElKLDBCRCtFMkQ7R0p5RHREO0VBVkQ7SUFDRSxvQkloRHFEO1FKZ0RyRCxrQkloRHFEO1lKZ0RyRCxjSWhEcUQ7SUppRHJELGVJakRxRDtHSmtEdEQ7RUFLRDtJS3RJSiwwQkQrRTJEO0dKeUR0RDtFQVZEO0lBQ0Usb0JJaERxRDtRSmdEckQsMkJJaERxRDtZSmdEckQsdUJJaERxRDtJSmlEckQsd0JJakRxRDtHSmtEdEQ7RUFLRDtJS3RJSixpQkQrRTJEO0dKeUR0RDtFQVZEO0lBQ0Usb0JJaERx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LDBCRCtFMkQ7R0p5RHREO0VBVkQ7SUFDRSxvQkloRHFEO1FKZ0RyRCwyQkloRHFEO1lKZ0RyRCx1QkloRHFEO0lKaURyRCx3QklqRHFEO0dKa0R0RDtFQUtEO0lLdElKLGlCRCtFMkQ7R0p5RHREO0VBVkQ7SUFDRSxvQkloRHFEO1FKZ0RyRCwyQkloRHFEO1lKZ0RyRCx1QkloRHFEO0lKaURyRCx3QklqRHFEO0dKa0R0RDtFQUtEO0lLdElKLDBCRCtFMkQ7R0p5RHREO0VBVkQ7SUFDRSxvQkloRHFEO1FKZ0RyRCxrQkloRHFEO1lKZ0RyRCxjSWhEcUQ7SUppRHJELGVJakRxRDtHSmtEdEQ7RUFLRDtJS3RJSiwwQkQrRTJEO0dKeUR0RDtFQVZEO0lBQ0Usb0JJaERxRDtRSmdEckQsMkJJaERxRDtZSmdEckQsdUJJaERxRDtJSmlEckQsd0JJakRxRDtHSmtEdEQ7RUFLRDtJS3RJSixpQkQrRTJEO0dKeUR0RDtFQVZEO0lBQ0Usb0JJaERxRDtRSmdEckQsMkJJaERxRDtZSmdEckQsdUJJaERxRDtJSmlEckQsd0JJakRxRDtHSmtEdEQ7RUFLRDtJS3RJSiwwQkQrRTJEO0dKeUR0RDtFQVZEO0lBQ0Usb0JJaERxRDtRSmdEckQsa0JJaERxRDtZSmdEckQsY0loRHFEO0lKaURyRCxlSWpEcUQ7R0prRHREO0VBS0Q7SUt0SUosMEJEK0UyRDtHSnlEdEQ7RUFWRDtJQUNFLG9CSWhEcUQ7UUpnRHJELDJCSWhEcUQ7WUpnRHJELHVCSWhEcUQ7SUppRHJELHdCSWpEcUQ7R0prRHREO0VBS0Q7SUt0SUosaUJEK0UyRDtHSnlEdEQ7RUFWRDtJQUNFLG9CSWhEcUQ7UUpnRHJELDJCSWhEcUQ7WUpnRHJELHVCSWhEcUQ7SUppRHJELHdCSWpEcUQ7R0prRHREO0VBS0Q7SUt0SUosMEJEK0UyRDtHSnlEdEQ7RUFWRDtJQUNFLG9CSWhEcUQ7UUpnRHJELG1CSWhEcUQ7WUpnRHJELGVJaERxRDtJSmlEckQsZ0JJakRxRDtHSmtEdEQ7RUFLRDtJS3RJSiwwQkQrRTJEO0dKeUR0RDtFQUtEO0lBMUdKLG9CQUFlO1FBQWYsZ0JBQWU7R0E0R1Y7RUExR0w7SUFHRSxvQkFGc0I7UUFFdEIsbUJBRnNCO1lBRXRCLGVBRnNCO0lBR3RCLGdCQUhzQjtHQUl2QjtFQW1HRztJQTFHSixvQkFBZTtRQUFmLGdCQUFlO0dBNEdWO0VBMUdMO0lBR0Usb0JBRnNCO1FBRXRCLGtCQUZzQjtZQUV0QixjQUZzQjtJQUd0QixlQUhzQjtHQUl2QjtFQW1HRztJQTFHSixvQkFBZTtRQUFmLGdCQUFlO0dBNEdWO0VBMUdMO0lBR0Usb0JBRnNCO1FBRXRCLDJCQUZzQjtZQUV0Qix1QkFGc0I7SUFHdEIsd0JBSHNCO0dBSXZCO0VBbUdHO0lBMUdKLG9CQUFlO1FBQWYsZ0JBQWU7R0E0R1Y7RUExR0w7SUFHRSxvQkFGc0I7UUFFdEIsa0JBRnNCO1lBRXRCLGNBRnNCO0lBR3RCLGVBSHNCO0dBSXZCO0VBbUdHO0lBMUdKLG9CQUFlO1FBQWYsZ0JBQWU7R0E0R1Y7RUExR0w7SUFHRSxvQkFGc0I7UUFFdEIsa0JBRnNCO1lBRXRCLGNBRnNCO0lBR3RCLGVBSHNCO0dBSXZCO0VBbUdHO0lBMUdKLG9CQUFlO1FBQWYsZ0JBQWU7R0E0R1Y7RUExR0w7SUFHRSxvQkFGc0I7UUFFdEIsMkJBRnNCO1lBRXRCLHVCQUZzQjtJQUd0Qix3QkFIc0I7R0FJdkI7RUFtR0c7SUExR0osb0JBQWU7UUFBZixnQkFBZTtHQTRHVjtFQTFHTDtJQUdFLG9CQUZzQjtRQUV0QiwyQkFGc0I7WUFFdEIsdUJBRnNCO0lBR3RCLHdCQUhzQjtHQUl2QjtFQW1HRztJQTFHSixvQkFBZTtRQUFmLGdCQUFlO0dBNEdWO0VBMUdMO0lBR0Usb0JBRnNCO1FBRXRCLG9CQUZzQjtZQUV0QixnQkFGc0I7SUFHdEIsaUJBSHNCO0dBSXZCO0NSNC9CRjs7QVVuN0JPO0VGa0NBO0lBQ0Usb0JBNUpNO1FBNEpOLGtCQTVKTTtZQTRKTixjQTVKTTtHQTZKUDtDUnE1QlI7O0FRaDVCTztFQUVJLG9CSS9FaUQ7TUorRWpELG1CSS9FaUQ7VUorRWpELGVJL0VpRDtDSm9GbEQ7O0FFaERIO0VGeUNBO0lBS00sb0JBdktFO1FBdUtGLGtCQXZLRTtZQXVLRixjQXZLRTtHQXlLTDtDUm01QlY7O0FVbjhCTztFRnNESjtJR3JOQSxpQkx1RVM7SUt0RVQsZ0JMc0VTO0dFK0ltQztFQUc1QztJR3pOQSwwQkFGcUM7SUFHckMseUJBSHFDO0dINE5nQjtDUm01QnhEOztBVTk4Qk87RUZXRjtJQUNFLG9CSWhEcUQ7UUpnRHJELDBCSWhEcUQ7WUpnRHJELHNCSWhEcUQ7SUppRHJELHVCSWpEcUQ7R0prRHREO0VBS0Q7SUt0SUosZ0JEK0UyRDtHSnlEdEQ7RUFWRDtJQUNFLG9CSWhEcUQ7UUpnRHJELDJCSWhEcUQ7WUpnRHJELHVCSWhEcUQ7SUppRHJELHdCSWpEcUQ7R0prRHREO0VBS0Q7SUt0SUoseUJEK0UyRDtHSnlEdEQ7RUFWRDtJQUNFLG9CSWhEcUQ7UUpnRHJELGtCSWhEcUQ7WUpnRHJELGNJaERxRDtJSmlEckQsZUlqRHFEO0dKa0R0RDtFQUtEO0lLdElKLDBCRCtFMkQ7R0p5RHREO0VBVkQ7SUFDRSxvQkloRHFEO1FKZ0RyRCwyQkloRHFEO1lKZ0RyRCx1QkloRHFEO0lKaURyRCx3QklqRHFEO0dKa0R0RDtFQUtEO0lLdElKLGlCRCtFMkQ7R0p5RHREO0VBVkQ7SUFDRSxvQkloRHFEO1FKZ0RyRCwyQkloRHFEO1lKZ0RyRCx1QkloRHFEO0lKaURyRCx3QklqRHFEO0dKa0R0RDtFQUtEO0lLdElKLDBCRCtFMkQ7R0p5RHREO0VBVkQ7SUFDRSxvQkloRHFEO1FKZ0RyRCxrQkloRHFEO1lKZ0RyRCxjSWhEcUQ7SUppRHJELGVJakRxRDtHSmtEdEQ7RUFLRDtJS3RJSiwwQkQrRTJEO0dKeUR0RDtFQVZEO0lBQ0Usb0JJaERxRDtRSmdEckQsMkJJaERxRDtZSmdEckQsdUJJaERxRDtJSmlEckQsd0JJakRxRDtHSmtEdEQ7RUFLRDtJS3RJSixpQkQrRTJEO0dKeUR0RDtFQVZEO0lBQ0Usb0JJaERxRDtRSmdEckQsMkJJaERxRDtZSmdEckQsdUJJaERxRDtJSmlEckQsd0JJakRxRDtHSmtEdEQ7RUFLRDtJS3RJSiwwQkQrRTJE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RUNoQ0osNkJEK0JnQjtNQy9CaEIsa0JEK0JnQjtVQy9CaEIsU0QrQmdCO0NBR1g7O0FBRkQ7RUNoQ0osNkJEK0JnQjtNQy9CaEIsa0JEK0JnQjtVQy9CaEIsU0QrQmdCO0NBR1g7O0FBRkQ7RUNoQ0osNkJEK0JnQjtNQy9CaEIsa0JEK0JnQjtVQy9CaEIsU0QrQmdCO0NBR1g7O0FBRkQ7RUNoQ0osNkJEK0JnQjtNQy9CaEIsa0JEK0JnQjtVQy9CaEIsU0QrQmdCO0NBR1g7O0FKZ0VDO0VJbEVGO0lDaENKLDZCRCtCZ0I7UUMvQmhCLGtCRCtCZ0I7WUMvQmhCLFNEK0JnQjtHQUdYO0VBRkQ7SUNoQ0osNkJEK0JnQjtRQy9CaEIsa0JEK0JnQjtZQy9CaEIsU0QrQmdCO0dBR1g7RUFGRDtJQ2hDSiw2QkQrQmdCO1FDL0JoQixrQkQrQmdCO1lDL0JoQixTRCtCZ0I7R0FHWDtFQUZEO0lDaENKLDZCRCtCZ0I7UUMvQmhCLGtCRCtCZ0I7WUMvQmhCLFNEK0JnQjtHQUdYO0VBRkQ7SUNoQ0osNkJEK0JnQjtRQy9CaEIsa0JEK0JnQjtZQy9CaEIsU0QrQmdCO0dBR1g7RUFGRDtJQ2hDSiw2QkQrQmdCO1FDL0JoQixrQkQrQmdCO1lDL0JoQixTRCtCZ0I7R0FHWDtDZHMwQ047O0FVdHdDTztFSWxFRjtJQ2hDSiw2QkQrQmdCO1FDL0JoQixrQkQrQmdCO1lDL0JoQixTRCtCZ0I7R0FHWDtFQUZEO0lDaENKLDZCRCtCZ0I7UUMvQmhCLGtCRCtCZ0I7WUMvQmhCLFNEK0JnQjtHQUdYO0VBRkQ7SUNoQ0osNkJEK0JnQjtRQy9CaEIsa0JEK0JnQjtZQy9CaEIsU0QrQmdCO0dBR1g7RUFGRDtJQ2hDSiw2QkQrQmdCO1FDL0JoQixrQkQrQmdCO1lDL0JoQixTRCtCZ0I7R0FHWDtFQUZEO0lDaENKLDZCRCtCZ0I7UUMvQmhCLGtCRCtCZ0I7WUMvQmhCLFNEK0JnQjtHQUdYO0VBRkQ7SUNoQ0osNkJEK0JnQjtRQy9CaEIsa0JEK0JnQjtZQy9CaEIsU0QrQmdCO0dBR1g7Q2QyMUNOOztBVXR4Q087RUl2RUY7SUNoQ0osNkJEK0JnQjtRQy9CaEIsa0JEK0JnQjtZQy9CaEIsU0QrQmdCO0dBR1g7RUFGRDtJQ2hDSiw2QkQrQmdCO1FDL0JoQixrQkQrQmdCO1lDL0JoQixTRCtCZ0I7R0FHWDtFQUZEO0lDaENKLDZCRCtCZ0I7UUMvQmhCLGtCRCtCZ0I7WUMvQmhCLFNEK0JnQjtHQUdYO0VBRkQ7SUNoQ0osNkJEK0JnQjtRQy9CaEIsa0JEK0JnQjtZQy9CaEIsU0QrQmdCO0dBR1g7RUFGRDtJQ2hDSiw2QkQrQmdCO1FDL0JoQixrQkQrQmdCO1lDL0JoQixTRCtCZ0I7R0FHWDtFQUZEO0lDaENKLDZCRCtCZ0I7UUMvQmhCLGtCRCtCZ0I7WUMvQmhCLFNEK0JnQjtHQUdYO0NkZzNDTjs7QVUzeUNPO0VJdkVGO0lDaENKLDZCRCtCZ0I7UUMvQmhCLGtCRCtCZ0I7WUMvQmhCLFNEK0JnQjtHQUdYO0VBRkQ7SUNoQ0osNkJEK0JnQjtRQy9CaEIsa0JEK0JnQjtZQy9CaEIsU0QrQmdCO0dBR1g7RUFGRDtJQ2hDSiw2QkQrQmdCO1FDL0JoQixrQkQrQmdCO1lDL0JoQixTRCtCZ0I7R0FHWDtFQUZEO0lDaENKLDZCRCtCZ0I7UUMvQmhCLGtCRCtCZ0I7WUMvQmhCLFNEK0JnQjtHQUdYO0VBRkQ7SUNoQ0osNkJEK0JnQjtRQy9CaEIsa0JEK0JnQjtZQy9CaEIsU0QrQmdCO0dBR1g7RUFGRDtJQ2hDSiw2QkQrQmdCO1FDL0JoQixrQkQrQmdCO1lDL0JoQixTRCtCZ0I7R0FHWDtDZHE0Q047O0FjcCtDQztFQ1lBLHFCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0NEVlo7O0FBRUQ7RUFDRSxvQkFBYztNQUFkLG1CQUFjO1VBQWQsZUFBYztDQUNmOztBQUVEO0VBQ0Usb0JBQWM7TUFBZCxtQkFBYztVQUFkLGVBQWM7Q0FDZjs7QUFFRDtFQUNFLG9CQUFjO01BQWQsbUJBQWM7VUFBZCxlQUFjO0NBQ2Y7O0FBR0M7RUNzREYsK0JBbkVVO0VBbUVWLDhCQW5FVTtNQW1FVix3QkFuRVU7VUFtRVYsb0JBbkVVO0NEZVA7O0FBRkQ7RUNzREYsK0JBbEUw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aEJEOzs7Ozs7RUFhSSxlQUFjO0VBQ2QsZVoxT2U7Q1kyT2hCOztBQVFHO0VBSUksa0JYM042QztFV3VPN0MsaUJaN01XO0VZcU5YLGNBQWE7RUFPYix1QlozTmtCO0NZNk5yQjs7QUFqQ0Q7RUFJSSxtQlgzTjZDO0VXdU83QyxpQlo3TVc7RVlxTlgsY0FBYTtFQU9iLHVCWjNOa0I7Q1k2TnJCOztBQWpDRDtFQUlJLHFCWDNONkM7RVd1TzdDLGlCWjdNVztFWXFOWCxjQUFhO0VBT2IsdUJaM05rQjtDWTZOckI7O0FBakNEO0VBSUksb0JYM042QztFV3VPN0MsaUJaN01XO0VZcU5YLGNBQWE7RUFPYix1QlozTmtCO0NZNk5yQjs7QUFqQ0Q7RUFJSSxxQlgzTjZDO0VXdU83QyxpQlo3TVc7RVlxTlgsY0FBYTtFQU9iLHVCWjNOa0I7Q1k2TnJCOztBQWpDRDtFQUlJLGdCWDNONkM7RVd1TzdDLGlCWjdNVztFWXFOWCxjQUFhO0VBT2IsdUJaM05rQjtDWTZOckI7O0FQaEtEO0VPK0hBO0lBSUksZ0JYM042QztHV3dQaEQ7RUFqQ0Q7SUFJSSxrQlgzTjZDO0dXd1BoRDtFQWpDRDtJQUlJLHFCWDNONkM7R1d3UGhEO0VBakNEO0lBSUkscUJYM042QztHV3dQaEQ7RUFqQ0Q7SUFJSSxtQlgzTjZDO0dXd1BoRDtFQWpDRDtJQUlJLGdCWDNONkM7R1d3UGhEO0NqQnFtRFI7O0FHNzNEQztFYytSRSxxQkFBb0I7RUFDcEIsZVpwU2M7RVlxU2Qsc0Jack15QjtFWXVNekIsZ0JBQWU7Q0FhaEI7O0FBbEJEO0VBU0ksZVo1TTJEO0NZZ041RDs7QUFiSDtFQWdCSSxVQUFTO0NBQ1Y7O0FkbFVIO0VjdVVFLFlBQVc7RUFFWCxtQlh0UnFEO0VXdVJyRCxVQUFTO0VBQ1QscUJaeE55QjtFWTBOekIsY0FBYTtFQUNiLGdCQUFlO0VBQ2YsaUNaeFRpQjtFWXlUakIsZUFBYztDQUNmOztBQUdEOzs7RUFHRSxvQlpsUDBCO0VZbVAxQiw2QlpqT3lCO0VZa096QixpQlpyUHNCO0NZc1B2Qjs7QUFHRDtFQUNFLG1CQUFrQjtDQUNuQjs7QUFHRDtFQUNFLHFCWjNPc0I7RVk0T3RCLHNCWjlPa0I7Q1krT25COztBQUdEO0VBQ0UscUJaalBzQjtDWWtQdkI7O0FBR0Q7RUFFSSxxQlp0UDJCO0VZdVAzQixpQkFBZ0I7Q0FDakI7O0FBSUg7RUFDRSxvQlo1UHlCO0NZa1ExQjs7QUFQRDtFQUlJLHNCWjdQOEI7RVk4UDlCLGtCWnhWbUI7Q1l5VnBCOztBQUlIO0VBQ0UsaUJaM1IwQjtFWTRSMUIsdUNYOVVxRDtFVytVckQsK0JaM1dpQjtDWWlYbEI7O0FBVEQ7RUFNSSxpQlpqU29CO0VZa1NwQixlWjlXYTtDWStXZDs7QUFhSDtFQUNFLCtCWjVYUTtFWTZYUixhQUFZO0VBQ1osc0JBQXFCO0NBQ3RCOztBQUdEO0VBQ0UsVUFBUztDQUNWOztBQVVEO0VBQ0UsVUFBUztFQUNULDRCWGpYUztFV21YVCwwQlp0WmlCO0VZd1pqQiw2RFpsV21FO0VZbVduRSxZWnJaUTtFWXdaTix5Qlg5WG1EO0NXZ1l0RDs7QUNuVkQ7RUFDRSxtQmJpRHlCO0VhaER6QixzQmJpRDRCO0VhL0M1QixvQmJuRXlCO0Vhb0V6QixpQmIwQ3NCO0VhekN0QixlYjlFZTtDYStFaEI7O0FBR0Q7RUFDRSxnQmJrQ3FDO0VhakNyQyxpQmJrQ2lCO0NhakNsQjs7QUFHRDtFQUNFLGtCYm1DbUI7RWFsQ25CLGVBQWM7Q0FLZjs7QUFIQztFQUNFLGtCQUFpQjtDQUNsQjs7QUFHSDtFQUdJLGVBQWdDO0VBQ2hDLGlCQUFnQjtDQUNqQjs7QUFHSDtFQWpGQSxlQUFjO0VBQ2QsZWJ6QmlCO0VhMEJqQixxQlpDdUQ7Q1lnRnREOztBQS9FRDtFQUNFLG9CYjZFK0I7Q2E1RWhDOztBQStFRDtFQXpFQSwwQmJyQ21CO0Vhc0NuQiwwQmJ4Q21CO0VhMENuQiw2RGJZcUU7RWFYckUsb0JiL0IyQjtFYWdDM0IsWWJ4Q1U7RWE4Q1YsZ0JBQWU7RUFDZixnQkFBZTtFQUNmLHNCQUFxQjtFQUVyQixzQ1p4QnVEO0NZcUZ0RDs7QUFFRDtFQTlFQSwwQmJyQ21CO0Vhc0NuQiwwQmJ4Q21CO0VhMENu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akIsNEJBQW1CO1VBQW5CLG9CQUFtQjtFQUNuQixrQ0FBeUI7VUFBekIsMEJBQXlCO0NBQzVCOztBQUVEOztzQkFFc0I7QUFFdEI7RUFDQywwQnBCOURpQjtDb0IrRGpCOztBQUVEO0VBQ0MsdUJwQnZEVztDb0J3RFg7O0FBRUQ7RUFDQywwQnBCaEVvQjtDb0JvRXBCOztBQUVEO0VBQ0MsdUJwQm5FVztDb0JvRVg7O0FBRUQ7RUFDQyw4QkFBNkI7Q0FDN0I7O0FBRUQ7O3NCQUVzQjtBQUV0QjtFQUNDLHVCbkJyRHdEO0VtQnNEeEQsMEJuQnREd0Q7Q21CdUZ4RDs7QWZDTztFZXBDUjtJQUtFLHNCbkJ6RHVEO0ltQjBEdkQsMEJuQjFEdUQ7R21CdUZ4RDtDekI0K0ZBOztBVTMrRk87RWVwQ1I7SUFVRSxxQm5COUR1RDtJbUIrRHZELDBCbkIvRHVEO0dtQnVGeEQ7Q3pCbS9GQTs7QVU3K0ZPO0VlekNSO0lBZUUsa0JuQm5FdUQ7SW1Cb0V2RCwwQm5CcEV1RDtHbUJ1RnhEO0N6QjAvRkE7O0F5QjdoR0Q7RUFvQkUsa0JuQm5FVztDbUJnRlg7O0FmR007RWVwQ1I7SUF1QkcsMEJuQjNFc0Q7R21CcUZ2RDtDekJzZ0dEOztBVW5nR087RWVwQ1I7SUEyQkcsMEJuQi9Fc0Q7R21CcUZ2RDtDekI0Z0dEOztBVXBnR087RWV6Q1I7SUErQkcsMEJuQm5Gc0Q7R21CcUZ2RDtDekJraEdEOztBeUI5Z0dEO0VBQ0MsdUJuQjFGd0Q7RW1CMkZ4RCwwQm5CM0Z3RDtDbUJpSHhEOztBZnpCTztFZUNSO0lBS0UscUJuQjlGdUQ7SW1CK0Z2RCwwQm5CL0Z1RDtHbUJpSHhEO0N6QmtnR0E7O0FVM2hHTztFZUNSO0lBVUUsa0JuQm5HdUQ7SW1Cb0d2RCwwQm5CcEd1RDtHbUJpSHhEO0N6QnlnR0E7O0FVN2hHTztFZUpSO0lBZUUsb0JuQnhHdUQ7SW1CeUd2RCwwQm5Cekd1RDtHbUJpSHhEO0N6QmdoR0E7O0FVcGlHTztFZUpSO0lBb0JFLHNCbkI3R3VEO0ltQjhHdkQsMEJuQjlHdUQ7R21CaUh4RDtDekJ1aEdBOztBeUJyaEdE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dkQ7O0FBR0Y7O3NCQUVzQjtBVHdPcEI7O0VTck9ELGlCQUFnQjtDQUNoQjs7QUFFRDtFQUNDLGlHQUEyQztFQUMzQyxpQkFBZ0I7RUFDaEIsd0JBQXVCO0NBQ3ZCOztBQUVEO0VBQ0MsK0ZBQXlDO0VBQ3pDLGtCQUFpQjtFQUNqQixpQkFBZ0I7Q0FDaEI7O0FUcU9DOzs7Ozs7RVNqT0Qsc0JwQmlDd0Q7RW9CaEN4RCxrQkFBaUI7RUFDakIsaUJBQWdCO0VBQ2hCLHVCQUFzQjtDQXlCdEI7O0FBOUJEO0VBUUUsdUNBQXNDO0NBQ3RDOztBaEJrSE07RU93R047Ozs7OztJU3ZOQSxzQnBCdUJ1RDtHb0JMeEQ7QzFCKzRHQTs7QTBCNzZHRDtFQWlCRSxzQkFBcUI7Q0FLckI7O0FBdEJGO0VBb0JHLFlyQlhTO0NxQllUOztBaEJzR0s7RWdCM0hSO0lBMEJHLGNBQWE7R0FDYjtDMUJnNkdGOztBaUJqc0dPO0VTeE5QLFlyQnpCVztFcUIwQlgsa0JwQkF3RDtFb0JDeEQsZUFBYztDQXVDZDs7QWhCZ0RPO0VPK0hBO0lTbk5MLGdCcEJKc0Q7R29Cd0N4RDtDMUI0M0dBOztBVTUwR087RU8rSEE7SVMvTUwsb0JwQlJzRDtJb0JTdEQsaUJBQWdCO0dBK0JsQjtDMUJtNEdBOztBVTkwR087RU8wSEE7SVMxTUwsbUJwQmJzRDtJb0JjdEQsaUJBQWdCO0dBMEJsQjtDMUIwNEdBOztBVXIxR087RU8wSEE7SVNyTUwsa0JwQmxCc0Q7SW9CbUJ0RCxpQkFBZ0I7R0FxQmxCO0MxQmk1R0E7O0EwQjU3R0Q7RUEwQkcsbUJwQnZCc0Q7Q29Cc0N0RDs7QWhCa0RLO0VnQjNGUjtJQTZCSSxxQnBCMUJxRDtHb0JzQ3REO0MxQjY1R0Y7O0FVMzJHTztFZ0IzRlI7SUFpQ0ksb0JwQjlCcUQ7SW9CK0JyRCxpQkFBZ0I7R0FPakI7QzFCbzZHRjs7QVU3MkdPO0VnQmhHUjtJQXNDSSxtQnBCbkNxRDtJb0JvQ3JELGlCQUFnQjtHQUVqQjtDMUIyNkdGOztBaUIxdkdPO0VTM0tQLFlyQnRFVztFcUJ1RVgsZ0JwQjdDd0Q7Q29Cc0V4RDs7QWhCa0JPO0VPK0hBO0lTdktOLG1CcEJoRHVEO0dvQnNFeEQ7QzFCczVHQTs7QVVwNEdPO0VPK0hBO0lTbktOLG9CcEJwRHVEO0lvQnFEdkQsaUJBQWdCO0dBaUJqQjtDMUI2NUdBOztBMEJ6N0dEO0VBZ0JFLG9CcEIxRHVEO0NvQm9FdkQ7O0FoQm9CTTtFZ0I5Q1I7SUFtQkcsb0JwQjdEc0Q7R29Cb0V2RDtDMUJ5NkdEOztBVXI1R087RWdCOUNSO0lBdUJHLG9CcEJqRXNEO0dvQm9FdkQ7QzFCKzZHRDs7QWlCNXhHTztFUzdJUCxvQnBCMUV3RDtFb0IyRXhELFlyQnJHVztDcUJxSFg7O0FoQkhPO0VPK0hBO0lTeklOLG9CcEI5RXVEO0lvQitFdkQsc0JwQi9FdUQ7R29CMkZ4RDtDMUJvNkdBOztBMEJ2N0dEO0VBV0Usa0JwQm5GdUQ7Q29CeUZ2RDs7QWhCRE07RWdCaEJSO0lBY0csbUJwQnRGc0Q7R29CeUZ2RDtDMUJnN0dEOztBaUJsekdPO0VTekhQLG9GckIxRXdGO0VxQjJFeEYscUJwQi9Gd0Q7RW9CZ0d4RCxxQnBCaEd3RDtDb0IrR3hEOztBaEJ2Qk87RU8rSEE7SVNwSE4sa0JwQm5HdUQ7R29CK0d4RDtDMUJzNkdBOztBMEJ4N0dEO0VBVUUscUJwQnZHdUQ7Q29CNkd2RDs7QWhCckJNO0VnQktSO0lBYUcsbUJwQjFHc0Q7R29CNkd2RDtDMUJrN0dEOztBaUJ4MEdPO0VTckdQLG9GckI5RndGO0VxQitGeEYsb0JwQm5Id0Q7RW9Cb0h4RCxxQnBCcEh3RDtDb0JtSXhEOztBaEIzQ087RU8rSEE7SVNoR04sb0JwQnZIdUQ7R29CbUl4RDtDMUJ3NkdBOztBMEIxN0dEO0VBVUUsb0JwQjNIdUQ7Q29CaUl2RDs7QWhCekNNO0VnQnlCUjtJQWFHLGtCcEI5SHNEO0dvQmlJdkQ7QzFCbzdHRDs7QWlCOTFHTztFU2pGUCxvRnJCbEh3RjtFcUJtSHhGLG1CcEJ2SXdEO0VvQndJeEQscUJwQnhJd0Q7Q29COEl4RDs7QWhCdERPO0VPK0hBO0lTNUVOLGdCcEIzSXVEO0dvQjhJeEQ7QzFCbTdHQTs7QTBCajdH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MEV5QztJb0N6RXpDLHVCcEN5RXlDO0dvQ3hFNUM7RUFWUjtJQWFXLHVCcENxRXlDO0lvQ3BFekMsMEJwQ29FeUM7SW9DbkV6Qyx3QnBDbUV5QztHb0NsRTVDO0MxQzIrTVo7O0FVajFNTztFZ0MxS0g7SUFzQlcsdUJwQzREeUM7SW9DM0R6QywwQnBDMkR5QztJb0MxRHpDLHNCcEMwRHlDO0dvQ3pENUM7RUF6QlI7SUE0QlcsdUJwQ3NEeUM7SW9DckR6QywwQnBDcUR5QztJb0NwRHpDLHVCcENvRHlDO0dvQ25ENUM7QzFDeStNWjs7QTBDcCtNRztFQUNJLG1CQUFrQjtDQWFyQjs7QWhDd0hHO0VnQ3RJSjtJQUlRLHVCcEMwQzZDO0dvQ2hDcEQ7QzFDZytNSjs7QTBDOStNSTtFQVFPLE9BQU07RUFDTixxQkFBaUI7S0FBakIsa0JBQWlCO0VBQ2pCLFlBQVc7RUFDWCxhQUFZO0NBQ2Y7O0FBdERUO0VBMkRRLHFCcEM2QmlEO0NvQ3hCcEQ7O0FoQ2dIRztFZ0NoTFI7SUE4RFksc0JwQzBCNkM7R29DeEJwRDtDMUN5K01KOztBVXozTU87RWdDNUdSO0lBS1ksbUJBQWtCO0dBR3pCO0MxQ20rTUo7O0EyQzdpTkc7RUFDSSxzQnJDcUZpRDtDcUNwRnBEOztBQUVEO0VBQ0ksbUJBQWtCO0VBQ2xCLHdCckNnRmlEO0VxQy9FakQsaUJyQytFaUQ7Q3FDakRwRDs7QWpDeUlHO0VpQzFLSjtJQU1RLGlCckM0RTZDO0dxQ2pEcEQ7QzNDd2hOSjs7QVUvNE1PO0VpQzFLSjtJQVVFLGdCckN3RW1EO0lxQ3ZFbkQseUJyQ3VFbUQ7R3FDakRwRDtDM0MraE5KOztBMkNsak5HO0VBQ0MsY3JDbUVvRDtDcUMxRHBEOztBakNrSkc7RWlDNUpKO0lBSUcsZ0JyQ2dFa0Q7R3FDMURwRDtDM0Nrak5KOztBVWg2TU87RWlDNUpKO0lBUUcsaUJyQzREa0Q7R3FDMURwRDtDM0N3ak5KOztBMkNobE5JO0VBMkJPLG1CQUFrQjtFQUNsQixPQUFNO0VBQ04scUJBQWlCO0tBQWpCLGtCQUFpQjtFQUNqQixZQUFXO0VBQ1gsYUFBWTtDQUNmOztBQUdKO0VBT0Esc0JyQ3dDb0Q7Q3FDdkNwRDs7QUNqREw7RUFHUSxZQUFXO0VBQ1gsbUJ0Q29GaUQ7RXNDbkZqRCxxQnRDbUZpRDtDc0M5RXBEOztBbEMyS0c7RWtDckxSO0lBUVksaUJ0Q2dGNkM7R3NDOUVwRDtDNUNvbU5KOztBNkM5bU5EO0VBRUksb0J2QzJGUztDdUNqRlo7O0FBWkQ7RUFLUSxlQUFjO0NBQ2pCOztBQU5MO0VBU1Esa0JBQWlCO0NBQ3BCOztBQUlMO0VBQ0ksbUJBQWtCO0NBV3JCOztBQVpEO0VBS1EsWXhDNENJO0N3QzNDUDs7QUFOTDtFQVNRLHFCdkNpRWlEO0N1Q2hFcEQ7O0FBSUw7RUFFSSxpQ3ZDMERxRDtDdUNwRHhEOztBbkM0SU87RW1DcEpSO0lBS1EsbUN2Q3VEaUQ7R3VDcER4RDtDN0M0bU5BOztBNkMxbU5EO0VBQ0ksaUJ2Q3NEUztDdUNyRFo7O0FBRUQ7RUFDSSxpQkFBZ0I7Q0FDbkI7O0FBRUQ7RUFDSSxtQkFBa0I7RUFDbEIsT0FBTTtFQUNOLFlBQVc7RUFDWCxxQkFBaUI7S0FBakIsa0JBQWlCO0VBQ2pCLFlBQVc7RUFDWCxhQUFZO0NBQ2Y7O0FBRUQ7RUFDSSx1QkFBc0I7RUFDdEIsY0FBYTtFQUNiLHFCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2IsMEJBQW1CO01BQW5CLHVCQUFtQjtVQUFuQixvQkFBbUI7RUFDbkIseUJBQXVCO01BQXZCLHNCQUF1QjtVQUF2Qix3QkFBdUI7Q0FZMUI7O0FBVEc7RUFDSSxrQkFBaUI7RUFDakIsZ0JBQWU7Q0FDbEI7O0FBQ0Q7RUFDSSxrQkFBaUI7RUFDakIsZ0JBQWU7Q0FDbEI7O0FDdEVMOztFQUdFLHNCeENxRnVEO0N3Q2hGdkQ7O0FwQ3dLTTtFb0NoTFI7O0lBTUcsc0J4Q2tGc0Q7R3dDaEZ2RDtDOUN1ck5EOztBOENwck5EO0VBQ0MsdUJ6Q2tEVztDeUNrQlg7O0FBbEVBO0VBQ0MsdUJBQXNCO0VBQ3RCLDJCQUEwQjtFQUMxQixhQUFZO0VBQ1osY0FBYTtFQUNiLE9BQU07RUFDTixRQUFPO0VBQ1AsWUFBVztDQUNYOztBQVhGO0VBY0UsWXpDc0NVO0N5Q3JDVjs7QXBDc0pNO0VvQ3BKUDtJQUVFLDhCQUE2QjtHQUc5QjtDOUNzck5EOztBVXZpTk87RW9DN0lQO0lBR0UsdUJ4Q2tEc0Q7SXdDakR0RCx5QnhDaURzRDtHd0N6Q3ZEO0M5QytxTkQ7O0FVOWlOTztFb0M3SVA7SUFRRSxvQnhDNkNzRDtJd0M1Q3RELHlCeEM0Q3NEO0d3Q3pDdkQ7QzlDc3JORDs7QVVyak5PO0VvQy9IUDtJQUdFLGVBQWM7SUFDZCxrQkFBaUI7R0FVbEI7QzlDNnFORDs7QThDcHJOQztFQVBBO0lBU0UsbUJBQWtCO0lBQ2xCLHdCQUF1QjtJQUN2QixlQUFjO0dBQ2Q7QzlDdXJOSDs7QStCbHNOQTtFZWdCQyxvQnhDc0J1RDtFd0NyQnZELHVCeENxQnVEO0N3Q2hCdkQ7O0FwQ3dHTTtFcUI5SFA7SWVvQkUsc0J4Q2tCc0Q7R3dDaEJ2RDtDOUN1ck5EOztBOENwdk5EO0VBaUVHLFl6Q2JTO0N5Q2NUOztBQUtIO0VBQ0MseUJ4Q0t3RDtDd0NKeEQ7O0FBRUQ7RUFDQywwQnpDMUJrQjtDeUMyQmxCOztBQUVEO0VBQ0Msd0J4Q0h3RDtDd0NReEQ7O0FwQ2dGTztFb0N0RlI7SUFJRSxpQkFBZ0I7R0FFakI7QzlDcXJOQTs7QThDbnJORDtFQUdFLHNCeENidUQ7Q3dDY3ZEOztBcEMwRU07RW9DOUVSO0lBUUcscUJ4Q2xCc0Q7R3dDb0J2RDtDOUNtck5EOztBOEMvcU5EO0VBQ0MscUJBQWE7RUFBYixxQkFBYTtFQUFiLGNBQWE7RUFDYixpQkFBZ0I7RUFDaEIsbUJBQWtCO0NBMERsQjs7QXBDR087RW9DaEVSO0lBT0csdUJBQXFCO1FBQXJCLG9CQUFxQjtZQUFyQixzQkFBcUI7R0FDckI7QzlDbXJORjs7QVUzbk5PO0VvQ2hFUjtJQVlFLGlCQUFnQjtJQUNoQixtQnhDckN1RDtJd0NzQ3ZELHdCeEN0Q3VEO0d3Q3FGeEQ7QzlDc29OQTs7QThDbnNORDtFQWtCRSxpQkFBZ0I7Q0FDaEI7O0FBbkJGO0VBc0JFLFlBQVc7RUFDWCxXQUFVO0NB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O1lBQXRCLHdCQUFzQjtJQUN0Qiw0QkFBMkI7R0FDNUI7RTdCNkJDOztJNkIxQkEsdUJBQXNCO0lBQ3RCLDJCQUEwQjtHQVczQjtFQWJEO0lBTUksNkJBQTRCO0dBQzdCO0VBUEg7SUFXSSw4QkFBNkI7R0FDOUI7RTdCc0JEOzs7STZCaEJBLFlBQVc7R0FDWjtFN0J1QkM7O0k2QnBCQSx1QkFBc0I7SUFDdEIseUJBQXdCO0dBQ3pCO0U3QnlCQztJNkJ0QkEsNEJBQTJCO0dBQzVCO0U3QnVCQzs7STZCcEJBLHlCQUF3QjtHQUN6QjtFOUMrREQ7SThDNURFLDJCQUEwQjtHQUMzQjtFQUVDO0lBQ0UsY0FBYTtHakQ0K05oQjtFb0J6OU5DOzs7STZCZkUsV0FBVTtJQUNWLFVBQVM7R0FDVjtFN0JxQkQ7O0k2QmpCRSx3QkFBdUI7R0FDeEI7RUFHRDs7Ozs7SUFLRSxjQUFhO0dBQ2Q7Q2pEMCtOSiIsImZpbGUiOiJhc3NldHMvY3NzL3N0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblx0XG5TdHlsZXNoZWV0OiBNYWluIFN0eWxlc2hlZXRcbkhlcmUncyB3aGVyZSB0aGUgbWFnaWMgaGFwcGVucy4gSGVyZSBpcyB3aGVyZSB5b3UgaW1wb3J0XG5hbGwgb2YgeW91ciBTYXNzIGZpbGVzIHNvIHRoZXkgY2FuIGNvbXBpbGUgaW50byBvbmUgQ1NTIGZpbGUuIFxuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cblN0eWxlc2hlZXQ6IE1peGlucyAmIENvbnN0YW50cyBTdHlsZXNoZWV0XG5UaGlzIGlzIHdoZXJlIHlvdSBjYW4gdGFrZSBhZHZhbnRhZ2Ugb2YgU2FzcycgZ3JlYXQgZmVhdHVyZXM6IE1peGlucyAmIENvbnN0YW50cy5cblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKlxuR0xPQkFMIFRSQU5TSVRJT04gTUlYSU5cblVzZSBsaWtlIHRoaXM6IEBpbmNsdWRlIHRyYW5zaXRpb24ocHJvcGVydHkxLCBwcm9wZXJ0eTIpO1xuKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKlxuQ09MT1JTXG4qKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqXG5DU1MzIEdSQURJRU5UUy5cbioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEBpbmNsdWRlIGNzcy1ncmFkaWVudCgjZGZkZmRmLCNmOGY4ZjgpOyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKlxuV29vQ29tbWVyY2UgTWl4aW5zUFxuKioqKioqKioqKioqKioqKioqKioqL1xuLyoqXG4gKiBEZXByZWNhdGVkXG4gKiBGYWxsYmFjayBmb3IgYm91cmJvbiBlcXVpdmFsZW50XG4gKi9cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXG4gKi9cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXG4gKi9cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXG4gKi9cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXG4gKi9cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXG4gKi9cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXG4gKi9cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXG4gKi9cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXG4gKi9cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXG4gKi9cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXG4gKi9cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXG4gKi9cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVXNlIGJvdXJib24gbWl4aW4gaW5zdGVhZCBgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEuNSkpO2BcbiAqL1xuLyoqXG4gKiBEZXByZWNhdGVkXG4gKiBVc2UgYm91cmJvbiBtaXhpbiBpbnN0ZWFkIGBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO2BcbiAqL1xuLyoqXG4gKiBPYmplY3RzXG4gKi9cbi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXNcbiAqIFZlcnNpb24gNi42LjNcbiAqIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG4vKiEgbm9ybWFsaXplLmNzcyB2OC4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbn1cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG59XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIG1hcmdpbjogMDtcbn1cblxuYnV0dG9uLFxuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xufVxuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgZm9udDogaW5oZXJpdDtcbn1cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZvdW5kYXRpb24tbXEge1xuICBmb250LWZhbWlseTogXCJzbWFsbD0wZW0mbWVkaXVtPTQwZW0mbGFyZ2U9NjUuNjI1ZW0meGxhcmdlPTgxLjI1ZW0meHhsYXJnZT05My43NWVtXCI7XG59XG5cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LXNpemU6IDEwMCU7XG59XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGZvbnQtZmFtaWx5OiBcIkRJTlByb1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwMDA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5pbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xufVxuXG50ZXh0YXJlYSB7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogNTBweDtcbiAgYm9yZGVyLXJhZGl1czogMC4xODc1cmVtO1xufVxuXG5zZWxlY3Qge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMC4xODc1cmVtO1xufVxuXG4ubWFwX2NhbnZhcyBpbWcsXG4ubWFwX2NhbnZhcyBlbWJlZCxcbi5tYXBfY2FudmFzIG9iamVjdCxcbi5tcWEtZGlzcGxheSBpbWcsXG4ubXFhLWRpc3BsYXkgZW1iZWQsXG4ubXFhLWRpc3BsYXkgb2JqZWN0IHtcbiAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMC4xODc1cmVtO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGN1cnNvcjogYXV0bztcbn1cblxuW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGJ1dHRvbiB7XG4gIG91dGxpbmU6IDA7XG59XG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cblxuLmlzLXZpc2libGUge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG4uaXMtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ucm93IHtcbiAgbWF4LXdpZHRoOiA5Ny41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xufVxuXG4ucm93IC5yb3cge1xuICBtYXJnaW4tcmlnaHQ6IC0xLjA5Mzc1cmVtO1xuICBtYXJnaW4tbGVmdDogLTEuMDkzNzVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yb3cgLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMS4wOTM3NXJlbTtcbiAgICBtYXJnaW4tbGVmdDogLTEuMDkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC5yb3cgLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMS4wOTM3NXJlbTtcbiAgICBtYXJnaW4tbGVmdDogLTEuMDkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAucm93IC5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogLTEuMDkzNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IC0xLjA5Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkzLjc1ZW0pIHtcbiAgLnJvdyAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xLjA5Mzc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtMS4wOTM3NXJlbTtcbiAgfVxufVxuXG4ucm93IC5yb3cuY29sbGFwc2Uge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4ucm93LmV4cGFuZGVkIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuXG4ucm93LmV4cGFuZGVkIC5yb3cge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ucm93Om5vdCguZXhwYW5kZWQpIC5yb3cge1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG5cbi5yb3cuY29sbGFwc2UgPiAuY29sdW1uLCAucm93LmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5yb3cuaXMtY29sbGFwc2UtY2hpbGQsXG4ucm93LmNvbGxhcHNlID4gLmNvbHVtbiA+IC5yb3csXG4ucm93LmNvbGxhcHNlID4gLmNvbHVtbnMgPiAucm93IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLmNvbHVtbiwgLmNvbHVtbnMge1xuICBmbGV4OiAxIDEgMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxLjA5Mzc1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDEuMDkzNzVyZW07XG4gIG1pbi13aWR0aDogMDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNvbHVtbiwgLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuMDkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxLjA5Mzc1cmVtO1xuICB9XG59XG5cbi5jb2x1bW4ucm93LnJvdywgLnJvdy5yb3cuY29sdW1ucyB7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnJvdyAuY29sdW1uLnJvdy5yb3csIC5yb3cgLnJvdy5yb3cuY29sdW1ucyB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLnNtYWxsLTEge1xuICBmbGV4OiAwIDAgOC4zMzMzMzMzMyU7XG4gIG1heC13aWR0aDogOC4zMzMzMzMzMyU7XG59XG5cbi5zbWFsbC1vZmZzZXQtMCB7XG4gIG1hcmdpbi1sZWZ0OiAwJTtcbn1cblxuLnNtYWxsLTIge1xuICBmbGV4OiAwIDAgMTYuNjY2NjY2NjclO1xuICBtYXgtd2lkdGg6IDE2LjY2NjY2NjY3JTtcbn1cblxuLnNtYWxsLW9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xufVxuXG4uc21hbGwtMyB7XG4gIGZsZXg6IDAgMCAyNSU7XG4gIG1heC13aWR0aDogMjUlO1xufVxuXG4uc21hbGwtb2Zmc2V0LTIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xufVxuXG4uc21hbGwtNCB7XG4gIGZsZXg6IDAgMCAzMy4zMzMzMzMzMyU7XG4gIG1heC13aWR0aDogMzMuMzMzMzMzMzMlO1xufVxuXG4uc21hbGwtb2Zmc2V0LTMge1xuICBtYXJnaW4tbGVmdDogMjUlO1xufVxuXG4uc21hbGwtNSB7XG4gIGZsZXg6IDAgMCA0MS42NjY2NjY2NyU7XG4gIG1heC13aWR0aDogNDEuNjY2NjY2NjclO1xufVxuXG4uc21hbGwtb2Zmc2V0LTQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xufVxuXG4uc21hbGwtNiB7XG4gIGZsZXg6IDAgMCA1MCU7XG4gIG1heC13aWR0aDogNTAlO1xufVxuXG4uc21hbGwtb2Zmc2V0LTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xufVxuXG4uc21hbGwtNyB7XG4gIGZsZXg6IDAgMCA1OC4zMzMzMzMzMyU7XG4gIG1heC13aWR0aDogNTguMzMzMzMzMzMlO1xufVxuXG4uc21hbGwtb2Zmc2V0LTYge1xuICBtYXJnaW4tbGVmdDogNTAlO1xufVxuXG4uc21hbGwtOCB7XG4gIGZsZXg6IDAgMCA2Ni42NjY2NjY2NyU7XG4gIG1heC13aWR0aDogNjYuNjY2NjY2NjclO1xufVxuXG4uc21hbGwtb2Zmc2V0LTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xufVxuXG4uc21hbGwtOSB7XG4gIGZsZXg6IDAgMCA3NSU7XG4gIG1heC13aWR0aDogNzUlO1xufVxuXG4uc21hbGwtb2Zmc2V0LTgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xufVxuXG4uc21hbGwtMTAge1xuICBmbGV4OiAwIDAgODMuMzMzMzMzMzMlO1xuICBtYXgtd2lkdGg6IDgzLjMzMzMzMzMzJTtcbn1cblxuLnNtYWxsLW9mZnNldC05IHtcbiAgbWFyZ2luLWxlZnQ6IDc1JTtcbn1cblxuLnNtYWxsLTExIHtcbiAgZmxleDogMCAwIDkxLjY2NjY2NjY3JTtcbiAgbWF4LXdpZHRoOiA5MS42NjY2NjY2NyU7XG59XG5cbi5zbWFsbC1vZmZzZXQtMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xufVxuXG4uc21hbGwtMTIge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uc21hbGwtb2Zmc2V0LTExIHtcbiAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY3JTtcbn1cblxuLnNtYWxsLXVwLTEge1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5zbWFsbC11cC0xID4gLmNvbHVtbiwgLnNtYWxsLXVwLTEgPiAuY29sdW1ucyB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5zbWFsbC11cC0yIHtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uc21hbGwtdXAtMiA+IC5jb2x1bW4sIC5zbWFsbC11cC0yID4gLmNvbHVtbnMge1xuICBmbGV4OiAwIDAgNTAlO1xuICBtYXgtd2lkdGg6IDUwJTtcbn1cblxuLnNtYWxsLXVwLTMge1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5zbWFsbC11cC0zID4gLmNvbHVtbiwgLnNtYWxsLXVwLTMgPiAuY29sdW1ucyB7XG4gIGZsZXg6IDAgMCAzMy4zMzMzMzMzMyU7XG4gIG1heC13aWR0aDogMzMuMzMzMzMzMzMlO1xufVxuXG4uc21hbGwtdXAtNCB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnNtYWxsLXVwLTQgPiAuY29sdW1uLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zIHtcbiAgZmxleDogMCAwIDI1JTtcbiAgbWF4LXdpZHRoOiAyNSU7XG59XG5cbi5zbWFsbC11cC01IHtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uc21hbGwtdXAtNSA+IC5jb2x1bW4sIC5zbWFsbC11cC01ID4gLmNvbHVtbnMge1xuICBmbGV4OiAwIDAgMjAlO1xuICBtYXgtd2lkdGg6IDIwJTtcbn1cblxuLnNtYWxsLXVwLTYge1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5zbWFsbC11cC02ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTYgPiAuY29sdW1ucyB7XG4gIGZsZXg6IDAgMCAxNi42NjY2NjY2NyU7XG4gIG1heC13aWR0aDogMTYuNjY2NjY2NjclO1xufVxuXG4uc21hbGwtdXAtNyB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnNtYWxsLXVwLTcgPiAuY29sdW1uLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zIHtcbiAgZmxleDogMCAwIDE0LjI4NTcxNDI5JTtcbiAgbWF4LXdpZHRoOiAxNC4yODU3MTQyOSU7XG59XG5cbi5zbWFsbC11cC04IHtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uc21hbGwtdXAtOCA+IC5jb2x1bW4sIC5zbWFsbC11cC04ID4gLmNvbHVtbnMge1xuICBmbGV4OiAwIDAgMTIuNSU7XG4gIG1heC13aWR0aDogMTIuNSU7XG59XG5cbi5zbWFsbC1jb2xsYXBzZSA+IC5jb2x1bW4sIC5zbWFsbC1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4uc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5zbWFsbC11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICBwYWRkaW5nLXJpZ2h0OiAxLjA5Mzc1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDEuMDkzNzVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tMSB7XG4gICAgZmxleDogMCAwIDguMzMzMzMzMzMlO1xuICAgIG1heC13aWR0aDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICB9XG4gIC5tZWRpdW0tMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAubWVkaXVtLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS0zIHtcbiAgICBmbGV4OiAwIDAgMjUlO1xuICAgIG1heC13aWR0aDogMjUlO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS00IHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLm1lZGl1bS01IHtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS02IHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS03IHtcbiAgICBmbGV4OiAwIDAgNTguMzMzMzMzMzMlO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLm1lZGl1bS04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS05IHtcbiAgICBmbGV4OiAwIDAgNzUlO1xuICAgIG1heC13aWR0aDogNzUlO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS0xMCB7XG4gICAgZmxleDogMCAwIDgzLjMzMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAubWVkaXVtLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xuICB9XG4gIC5tZWRpdW0tMTEge1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS0xMiB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5tZWRpdW0tdXAtMSB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm1lZGl1bS11cC0yIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLm1lZGl1bS11cC0yID4gLmNvbHVtbiwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbiAgLm1lZGl1bS11cC0zIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLm1lZGl1bS11cC0zID4gLmNvbHVtbiwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS11cC00IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLm1lZGl1bS11cC00ID4gLmNvbHVtbiwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLm1lZGl1bS11cC01IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLm1lZGl1bS11cC01ID4gLmNvbHVtbiwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAyMCU7XG4gICAgbWF4LXdpZHRoOiAyMCU7XG4gIH1cbiAgLm1lZGl1bS11cC02IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLm1lZGl1bS11cC02ID4gLmNvbHVtbiwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS11cC03IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLm1lZGl1bS11cC03ID4gLmNvbHVtbiwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxNC4yODU3MTQyOSU7XG4gICAgbWF4LXdpZHRoOiAxNC4yODU3MTQyOSU7XG4gIH1cbiAgLm1lZGl1bS11cC04IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLm1lZGl1bS11cC04ID4gLmNvbHVtbiwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxMi41JTtcbiAgICBtYXgtd2lkdGg6IDEyLjUlO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLWV4cGFuZCB7XG4gICAgZmxleDogMSAxIDBweDtcbiAgfVxufVxuXG4ucm93Lm1lZGl1bS11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy5tZWRpdW0tdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgZmxleDogMCAwIDEwMCU7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yb3cubWVkaXVtLXVuc3RhY2sgPiAuY29sdW1uLCAucm93Lm1lZGl1bS11bnN0YWNrID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDEgMSAwcHg7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS1jb2xsYXBzZSA+IC5jb2x1bW4sIC5tZWRpdW0tY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbiAgLm1lZGl1bS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLm1lZGl1bS11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuMDkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxLjA5Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAubGFyZ2UtMSB7XG4gICAgZmxleDogMCAwIDguMzMzMzMzMzMlO1xuICAgIG1heC13aWR0aDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxhcmdlLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gIH1cbiAgLmxhcmdlLTIge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmxhcmdlLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxhcmdlLTMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLmxhcmdlLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5sYXJnZS00IHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXJnZS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAubGFyZ2UtNSB7XG4gICAgZmxleDogMCAwIDQxLjY2NjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAubGFyZ2Utb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmxhcmdlLTYge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbiAgLmxhcmdlLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5sYXJnZS03IHtcbiAgICBmbGV4OiAwIDAgNTguMzMzMzMzMzMlO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5sYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAubGFyZ2UtOCB7XG4gICAgZmxleDogMCAwIDY2LjY2NjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAubGFyZ2Utb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxhcmdlLTkge1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gIH1cbiAgLmxhcmdlLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5sYXJnZS0xMCB7XG4gICAgZmxleDogMCAwIDgzLjMzMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAubGFyZ2Utb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLmxhcmdlLTExIHtcbiAgICBmbGV4OiAwIDAgOTEuNjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5sYXJnZS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmxhcmdlLTEyIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmxhcmdlLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAubGFyZ2UtdXAtMSB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5sYXJnZS11cC0xID4gLmNvbHVtbiwgLmxhcmdlLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5sYXJnZS11cC0yIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLmxhcmdlLXVwLTIgPiAuY29sdW1uLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG4gIC5sYXJnZS11cC0zIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLmxhcmdlLXVwLTMgPiAuY29sdW1uLCAubGFyZ2UtdXAtMyA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXJnZS11cC00IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLmxhcmdlLXVwLTQgPiAuY29sdW1uLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMjUlO1xuICAgIG1heC13aWR0aDogMjUlO1xuICB9XG4gIC5sYXJnZS11cC01IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLmxhcmdlLXVwLTUgPiAuY29sdW1uLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMjAlO1xuICAgIG1heC13aWR0aDogMjAlO1xuICB9XG4gIC5sYXJnZS11cC02IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLmxhcmdlLXVwLTYgPiAuY29sdW1uLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTYuNjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5sYXJnZS11cC03IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLmxhcmdlLXVwLTcgPiAuY29sdW1uLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTQuMjg1NzE0MjklO1xuICAgIG1heC13aWR0aDogMTQuMjg1NzE0MjklO1xuICB9XG4gIC5sYXJnZS11cC04IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLmxhcmdlLXVwLTggPiAuY29sdW1uLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTIuNSU7XG4gICAgbWF4LXdpZHRoOiAxMi41JTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAubGFyZ2UtZXhwYW5kIHtcbiAgICBmbGV4OiAxIDEgMHB4O1xuICB9XG59XG5cbi5yb3cubGFyZ2UtdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cubGFyZ2UtdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgZmxleDogMCAwIDEwMCU7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAucm93LmxhcmdlLXVuc3RhY2sgPiAuY29sdW1uLCAucm93LmxhcmdlLXVuc3RhY2sgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMSAxIDBweDtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG4gIC5sYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMS4wOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuMDkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAueGxhcmdlLTEge1xuICAgIGZsZXg6IDAgMCA4LjMzMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMzMzMlO1xuICB9XG4gIC54bGFyZ2Utb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgfVxuICAueGxhcmdlLTIge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLnhsYXJnZS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC54bGFyZ2UtMyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgfVxuICAueGxhcmdlLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC54bGFyZ2UtNCB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAueGxhcmdlLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xuICB9XG4gIC54bGFyZ2UtNSB7XG4gICAgZmxleDogMCAwIDQxLjY2NjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAueGxhcmdlLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC54bGFyZ2UtNiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgfVxuICAueGxhcmdlLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC54bGFyZ2UtNyB7XG4gICAgZmxleDogMCAwIDU4LjMzMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAueGxhcmdlLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICB9XG4gIC54bGFyZ2UtOCB7XG4gICAgZmxleDogMCAwIDY2LjY2NjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAueGxhcmdlLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC54bGFyZ2UtOSB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTtcbiAgfVxuICAueGxhcmdlLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC54bGFyZ2UtMTAge1xuICAgIGZsZXg6IDAgMCA4My4zMzMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLnhsYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAueGxhcmdlLTExIHtcbiAgICBmbGV4OiAwIDAgOTEuNjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC54bGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC54bGFyZ2UtMTIge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICAueGxhcmdlLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAueGxhcmdlLXVwLTEge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAueGxhcmdlLXVwLTEgPiAuY29sdW1uLCAueGxhcmdlLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC54bGFyZ2UtdXAtMiB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54bGFyZ2UtdXAtMiA+IC5jb2x1bW4sIC54bGFyZ2UtdXAtMiA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG4gIC54bGFyZ2UtdXAtMyB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54bGFyZ2UtdXAtMyA+IC5jb2x1bW4sIC54bGFyZ2UtdXAtMyA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC54bGFyZ2UtdXAtNCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54bGFyZ2UtdXAtNCA+IC5jb2x1bW4sIC54bGFyZ2UtdXAtNCA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMjUlO1xuICAgIG1heC13aWR0aDogMjUlO1xuICB9XG4gIC54bGFyZ2UtdXAtNSB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54bGFyZ2UtdXAtNSA+IC5jb2x1bW4sIC54bGFyZ2UtdXAtNSA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMjAlO1xuICAgIG1heC13aWR0aDogMjAlO1xuICB9XG4gIC54bGFyZ2UtdXAtNiB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54bGFyZ2UtdXAtNiA+IC5jb2x1bW4sIC54bGFyZ2UtdXAtNiA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTYuNjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC54bGFyZ2UtdXAtNyB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54bGFyZ2UtdXAtNyA+IC5jb2x1bW4sIC54bGFyZ2UtdXAtNyA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTQuMjg1NzE0MjklO1xuICAgIG1heC13aWR0aDogMTQuMjg1NzE0MjklO1xuICB9XG4gIC54bGFyZ2UtdXAtOCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54bGFyZ2UtdXAtOCA+IC5jb2x1bW4sIC54bGFyZ2UtdXAtOCA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTIuNSU7XG4gICAgbWF4LXdpZHRoOiAxMi41JTtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MS4yNWVtKSBhbmQgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAueGxhcmdlLWV4cGFuZCB7XG4gICAgZmxleDogMSAxIDBweDtcbiAgfVxufVxuXG4ucm93LnhsYXJnZS11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy54bGFyZ2UtdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgZmxleDogMCAwIDEwMCU7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnJvdy54bGFyZ2UtdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cueGxhcmdlLXVuc3RhY2sgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMSAxIDBweDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC54bGFyZ2UtY29sbGFwc2UgPiAuY29sdW1uLCAueGxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG4gIC54bGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC54bGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjA5Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMS4wOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5My43NWVtKSB7XG4gIC54eGxhcmdlLTEge1xuICAgIGZsZXg6IDAgMCA4LjMzMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMzMzMlO1xuICB9XG4gIC54eGxhcmdlLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gIH1cbiAgLnh4bGFyZ2UtMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAueHhsYXJnZS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC54eGxhcmdlLTMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLnh4bGFyZ2UtNCB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAueHhsYXJnZS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAueHhsYXJnZS01IHtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC54eGxhcmdlLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC54eGxhcmdlLTYge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLnh4bGFyZ2UtNyB7XG4gICAgZmxleDogMCAwIDU4LjMzMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAueHhsYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAueHhsYXJnZS04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC54eGxhcmdlLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC54eGxhcmdlLTkge1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gIH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLnh4bGFyZ2UtMTAge1xuICAgIGZsZXg6IDAgMCA4My4zMzMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLnh4bGFyZ2UtMTEge1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC54eGxhcmdlLTEyIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC54eGxhcmdlLXVwLTEge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAueHhsYXJnZS11cC0xID4gLmNvbHVtbiwgLnh4bGFyZ2UtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnh4bGFyZ2UtdXAtMiB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54eGxhcmdlLXVwLTIgPiAuY29sdW1uLCAueHhsYXJnZS11cC0yID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbiAgLnh4bGFyZ2UtdXAtMyB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54eGxhcmdlLXVwLTMgPiAuY29sdW1uLCAueHhsYXJnZS11cC0zID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLnh4bGFyZ2UtdXAtNCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54eGxhcmdlLXVwLTQgPiAuY29sdW1uLCAueHhsYXJnZS11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLnh4bGFyZ2UtdXAtNSB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54eGxhcmdlLXVwLTUgPiAuY29sdW1uLCAueHhsYXJnZS11cC01ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAyMCU7XG4gICAgbWF4LXdpZHRoOiAyMCU7XG4gIH1cbiAgLnh4bGFyZ2UtdXAtNiB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54eGxhcmdlLXVwLTYgPiAuY29sdW1uLCAueHhsYXJnZS11cC02ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLnh4bGFyZ2UtdXAtNyB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54eGxhcmdlLXVwLTcgPiAuY29sdW1uLCAueHhsYXJnZS11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxNC4yODU3MTQyOSU7XG4gICAgbWF4LXdpZHRoOiAxNC4yODU3MTQyOSU7XG4gIH1cbiAgLnh4bGFyZ2UtdXAtOCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54eGxhcmdlLXVwLTggPiAuY29sdW1uLCAueHhsYXJnZS11cC04ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxMi41JTtcbiAgICBtYXgtd2lkdGg6IDEyLjUlO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkzLjc1ZW0pIGFuZCAobWluLXdpZHRoOiA5My43NWVtKSB7XG4gIC54eGxhcmdlLWV4cGFuZCB7XG4gICAgZmxleDogMSAxIDBweDtcbiAgfVxufVxuXG4ucm93Lnh4bGFyZ2UtdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cueHhsYXJnZS11bnN0YWNrID4gLmNvbHVtbnMge1xuICBmbGV4OiAwIDAgMTAwJTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTMuNzVlbSkge1xuICAucm93Lnh4bGFyZ2UtdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cueHhsYXJnZS11bnN0YWNrID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDEgMSAwcHg7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTMuNzVlbSkge1xuICAueHhsYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW4sIC54eGxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG4gIC54eGxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1uLCAueHhsYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuMDkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxLjA5Mzc1cmVtO1xuICB9XG59XG5cbi5zaHJpbmsge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uY29sdW1uLWJsb2NrIHtcbiAgbWFyZ2luLWJvdHRvbTogMi4xODc1cmVtO1xufVxuXG4uY29sdW1uLWJsb2NrID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuY29sdW1uLWJsb2NrIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyLjE4NzVyZW07XG4gIH1cbiAgLmNvbHVtbi1ibG9jayA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi5hbGlnbi1sZWZ0IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4uYWxpZ24tcmlnaHQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4uYWxpZ24tY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5hbGlnbi1qdXN0aWZ5IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uYWxpZ24tc3BhY2VkIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG59XG5cbi5hbGlnbi1sZWZ0LnZlcnRpY2FsLm1lbnUgPiBsaSA+IGEge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5hbGlnbi1yaWdodC52ZXJ0aWNhbC5tZW51ID4gbGkgPiBhIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLmFsaWduLWNlbnRlci52ZXJ0aWNhbC5tZW51ID4gbGkgPiBhIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5hbGlnbi10b3Age1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLmFsaWduLXNlbGYtdG9wIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cblxuLmFsaWduLWJvdHRvbSB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbn1cblxuLmFsaWduLXNlbGYtYm90dG9tIHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG59XG5cbi5hbGlnbi1taWRkbGUge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uYWxpZ24tc2VsZi1taWRkbGUge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbi5hbGlnbi1zdHJldGNoIHtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG5cbi5hbGlnbi1zZWxmLXN0cmV0Y2gge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xufVxuXG4uYWxpZ24tY2VudGVyLW1pZGRsZSB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5zbWFsbC1vcmRlci0xIHtcbiAgb3JkZXI6IDE7XG59XG5cbi5zbWFsbC1vcmRlci0yIHtcbiAgb3JkZXI6IDI7XG59XG5cbi5zbWFsbC1vcmRlci0zIHtcbiAgb3JkZXI6IDM7XG59XG5cbi5zbWFsbC1vcmRlci00IHtcbiAgb3JkZXI6IDQ7XG59XG5cbi5zbWFsbC1vcmRlci01IHtcbiAgb3JkZXI6IDU7XG59XG5cbi5zbWFsbC1vcmRlci02IHtcbiAgb3JkZXI6IDY7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLm1lZGl1bS1vcmRlci0yIHtcbiAgICBvcmRlcjogMjtcbiAgfVxuICAubWVkaXVtLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzO1xuICB9XG4gIC5tZWRpdW0tb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7XG4gIH1cbiAgLm1lZGl1bS1vcmRlci01IHtcbiAgICBvcmRlcjogNTtcbiAgfVxuICAubWVkaXVtLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAubGFyZ2Utb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLmxhcmdlLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyO1xuICB9XG4gIC5sYXJnZS1vcmRlci0zIHtcbiAgICBvcmRlcjogMztcbiAgfVxuICAubGFyZ2Utb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7XG4gIH1cbiAgLmxhcmdlLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1O1xuICB9XG4gIC5sYXJnZS1vcmRlci02IHtcbiAgICBvcmRlcjogNjtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC54bGFyZ2Utb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLnhsYXJnZS1vcmRlci0yIHtcbiAgICBvcmRlcjogMjtcbiAgfVxuICAueGxhcmdlLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzO1xuICB9XG4gIC54bGFyZ2Utb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7XG4gIH1cbiAgLnhsYXJnZS1vcmRlci01IHtcbiAgICBvcmRlcjogNTtcbiAgfVxuICAueGxhcmdlLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkzLjc1ZW0pIHtcbiAgLnh4bGFyZ2Utb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLnh4bGFyZ2Utb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7XG4gIH1cbiAgLnh4bGFyZ2Utb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7XG4gIH1cbiAgLnh4bGFyZ2Utb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7XG4gIH1cbiAgLnh4bGFyZ2Utb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7XG4gIH1cbiAgLnh4bGFyZ2Utb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7XG4gIH1cbn1cblxuLmZsZXgtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmZsZXgtY2hpbGQtYXV0byB7XG4gIGZsZXg6IDEgMSBhdXRvO1xufVxuXG4uZmxleC1jaGlsZC1ncm93IHtcbiAgZmxleDogMSAwIGF1dG87XG59XG5cbi5mbGV4LWNoaWxkLXNocmluayB7XG4gIGZsZXg6IDAgMSBhdXRvO1xufVxuXG4uZmxleC1kaXItcm93IHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cblxuLmZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xufVxuXG4uZmxleC1kaXItY29sdW1uIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmZsZXgtZGlyLWNvbHVtbi1yZXZlcnNlIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLWZsZXgtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG4gIC5tZWRpdW0tZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxuICAubWVkaXVtLWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cbiAgLm1lZGl1bS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cbiAgLm1lZGl1bS1mbGV4LWRpci1yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIH1cbiAgLm1lZGl1bS1mbGV4LWRpci1yb3ctcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB9XG4gIC5tZWRpdW0tZmxleC1kaXItY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5tZWRpdW0tZmxleC1kaXItY29sdW1uLXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLmxhcmdlLWZsZXgtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG4gIC5sYXJnZS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG4gIC5sYXJnZS1mbGV4LWNoaWxkLWdyb3cge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICB9XG4gIC5sYXJnZS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cbiAgLmxhcmdlLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubGFyZ2UtZmxleC1kaXItcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgfVxuICAubGFyZ2UtZmxleC1kaXItY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5sYXJnZS1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnhsYXJnZS1mbGV4LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuICAueGxhcmdlLWZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cbiAgLnhsYXJnZS1mbGV4LWNoaWxkLWdyb3cge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICB9XG4gIC54bGFyZ2UtZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG4gIC54bGFyZ2UtZmxleC1kaXItcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG4gIC54bGFyZ2UtZmxleC1kaXItcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgfVxuICAueGxhcmdlLWZsZXgtZGlyLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAueGxhcmdlLWZsZXgtZGlyLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTMuNzVlbSkge1xuICAueHhsYXJnZS1mbGV4LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuICAueHhsYXJnZS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG4gIC54eGxhcmdlLWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cbiAgLnh4bGFyZ2UtZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG4gIC54eGxhcmdlLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAueHhsYXJnZS1mbGV4LWRpci1yb3ctcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB9XG4gIC54eGxhcmdlLWZsZXgtZGlyLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAueHhsYXJnZS1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG59XG5cbi5oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAuaGlkZS1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDBlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuc2hvdy1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5oaWRlLWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5zaG93LWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDY1LjYyMzc1ZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY1LjYyMzc1ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSBhbmQgKG1heC13aWR0aDogODEuMjQ4NzVlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY1LjYyMzc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC5oaWRlLWZvci14bGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MS4yNDg3NWVtKSB7XG4gIC5zaG93LWZvci14bGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MS4yNWVtKSBhbmQgKG1heC13aWR0aDogOTMuNzQ4NzVlbSkge1xuICAuaGlkZS1mb3IteGxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MS4yNDg3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5My43NWVtKSB7XG4gIC5zaG93LWZvci14bGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkzLjc1ZW0pIHtcbiAgLmhpZGUtZm9yLXh4bGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5My43NDg3NWVtKSB7XG4gIC5zaG93LWZvci14eGxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTMuNzVlbSkge1xuICAuaGlkZS1mb3IteHhsYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTMuNzQ4NzVlbSkge1xuICAuc2hvdy1mb3IteHhsYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnNob3ctZm9yLXNyLFxuLnNob3ctb24tZm9jdXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKSAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xufVxuXG4uc2hvdy1vbi1mb2N1czphY3RpdmUsIC5zaG93LW9uLWZvY3VzOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2xpcDogYXV0byAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG59XG5cbi5zaG93LWZvci1sYW5kc2NhcGUsXG4uaGlkZS1mb3ItcG9ydHJhaXQge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uaGlkZS1mb3ItbGFuZHNjYXBlLFxuLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG5kaXYsXG5kbCxcbmR0LFxuZGQsXG51bCxcbm9sLFxubGksXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wcmUsXG5mb3JtLFxucCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5wIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMS42O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuXG5lbSxcbmkge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5zdHJvbmcsXG5iIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuaDEsIC5oMSxcbmgyLCAuaDIsXG5oMywgLmgzLCAubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtIC5tZW51X19saW5rLFxuaDQsIC5oNCxcbmg1LCAuaDUsXG5oNiwgLmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiRElOUHJvLUJvbGRcIiwgXCJJbXBhY3RcIiwgXCJBcmlhbCBCbGFja1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG5cbmgxIHNtYWxsLCAuaDEgc21hbGwsXG5oMiBzbWFsbCwgLmgyIHNtYWxsLFxuaDMgc21hbGwsIC5oMyBzbWFsbCwgLm1lbnUtLW9mZmNhbnZhcyAubWVudV9faXRlbSAubWVudV9fbGluayBzbWFsbCxcbmg0IHNtYWxsLCAuaDQgc21hbGwsXG5oNSBzbWFsbCwgLmg1IHNtYWxsLFxuaDYgc21hbGwsIC5oNiBzbWFsbCB7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBjb2xvcjogI2U4ZTVkYTtcbn1cblxuaDEsIC5oMSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xufVxuXG5oMiwgLmgyIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xufVxuXG5oMywgLmgzLCAubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtIC5tZW51X19saW5rIHtcbiAgZm9udC1zaXplOiAxLjE4NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG5cbmg0LCAuaDQge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xufVxuXG5oNSwgLmg1IHtcbiAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG5cbmg2LCAuaDYge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGgxLCAuaDEge1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgfVxuICBoMiwgLmgyIHtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgfVxuICBoMywgLmgzLCAubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtIC5tZW51X19saW5rIHtcbiAgICBmb250LXNpemU6IDEuOTM3NXJlbTtcbiAgfVxuICBoNCwgLmg0IHtcbiAgICBmb250LXNpemU6IDEuNTYyNXJlbTtcbiAgfVxuICBoNSwgLmg1IHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gIH1cbiAgaDYsIC5oNiB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG59XG5cbmEge1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICMzOEQ0MzA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5hOmhvdmVyLCBhOmZvY3VzIHtcbiAgY29sb3I6ICMyZWI5MjY7XG59XG5cbmEgaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG5ociB7XG4gIGNsZWFyOiBib3RoO1xuICBtYXgtd2lkdGg6IDk3LjVyZW07XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAxLjI1cmVtIGF1dG87XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlOGU1ZGE7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuXG51bCxcbm9sLFxuZGwge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG5saSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cblxudWwge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xufVxuXG5vbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xufVxuXG51bCB1bCwgb2wgdWwsIHVsIG9sLCBvbCBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbmRsIGR0IHtcbiAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNTYyNXJlbSAxLjI1cmVtIDAgMS4xODc1cmVtO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlOGU1ZGE7XG59XG5cbmJsb2NrcXVvdGUsIGJsb2NrcXVvdGUgcCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGNvbG9yOiAjMTUxNTE1O1xufVxuXG5hYmJyLCBhYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzAwMDtcbiAgY3Vyc29yOiBoZWxwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cblxua2JkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwLjEyNXJlbSAwLjI1cmVtIDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYmZiZmI7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBjb2xvcjogIzAwMDtcbiAgYm9yZGVyLXJhZGl1czogMC4xODc1cmVtO1xufVxuXG4uc3ViaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMC4ycmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiAjMTUxNTE1O1xufVxuXG4ubGVhZCB7XG4gIGZvbnQtc2l6ZTogMTI1JTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuLnN0YXQge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbnAgKyAuc3RhdCB7XG4gIG1hcmdpbi10b3A6IC0xcmVtO1xufVxuXG51bC5uby1idWxsZXQsIG9sLm5vLWJ1bGxldCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4uY2l0ZS1ibG9jaywgY2l0ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogIzE1MTUxNTtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG59XG5cbi5jaXRlLWJsb2NrOmJlZm9yZSwgY2l0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIuKAlCBcIjtcbn1cblxuLmNvZGUtaW5saW5lLCBjb2RlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U4ZTVkYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZiZmJmYjtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMDAwO1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBwYWRkaW5nOiAwLjEyNXJlbSAwLjMxMjVyZW0gMC4wNjI1cmVtO1xufVxuXG4uY29kZS1ibG9jayB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlOGU1ZGE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYmZiZmI7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzAwMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogcHJlO1xuICBwYWRkaW5nOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbi50ZXh0LWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4udGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi50ZXh0LWp1c3RpZnkge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICAubWVkaXVtLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIC5tZWRpdW0tdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAubWVkaXVtLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLmxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICAubGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbiAgLmxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLmxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC54bGFyZ2UtdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC54bGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbiAgLnhsYXJnZS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC54bGFyZ2UtdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkzLjc1ZW0pIHtcbiAgLnh4bGFyZ2UtdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC54eGxhcmdlLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIC54eGxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLnh4bGFyZ2UtdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICB9XG59XG5cbi5zaG93LWZvci1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgKiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICBjb2xvci1hZGp1c3Q6IGVjb25vbXk7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIC5oaWRlLWZvci1wcmludCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIHRhYmxlLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIHRoZWFkLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDtcbiAgfVxuICB0Ym9keS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7XG4gIH1cbiAgdHIuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIHRkLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGguc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxuICBhLFxuICBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG4gIGFbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiO1xuICB9XG4gIC5pciBhOmFmdGVyLFxuICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICBhW2hyZWZePScjJ106YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG4gIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7XG4gIH1cbiAgcHJlLFxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMTUxNTE1O1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xuICB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIEBwYWdlIHtcbiAgICBtYXJnaW46IDAuNWNtO1xuICB9XG4gIHAsXG4gIGgyLFxuICBoMyB7XG4gICAgb3JwaGFuczogMztcbiAgICB3aWRvd3M6IDM7XG4gIH1cbiAgaDIsXG4gIGgzIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbiAgfVxuICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bztcbiAgfVxufVxuXG4ucmVzcG9uc2l2ZS1lbWJlZCxcbi5mbGV4LXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5yZXNwb25zaXZlLWVtYmVkIGlmcmFtZSxcbi5yZXNwb25zaXZlLWVtYmVkIG9iamVjdCxcbi5yZXNwb25zaXZlLWVtYmVkIGVtYmVkLFxuLnJlc3BvbnNpdmUtZW1iZWQgdmlkZW8sXG4uZmxleC12aWRlbyBpZnJhbWUsXG4uZmxleC12aWRlbyBvYmplY3QsXG4uZmxleC12aWRlbyBlbWJlZCxcbi5mbGV4LXZpZGVvIHZpZGVvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5yZXNwb25zaXZlLWVtYmVkLndpZGVzY3JlZW4sXG4uZmxleC12aWRlby53aWRlc2NyZWVuIHtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbn1cblxuLmlzLW9mZi1jYW52YXMtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTE7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLCB2aXNpYmlsaXR5IDAuNXMgZWFzZTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjY1KTtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uanMtb2ZmLWNhbnZhcy1vdmVybGF5LmlzLXZpc2libGUge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uanMtb2ZmLWNhbnZhcy1vdmVybGF5LmlzLWNsb3NhYmxlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uanMtb2ZmLWNhbnZhcy1vdmVybGF5LmlzLW92ZXJsYXktYWJzb2x1dGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtb3ZlcmxheS1maXhlZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cblxuLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm9mZi1jYW52YXMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEyO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6ICMwMDA7XG59XG5cbltkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub2ZmLWNhbnZhcyB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5vZmYtY2FudmFzLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gIHotaW5kZXg6IDEyO1xufVxuXG4ub2ZmLWNhbnZhcy5pcy1jbG9zZWQge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5vZmYtY2FudmFzLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gIHotaW5kZXg6IDEzO1xufVxuXG4ub2ZmLWNhbnZhcy5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5vZmYtY2FudmFzLmlzLW9wZW4ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbn1cblxuLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEyO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6ICMwMDA7XG59XG5cbltkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5vZmYtY2FudmFzLWFic29sdXRlLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gIHotaW5kZXg6IDEyO1xufVxuXG4ub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy1jbG9zZWQge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5vZmYtY2FudmFzLWFic29sdXRlLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gIHotaW5kZXg6IDEzO1xufVxuXG4ub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5vZmYtY2FudmFzLWFic29sdXRlLmlzLW9wZW4ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbn1cblxuLnBvc2l0aW9uLWxlZnQge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgd2lkdGg6IDE4Ljc1cmVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE4Ljc1cmVtKTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0IHtcbiAgICB3aWR0aDogMzcuNXJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTM3LjVyZW0pO1xuICB9XG59XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tbGVmdCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTguNzVyZW0pO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1sZWZ0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTM3LjVyZW0pO1xuICB9XG59XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tbGVmdC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tbGVmdC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE4Ljc1cmVtKTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaXMtb3Blbi1sZWZ0Lmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzNy41cmVtKTtcbiAgfVxufVxuXG4ucG9zaXRpb24tbGVmdC5pcy10cmFuc2l0aW9uLXB1c2gge1xuICBib3gtc2hhZG93OiBpbnNldCAtMTNweCAwIDIwcHggLTEzcHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cblxuLnBvc2l0aW9uLXJpZ2h0IHtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB3aWR0aDogMTguNzVyZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxOC43NXJlbSk7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAucG9zaXRpb24tcmlnaHQge1xuICAgIHdpZHRoOiAzNy41cmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzNy41cmVtKTtcbiAgfVxufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE4Ljc1cmVtKTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzNy41cmVtKTtcbiAgfVxufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0LmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG59XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQuaXMtb3Blbi1yaWdodC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xOC43NXJlbSk7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tcmlnaHQuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zNy41cmVtKTtcbiAgfVxufVxuXG4ucG9zaXRpb24tcmlnaHQuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMTNweCAwIDIwcHggLTEzcHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cblxuLnBvc2l0aW9uLXRvcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucG9zaXRpb24tdG9wIHtcbiAgICBoZWlnaHQ6IDI1MHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpO1xuICB9XG59XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tdG9wIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNTBweCk7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tdG9wIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MHB4KTtcbiAgfVxufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXRvcC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tdG9wLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjUwcHgpO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tdG9wLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7XG4gIH1cbn1cblxuLnBvc2l0aW9uLXRvcC5pcy10cmFuc2l0aW9uLXB1c2gge1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0xM3B4IDIwcHggLTEzcHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cblxuLnBvc2l0aW9uLWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5wb3NpdGlvbi1ib3R0b20ge1xuICAgIGhlaWdodDogMjUwcHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI1MHB4KTtcbiAgfVxufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLWJvdHRvbSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tYm90dG9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjUwcHgpO1xuICB9XG59XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tYm90dG9tLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG59XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQuaXMtb3Blbi1ib3R0b20uaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tYm90dG9tLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpO1xuICB9XG59XG5cbi5wb3NpdGlvbi1ib3R0b20uaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxM3B4IDIwcHggLTEzcHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cblxuLm9mZi1jYW52YXMtY29udGVudCB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy10cmFuc2l0aW9uLW92ZXJsYXAsIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG59XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLmlzLW9wZW4ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbiAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLWxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiAxOC43NXJlbTtcbiAgfVxuICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIG1hcmdpbi1sZWZ0OiAxOC43NXJlbTtcbiAgfVxuICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtcmlnaHQge1xuICAgIG1hcmdpbi1yaWdodDogMTguNzVyZW07XG4gIH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxOC43NXJlbTtcbiAgfVxuICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtdG9wIHtcbiAgICBtYXJnaW4tdG9wOiAxOC43NXJlbTtcbiAgfVxuICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogMTguNzVyZW07XG4gIH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbiAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLWJvdHRvbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTguNzVyZW07XG4gIH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDE4Ljc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDM3LjVyZW07XG4gIH1cbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIG1hcmdpbi1sZWZ0OiAzNy41cmVtO1xuICB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1yaWdodCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzNy41cmVtO1xuICB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzNy41cmVtO1xuICB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC10b3Age1xuICAgIG1hcmdpbi10b3A6IDM3LjVyZW07XG4gIH1cbiAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogMzcuNXJlbTtcbiAgfVxuICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtYm90dG9tIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzNy41cmVtO1xuICB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDM3LjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLXhsYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLXhsYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci14bGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDM3LjVyZW07XG4gIH1cbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci14bGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBtYXJnaW4tbGVmdDogMzcuNXJlbTtcbiAgfVxuICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci14bGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3IteGxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci14bGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtcmlnaHQge1xuICAgIG1hcmdpbi1yaWdodDogMzcuNXJlbTtcbiAgfVxuICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci14bGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDM3LjVyZW07XG4gIH1cbiAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLXhsYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3IteGxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tdG9wLnJldmVhbC1mb3IteGxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbiAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLXRvcCB7XG4gICAgbWFyZ2luLXRvcDogMzcuNXJlbTtcbiAgfVxuICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3IteGxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogMzcuNXJlbTtcbiAgfVxuICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3IteGxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci14bGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci14bGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtYm90dG9tIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzNy41cmVtO1xuICB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci14bGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBtYXJnaW4tYm90dG9tOiAzNy41cmVtO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkzLjc1ZW0pIHtcbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci14eGxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3IteHhsYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci14eGxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbiAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLWxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiAzNy41cmVtO1xuICB9XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3IteHhsYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIG1hcmdpbi1sZWZ0OiAzNy41cmVtO1xuICB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLXh4bGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3IteHhsYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3IteHhsYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1yaWdodCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzNy41cmVtO1xuICB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLXh4bGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDM3LjVyZW07XG4gIH1cbiAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLXh4bGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbiAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLXh4bGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci14eGxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbiAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLXRvcCB7XG4gICAgbWFyZ2luLXRvcDogMzcuNXJlbTtcbiAgfVxuICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3IteHhsYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDM3LjVyZW07XG4gIH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLXh4bGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLXh4bGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci14eGxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbiAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLWJvdHRvbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzcuNXJlbTtcbiAgfVxuICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3IteHhsYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDM3LjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1tZWRpdW0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLWxlZnQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLXJpZ2h0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi10b3AsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbiAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbiAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZS5wb3NpdGlvbi1sZWZ0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlLnBvc2l0aW9uLXJpZ2h0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlLnBvc2l0aW9uLXRvcCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZS5wb3NpdGlvbi1ib3R0b20ge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3IteGxhcmdlIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXhsYXJnZS5wb3NpdGlvbi1sZWZ0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXhsYXJnZS5wb3NpdGlvbi1yaWdodCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci14bGFyZ2UucG9zaXRpb24tdG9wLCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXhsYXJnZS5wb3NpdGlvbi1ib3R0b20ge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3IteGxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTMuNzVlbSkge1xuICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXh4bGFyZ2Uge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3IteHhsYXJnZS5wb3NpdGlvbi1sZWZ0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXh4bGFyZ2UucG9zaXRpb24tcmlnaHQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3IteHhsYXJnZS5wb3NpdGlvbi10b3AsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3IteHhsYXJnZS5wb3NpdGlvbi1ib3R0b20ge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3IteHhsYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi50YWJzIHtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmJmYmZiO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi50YWJzOjpiZWZvcmUsIC50YWJzOjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxO1xufVxuXG4udGFiczo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLnRhYnMudmVydGljYWwgPiBsaSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi50YWJzLnNpbXBsZSA+IGxpID4gYSB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi50YWJzLnNpbXBsZSA+IGxpID4gYTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4udGFicy5wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzM4RDQzMDtcbn1cblxuLnRhYnMucHJpbWFyeSA+IGxpID4gYSB7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4udGFicy5wcmltYXJ5ID4gbGkgPiBhOmhvdmVyLCAudGFicy5wcmltYXJ5ID4gbGkgPiBhOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogIzMyY2QyYTtcbn1cblxuLnRhYnMtdGl0bGUge1xuICBmbG9hdDogbGVmdDtcbn1cblxuLnRhYnMtdGl0bGUgPiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzM4RDQzMDtcbn1cblxuW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC50YWJzLXRpdGxlID4gYSB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi50YWJzLXRpdGxlID4gYTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGNvbG9yOiAjMmViOTI2O1xufVxuXG4udGFicy10aXRsZSA+IGE6Zm9jdXMsIC50YWJzLXRpdGxlID4gYVthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICBiYWNrZ3JvdW5kOiAjZmJmYmZiO1xuICBjb2xvcjogIzM4RDQzMDtcbn1cblxuLnRhYnMtY29udGVudCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmYmZiZmI7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGNvbG9yOiAjMDAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xufVxuXG4udGFicy1jb250ZW50LnZlcnRpY2FsIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZiZmJmYjtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG5cbi50YWJzLXBhbmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLnRhYnMtcGFuZWwuaXMtYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIHJlYWt0VGhlbWUgU3BlY2lmaWMgU3R5bGluZ1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuLypcblx0KiBIZWxwZXJzIOKAkyBTcGFjZS10b3AsIHNwYWNlLWJvdHRvbSwgdGV4dC1sZWZ0IGV0Yy5cblx0Ki9cbi8qKioqKioqKioqKioqKioqKioqKipcbkJPUkRFUlNcbioqKioqKioqKioqKioqKioqKioqKi9cbi5ib3JkZXItLWFsbCB7XG4gIGJvcmRlcjogMC4xMjVyZW0gc29saWQgI2ZiZmJmYjtcbn1cblxuLmJvcmRlci0tdG9wIHtcbiAgYm9yZGVyLXRvcDogMC4xMjVyZW0gc29saWQgI2ZiZmJmYjtcbn1cblxuLmJvcmRlci0tYm90dG9tIHtcbiAgYm9yZGVyLWJvdHRvbTogMC4xMjVyZW0gc29saWQgI2ZiZmJmYjtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuVEVYVCBBTElHTlNcbioqKioqKioqKioqKioqKioqKioqKi9cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKipcblRFWFQgU1RZTEVTXG4qKioqKioqKioqKioqKioqKioqKiovXG4udGV4dC11cHBlcmNhc2Uge1xuICBmb250LXNpemU6IDAuNjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBsZXR0ZXItc3BhY2luZzogMC4xMjVyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC50ZXh0LXVwcGVyY2FzZSB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICB9XG59XG5cbi50ZXh0LWNhcGl0YWwtbGV0dGVycyB7XG4gIGxldHRlci1zcGFjaW5nOiAwLjEyNXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnRleHQtbWVkaXVtIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLnRleHQtYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi50ZXh0LWhpZGUsIC5oZWFkZXJfX2xvZ28sIC5icmFuZC1sb2dvIHtcbiAgdGV4dC1pbmRlbnQ6IDIwMCU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKipcbkJBQ0tHUk9VTkQgSU1BR0VcbioqKioqKioqKioqKioqKioqKioqKi9cbi5iZy1pbWFnZSB7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG59XG5cbi5iZy1pbWFnZS0tZml0IHtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xufVxuXG4uYmctaW1hZ2UtLWZpbGwge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuXG4ub2JqZWN0LWZpdF9faW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5vYmplY3QtZml0X19pbWFnZTpob3ZlciBpbWcge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xufVxuXG4ub2JqZWN0LWZpdF9faW1hZ2UgaW1nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMzVzO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5CQUNLR1JPVU5EIENPTE9SU1xuKioqKioqKioqKioqKioqKioqKioqL1xuLmJnLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzhENDMwO1xufVxuXG4uYmctd2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4uYmctbGlnaHRncmF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZiZmJmYjtcbn1cblxuLmJnLWJsYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cblxuLmJnLXRyYW5zcGFyZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKipcblNQQUNFIENMQVNTRVNcbioqKioqKioqKioqKioqKioqKioqKi9cbi5zcGFjZSB7XG4gIHBhZGRpbmctdG9wOiAyLjE4NzVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAyLjE4NzVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5zcGFjZSB7XG4gICAgcGFkZGluZy10b3A6IDMuMTI1cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAzLjQzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC5zcGFjZSB7XG4gICAgcGFkZGluZy10b3A6IDMuNzVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDQuMDYyNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC5zcGFjZSB7XG4gICAgcGFkZGluZy10b3A6IDVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDUuMzEyNXJlbTtcbiAgfVxufVxuXG4uc3BhY2UuYm94ZXMge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnNwYWNlLmJveGVzIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAuc3BhY2UuYm94ZXMge1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjU2MjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAuc3BhY2UuYm94ZXMge1xuICAgIHBhZGRpbmctYm90dG9tOiAyLjgxMjVyZW07XG4gIH1cbn1cblxuLnNwYWNlLS1sYXJnZSB7XG4gIHBhZGRpbmctdG9wOiAzLjQzNzVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAzLjQzNzVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5zcGFjZS0tbGFyZ2Uge1xuICAgIHBhZGRpbmctdG9wOiAzLjc1cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiA0LjA2MjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC5zcGFjZS0tbGFyZ2Uge1xuICAgIHBhZGRpbmctdG9wOiA1cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiA1LjMxMjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTA1LjA2MjVlbSkge1xuICAuc3BhY2UtLWxhcmdlIHtcbiAgICBwYWRkaW5nLXRvcDogNy41cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiA3LjgxMjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwZW0pIHtcbiAgLnNwYWNlLS1sYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IDkuMzc1cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiA5LjY4NzVyZW07XG4gIH1cbn1cblxuLnNwYWNlLS1zbWFsbCB7XG4gIHBhZGRpbmctdG9wOiAxLjg3NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDEuODc1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuc3BhY2UtLXNtYWxsIHtcbiAgICBwYWRkaW5nLXRvcDogMi41cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC5zcGFjZS0tc21hbGwge1xuICAgIHBhZGRpbmctdG9wOiAzLjEyNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMy4xMjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAuc3BhY2UtLXNtYWxsIHtcbiAgICBwYWRkaW5nLXRvcDogMy43NXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMy43NXJlbTtcbiAgfVxufVxuXG4ubm8tcGFkZGluZy1ib3R0b20ge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLm5vLXBhZGRpbmctdG9wIHtcbiAgcGFkZGluZy10b3A6IDA7XG59XG5cbi5uby1tYXJnaW4tYm90dG9tIHtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4ubm8tbWFyZ2luLXRvcCB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuTUlTQ1xuKioqKioqKioqKioqKioqKioqKioqL1xuLmltYWdlLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1yYWRpdXM6IDAuMzEyNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY1LjYyMzc1ZW0pIHtcbiAgLnNlbGxpbmctcG9pbnRzIC5yb3cge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG59XG5cbi5zZWxsaW5nLXBvaW50c19fd3JhcHBlciB7XG4gIHBhZGRpbmc6IDAuMzEyNXJlbSAwO1xuICBtYXJnaW4tYm90dG9tOiAzLjEyNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLnNlbGxpbmctcG9pbnRzX193cmFwcGVyIHAge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuc2VsbGluZy1wb2ludHNfX3dyYXBwZXIge1xuICAgIHBhZGRpbmc6IDAuNjI1cmVtIDAgMS4yNXJlbTtcbiAgfVxufVxuXG4uc2VsbGluZy1wb2ludHNfX2NvbnRlbnQge1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuc2VsbGluZy1wb2ludHNfX2NvbnRlbnQge1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAuc2VsbGluZy1wb2ludHNfX2NvbnRlbnQge1xuICAgIHBhZGRpbmc6IDEuNWVtO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxufVxuXG4uZnVsbC1oZWlnaHQge1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbn1cblxuLmhhbGYtaGVpZ2h0IHtcbiAgbWluLWhlaWdodDogNTB2aDtcbn1cblxuLmZpcnN0LXNlY3Rpb24ge1xuICBtYXJnaW4tdG9wOiA2LjI1cmVtO1xufVxuXG4uYmctYmxhY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uYmctYmxhY2sgaDEsIC5iZy1ibGFjayAuaDEsXG4uYmctYmxhY2sgaDIsIC5iZy1ibGFjayAuaDIge1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi52YyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uaW1hZ2UtZ2FsbGVyeSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG59XG5cbi5pbWFnZS1nYWxsZXJ5X19pbWFnZS0taGFsZiB7XG4gIHdpZHRoOiA1MCU7XG59XG5cbi5pbWFnZS1nYWxsZXJ5X19pbWFnZS0tZnVsbCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uaW1hZ2UtZ2FsbGVyeV9faW5uZXIge1xuICBwYWRkaW5nOiAuNXJlbTtcbn1cblxuLnNoaWZ0LW9uZS1zY3JlZW4taGVpZ2h0IHtcbiAgbWFyZ2luLXRvcDogMTAwdmg7XG59XG5cbi5mb290ZXItc2xhbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5mb290ZXItc2xhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmYmZiZmI7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICB0cmFuc2Zvcm06IHNrZXdZKC0yZGVnKTtcbn1cblxuLnNsYW50ZWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDEwMHB4O1xufVxuXG4uc2xhbnRlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTEwMHB4O1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gIHRyYW5zZm9ybTogc2tld1koNGRlZyk7XG59XG5cbi5zbGFudGVkLS1ncmF5OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNmYmZiZmI7XG59XG5cbi5zbGFudGVkLnNoaWZ0LW9uZS1zY3JlZW4taGVpZ2h0IHtcbiAgbWFyZ2luLXRvcDogY2FsYygxMDB2aCArIDEwMHB4KTtcbn1cblxuLypcblx0KiBUeXBvZ3JhcGh5XG5cdCovXG4vKioqKioqKioqKioqKioqKioqKioqXG5MSU5LIFNUWUxFU1xuKioqKioqKioqKioqKioqKioqKioqL1xuYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogY29sb3IgZWFzZS1pbi1vdXQgMC4ycztcbn1cblxuYTpsaW5rIHtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbi5saW5rLXN0eWxpbmcsIC5sd2EgLmx3YS1saW5rcy1yZW1lbWJlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMzhENDMwIDAlLCAjMzhENDMwIDEwMCUpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDAlIDAuMTI1cmVtO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGJvdHRvbTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1zaXplIDAuNTVzIGN1YmljLWJlemllcigwLjIsIDAuNzUsIDAuNSwgMSksIGNvbG9yIDAuNXMgZWFzZTtcbn1cblxuLmxpbmstc3R5bGluZzpob3ZlciwgLmx3YSAubHdhLWxpbmtzLXJlbWVtYmVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDAuMTI1cmVtO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5UWVBPR1JBUEhZIFNUWUxFU1xuKioqKioqKioqKioqKioqKioqKioqL1xuc3Ryb25nLFxuYiB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5icml4dG9uLWxlYWQsIGgxLCAuaDEsIGgyLCAuaDIsIGgzLCAuaDMsIC5tZW51LS1vZmZjYW52YXMgLm1lbnVfX2l0ZW0gLm1lbnVfX2xpbmsge1xuICBmb250LWZhbWlseTogXCJESU5Qcm8tQm9sZFwiLCBcIkltcGFjdFwiLCBcIkFyaWFsIEJsYWNrXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4xNXJlbTtcbn1cblxuLmJvZHktZm9udCB7XG4gIGZvbnQtZmFtaWx5OiBcIkRJTlByb1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuaDEsIC5oMSxcbmgyLCAuaDIsXG5oMywgLmgzLCAubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtIC5tZW51X19saW5rLFxuaDQsIC5oNCxcbmg1LCAuaDUsXG5oNiwgLmg2IHtcbiAgbWFyZ2luOiAwIDAgMC45Mzc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0uMDNlbTtcbn1cblxuaDEuYmxhY2ssIC5oMS5ibGFjaywgaDIuYmxhY2ssIC5oMi5ibGFjaywgaDMuYmxhY2ssIC5oMy5ibGFjaywgLm1lbnUtLW9mZmNhbnZhcyAubWVudV9faXRlbSAuYmxhY2subWVudV9fbGluaywgaDQuYmxhY2ssIC5oNC5ibGFjaywgaDUuYmxhY2ssIC5oNS5ibGFjaywgaDYuYmxhY2ssIC5oNi5ibGFjayB7XG4gIGZvbnQtZmFtaWx5OiAnRElOUHJvLUJsYWNrJyAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgaDEsIC5oMSxcbiAgaDIsIC5oMixcbiAgaDMsIC5oMywgLm1lbnUtLW9mZmNhbnZhcyAubWVudV9faXRlbSAubWVudV9fbGluayxcbiAgaDQsIC5oNCxcbiAgaDUsIC5oNSxcbiAgaDYsIC5oNiB7XG4gICAgbWFyZ2luOiAwIDAgMS41NjI1cmVtO1xuICB9XG59XG5cbmgxIGEsIC5oMSBhLCBoMiBhLCAuaDIgYSwgaDMgYSwgLmgzIGEsIC5tZW51LS1vZmZjYW52YXMgLm1lbnVfX2l0ZW0gLm1lbnVfX2xpbmsgYSwgaDQgYSwgLmg0IGEsIGg1IGEsIC5oNSBhLCBoNiBhLCAuaDYgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuaDEgYTpob3ZlciwgLmgxIGE6aG92ZXIsIGgyIGE6aG92ZXIsIC5oMiBhOmhvdmVyLCBoMyBhOmhvdmVyLCAuaDMgYTpob3ZlciwgLm1lbnUtLW9mZmNhbnZhcyAubWVudV9faXRlbSAubWVudV9fbGluayBhOmhvdmVyLCBoNCBhOmhvdmVyLCAuaDQgYTpob3ZlciwgaDUgYTpob3ZlciwgLmg1IGE6aG92ZXIsIGg2IGE6aG92ZXIsIC5oNiBhOmhvdmVyIHtcbiAgY29sb3I6ICMwMDA7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIGgxIGJyLCAuaDEgYnIsIGgyIGJyLCAuaDIgYnIsIGgzIGJyLCAuaDMgYnIsIC5tZW51LS1vZmZjYW52YXMgLm1lbnVfX2l0ZW0gLm1lbnVfX2xpbmsgYnIsIGg0IGJyLCAuaDQgYnIsIGg1IGJyLCAuaDUgYnIsIGg2IGJyLCAuaDYgYnIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuaDEsIC5oMSB7XG4gIGNvbG9yOiAjMDAwO1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGgxLCAuaDEge1xuICAgIGZvbnQtc2l6ZTogNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgaDEsIC5oMSB7XG4gICAgZm9udC1zaXplOiA1LjYyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgaDEsIC5oMSB7XG4gICAgZm9udC1zaXplOiA2LjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTMuNzVlbSkge1xuICBoMSwgLmgxIHtcbiAgICBmb250LXNpemU6IDcuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICB9XG59XG5cbmgxLmJvZHktZm9udCwgLmgxLmJvZHktZm9udCB7XG4gIGZvbnQtc2l6ZTogMi4yNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgaDEuYm9keS1mb250LCAuaDEuYm9keS1mb250IHtcbiAgICBmb250LXNpemU6IDIuODEyNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgaDEuYm9keS1mb250LCAuaDEuYm9keS1mb250IHtcbiAgICBmb250LXNpemU6IDMuMTI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICBoMS5ib2R5LWZvbnQsIC5oMS5ib2R5LWZvbnQge1xuICAgIGZvbnQtc2l6ZTogMy43NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICB9XG59XG5cbmgyLCAuaDIge1xuICBjb2xvcjogIzAwMDtcbiAgZm9udC1zaXplOiAycmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBoMiwgLmgyIHtcbiAgICBmb250LXNpemU6IDMuMjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIGgyLCAuaDIge1xuICAgIGZvbnQtc2l6ZTogNC4xMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgfVxufVxuXG5oMi5ib2R5LWZvbnQsIC5oMi5ib2R5LWZvbnQge1xuICBmb250LXNpemU6IDEuODc1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBoMi5ib2R5LWZvbnQsIC5oMi5ib2R5LWZvbnQge1xuICAgIGZvbnQtc2l6ZTogMi4zNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIGgyLmJvZHktZm9udCwgLmgyLmJvZHktZm9udCB7XG4gICAgZm9udC1zaXplOiAyLjg3NXJlbTtcbiAgfVxufVxuXG5oMywgLmgzLCAubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtIC5tZW51X19saW5rIHtcbiAgZm9udC1zaXplOiAxLjYyNXJlbTtcbiAgY29sb3I6ICMwMDA7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICBoMywgLmgzLCAubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtIC5tZW51X19saW5rIHtcbiAgICBmb250LXNpemU6IDIuNjI1cmVtO1xuICAgIG1hcmdpbjogMCAwIDEuNTYyNXJlbTtcbiAgfVxufVxuXG5oMy5ib2R5LWZvbnQsIC5oMy5ib2R5LWZvbnQsIC5tZW51LS1vZmZjYW52YXMgLm1lbnVfX2l0ZW0gLmJvZHktZm9udC5tZW51X19saW5rIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICBoMy5ib2R5LWZvbnQsIC5oMy5ib2R5LWZvbnQsIC5tZW51LS1vZmZjYW52YXMgLm1lbnVfX2l0ZW0gLmJvZHktZm9udC5tZW51X19saW5rIHtcbiAgICBmb250LXNpemU6IDIuMjVyZW07XG4gIH1cbn1cblxuaDQsIC5oNCB7XG4gIGZvbnQtZmFtaWx5OiBcIkRJTlByb1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gIG1hcmdpbjogMCAwIDAuNjI1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgaDQsIC5oNCB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cblxuaDQuYnJpeHRvbi1sZWFkLCBoNC5oMSwgaDQuaDIsIGg0LmgzLCAubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtIGg0Lm1lbnVfX2xpbmssIC5oNC5icml4dG9uLWxlYWQsIGgxLmg0LCAuaDQuaDEsIGgyLmg0LCAuaDQuaDIsIGgzLmg0LCAuaDQuaDMsIC5tZW51LS1vZmZjYW52YXMgLm1lbnVfX2l0ZW0gLmg0Lm1lbnVfX2xpbmsge1xuICBmb250LXNpemU6IDEuMzEyNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIGg0LmJyaXh0b24tbGVhZCwgaDQuaDEsIGg0LmgyLCBoNC5oMywgLm1lbnUtLW9mZmNhbnZhcyAubWVudV9faXRlbSBoNC5tZW51X19saW5rLCAuaDQuYnJpeHRvbi1sZWFkLCBoMS5oNCwgLmg0LmgxLCBoMi5oNCwgLmg0LmgyLCBoMy5oNCwgLmg0LmgzLCAubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtIC5oNC5tZW51X19saW5rIHtcbiAgICBmb250LXNpemU6IDEuNzVyZW07XG4gIH1cbn1cblxuaDUsIC5oNSB7XG4gIGZvbnQtZmFtaWx5OiBcIkRJTlByb1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbWFyZ2luOiAwIDAgMC42MjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICBoNSwgLmg1IHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICB9XG59XG5cbmg1LmJyaXh0b24tbGVhZCwgaDUuaDEsIGg1LmgyLCBoNS5oMywgLm1lbnUtLW9mZmNhbnZhcyAubWVudV9faXRlbSBoNS5tZW51X19saW5rLCAuaDUuYnJpeHRvbi1sZWFkLCBoMS5oNSwgLmg1LmgxLCBoMi5oNSwgLmg1LmgyLCBoMy5oNSwgLmg1LmgzLCAubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtIC5oNS5tZW51X19saW5rIHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIGg1LmJyaXh0b24tbGVhZCwgaDUuaDEsIGg1LmgyLCBoNS5oMywgLm1lbnUtLW9mZmNhbnZhcyAubWVudV9faXRlbSBoNS5tZW51X19saW5rLCAuaDUuYnJpeHRvbi1sZWFkLCBoMS5oNSwgLmg1LmgxLCBoMi5oNSwgLmg1LmgyLCBoMy5oNSwgLmg1LmgzLCAubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtIC5oNS5tZW51X19saW5rIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuXG5oNiwgLmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiRElOUHJvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIG1hcmdpbjogMCAwIDAuNjI1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgaDYsIC5oNiB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG59XG5cbnAsIHVsIGxpLCBvbCBsaSxcbi50ZXh0LWRlZmF1bHQge1xuICBmb250LWZhbWlseTogXCJESU5Qcm9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIG1hcmdpbjogMCAwIDAuOTM3NXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgcCwgdWwgbGksIG9sIGxpLFxuICAudGV4dC1kZWZhdWx0IHtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDE1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIHAsIHVsIGxpLCBvbCBsaSxcbiAgLnRleHQtZGVmYXVsdCB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFyZW07XG4gIH1cbn1cblxudWwgbGksIG9sIGxpIHtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gIG1hcmdpbjogMC42MjVyZW0gMDtcbn1cblxuLnRleHQtbGFyZ2UsIC5hbHRlcm5hdGluZy1ncmlkX19jb250ZW50IHAge1xuICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbWFyZ2luOiAwIDAgMC45Mzc1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAudGV4dC1sYXJnZSwgLmFsdGVybmF0aW5nLWdyaWRfX2NvbnRlbnQgcCB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS43O1xuICAgIG1hcmdpbjogMCAwIDEuMjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudGV4dC1sYXJnZSwgLmFsdGVybmF0aW5nLWdyaWRfX2NvbnRlbnQgcCB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIG1hcmdpbjogMCAwIDEuNTYyNXJlbTtcbiAgfVxufVxuXG4udGV4dC1sYXJnZSBhLCAuYWx0ZXJuYXRpbmctZ3JpZF9fY29udGVudCBwIGEge1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogIzM4RDQzMDtcbiAgdHJhbnNpdGlvbjogY29sb3IgZWFzZS1pbi1vdXQgMC4ycztcbn1cblxuLnRleHQtbGFyZ2UgYTpob3ZlciwgLmFsdGVybmF0aW5nLWdyaWRfX2NvbnRlbnQgcCBhOmhvdmVyIHtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi50ZXh0LXNtYWxsLCAuYm94ZXNfX3RleHQgcCB7XG4gIGZvbnQtZmFtaWx5OiBcIkRJTlByb1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIG1hcmdpbjogMCAwIDAuOTM3NXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC50ZXh0LXNtYWxsLCAuYm94ZXNfX3RleHQgcCB7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS44O1xuICB9XG59XG5cbi50ZXh0LW91dGxpbmUge1xuICAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwLjAyZW07XG4gIC13ZWJraXQtdGV4dC1zdHJva2UtY29sb3I6IGluaGVyaXQ7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuXG5oMiAudGV4dC1vdXRsaW5lIHtcbiAgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMC4wM2VtO1xufVxuXG4uaGVhZGluZy1kaXZpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uaGVhZGluZy1kaXZpZGVyOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMi41cmVtO1xuICBoZWlnaHQ6IDAuMTg3NXJlbTtcbiAgbWFyZ2luOiAxLjg3NXJlbSBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzhENDMwO1xufVxuXG4uaGVhZGluZy1kaXZpZGVyLS1sYXJnZTphZnRlciB7XG4gIHdpZHRoOiAzLjEyNXJlbTtcbiAgbWFyZ2luOiAzLjEyNXJlbSBhdXRvIDQuMzc1cmVtO1xufVxuXG4udGV4dC1oaWdobGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBib3gtc2hhZG93OiAwLjJlbSAwIDAgIzAwMCwgLTAuMmVtIDAgMCAjMDAwO1xuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIHBhZGRpbmc6IC4xMmVtIDAgLjE4ZW07XG4gIG1hcmdpbjogMCAxZW0gMCAwO1xuICAtd2Via2l0LWJveC1kZWNvcmF0aW9uLWJyZWFrOiBjbG9uZTtcbiAgYm94LWRlY29yYXRpb24tYnJlYWs6IGNsb25lO1xuICBib3R0b206IDAuMzc1cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi50ZXh0LWhpZ2hsaWdodC5icml4dG9uLWxlYWQsIGgxLnRleHQtaGlnaGxpZ2h0LCAudGV4dC1oaWdobGlnaHQuaDEsIGgyLnRleHQtaGlnaGxpZ2h0LCAudGV4dC1oaWdobGlnaHQuaDIsIGgzLnRleHQtaGlnaGxpZ2h0LCAudGV4dC1oaWdobGlnaHQuaDMsIC5tZW51LS1vZmZjYW52YXMgLm1lbnVfX2l0ZW0gLnRleHQtaGlnaGxpZ2h0Lm1lbnVfX2xpbmsge1xuICBwYWRkaW5nOiAuMTJlbSAwIC4yZW0gLjJlbTtcbiAgbGVmdDogLjJlbTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuVEVYVCBDT0xPUlNcbioqKioqKioqKioqKioqKioqKioqKi9cbi50ZXh0LXdoaXRlIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi50ZXh0LWJsYWNrIHtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi50ZXh0LXByaW1hcnkge1xuICBjb2xvcjogIzM4RDQzMDtcbn1cblxuYmxvY2txdW90ZSB7XG4gIHBhZGRpbmc6IC4xMmVtIDAgLjE4ZW07XG4gIG1hcmdpbjogMCAxZW0gMCAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbWF4LXdpZHRoOiA5NCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IC41cmVtIGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMik7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHBhZGRpbmc6IDEuMnJlbSAxcmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXgtd2lkdGg6IDg1JTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgYmxvY2txdW90ZSB7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gIH1cbn1cblxuYmxvY2txdW90ZSBwIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBtYXJnaW46IDA7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGJsb2NrcXVvdGUgcCB7XG4gICAgZm9udC1zaXplOiAxLjE1cmVtO1xuICB9XG59XG5cbmgxLmhlcm9fX2hlYWRpbmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiA5MHZ3O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LWZhbWlseTogJ0RJTlByby1CbGFjaycgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDkwMCAhaW1wb3J0YW50O1xuICBsZXR0ZXItc3BhY2luZzogLS4wMDVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNztcbn1cblxuaDEuaGVyb19faGVhZGluZyBzcGFuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4RDQzMDtcbiAgLXdlYmtpdC1ib3gtZGVjb3JhdGlvbi1icmVhazogY2xvbmU7XG4gIGJveC1kZWNvcmF0aW9uLWJyZWFrOiBjbG9uZTtcbiAgcGFkZGluZzogLjFlbTtcbn1cblxuLlR5cGV3cml0ZXJfX2N1cnNvciB7XG4gIG1hcmdpbi1sZWZ0OiAwcHggIWltcG9ydGFudDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmlubGluZS1zbWlsZXkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1yaWdodDogLjNlbTtcbn1cblxuLmlubGluZS1zbWlsZXkgLnNtaWxleSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAuMjNlbTtcbiAgcmlnaHQ6IC0ycHg7XG4gIHdpZHRoOiAuM2VtO1xuICBoZWlnaHQ6IC4zZW07XG59XG5cbi5pbmxpbmUtc21pbGV5IC5zbWlsZXkgc3ZnIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cblxuLmlubGluZS1zbWlsZXkgLnNtaWxleSAjc21pbGV5LWxvZ28ge1xuICBmaWxsOiB3aGl0ZTtcbn1cblxuLnRleHQtdXBwZXIge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uaGVhZGluZy1pY29uIHtcbiAgbWF4LXdpZHRoOiAxMDBweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwcmVtIDAgMXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC5oZWFkaW5nLWljb24ge1xuICAgIHBhZGRpbmc6IDNyZW0gMCA0cmVtO1xuICB9XG59XG5cbi5jYXNlX19jb250ZW50IGgyLCAuY2FzZV9fY29udGVudCAuaDIsXG4uY2FzZV9fY29udGVudCBoMywgLmNhc2VfX2NvbnRlbnQgLmgzLCAuY2FzZV9fY29udGVudCAubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtIC5tZW51X19saW5rLCAubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtIC5jYXNlX19jb250ZW50IC5tZW51X19saW5rIHtcbiAgbWFyZ2luLWJvdHRvbTogLjI1ZW07XG59XG5cbi5mb290ZXIgYS5zb2NpYWwtbGluayB7XG4gIG1hcmdpbjogMCAxMHB4O1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzAwMDtcbiAgdHJhbnNpdGlvbjogLjE1cyBlYXNlLW91dCBhbGw7XG59XG5cbi5mb290ZXIgYS5zb2NpYWwtbGluazpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICMzOEQ0MzA7XG59XG5cbi5mb290ZXIgYS5zb2NpYWwtbGluazpob3ZlcjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qXG5cdCogQW5pbWF0aW9ucyDigJMgQGtleWZyYW1lIHR5cGUgYW5pbWF0aW9uIGNsYXNzZXMuXG5cdCovXG4uZW1lcmdlW2RhdGEtZW1lcmdlbmNlPWhpZGRlbl0ge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTYwcHgpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC44NXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKTtcbiAgLyogZWFzZU91dFF1YXJ0ICovXG59XG5cbi5lbWVyZ2VbZGF0YS1lbWVyZ2VuY2U9dmlzaWJsZV0ge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuODVzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7XG4gIC8qIGVhc2VPdXRRdWFydCAqL1xufVxuXG4uYWNjb3JkaW9uLWNvbHVtbiB7XG4gIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC5hY2NvcmRpb24tY29sdW1uIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0LjA2MjVyZW07XG4gIH1cbn1cblxuLmFjY29yZGlvbi1jb2x1bW46bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5hY2NvcmRpb25fX2l0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgMC4ycztcbiAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NS42MjM3NWVtKSB7XG4gIC5hY2NvcmRpb25fX2l0ZW0gLmFjY29yZGlvbl9faWNvbiB7XG4gICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgIHdpZHRoOiAxLjI1cmVtO1xuICB9XG59XG5cbi5hY2NvcmRpb25fX2l0ZW0gLmFjY29yZGlvbl9faWNvbl9fZmlsbCB7XG4gIGZpbGw6ICNlOGU1ZGE7XG59XG5cbi5hY2NvcmRpb25fX2l0ZW0gLmFjY29yZGlvbl9faWNvbiAubGluZS1ob3Jpem9udGFsIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIGxpbmVhciAuMTVzO1xufVxuXG4uYWNjb3JkaW9uX19pdGVtLmlzLWFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIC02cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMDgpLCAwIC0xMnB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjAyKTtcbiAgei1pbmRleDogNTtcbn1cblxuLmFjY29yZGlvbl9faXRlbS5pcy1hY3RpdmUgLmFjY29yZGlvbi10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLmFjY29yZGlvbl9faXRlbS5pcy1hY3RpdmUgLmFjY29yZGlvbl9faWNvbiAubGluZS1ob3Jpem9udGFsIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbn1cblxuLmFjY29yZGlvbl9faXRlbTpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIC02cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMDgpLCAwIC0xMnB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjAyKTtcbiAgei1pbmRleDogNTtcbn1cblxuLmFjY29yZGlvbl9faXRlbTpob3ZlciAuYWNjb3JkaW9uLWlubmVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLmFjY29yZGlvbi1pbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuICBwYWRkaW5nOiAwLjYyNXJlbSAxLjEyNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAzO1xufVxuXG4uaXMtYWN0aXZlIC5hY2NvcmRpb24taW5uZXIge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5hY2NvcmRpb24taW5uZXIge1xuICAgIHBhZGRpbmc6IDFyZW0gMS41cmVtO1xuICB9XG59XG5cbi5hY2NvcmRpb24tY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5hY2NvcmRpb24tY29udGVudF9faW5uZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xufVxuXG4uYWNjb3JkaW9uLWNvbnRlbnRfX2lubmVyIHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5hY2NvcmRpb24tdGl0bGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcGFkZGluZzogMC42MjVyZW0gMCAwLjc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB0cmFuc2l0aW9uOiBtYXJnaW4gZWFzZS1pbi1vdXQgMC4ycztcbn1cblxuLmFjY29yZGlvbi10aXRsZTpiZWZvcmUge1xuICBjb2xvcjogIzM4RDQzMDtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4uYWNjb3JkaW9uLXRpdGxlIGgzIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4uYWNjb3JkaW9uLS1wcmV2aWV3IC5hY2NvcmRpb24tY29sdW1uIC5hY2NvcmRpb25fX2l0ZW0ge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjI1cztcbn1cblxuLmFjY29yZGlvbi0tcHJldmlldyAuYWNjb3JkaW9uLWNvbHVtbiAuYWNjb3JkaW9uX19pdGVtOm5vdCguaXMtYWN0aXZlKSB7XG4gIG1heC1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5hY2NvcmRpb24tLXByZXZpZXcgLmFjY29yZGlvbi1jb2x1bW4gLmFjY29yZGlvbl9faXRlbTpub3QoLmlzLWFjdGl2ZSk6bnRoLWNoaWxkKDEpLCAuYWNjb3JkaW9uLS1wcmV2aWV3IC5hY2NvcmRpb24tY29sdW1uIC5hY2NvcmRpb25fX2l0ZW06bm90KC5pcy1hY3RpdmUpOm50aC1jaGlsZCgyKSwgLmFjY29yZGlvbi0tcHJldmlldyAuYWNjb3JkaW9uLWNvbHVtbiAuYWNjb3JkaW9uX19pdGVtOm5vdCguaXMtYWN0aXZlKTpudGgtY2hpbGQoMykge1xuICBtYXgtaGVpZ2h0OiA5OTlyZW07XG59XG5cbi8qXG5cdCogRm9udHNcblx0Ki9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0RJTlBybyc7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvRElOUHJvLVJlZ3VsYXIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL0RJTlByby1SZWd1bGFyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0RJTlByby1Cb2xkJztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9ESU5Qcm8tQm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvRElOUHJvLUJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0RJTlByby1CbGFjayc7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvRElOUHJvLUJsYWNrLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9ESU5Qcm8tQmxhY2sud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuLypcblx0KiBHbHlwaHNcblx0KiBpY29uLWZvbnRzXG5cdCovXG4uYmctdmlkZW8ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMHZoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAtMTtcbn1cblxuLmJnLXZpZGVvICNwbGF5ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMHZoO1xuICB6LWluZGV4OiAtMjtcbn1cblxuLmJnLXZpZGVvIC5vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgei1pbmRleDogMTtcbn1cblxuLnN5bWJvbHMge1xuICBtYXJnaW4tYm90dG9tOiAzLjEyNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnN5bWJvbHMge1xuICAgIG1hcmdpbi1ib3R0b206IDUuNjI1cmVtO1xuICB9XG59XG5cbi5zeW1ib2xzX19yb3cge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXRvcDogMC4xMjVyZW0gc29saWQgI2ZiZmJmYjtcbiAgYm9yZGVyLWJvdHRvbTogMC4xMjVyZW0gc29saWQgI2ZiZmJmYjtcbn1cblxuLnN5bWJvbHNfX3dyYXBwZXIge1xuICBwYWRkaW5nOiAxLjEyNXJlbSAxLjg3NXJlbSAxLjI1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuc3ltYm9sc19fd3JhcHBlciB7XG4gICAgcGFkZGluZzogMS4xMjVyZW0gMi41cmVtIDEuMjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC5zeW1ib2xzX193cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAwIDIuNXJlbSAwO1xuICB9XG59XG5cbi5zeW1ib2xzX19zeW1ib2xfX3dyYXBwZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICMzOEQ0MzA7XG4gIHBhZGRpbmc6IDEuMzEyNXJlbSAwLjkzNzVyZW0gMS40Mzc1cmVtO1xuICBib3JkZXItcmFkaXVzOiAxMi41cmVtO1xuICBoZWlnaHQ6IDUuMzc1cmVtO1xuICB3aWR0aDogNS4zNzVyZW07XG4gIHRyYW5zaXRpb246IC4zcyBlYXNlIGJhY2tncm91bmQ7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5zeW1ib2xzX19zeW1ib2xfX3dyYXBwZXIge1xuICAgIGhlaWdodDogNi4yNXJlbTtcbiAgICB3aWR0aDogNi4yNXJlbTtcbiAgICBwYWRkaW5nOiAxLjU2MjVyZW0gMS4zNzVyZW0gMS42ODc1cmVtO1xuICB9XG59XG5cbi5zeW1ib2xzX19saW5rIC5zeW1ib2xzX19zeW1ib2xfX3dyYXBwZXI6aG92ZXIsIC5zeW1ib2xzX19saW5rIC5zeW1ib2xzX19zeW1ib2xfX3dyYXBwZXI6Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjNjFkZDVhO1xufVxuXG4uc3ltYm9sc19fc3ltYm9sIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnN5bWJvbHNfX3RleHQge1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXgtd2lkdGg6IDUuMzc1cmVtO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDMxMjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5zeW1ib2xzX190ZXh0IHtcbiAgICBtYXgtd2lkdGg6IDYuMjVyZW07XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgfVxufVxuXG4vKlxuXHQqIEJ1dHRvbnNcblx0Ki9cbi8qKlxuKiBCdXR0b25zXG4qL1xuLmJ1dHRvbiwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbmEuYnV0dG9uLFxuYnV0dG9uLmJ1dHRvbixcbmlucHV0LmJ1dHRvbixcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG4jcmVzcG9uZCBpbnB1dCNzdWJtaXQge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiBcIkRJTlByby1Cb2xkXCIsIFwiSW1wYWN0XCIsIFwiQXJpYWwgQmxhY2tcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzhENDMwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDEuMjVyZW0gMC42ODc1cmVtO1xuICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogLjA1ZW07XG4gIHRyYW5zaXRpb246IGFsbCBlYXNlLWluLW91dCAwLjJzO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLmJ1dHRvbiwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbiAgYS5idXR0b24sXG4gIGJ1dHRvbi5idXR0b24sXG4gIGlucHV0LmJ1dHRvbixcbiAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbiAgI3Jlc3BvbmQgaW5wdXQjc3VibWl0IHtcbiAgICBwYWRkaW5nOiAxLjEyNXJlbSAycmVtIDEuMjVyZW07XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIG1hcmdpbi1yaWdodDogMS4xMjVyZW07XG4gIH1cbn1cblxuLmJ1dHRvbi0tZnVsbCxcbmEuYnV0dG9uLS1mdWxsLFxuYnV0dG9uLmJ1dHRvbi0tZnVsbCxcbmlucHV0LmJ1dHRvbi0tZnVsbCxcbiNyZXNwb25kIGlucHV0I3N1Ym1pdC0tZnVsbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmJ1dHRvbjpob3ZlciwgaW5wdXQ6aG92ZXJbdHlwZT1cInN1Ym1pdFwiXSwgLmJ1dHRvbjpmb2N1cywgaW5wdXQ6Zm9jdXNbdHlwZT1cInN1Ym1pdFwiXSxcbmEuYnV0dG9uOmhvdmVyLFxuYS5idXR0b246Zm9jdXMsXG5idXR0b24uYnV0dG9uOmhvdmVyLFxuYnV0dG9uLmJ1dHRvbjpmb2N1cyxcbmlucHV0LmJ1dHRvbjpob3ZlcixcbmlucHV0OmhvdmVyW3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dC5idXR0b246Zm9jdXMsXG5pbnB1dDpmb2N1c1t0eXBlPVwic3VibWl0XCJdLFxuI3Jlc3BvbmQgaW5wdXQjc3VibWl0OmhvdmVyLFxuI3Jlc3BvbmQgaW5wdXQjc3VibWl0OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBjb2xvcjogI2ZmZjtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAyMHB4IDM4cHggcmdiYSgwLCAwLCAwLCAwLjE2KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xufVxuXG4udG9wLXNlY3Rpb24gLmJ1dHRvbiwgLnRvcC1zZWN0aW9uIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sIC50b3Atc2VjdGlvbiBhLmJ1dHRvbiwgLnRvcC1zZWN0aW9uIGJ1dHRvbi5idXR0b24sIC50b3Atc2VjdGlvbiBpbnB1dC5idXR0b24sIC50b3Atc2VjdGlvbiBpbnB1dFt0eXBlPVwic3VibWl0XCJdLCAudG9wLXNlY3Rpb25cbiNyZXNwb25kIGlucHV0I3N1Ym1pdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi50b3Atc2VjdGlvbiAuYnV0dG9uOmhvdmVyLCAudG9wLXNlY3Rpb24gaW5wdXQ6aG92ZXJbdHlwZT1cInN1Ym1pdFwiXSwgLnRvcC1zZWN0aW9uIC5idXR0b246Zm9jdXMsIC50b3Atc2VjdGlvbiBpbnB1dDpmb2N1c1t0eXBlPVwic3VibWl0XCJdLCAudG9wLXNlY3Rpb24gYS5idXR0b246aG92ZXIsIC50b3Atc2VjdGlvbiBhLmJ1dHRvbjpmb2N1cywgLnRvcC1zZWN0aW9uIGJ1dHRvbi5idXR0b246aG92ZXIsIC50b3Atc2VjdGlvbiBidXR0b24uYnV0dG9uOmZvY3VzLCAudG9wLXNlY3Rpb24gaW5wdXQuYnV0dG9uOmhvdmVyLCAudG9wLXNlY3Rpb24gaW5wdXQ6aG92ZXJbdHlwZT1cInN1Ym1pdFwiXSwgLnRvcC1zZWN0aW9uIGlucHV0LmJ1dHRvbjpmb2N1cywgLnRvcC1zZWN0aW9uIGlucHV0OmZvY3VzW3R5cGU9XCJzdWJtaXRcIl0sIC50b3Atc2VjdGlvblxuI3Jlc3BvbmQgaW5wdXQjc3VibWl0OmhvdmVyLCAudG9wLXNlY3Rpb25cbiNyZXNwb25kIGlucHV0I3N1Ym1pdDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi5idXR0b24tLWhvbGxvdyxcbmEuYnV0dG9uLS1ob2xsb3csXG5idXR0b24uYnV0dG9uLS1ob2xsb3csXG5pbnB1dC5idXR0b24tLWhvbGxvdyxcbiNyZXNwb25kIGlucHV0I3N1Ym1pdC0taG9sbG93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMC4xODc1cmVtIHNvbGlkICMzOEQ0MzA7XG4gIGNvbG9yOiAjMzhENDMwO1xufVxuXG4uYnV0dG9uLS1ob2xsb3c6aG92ZXIsIC5idXR0b24tLWhvbGxvdzpmb2N1cyxcbmEuYnV0dG9uLS1ob2xsb3c6aG92ZXIsXG5hLmJ1dHRvbi0taG9sbG93OmZvY3VzLFxuYnV0dG9uLmJ1dHRvbi0taG9sbG93OmhvdmVyLFxuYnV0dG9uLmJ1dHRvbi0taG9sbG93OmZvY3VzLFxuaW5wdXQuYnV0dG9uLS1ob2xsb3c6aG92ZXIsXG5pbnB1dC5idXR0b24tLWhvbGxvdzpmb2N1cyxcbiNyZXNwb25kIGlucHV0I3N1Ym1pdC0taG9sbG93OmhvdmVyLFxuI3Jlc3BvbmQgaW5wdXQjc3VibWl0LS1ob2xsb3c6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzhENDMwO1xuICBib3JkZXItY29sb3I6ICMzOEQ0MzA7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4udG9wLXNlY3Rpb24gLmJ1dHRvbi0taG9sbG93LCAudG9wLXNlY3Rpb25cbmEuYnV0dG9uLS1ob2xsb3csIC50b3Atc2VjdGlvblxuYnV0dG9uLmJ1dHRvbi0taG9sbG93LCAudG9wLXNlY3Rpb25cbmlucHV0LmJ1dHRvbi0taG9sbG93LCAudG9wLXNlY3Rpb25cbiNyZXNwb25kIGlucHV0I3N1Ym1pdC0taG9sbG93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMC4xODc1cmVtIHNvbGlkIHdoaXRlO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi50b3Atc2VjdGlvbiAuYnV0dG9uLS1ob2xsb3c6aG92ZXIsIC50b3Atc2VjdGlvbiAuYnV0dG9uLS1ob2xsb3c6Zm9jdXMsIC50b3Atc2VjdGlvblxuYS5idXR0b24tLWhvbGxvdzpob3ZlciwgLnRvcC1zZWN0aW9uXG5hLmJ1dHRvbi0taG9sbG93OmZvY3VzLCAudG9wLXNlY3Rpb25cbmJ1dHRvbi5idXR0b24tLWhvbGxvdzpob3ZlciwgLnRvcC1zZWN0aW9uXG5idXR0b24uYnV0dG9uLS1ob2xsb3c6Zm9jdXMsIC50b3Atc2VjdGlvblxuaW5wdXQuYnV0dG9uLS1ob2xsb3c6aG92ZXIsIC50b3Atc2VjdGlvblxuaW5wdXQuYnV0dG9uLS1ob2xsb3c6Zm9jdXMsIC50b3Atc2VjdGlvblxuI3Jlc3BvbmQgaW5wdXQjc3VibWl0LS1ob2xsb3c6aG92ZXIsIC50b3Atc2VjdGlvblxuI3Jlc3BvbmQgaW5wdXQjc3VibWl0LS1ob2xsb3c6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi5idXR0b24tLWlubGluZSxcbmEuYnV0dG9uLS1pbmxpbmUsXG5idXR0b24uYnV0dG9uLS1pbmxpbmUsXG5pbnB1dC5idXR0b24tLWlubGluZSxcbiNyZXNwb25kIGlucHV0I3N1Ym1pdC0taW5saW5lIHtcbiAgYm9yZGVyLXJhZGl1czogMC4xODc1cmVtICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5idXR0b24tLWlubGluZSxcbiAgYS5idXR0b24tLWlubGluZSxcbiAgYnV0dG9uLmJ1dHRvbi0taW5saW5lLFxuICBpbnB1dC5idXR0b24tLWlubGluZSxcbiAgI3Jlc3BvbmQgaW5wdXQjc3VibWl0LS1pbmxpbmUge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAyLjkzNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjYyNXJlbTtcbiAgfVxufVxuXG4uYnV0dG9uLS1zbWFsbCxcbmEuYnV0dG9uLS1zbWFsbCxcbmJ1dHRvbi5idXR0b24tLXNtYWxsLFxuaW5wdXQuYnV0dG9uLS1zbWFsbCxcbiNyZXNwb25kIGlucHV0I3N1Ym1pdC0tc21hbGwge1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgcGFkZGluZzogMC41cmVtIDEuMTI1cmVtO1xufVxuXG4uYnV0dG9uOmRpc2FibGVkLCBpbnB1dDpkaXNhYmxlZFt0eXBlPVwic3VibWl0XCJdLCAuYnV0dG9uLmRpc2FibGVkLCBpbnB1dC5kaXNhYmxlZFt0eXBlPVwic3VibWl0XCJdLCAuYnV0dG9uOmRpc2FibGVkW2Rpc2FibGVkXSwgaW5wdXQ6ZGlzYWJsZWRbZGlzYWJsZWRdW3R5cGU9XCJzdWJtaXRcIl0sXG5hLmJ1dHRvbjpkaXNhYmxlZCxcbmEuYnV0dG9uLmRpc2FibGVkLFxuYS5idXR0b246ZGlzYWJsZWRbZGlzYWJsZWRdLFxuYnV0dG9uLmJ1dHRvbjpkaXNhYmxlZCxcbmJ1dHRvbi5idXR0b24uZGlzYWJsZWQsXG5idXR0b24uYnV0dG9uOmRpc2FibGVkW2Rpc2FibGVkXSxcbmlucHV0LmJ1dHRvbjpkaXNhYmxlZCxcbmlucHV0OmRpc2FibGVkW3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dC5idXR0b24uZGlzYWJsZWQsXG5pbnB1dC5kaXNhYmxlZFt0eXBlPVwic3VibWl0XCJdLFxuaW5wdXQuYnV0dG9uOmRpc2FibGVkW2Rpc2FibGVkXSxcbmlucHV0OmRpc2FibGVkW2Rpc2FibGVkXVt0eXBlPVwic3VibWl0XCJdLFxuI3Jlc3BvbmQgaW5wdXQjc3VibWl0OmRpc2FibGVkLFxuI3Jlc3BvbmQgaW5wdXQjc3VibWl0LmRpc2FibGVkLFxuI3Jlc3BvbmQgaW5wdXQjc3VibWl0OmRpc2FibGVkW2Rpc2FibGVkXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOGU1ZGE7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi5idXR0b246ZGlzYWJsZWQ6aG92ZXIsIGlucHV0OmRpc2FibGVkOmhvdmVyW3R5cGU9XCJzdWJtaXRcIl0sIC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIGlucHV0LmRpc2FibGVkOmhvdmVyW3R5cGU9XCJzdWJtaXRcIl0sIC5idXR0b246ZGlzYWJsZWRbZGlzYWJsZWRdOmhvdmVyLCBpbnB1dDpkaXNhYmxlZFtkaXNhYmxlZF06aG92ZXJbdHlwZT1cInN1Ym1pdFwiXSxcbmEuYnV0dG9uOmRpc2FibGVkOmhvdmVyLFxuYS5idXR0b24uZGlzYWJsZWQ6aG92ZXIsXG5hLmJ1dHRvbjpkaXNhYmxlZFtkaXNhYmxlZF06aG92ZXIsXG5idXR0b24uYnV0dG9uOmRpc2FibGVkOmhvdmVyLFxuYnV0dG9uLmJ1dHRvbi5kaXNhYmxlZDpob3ZlcixcbmJ1dHRvbi5idXR0b246ZGlzYWJsZWRbZGlzYWJsZWRdOmhvdmVyLFxuaW5wdXQuYnV0dG9uOmRpc2FibGVkOmhvdmVyLFxuaW5wdXQ6ZGlzYWJsZWQ6aG92ZXJbdHlwZT1cInN1Ym1pdFwiXSxcbmlucHV0LmJ1dHRvbi5kaXNhYmxlZDpob3ZlcixcbmlucHV0LmRpc2FibGVkOmhvdmVyW3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dC5idXR0b246ZGlzYWJsZWRbZGlzYWJsZWRdOmhvdmVyLFxuaW5wdXQ6ZGlzYWJsZWRbZGlzYWJsZWRdOmhvdmVyW3R5cGU9XCJzdWJtaXRcIl0sXG4jcmVzcG9uZCBpbnB1dCNzdWJtaXQ6ZGlzYWJsZWQ6aG92ZXIsXG4jcmVzcG9uZCBpbnB1dCNzdWJtaXQuZGlzYWJsZWQ6aG92ZXIsXG4jcmVzcG9uZCBpbnB1dCNzdWJtaXQ6ZGlzYWJsZWRbZGlzYWJsZWRdOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZTVkYTtcbn1cblxuLmFjdGlvbi1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA0cmVtIDAgMnJlbTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8qXG5cdCogTmF2aWdhdGlvblxuXHQqL1xuLyoqKioqKioqKioqKioqKioqKioqKlxuREVTS1RPUCBNRU5VIFNUWUxJTkdcbioqKioqKioqKioqKioqKioqKioqKi9cbi5tZW51IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLm1lbnUtLW1haW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAubWVudS0tbWFpbiAubWVudV9faXRlbSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5tZW51LS1tYWluIC53cG1sLWxzLWZsYWcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLm1lbnVfX2l0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwIDFyZW07XG59XG5cbi5tZW51X19saW5rIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luOiAwO1xuICBvdXRsaW5lOiAwICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZW51X19saW5rIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC5tZW51X19saW5rIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5tZW51X19saW5rIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKipcbkRFU0tUT1AgRFJPUERPV04gTUVOVVxuKioqKioqKioqKioqKioqKioqKioqL1xuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC5tZW51LS1tYWluIC5tZW51X19pdGVtLmhhcy1jaGlsZHJlbjpob3ZlciAuc3ViX19tZW51IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB6LWluZGV4OiAxMDtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLm1lbnUtLW1haW4gLnN1Yl9fbWVudSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBtYXgtd2lkdGg6IDE4Ljc1cmVtO1xuICAgIG1pbi13aWR0aDogMTEuMjVyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAuODc1cmVtIDAuMTg3NXJlbSAwLjg3NXJlbSAwO1xuICAgIHRvcDogMi44NzVyZW07XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7XG4gICAgbGVmdDogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAtOHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjA4KSwgMCAtMThweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4wMik7XG4gIH1cbiAgLm1lbnUtLW1haW4gLnN1Yl9fbWVudTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgd2lkdGg6IDEuMTI1cmVtO1xuICAgIGhlaWdodDogMS4xMjVyZW07XG4gICAgdG9wOiAtMnB4O1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB9XG4gIC5tZW51LS1tYWluIC5zdWJfX21lbnUgLm1lbnVfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBib3JkZXItdG9wOiBub25lICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxuICAuc3RhdGUtLXNjcm9sbGVkIC5tZW51LS1tYWluIC5zdWJfX21lbnUgLm1lbnVfX2l0ZW0ge1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAxLjA2MjVyZW07XG4gIH1cbiAgLm1lbnUtLW1haW4gLnN1Yl9fbWVudSAubWVudV9faXRlbS5pcy1hY3RpdmUge1xuICAgIGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5NT0JJTEUgTUVOVSBTVFlMSU5HXG4qKioqKioqKioqKioqKioqKioqKiovXG4ubWVudS10b2dnbGUge1xuICBvdXRsaW5lOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIHdpZHRoOiAyLjVyZW07XG4gIGhlaWdodDogMi41cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIGVhc2UgMC4zcztcbn1cblxuLmhhbWJ1cmdlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMi41cmVtO1xuICB3aWR0aDogMi41cmVtO1xuICB0b3A6IC0wLjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzhENDMwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogLjE1cyBlYXNlLW91dCBhbGw7XG59XG5cbi5oYW1idXJnZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjU5ODIwO1xufVxuXG4uaGFtYnVyZ2VyX19iYXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgd2lkdGg6IGNhbGMoNzAlIC0gMXB4KTtcbiAgaGVpZ2h0OiAwLjMxMjVyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogY2FsYygxNSUgKyAxcHgpO1xuICByaWdodDogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiB0b3AgMC4zcyBlYXNlLCBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cblxuLmhhbWJ1cmdlcl9fYmFyOm50aC1vZi10eXBlKDEpIHtcbiAgdG9wOiAwLjU2MjVyZW07XG59XG5cbi5oYW1idXJnZXJfX2JhcjpudGgtb2YtdHlwZSgyKSB7XG4gIHRvcDogMS4wNjI1cmVtO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uaGFtYnVyZ2VyX19iYXI6bnRoLW9mLXR5cGUoMykge1xuICB0b3A6IDEuNTYyNXJlbTtcbn1cblxuLmhlYWRlcl9fbWFpbi0taW52ZXJ0ZWQgLmhhbWJ1cmdlcl9fYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuLnN0YXRlLS1zY3JvbGxlZCAuaGVhZGVyX19tYWluLS1pbnZlcnRlZCAuaGFtYnVyZ2VyX19iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4ubWVudS10b2dnbGVbYXJpYS1leHBhbmRlZD1cInRydWVcIl0gLmhhbWJ1cmdlcl9fYmFyIHtcbiAgdHJhbnNpdGlvbjogdG9wIG9wYWNpdHkgdHJhbnNmb3JtO1xufVxuXG4ubWVudS10b2dnbGVbYXJpYS1leHBhbmRlZD1cInRydWVcIl0gLmhhbWJ1cmdlcl9fYmFyOm50aC1vZi10eXBlKDIpIHtcbiAgb3BhY2l0eTogMDtcbn1cblxuLm1lbnUtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIC5oYW1idXJnZXJfX2JhcjpudGgtb2YtdHlwZSgxKSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgdG9wOiAxNnB4O1xufVxuXG4ubWVudS10b2dnbGVbYXJpYS1leHBhbmRlZD1cInRydWVcIl0gLmhhbWJ1cmdlcl9fYmFyOm50aC1vZi10eXBlKDMpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgdG9wOiAxNnB4O1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5PRkYtQ0FOVkFTIFNUWUxJTkdcbioqKioqKioqKioqKioqKioqKioqKi9cbi5vZmYtY2FudmFzIHtcbiAgb3BhY2l0eTogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiAuNXMgZWFzZS1vdXQgb3BhY2l0eTtcbn1cblxuLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ub2ZmLWNhbnZhcyAubWVudV9faXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuLm9mZi1jYW52YXMgLm1lbnVfX2xpbmsge1xuICBib3JkZXItYm90dG9tOiAwO1xuICBib3JkZXItbGVmdDogMCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY1LjYyMzc1ZW0pIHtcbiAgLm9mZi1jYW52YXNfX2NvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4ub2ZmLWNhbnZhc19faW5uZXIge1xuICBwYWRkaW5nOiAxLjU2MjVyZW07XG4gIGhlaWdodDogMTAwJTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC5vZmYtY2FudmFzX19pbm5lciB7XG4gICAgcGFkZGluZzogMy4xMjVyZW07XG4gIH1cbn1cblxuLm9mZi1jYW52YXMuaXMtb3BlbiAubWVudV9faXRlbSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLm9mZi1jYW52YXMuaXMtb3BlbiAubWVudV9faXRlbTpudGgtY2hpbGQoMSkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAuMXM7XG59XG5cbi5vZmYtY2FudmFzLmlzLW9wZW4gLm1lbnVfX2l0ZW06bnRoLWNoaWxkKDIpIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogLjJzO1xufVxuXG4ub2ZmLWNhbnZhcy5pcy1vcGVuIC5tZW51X19pdGVtOm50aC1jaGlsZCgzKSB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IC4zcztcbn1cblxuLm9mZi1jYW52YXMuaXMtb3BlbiAubWVudV9faXRlbTpudGgtY2hpbGQoNCkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAuNHM7XG59XG5cbi5vZmYtY2FudmFzLmlzLW9wZW4gLm1lbnVfX2l0ZW06bnRoLWNoaWxkKDUpIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogLjVzO1xufVxuXG4ub2ZmLWNhbnZhcy5pcy1vcGVuIC5tZW51X19pdGVtOm50aC1jaGlsZCg2KSB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IC42cztcbn1cblxuLm1lbnUtLW9mZmNhbnZhcyAubWVudV9faXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNTVzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7XG4gIC8qIGVhc2VPdXRRdWFydCAqL1xufVxuXG4ubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtLmhhcy1jaGlsZHJlbjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy9hcnJvdy1kb3duLXdoaXRlLnN2Z1wiKSBuby1yZXBlYXQgY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiRElOUHJvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBoZWlnaHQ6IDM1cHg7XG4gIHdpZHRoOiAzNXB4O1xuICBsaW5lLWhlaWdodDogMi4xMjVyZW07XG4gIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICMwMDA7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogLTE7XG59XG5cbi5tZW51LS1vZmZjYW52YXMgLm1lbnVfX2l0ZW0uaGFzLWNoaWxkcmVuLmlzLW9wZW46YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvYXJyb3ctdXAtd2hpdGUuc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG59XG5cbi5tZW51LS1vZmZjYW52YXMgLm1lbnVfX2l0ZW0gLm1lbnVfX2xpbmsge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDA7XG4gIG1hcmdpbjogMC42MjVyZW0gMDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjU1cyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQsIDAuNDQsIDEpO1xuICAvKiBlYXNlT3V0UXVhcnQgKi9cbn1cblxuLm1lbnUtLW9mZmNhbnZhcyAubWVudV9faXRlbSAubWVudV9fbGluazphZnRlciB7XG4gIHotaW5kZXg6IC0xO1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogLTUlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjMzhENDMwO1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNTVzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5tZW51LS1vZmZjYW52YXMgLm1lbnVfX2l0ZW0gLm1lbnVfX2xpbms6YWZ0ZXI6Zm9jdXMge1xuICBvcGFjaXR5OiAwO1xufVxuXG4ubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtIC5tZW51X19saW5rOmZvY3VzOmhvdmVyOmFmdGVyLCAubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtIC5tZW51X19saW5rOmhvdmVyOmFmdGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgd2lkdGg6IGNhbGMoMTEwJSk7XG59XG5cbi5tZW51LS1vZmZjYW52YXMgLm1lbnVfX2l0ZW0gLm1lbnVfX2xpbmsgLndwbWwtbHMtbmF0aXZlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gIHRvcDogLTNweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLm1lbnUtLW9mZmNhbnZhcyAubWVudV9faXRlbSAubWVudV9fbGluayAud3BtbC1scy1uYXRpdmUge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgfVxufVxuXG4ubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtIC5tZW51X19saW5rIC53cG1sLWxzLW5hdGl2ZTpiZWZvcmUge1xuICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvaWNvbi1sYW5ndWFnZS5zdmdcIik7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbn1cblxuLm1lbnUtLW9mZmNhbnZhcyAubWVudV9faXRlbSAubWVudSxcbi5tZW51LS1vZmZjYW52YXMgLm1lbnVfX2l0ZW0gLnN1Yi1tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMC4zMTI1cmVtIDAuNjI1cmVtIDAuMzc1cmVtO1xuICBtYXJnaW46IDA7XG59XG5cbi5tZW51LS1vZmZjYW52YXMgLm1lbnVfX2l0ZW0gLm1lbnUgLm1lbnVfX2l0ZW0sXG4ubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtIC5zdWItbWVudSAubWVudV9faXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xufVxuXG4ubWVudS0tb2ZmY2FudmFzIC5tZW51X19pdGVtIC5tZW51IC5tZW51X19saW5rLFxuLm1lbnUtLW9mZmNhbnZhcyAubWVudV9faXRlbSAuc3ViLW1lbnUgLm1lbnVfX2xpbmsge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuMzEyNXJlbSAwLjkzNzVyZW0gMC42MjVyZW07XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5QQUdJTkFUSU9OIFNUWUxJTkdcbioqKioqKioqKioqKioqKioqKioqKi9cbi5wYWdlLW5hdmlnYXRpb24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsZXg6IDIgMCBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucGFnZS1uYXZpZ2F0aW9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi5wYWdlLW5hdmlnYXRpb24gdWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBtYXJnaW46IDFweDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2NS42MjM3NWVtKSB7XG4gIC5wYWdlLW5hdmlnYXRpb24gdWwge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxufVxuXG4ucGFnZS1uYXZpZ2F0aW9uIHVsIGxpIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwIDAuNjI1cmVtO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDY1LjYyMzc1ZW0pIHtcbiAgLnBhZ2UtbmF2aWdhdGlvbiB1bCBsaSB7XG4gICAgbWFyZ2luOiAwIDAuOTM3NXJlbSAwIDA7XG4gIH1cbn1cblxuLnBhZ2UtbmF2aWdhdGlvbiB1bCBsaSBhLCAucGFnZS1uYXZpZ2F0aW9uIHVsIGxpLmN1cnJlbnQge1xuICB3aWR0aDogMS44NzVyZW07XG4gIGhlaWdodDogMS44NzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNDM3NXJlbTtcbiAgYm9yZGVyOiAycHggc29saWQgI2UyZTFlMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBwYWRkaW5nOiAwLjQzNzVyZW0gMC42ODc1cmVtIDAuNDM3NXJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAucGFnZS1uYXZpZ2F0aW9uIHVsIGxpIGEsIC5wYWdlLW5hdmlnYXRpb24gdWwgbGkuY3VycmVudCB7XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgd2lkdGg6IDIuMjVyZW07XG4gICAgaGVpZ2h0OiAyLjA2MjVyZW07XG4gICAgcGFkZGluZzogMC4zNzVyZW0gMC42ODc1cmVtO1xuICB9XG59XG5cbi5wYWdlLW5hdmlnYXRpb24gdWwgbGkuY3VycmVudCB7XG4gIGJvcmRlci1jb2xvcjogIzM4RDQzMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4RDQzMDtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5wYWdlLW5hdmlnYXRpb24gdWwgbGkgc3Bhbi5jdXJyZW50LFxuLnBhZ2UtbmF2aWdhdGlvbiB1bCBsaSBhOmhvdmVyLFxuLnBhZ2UtbmF2aWdhdGlvbiB1bCBsaSBhOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzOEQ0MzA7XG4gIGJvcmRlci1jb2xvcjogIzM4RDQzMDtcbn1cblxuLnBhZ2UtbmF2aWdhdGlvbiB1bCBsaTpsYXN0LWNoaWxkLCAucGFnZS1uYXZpZ2F0aW9uIHVsIGxpOmZpcnN0LWNoaWxkIHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi5wYWdlLW5hdmlnYXRpb24gdWwgbGk6bGFzdC1jaGlsZCBhLCAucGFnZS1uYXZpZ2F0aW9uIHVsIGxpOmZpcnN0LWNoaWxkIGEge1xuICB3aWR0aDogYXV0bztcbn1cblxuLmlzLWxvZ2dlZC1pbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5sb2dnZWQtaW4gLmlzLWxvZ2dlZC1pbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmxvZ2dlZC1pbiAuaXMtbG9nZ2VkLWluIC5tZW51X19saW5rIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xufVxuXG4vKlxuXHQqIExpc3RzXG5cdCovXG4vKioqKioqKioqKioqKioqKioqKioqXG5MSVNUICggVUwsIExJICkgLSBTVFlMRVNcbioqKioqKioqKioqKioqKioqKioqKi9cbi5tYWluLWhlYWRlciB1bCwgdWwubWVudSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuLmxpc3QtLWNsZWFuIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG59XG5cbi5saXN0LS1ob3Jpem9udGFsIC5saXN0X19pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uaW1hZ2UtZ3JpZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5pbWFnZS1ncmlkIHtcbiAgICBtYXgtd2lkdGg6IDE2MDBweDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIH1cbn1cblxuLmltYWdlLWdyaWRfX2NvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5pbWFnZS1ncmlkX19pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNTAlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaW1hZ2UtZ3JpZF9faXRlbSB7XG4gICAgd2lkdGg6IDMzJTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLmltYWdlLWdyaWRfX2l0ZW0ge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAuaW1hZ2UtZ3JpZF9faXRlbSB7XG4gICAgd2lkdGg6IDIwJTtcbiAgfVxufVxuXG4uaW1hZ2UtZ3JpZF9faXRlbTpob3ZlciAuaW1hZ2UtZ3JpZF9faG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uaW1hZ2UtZ3JpZC0tbGFyZ2UgLmltYWdlLWdyaWRfX2l0ZW0ge1xuICB3aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmltYWdlLWdyaWQtLWxhcmdlIC5pbWFnZS1ncmlkX19pdGVtIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAuaW1hZ2UtZ3JpZC0tbGFyZ2UgLmltYWdlLWdyaWRfX2l0ZW0ge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMlO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLmltYWdlLWdyaWQtLWxhcmdlIC5pbWFnZS1ncmlkX19pdGVtIHtcbiAgICB3aWR0aDogMzMuMzMzMzMlO1xuICB9XG59XG5cbi5pbWFnZS1ncmlkLS1zcGFjZWQgLmltYWdlLWdyaWRfX2NvbnRlbnQge1xuICBwYWRkaW5nOiAwO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaW1hZ2UtZ3JpZC0tc3BhY2VkIC5pbWFnZS1ncmlkX19jb250ZW50IHtcbiAgICBwYWRkaW5nOiAxZW07XG4gIH1cbn1cblxuLmltYWdlLWdyaWQtLWNhc2UgLmltYWdlLWdyaWRfX2hvdmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDBlbSAhaW1wb3J0YW50O1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nLWJvdHRvbTogMS41ZW07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsIGJsYWNrIDEwMCUpO1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogd2hpdGU7XG4gIHRyYW5zaXRpb246IC4yNXMgZWFzZS1vdXQgYWxsO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaW1hZ2UtZ3JpZC0tY2FzZSAuaW1hZ2UtZ3JpZF9faG92ZXIge1xuICAgIHRvcDogMWVtO1xuICAgIGxlZnQ6IDFlbTtcbiAgICBib3R0b206IGF1dG87XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDJlbSk7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyZW0pO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5pbWFnZS1ncmlkLS1jYXNlIC5pbWFnZS1ncmlkX19ob3ZlciB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMDtcbiAgICBiYWNrZ3JvdW5kOiAjMzhENDMwO1xuICB9XG59XG5cbi5pbWFnZS1ncmlkLS1jYXNlIC5pbWFnZS1ncmlkX19ob3ZlciBoNCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAuaW1hZ2UtZ3JpZC0tY2FzZSAuaW1hZ2UtZ3JpZF9faG92ZXIgaDQge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAuMmVtO1xuICB9XG59XG5cbi5pbWFnZS1ncmlkLS1jYXNlIC5pbWFnZS1ncmlkX19ob3ZlciBoNSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLmltYWdlLWdyaWQtLWNhc2UgLmltYWdlLWdyaWRfX2hvdmVyIGg1IHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gIH1cbn1cblxuLmltYWdlLWdyaWQtLWNhc2UgLmltYWdlLWdyaWRfX2hvdmVyIHAge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5pbWFnZS1ncmlkLS1jYXNlIC5pbWFnZS1ncmlkX19ob3ZlciBwIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4uaW1hZ2UtZ3JpZF9faG92ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMWVtO1xuICBsZWZ0OiAxZW07XG4gIGJvdHRvbTogYXV0bztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAyZW0pO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDJlbSk7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvcGFjaXR5OiAwO1xuICBiYWNrZ3JvdW5kOiAjMzhENDMwO1xuICBjb2xvcjogd2hpdGU7XG4gIHRyYW5zaXRpb246IC4yNXMgZWFzZS1vdXQgYWxsO1xufVxuXG4uaW1hZ2UtZ3JpZF9faG92ZXIgaDQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLmltYWdlLWdyaWRfX2hvdmVyIGg0IHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gIH1cbn1cblxuLmltYWdlLWdyaWRfX2hvdmVyIGg1IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAuaW1hZ2UtZ3JpZF9faG92ZXIgaDUge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgfVxufVxuXG4uYWx0ZXJuYXRpbmctZ3JpZF9faW1hZ2Utd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmFsdGVybmF0aW5nLWdyaWRfX2hlYWRpbmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuICB6LWluZGV4OiA0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5hbHRlcm5hdGluZy1ncmlkX19jb250ZW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA3cmVtIDJyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAuYWx0ZXJuYXRpbmctZ3JpZF9fY29udGVudCB7XG4gICAgcGFkZGluZzogNHJlbTtcbiAgfVxufVxuXG4vKlxuXHQqIFNsaWRlcnNcblx0Ki9cbi5oYWxmLWhlaWdodCAuY2Fyb3VzZWxfX2NlbGwge1xuICBoZWlnaHQ6IDUwdmggIWltcG9ydGFudDtcbn1cblxuLmNhcm91c2VsLS1xdW90ZSwgLmNhcm91c2VsLS11c3AsIC5jYXJvdXNlbC0tY2FzZXMsIC5jYXJvdXNlbC0taGVhZGVycyB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmNhcm91c2VsLS1xdW90ZV9faW1hZ2UsIC5jYXJvdXNlbC0tdXNwX19pbWFnZSwgLmNhcm91c2VsLS1jYXNlc19faW1hZ2UsIC5jYXJvdXNlbC0taGVhZGVyc19faW1hZ2Uge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xufVxuXG4uY2Fyb3VzZWwtLXF1b3RlX19jZWxsLCAuY2Fyb3VzZWwtLXVzcF9fY2VsbCwgLmNhcm91c2VsLS1jYXNlc19fY2VsbCwgLmNhcm91c2VsLS1oZWFkZXJzX19jZWxsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIG1hcmdpbjogMDtcbiAgb3BhY2l0eTogMC41O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zNXMgZWFzZTtcbn1cblxuLmNhcm91c2VsLS1xdW90ZV9fY2VsbC5pcy1zZWxlY3RlZCwgLmNhcm91c2VsLS11c3BfX2NlbGwuaXMtc2VsZWN0ZWQsIC5jYXJvdXNlbC0tY2FzZXNfX2NlbGwuaXMtc2VsZWN0ZWQsIC5jYXJvdXNlbC0taGVhZGVyc19fY2VsbC5pcy1zZWxlY3RlZCB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHRyYW5zbGF0ZVgoMHB4KSByb3RhdGVZKDBkZWcpIHRyYW5zbGF0ZVooMHB4KTtcbn1cblxuLmNhcm91c2VsLS1yZWFkeSAuY2Fyb3VzZWwtLXF1b3RlX19jZWxsLCAuY2Fyb3VzZWwtLXJlYWR5IC5jYXJvdXNlbC0tdXNwX19jZWxsLCAuY2Fyb3VzZWwtLXJlYWR5IC5jYXJvdXNlbC0tY2FzZXNfX2NlbGwsIC5jYXJvdXNlbC0tcmVhZHkgLmNhcm91c2VsLS1oZWFkZXJzX19jZWxsIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG4uY2Fyb3VzZWwtLXF1b3RlX193cmFwcGVyLCAuY2Fyb3VzZWwtLXVzcF9fd3JhcHBlciwgLmNhcm91c2VsLS1jYXNlc19fd3JhcHBlciwgLmNhcm91c2VsLS1oZWFkZXJzX193cmFwcGVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xufVxuXG4uY2Fyb3VzZWwtLXF1b3RlX19sZWZ0LCAuY2Fyb3VzZWwtLXF1b3RlX19yaWdodCwgLmNhcm91c2VsLS11c3BfX2xlZnQsIC5jYXJvdXNlbC0tdXNwX19yaWdodCwgLmNhcm91c2VsLS1jYXNlc19fbGVmdCwgLmNhcm91c2VsLS1jYXNlc19fcmlnaHQsIC5jYXJvdXNlbC0taGVhZGVyc19fbGVmdCwgLmNhcm91c2VsLS1oZWFkZXJzX19yaWdodCB7XG4gIHdpZHRoOiA1MCU7XG59XG5cbi5jYXJvdXNlbC0tcXVvdGVfX2xlZnQsIC5jYXJvdXNlbC0tdXNwX19sZWZ0LCAuY2Fyb3VzZWwtLWNhc2VzX19sZWZ0LCAuY2Fyb3VzZWwtLWhlYWRlcnNfX2xlZnQge1xuICBwYWRkaW5nOiAwIDNyZW07XG59XG5cbi5jYXJvdXNlbC0tcXVvdGVfX2lubmVyLCAuY2Fyb3VzZWwtLXVzcF9faW5uZXIsIC5jYXJvdXNlbC0tY2FzZXNfX2lubmVyLCAuY2Fyb3VzZWwtLWhlYWRlcnNfX2lubmVyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuY2Fyb3VzZWwtLXF1b3RlX19pbm5lciwgLmNhcm91c2VsLS11c3BfX2lubmVyLCAuY2Fyb3VzZWwtLWNhc2VzX19pbm5lciwgLmNhcm91c2VsLS1oZWFkZXJzX19pbm5lciB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLmNhcm91c2VsLS1xdW90ZV9faW5uZXIsIC5jYXJvdXNlbC0tdXNwX19pbm5lciwgLmNhcm91c2VsLS1jYXNlc19faW5uZXIsIC5jYXJvdXNlbC0taGVhZGVyc19faW5uZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLmNhcm91c2VsLS1xdW90ZV9faW5uZXIgKjpsYXN0LWNoaWxkLCAuY2Fyb3VzZWwtLXVzcF9faW5uZXIgKjpsYXN0LWNoaWxkLCAuY2Fyb3VzZWwtLWNhc2VzX19pbm5lciAqOmxhc3QtY2hpbGQsIC5jYXJvdXNlbC0taGVhZGVyc19faW5uZXIgKjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmNhcm91c2VsIC5mbGlja2l0eS1zbGlkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uY2Fyb3VzZWwgLmZsaWNraXR5LXZpZXdwb3J0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuY2Fyb3VzZWwgLmZsaWNraXR5LXZpZXdwb3J0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAuY2Fyb3VzZWwgLmZsaWNraXR5LXZpZXdwb3J0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi5jYXJvdXNlbC5pcy1kcmFnZ2FibGU6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uY2Fyb3VzZWwuaXMtZHJhZ2dhYmxlIC5mbGlja2l0eS12aWV3cG9ydCB7XG4gIGN1cnNvcjogZ3JhYjtcbn1cblxuLmNhcm91c2VsLmlzLWRyYWdnYWJsZSAuZmxpY2tpdHktdmlld3BvcnQuaXMtcG9pbnRlci1kb3duIHtcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cblxuLnZpc2liaWxpdHktb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogOTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyNXZoO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwJSwgYmxhY2sgMTAwJSk7XG4gIG9wYWNpdHk6IC45O1xufVxuXG4uY2FzZV9faGVhZGluZyxcbi5jYXJvdXNlbC0tY2FzZXNfX2hlYWRpbmcsXG4uY2Fyb3VzZWwtLWhlYWRlcnNfX2hlYWRpbmcge1xuICB6LWluZGV4OiAxMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogOTUlO1xuICBib3R0b206IDRyZW07XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAuY2FzZV9faGVhZGluZyxcbiAgLmNhcm91c2VsLS1jYXNlc19faGVhZGluZyxcbiAgLmNhcm91c2VsLS1oZWFkZXJzX19oZWFkaW5nIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGJvdHRvbTogNHJlbTtcbiAgICBsZWZ0OiA0cmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuXG4uY2FzZV9faGVhZGluZyBoMixcbi5jYXJvdXNlbC0tY2FzZXNfX2hlYWRpbmcgaDIsXG4uY2Fyb3VzZWwtLWhlYWRlcnNfX2hlYWRpbmcgaDIge1xuICBmb250LWZhbWlseTogJ0RJTlByby1CbGFjaycgIWltcG9ydGFudDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIHRyYW5zaXRpb246IGFsbCA1MDBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XG4gIC8qIGVhc2VPdXRRdWludCAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMS42MjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5jYXNlX19oZWFkaW5nIGgyLFxuICAuY2Fyb3VzZWwtLWNhc2VzX19oZWFkaW5nIGgyLFxuICAuY2Fyb3VzZWwtLWhlYWRlcnNfX2hlYWRpbmcgaDIge1xuICAgIGZvbnQtc2l6ZTogMy4yNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLmNhc2VfX2hlYWRpbmcgaDIsXG4gIC5jYXJvdXNlbC0tY2FzZXNfX2hlYWRpbmcgaDIsXG4gIC5jYXJvdXNlbC0taGVhZGVyc19faGVhZGluZyBoMiB7XG4gICAgZm9udC1zaXplOiA0LjEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICB9XG59XG5cbi5jYXNlX19oZWFkaW5nIGgyOmFmdGVyLFxuLmNhcm91c2VsLS1jYXNlc19faGVhZGluZyBoMjphZnRlcixcbi5jYXJvdXNlbC0taGVhZGVyc19faGVhZGluZyBoMjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAuMWVtO1xuICB3aWR0aDogMDtcbiAgYm90dG9tOiAtLjFlbTtcbiAgbGVmdDogLTIwcHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgNTAwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xuICAvKiBlYXNlT3V0UXVpbnQgKi9cbn1cblxuLmNhc2VfX2hlYWRpbmcgaDMsXG4uY2Fyb3VzZWwtLWNhc2VzX19oZWFkaW5nIGgzLFxuLmNhcm91c2VsLS1oZWFkZXJzX19oZWFkaW5nIGgzIHtcbiAgZm9udC1mYW1pbHk6ICdESU5Qcm8tQm9sZCcgIWltcG9ydGFudDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAwZW07XG4gIHRyYW5zaXRpb246IGFsbCA1MDBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XG4gIC8qIGVhc2VPdXRRdWludCAqL1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5jYXNlX19oZWFkaW5nIGgzLFxuICAuY2Fyb3VzZWwtLWNhc2VzX19oZWFkaW5nIGgzLFxuICAuY2Fyb3VzZWwtLWhlYWRlcnNfX2hlYWRpbmcgaDMge1xuICAgIGZvbnQtc2l6ZTogMi42MjVyZW07XG4gICAgbWFyZ2luOiAwIDAgMS41NjI1cmVtO1xuICB9XG59XG5cbi5jYXJvdXNlbC0tY2FzZXNfX2hlYWRpbmc6aG92ZXIgYSB7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4uY2Fyb3VzZWwtLWNhc2VzX19oZWFkaW5nOmhvdmVyIGgyOmFmdGVyIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDQwcHgpO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY2Fyb3VzZWwtLWNhc2VzX19oZWFkaW5nOmhvdmVyIGgyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpO1xufVxuXG4uY2Fyb3VzZWwtLWNhc2VzX19oZWFkaW5nOmhvdmVyIGgzIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTtcbn1cblxuLmZsaWNraXR5LWJ1dHRvbixcbi5mbGlja2l0eS1idXR0b246Zm9jdXMsXG4uZmxpY2tpdHktYnV0dG9uOmFjdGl2ZSxcbi5mbGlja2l0eS1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uZmxpY2tpdHktYnV0dG9uW2Rpc2FibGVkXSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLmZsaWNraXR5LXBhZ2UtZG90cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyMCU7XG4gIGxlZnQ6IDUlO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiA1MHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGNvdW50ZXItcmVzZXQ6IGE7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5mbGlja2l0eS1wYWdlLWRvdHMge1xuICAgIGhlaWdodDogMTAwcHg7XG4gIH1cbn1cblxuLmZsaWNraXR5LXBhZ2UtZG90cyAuZG90IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMi4xODc1cmVtO1xuICB3aWR0aDogMi4xODc1cmVtO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbjogMCAxMHB4IDAgMDtcbiAgdHJhbnNpdGlvbjogLjI1cyBlYXNlLW91dCBhbGw7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NTQ1NDU7XG4gIGNvbG9yOiBibGFjaztcbiAgb3BhY2l0eTogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ0RJTlByby1CbGFjayc7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5mbGlja2l0eS1wYWdlLWRvdHMgLmRvdDphZnRlciB7XG4gIGNvbnRlbnQ6IGNvdW50ZXIoYSk7XG4gIGNvdW50ZXItaW5jcmVtZW50OiBhO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuICBmb250LXNpemU6IDJyZW07XG59XG5cbi5mbGlja2l0eS1wYWdlLWRvdHMgLmRvdC5pcy1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBoZWlnaHQ6IDQwcHg7XG59XG5cbi5jYXJvdXNlbC0tY2FzZXMgLmZsaWNraXR5LXBhZ2UtZG90cyxcbi5jYXJvdXNlbC0taGVhZGVycyAuZmxpY2tpdHktcGFnZS1kb3RzIHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICBib3R0b206IC0xNXB4O1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNhcm91c2VsLS1jYXNlcyAuZmxpY2tpdHktcGFnZS1kb3RzLFxuICAuY2Fyb3VzZWwtLWhlYWRlcnMgLmZsaWNraXR5LXBhZ2UtZG90cyB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgYm90dG9tOiAxcmVtO1xuICAgIHJpZ2h0OiA1cmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuXG4uY2Fyb3VzZWwtLWNhc2VzIC5mbGlja2l0eS1wYWdlLWRvdHMgLmRvdCxcbi5jYXJvdXNlbC0taGVhZGVycyAuZmxpY2tpdHktcGFnZS1kb3RzIC5kb3Qge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNhcm91c2VsLS1jYXNlcyAuZmxpY2tpdHktcGFnZS1kb3RzIC5kb3QsXG4gIC5jYXJvdXNlbC0taGVhZGVycyAuZmxpY2tpdHktcGFnZS1kb3RzIC5kb3Qge1xuICAgIHdpZHRoOiAyNXB4O1xuICAgIGhlaWdodDogMjVweDtcbiAgfVxufVxuXG4uY2Fyb3VzZWwtLWNhc2VzIC5mbGlja2l0eS1wYWdlLWRvdHMgLmRvdC5pcy1zZWxlY3RlZCxcbi5jYXJvdXNlbC0taGVhZGVycyAuZmxpY2tpdHktcGFnZS1kb3RzIC5kb3QuaXMtc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kOiAjMzhENDMwO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuY2Fyb3VzZWwtLWNhc2VzIC5mbGlja2l0eS1wYWdlLWRvdHMgLmRvdC5pcy1zZWxlY3RlZCxcbiAgLmNhcm91c2VsLS1oZWFkZXJzIC5mbGlja2l0eS1wYWdlLWRvdHMgLmRvdC5pcy1zZWxlY3RlZCB7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIHdpZHRoOiAzNXB4O1xuICB9XG59XG5cbi5jYXJvdXNlbC0tY2FzZXMgLmZsaWNraXR5LXBhZ2UtZG90cyAuZG90OmFmdGVyLFxuLmNhcm91c2VsLS1oZWFkZXJzIC5mbGlja2l0eS1wYWdlLWRvdHMgLmRvdDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qXG5cdCogRm9ybXNcblx0Ki9cbi8qKioqKioqKioqKioqKioqKioqKipcbkZPUk0gU1RZTEVTXG4qKioqKioqKioqKioqKioqKioqKiovXG5mb3JtIHtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbn1cblxuLmlucHV0LFxuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwiZW1haWxcIl0sXG5pbnB1dFt0eXBlPVwidGVsXCJdLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbmlucHV0W3R5cGU9XCJ1cmxcIl0sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxudGV4dGFyZWEsIHNlbGVjdCB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBcIkRJTlByb1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgcGFkZGluZzogMC41NjI1cmVtIDFyZW0gMC42MjVyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwIDAgMC42MjVyZW07XG4gIGJvcmRlcjogMC4wNjI1cmVtIHNvbGlkICNjYWM2YmQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuMTg3NXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNoYWRvdzogMCAwIDBweCAxMDAwcHggI2ZmZiBpbnNldCwgMCAwIDAgMC4wNjI1cmVtIHJnYmEoNTYsIDIxMiwgNDgsIDApO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IGVhc2UgMC4zNTtcbn1cblxuLmlucHV0OmZvY3VzLFxuaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcbmlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxudGV4dGFyZWE6Zm9jdXMsIHNlbGVjdDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzM4RDQzMDtcbiAgYm94LXNoYWRvdzogMCAwIDBweCAxMDAwcHggI2ZmZiBpbnNldCwgMCAwIDAgMC4yNXJlbSByZ2JhKDU2LCAyMTIsIDQ4LCAwLjIpO1xuICBvdXRsaW5lOiBub25lO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLmlucHV0LFxuICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuICBpbnB1dFt0eXBlPVwidXJsXCJdLFxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4gIHRleHRhcmVhLCBzZWxlY3Qge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBwYWRkaW5nOiAwLjc1cmVtIDFyZW0gMC44MTI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmlucHV0LmlucHV0LS1pbmxpbmUsXG5pbnB1dFt0eXBlPVwidGV4dFwiXS5pbnB1dC0taW5saW5lLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLmlucHV0LS1pbmxpbmUsXG5pbnB1dFt0eXBlPVwidGVsXCJdLmlucHV0LS1pbmxpbmUsXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdLmlucHV0LS1pbmxpbmUsXG5pbnB1dFt0eXBlPVwidXJsXCJdLmlucHV0LS1pbmxpbmUsXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdLmlucHV0LS1pbmxpbmUsXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0uaW5wdXQtLWlubGluZSxcbnRleHRhcmVhLmlucHV0LS1pbmxpbmUsIHNlbGVjdC5pbnB1dC0taW5saW5lIHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbmlucHV0LmlucHV0LS01MCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBpbnB1dC5pbnB1dC0tNTAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAwLjVyZW0pO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGlucHV0LmlucHV0LS01MDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICB9XG59XG5cbmlucHV0LmlucHV0LS0zMyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBpbnB1dC5pbnB1dC0tMzMge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogY2FsYygzMy4zMzMlIC0gMXJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBpbnB1dC5pbnB1dC0tMzM6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cbmZvcm0gbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiRElOUHJvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDAuOTM3NXJlbSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG59XG5cblt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLW1vei1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIEZpcmVmb3ggKi9cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIFNhZmFyaSBhbmQgQ2hyb21lICovXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTYsIDIxMiwgNDgsIDAuNSk7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDAuMjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBoZWlnaHQ6IDEuMTI1cmVtO1xuICB3aWR0aDogMS4xMjVyZW07XG59XG5cblt0eXBlPVwiY2hlY2tib3hcIl06aG92ZXIge1xuICBib3JkZXItY29sb3I6ICMzOEQ0MzA7XG59XG5cblt0eXBlPVwiY2hlY2tib3hcIl06Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG5bdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQge1xuICAtd2Via2l0LWZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICBib3JkZXItY29sb3I6ICMzOEQ0MzA7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy9jaGVjay1wcmltYXJ5LnN2Z1wiKSBuby1yZXBlYXQgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDAuODc1cmVtO1xufVxuXG5bdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWwsXG5bdHlwZT1cImNoZWNrYm94XCJdICsgc3BhbiB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG59XG5cbiNmb3JtX19sb2dpbiAuYnV0dG9uLCAjZm9ybV9fbG9naW4gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5zZWxlY3Qge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvYXJyb3ctZG93bi1ibGFjay5zdmdcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0ICsxNnB4IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiAwLjg3NXJlbTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgc2VsZWN0IHtcbiAgICBsaW5lLWhlaWdodDogMiAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIHNlbGVjdCB7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxcmVtO1xuICB9XG59XG5cbnNlbGVjdDpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKipcblBMVUdJTiBTVFlMRVNcbioqKioqKioqKioqKioqKioqKioqKi9cbi5nZm9ybV9ib2R5IHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlIG5vbmU7XG4gIG1hcmdpbjogMDtcbn1cblxuYm9keSAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZm9vdGVyLFxuYm9keSAuZ2Zvcm1fd3JhcHBlciAuZ2lucHV0X2NvbnRhaW5lcl9jb25zZW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5ib2R5IC5nZm9ybV93cmFwcGVyIC5nZmllbGRfcmVxdWlyZWQge1xuICBjb2xvcjogIzAwMDtcbn1cblxuLmdpbnB1dF9jb250YWluZXJfY29uc2VudCB7XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG59XG5cbi5nZmllbGRfY29uc2VudF9sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcbn1cblxuLmdmaWVsZF9jb25zZW50X2xhYmVsIGEge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmdmaWVsZF9wcmljZSAuaW5zdHJ1Y3Rpb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZ2ZpZWxkX3RvdGFsIHtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZ2ZpZWxkX3RvdGFsIHtcbiAgICBtYXJnaW46IDAuODc1cmVtO1xuICB9XG59XG5cbi5nZmllbGRfdG90YWwgLmdpbnB1dF9jb250YWluZXIsIC5nZmllbGRfdG90YWwgLmdpbnB1dF90b3RhbCB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG5pbnB1dDotaW50ZXJuYWwtYXV0b2ZpbGwtc2VsZWN0ZWQsXG5pbnB1dDotd2Via2l0LWF1dG9maWxsLFxuaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbmlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG5pbnB1dDotaW50ZXJuYWwtYXV0b2ZpbGwtc2VsZWN0ZWQsXG50ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsLFxudGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbnRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG5zZWxlY3Q6LXdlYmtpdC1hdXRvZmlsbCxcbnNlbGVjdDotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuc2VsZWN0Oi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMHB4IDEwMDBweCAjZmZmIGluc2V0ICFpbXBvcnRhbnQ7XG59XG5cbi5mb3JtX19ib3R0b20ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5mb3JtX19ib3R0b20gdGV4dGFyZWEge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBoZWlnaHQ6IDExLjI1cmVtO1xufVxuXG4uZm9ybV9fYm90dG9tIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwLjkzNzVyZW07XG4gIGJvdHRvbTogMS4yNXJlbTtcbiAgcGFkZGluZzogMC41NjI1cmVtIDEuMzc1cmVtIDAuNjg3NXJlbTtcbn1cblxuI21jX2VtYmVkX3NpZ251cCAuZm9ybV9fZ3JvdXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1heC13aWR0aDogMzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuOTM3NXJlbTtcbn1cblxuI21jX2VtYmVkX3NpZ251cCAuZm9ybV9fZ3JvdXAgLmVtYWlsIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbWFyZ2luLXJpZ2h0OiAxLjI1cmVtO1xuICBoZWlnaHQ6IDMuMjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAjbWNfZW1iZWRfc2lnbnVwIC5mb3JtX19ncm91cCAuZW1haWwge1xuICAgIHdpZHRoOiAyOC4xMjVyZW07XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG5cbmJvZHkgLmdmb3JtX3dyYXBwZXIgc3Bhbi5naW5wdXRfdG90YWwge1xuICBjb2xvcjogIzAwMDtcbn1cblxuLmx3YSB0ciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG59XG5cbi5sd2EgdGQge1xuICBmbGV4LWJhc2lzOiAxMDAlO1xufVxuXG4ubHdhIC5sd2EtcmVtZW1iZXJtZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5sd2EgLmx3YS1zdWJtaXQtbGlua3Mge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5sd2EgLmx3YS1zdWJtaXQtbGlua3MgPiBsYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5sd2EgLmx3YS1saW5rcy1yZW1lbWJlciB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG59XG5cbi5sd2EgI2x3YV93cC1zdWJtaXQge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZ2ZpZWxkX2Rlc2NyaXB0aW9uIHtcbiAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMjlweCAhaW1wb3J0YW50O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5nZm9ybV9sZWdhY3lfbWFya3VwX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIGxpLmdmaWVsZCxcbi5nZmllbGQtLXdpZHRoLWZ1bGwsXG4uZ2ZpZWxkwqAge1xuICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi8qXG5cdCogTW9kYWxzXG5cdCovXG4vKlxuXHQqIEhlYWRlclxuXHQqL1xuLyoqKioqKioqKioqKioqKioqKioqKlxuTWFpbiBIZWFkZXJcbioqKioqKioqKioqKioqKioqKioqKi9cbmJvZHkuYWRtaW4tYmFyIC5oZWFkZXJfX21haW4ge1xuICB0b3A6IDMycHg7XG59XG5cbi5oZWFkZXJfX21haW4ge1xuICB3aWxsLWNoYW5nZTogcGFkZGluZywgdG9wLCB0cmFuc2Zvcm07XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAyMDtcbiAgdG9wOiAwO1xuICB0cmFuc2l0aW9uOiAuMnMgZWFzZSBwYWRkaW5nLCAuMnMgZWFzZSB0b3AsIC4zNXMgZWFzZSB0cmFuc2Zvcm07XG59XG5cbi5zdGF0ZS0tc2Nyb2xsZWQtZG93biAuaGVhZGVyX19tYWluIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbn1cblxuLnN0YXRlLS1zY3JvbGxlZC11cCAuaGVhZGVyX19tYWluIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4uc3RhdGUtLXNjcm9sbGVkIC5oZWFkZXJfX21haW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnN0YXRlLS1zY3JvbGxlZCAuaGVhZGVyX19tYWluIC5oZWFkZXJfX2xvZ28ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvbG9nby9oYXBwaWZ5LWxvZ28tZ3JlZW4uc3ZnXCIpO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaGVhZGVyX19tYWluIHtcbiAgICBwYWRkaW5nOiAyLjEyNXJlbSAwIDEuODc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLmhlYWRlcl9fbWFpbiB7XG4gICAgcGFkZGluZzogMi43NXJlbSAwIDEuODc1cmVtO1xuICB9XG4gIC5oZWFkZXJfX21haW4gLnJvdyB7XG4gICAgcGFkZGluZy1sZWZ0OiAyLjc1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDIuNzVyZW07XG4gIH1cbn1cblxuLmhlYWRlcl9fbWFpbi0taW52ZXJ0ZWQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogI2ZmZjtcbiAgdG9wOiAwO1xufVxuXG4uc3RhdGUtLXNjcm9sbGVkIC5oZWFkZXJfX21haW4tLWludmVydGVkIHtcbiAgdG9wOiAwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY1LjYyMzc1ZW0pIHtcbiAgLmhlYWRlcl9fbWFpbl9fbGVmdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxuXG4uaGVhZGVyX19tYWluX19jZW50ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAuaGVhZGVyX19tYWluX19jZW50ZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLmhlYWRlcl9fbG9nbyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDIuMjVyZW07XG4gIHdpZHRoOiA3LjkzNzVyZW07XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9sb2dvL2hhcHBpZnktbG9nby1ncmVlbi5zdmdcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIHRyYW5zaXRpb246IHdpZHRoIGhlaWdodCAwLjJzO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaGVhZGVyX19sb2dvIHtcbiAgICBoZWlnaHQ6IDIuNzVyZW07XG4gICAgd2lkdGg6IDkuNjg3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLmhlYWRlcl9fbG9nbyB7XG4gICAgaGVpZ2h0OiAzLjEyNXJlbTtcbiAgICB3aWR0aDogMTAuMzEyNXJlbTtcbiAgfVxufVxuXG4uYnJhbmQtbG9nbyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDEuMjVyZW07XG4gIHdpZHRoOiA1LjYyNXJlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2xvZ28vaGFwcGlmeS1sb2dvLWdyZWVuLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuSEVBREVSIFRPUCBCQVJcbioqKioqKioqKioqKioqKioqKioqKi9cbi5oZWFkZXJfX3RvcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIHBhZGRpbmc6IDAuMzEyNXJlbSAwIDAuNXJlbTtcbiAgei1pbmRleDogNTtcbn1cblxuLm9mZi1jYW52YXMtLW1lbnUtaW52ZXJ0ZWQgLmhlYWRlcl9fdG9wIHtcbiAgYm9yZGVyLWJvdHRvbTogMC4wNjI1cmVtIHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5oZWFkZXJfX3RvcCB7XG4gICAgcGFkZGluZzogMC41cmVtIDAgMC41NjI1cmVtO1xuICB9XG59XG5cbi5oZWFkZXJfX3RvcF9fbGluaywgLmhlYWRlcl9fdG9wX190ZXh0IHtcbiAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5oZWFkZXJfX3RvcF9fbGluaywgLmhlYWRlcl9fdG9wX190ZXh0IHtcbiAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgfVxufVxuXG4uaGVhZGVyX190b3BfX3NlbGxpbmctcG9pbnRzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmhlYWRlcl9fdG9wX19zZWxsaW5nLXBvaW50cyB7XG4gICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgfVxufVxuXG4uaGVhZGVyX190b3BfX2ljb24ge1xuICBtYXgtaGVpZ2h0OiAwLjU2MjVyZW07XG4gIG1hcmdpbi1yaWdodDogMC4xMjVyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaGVhZGVyX190b3BfX2ljb24ge1xuICAgIG1heC1oZWlnaHQ6IDAuODEyNXJlbTtcbiAgICB0b3A6IC0xcHg7XG4gIH1cbn1cblxuLmhlYWRlcl9fdG9wX19sZWZ0IHtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLmhlYWRlcl9fdG9wX19sZWZ0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5oZWFkZXJfX3RvcF9fcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cblxuLmNhc2VfX2hlYWRlciB7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLypcblx0KiBDb250ZW50IOKAkyBTdHlsaW5nIGZvciBlbnRyeS1jb250ZW50LCBhcnRpY2xlcywgY29tbWVudHMgZXRjLlxuXHQqL1xuLyoqKioqKioqKioqKioqKioqKioqKlxuVG9nZ2xlIENvbnRlbnQgTGlua3NcbioqKioqKioqKioqKioqKioqKioqKi9cbi50b2dnbGVfX2xpbmsge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udG9nZ2xlX19saW5rLmlzLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuRU5UUlkgQ09OVEVOVFxuKioqKioqKioqKioqKioqKioqKioqL1xuaW1nLmFsaWduY2VudGVyIHtcbiAgbWFyZ2luLXRvcDogMC43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbn1cblxuLnRleHQtY29udGVudCB1bCwgLnRleHQtY29udGVudCBvbCB7XG4gIGZvbnQtZmFtaWx5OiBcIkRJTlByb1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbn1cblxuLmVudHJ5LWNvbnRlbnQgaDEsIC5lbnRyeS1jb250ZW50IC5oMSwgLmVudHJ5LWNvbnRlbnQgaDIsIC5lbnRyeS1jb250ZW50IC5oMiwgLmVudHJ5LWNvbnRlbnQgaDMsIC5lbnRyeS1jb250ZW50IC5oMywgLmVudHJ5LWNvbnRlbnQgLm1lbnUtLW9mZmNhbnZhcyAubWVudV9faXRlbSAubWVudV9fbGluaywgLm1lbnUtLW9mZmNhbnZhcyAubWVudV9faXRlbSAuZW50cnktY29udGVudCAubWVudV9fbGluaywgLmVudHJ5LWNvbnRlbnQgaDQsIC5lbnRyeS1jb250ZW50IC5oNCwgLmVudHJ5LWNvbnRlbnQgaDUsIC5lbnRyeS1jb250ZW50IC5oNSwgLmVudHJ5LWNvbnRlbnQgaDYsIC5lbnRyeS1jb250ZW50IC5oNiwgLnRlcm0tZGVzY3JpcHRpb24gaDEsIC50ZXJtLWRlc2NyaXB0aW9uIC5oMSwgLnRlcm0tZGVzY3JpcHRpb24gaDIsIC50ZXJtLWRlc2NyaXB0aW9uIC5oMiwgLnRlcm0tZGVzY3JpcHRpb24gaDMsIC50ZXJtLWRlc2NyaXB0aW9uIC5oMywgLnRlcm0tZGVzY3JpcHRpb24gLm1lbnUtLW9mZmNhbnZhcyAubWVudV9faXRlbSAubWVudV9fbGluaywgLm1lbnUtLW9mZmNhbnZhcyAubWVudV9faXRlbSAudGVybS1kZXNjcmlwdGlvbiAubWVudV9fbGluaywgLnRlcm0tZGVzY3JpcHRpb24gaDQsIC50ZXJtLWRlc2NyaXB0aW9uIC5oNCwgLnRlcm0tZGVzY3JpcHRpb24gaDUsIC50ZXJtLWRlc2NyaXB0aW9uIC5oNSwgLnRlcm0tZGVzY3JpcHRpb24gaDYsIC50ZXJtLWRlc2NyaXB0aW9uIC5oNiB7XG4gIG1hcmdpbjogMCAwIDAuMzEyNXJlbTtcbn1cblxuLmVudHJ5LWNvbnRlbnQgYSwgLnRlcm0tZGVzY3JpcHRpb24gYSB7XG4gIGNvbG9yOiAjMzhENDMwO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uZW50cnktY29udGVudCBpbWcsIC50ZXJtLWRlc2NyaXB0aW9uIGltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uZW50cnktY29udGVudCAuYWxpZ25sZWZ0LCAuZW50cnktY29udGVudCBpbWcuYWxpZ25sZWZ0LCAudGVybS1kZXNjcmlwdGlvbiAuYWxpZ25sZWZ0LCAudGVybS1kZXNjcmlwdGlvbiBpbWcuYWxpZ25sZWZ0IHtcbiAgbWFyZ2luOiAxLjU2MjVyZW0gMS41NjI1cmVtIDEuNTYyNXJlbSAwO1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4uZW50cnktY29udGVudCAuYWxpZ25yaWdodCwgLmVudHJ5LWNvbnRlbnQgaW1nLmFsaWducmlnaHQsIC50ZXJtLWRlc2NyaXB0aW9uIC5hbGlnbnJpZ2h0LCAudGVybS1kZXNjcmlwdGlvbiBpbWcuYWxpZ25yaWdodCB7XG4gIG1hcmdpbjogMS41NjI1cmVtIDAgMS41NjI1cmVtIDEuNTYyNXJlbTtcbiAgZGlzcGxheTogaW5saW5lO1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5lbnRyeS1jb250ZW50IC5hbGlnbmNlbnRlciwgLmVudHJ5LWNvbnRlbnQgaW1nLmFsaWduY2VudGVyLCAudGVybS1kZXNjcmlwdGlvbiAuYWxpZ25jZW50ZXIsIC50ZXJtLWRlc2NyaXB0aW9uIGltZy5hbGlnbmNlbnRlciB7XG4gIG1hcmdpbjogMS41NjI1cmVtIGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGVhcjogYm90aDtcbn1cblxuLmVudHJ5LWNvbnRlbnQgdmlkZW8sIC5lbnRyeS1jb250ZW50IG9iamVjdCwgLnRlcm0tZGVzY3JpcHRpb24gdmlkZW8sIC50ZXJtLWRlc2NyaXB0aW9uIG9iamVjdCB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uZW50cnktY29udGVudCBwcmUsIC50ZXJtLWRlc2NyaXB0aW9uIHByZSB7XG4gIGJhY2tncm91bmQ6ICNlZWU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjZWNlY2U7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5wb3N0LW1ldGEge1xuICBwYWRkaW5nOiAwLjI1cmVtIDA7XG59XG5cbi5wb3N0LW1ldGEgLmNhdGVnb3J5LWxpc3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuUE9TVFMgSU5ERVhcbioqKioqKioqKioqKioqKioqKioqKi9cbiNwb3N0cyBhcnRpY2xlIHtcbiAgcGFkZGluZy1ib3R0b206IDEuNTYyNXJlbTtcbn1cblxuI3Bvc3RzIC5hcnRpY2xlX19ib2R5IHtcbiAgcGFkZGluZy10b3A6IDAuOTM3NXJlbTtcbn1cblxuI3Bvc3RzIGltZyB7XG4gIG1hcmdpbi1ib3R0b206IDAuOTM3NXJlbTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuU0lOR0xFIFBPU1RcbioqKioqKioqKioqKioqKioqKioqKi9cbi5zaW5nbGUtcG9zdF9fdG9wLXNlY3Rpb24ge1xuICBib3JkZXItYm90dG9tOiAwLjA2MjVyZW0gc29saWQgI2U4ZTVkYTtcbn1cblxuLnNpbmdsZS1wb3N0X19pbnRybyB7XG4gIHBhZGRpbmc6IDEuODc1cmVtIDAgMC4zMTI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5NSVNDXG4qKioqKioqKioqKioqKioqKioqKiovXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAjc2Nyb2xsLXRvLWNvbnRlbnQgLm1vcmUtY29udGVudCB7XG4gICAgY29sdW1uLWNvdW50OiAyO1xuICB9XG59XG5cbi53cC1jYXB0aW9uIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4ud3AtY2FwdGlvbiBpbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi53cC1jYXB0aW9uLXRleHQge1xuICBmb250LXNpemU6IDAuODVlbTtcbiAgbWFyZ2luOiAwLjM1cmVtIDAgMS41cmVtO1xufVxuXG4uZ3JlY2FwdGNoYS1iYWRnZSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5pZnJhbWUtc2VjdGlvbiBpZnJhbWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4vKlxuXHQqIEV2ZW50c1xuXHQqL1xuLmFyY2hpdmVfX2FydGljbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDEuNTYyNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmFyY2hpdmVfX2FydGljbGUge1xuICAgIG1hcmdpbi1ib3R0b206IDMuNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC5hcmNoaXZlX19hcnRpY2xlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cmVtO1xuICB9XG59XG5cbi5hcmNoaXZlX19oZWFkZXItLWV2ZW50IHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgcGFkZGluZzogMS42MjVyZW0gMS43NXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmFyY2hpdmVfX2hlYWRlci0tZXZlbnQge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG1heC13aWR0aDogMjIuNXJlbTtcbiAgICBib3R0b206IDIuNXJlbTtcbiAgICBsZWZ0OiAtMS44NzVyZW07XG4gICAgcGFkZGluZzogMS44NzVyZW0gMnJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLmFyY2hpdmVfX2hlYWRlci0tZXZlbnQge1xuICAgIG1heC13aWR0aDogMzEuMjVyZW07XG4gICAgdG9wOiAyLjVyZW07XG4gICAgbGVmdDogLTIuNXJlbTtcbiAgICBib3R0b206IGF1dG87XG4gIH1cbn1cblxuLmV2ZW50X19hcnRpY2xlIHtcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcbn1cblxuLmV2ZW50LWJveCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy10b3A6IDc1JTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uZXZlbnQtYm94X19kYXRlX19iZyB7XG4gIHotaW5kZXg6IDU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4RDQzMDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC41cztcbiAgd2lkdGg6IDEzM3B4O1xuICBoZWlnaHQ6IDIxMXB4O1xuICBib3R0b206IC03NHB4O1xuICBsZWZ0OiAtNTBweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQwZGVnKTtcbn1cblxuLmV2ZW50LWJveC0tdm9kIC5ldmVudC1ib3hfX2RhdGVfX2JnIHtcbiAgd2lkdGg6IDEzLjc1cmVtO1xuICBoZWlnaHQ6IDE1LjYyNXJlbTtcbiAgYm90dG9tOiAtNi44NzVyZW07XG4gIGxlZnQ6IC03LjEyNXJlbTtcbn1cblxuLmV2ZW50LWJveF9fbGluazpob3ZlciAuZXZlbnQtYm94X19kYXRlX19iZyB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGUoLTQwZGVnKTtcbn1cblxuLmV2ZW50LWJveF9fZGF0ZV9fdGV4dCB7XG4gIGNvbG9yOiAjZmZmO1xuICB6LWluZGV4OiAxMDAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDFyZW07XG4gIGJvdHRvbTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uZXZlbnQtYm94X19kYXRlX190ZXh0IGJyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5ldmVudC1ib3hfX2RhdGVfX3RleHQgKiB7XG4gIG1hcmdpbjogMDtcbn1cblxuLmV2ZW50LWJveF9faW1hZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gLjVzO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjVzO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmV2ZW50LWJveF9fbGluazpob3ZlciAuZXZlbnQtYm94X19pbWFnZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cblxuLmV2ZW50LW1ldGEge1xuICBtYXJnaW4tdG9wOiAxLjYyNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC5ldmVudC1tZXRhX19saW5rIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICB9XG59XG5cbi8qXG5cdCogRXZlbnRzXG5cdCovXG4uZmxleC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uYmctdmlkZW9fX2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5iZy12aWRlb19fY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICB9XG59XG5cbi5iZy12aWRlb19fY29udGFpbmVyOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmFsaWduLW1pZGRsZSB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5hbGlnbi1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmJnLXZpZGVvX19jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB6LWluZGV4OiAxO1xufVxuXG4uc3RyZWFtLWZpbmlzaGVkX19jb250ZW50IHtcbiAgbWF4LXdpZHRoOiA5MCU7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5zdHJlYW0tZmluaXNoZWRfX2NvbnRlbnQge1xuICAgIG1heC13aWR0aDogODUlO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAuc3RyZWFtLWZpbmlzaGVkX19jb250ZW50IHtcbiAgICBtYXgtd2lkdGg6IDg1JTtcbiAgfVxufVxuXG4uYmctdmlkZW8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC1vLW9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4vKlxuXHQqIENvbnRlbnQg4oCTIFN0eWxpbmcgZm9yIGVudHJ5LWNvbnRlbnQsIGFydGljbGVzLCBjb21tZW50cyBldGMuXG5cdCovXG4udGFicy1jb250ZW50IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiA1cHggNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgcGFkZGluZzogMWVtO1xufVxuXG4udGFicyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC50YWJzIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi50YWJzIC50YWJzLXRpdGxlIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnRhYnMgLnRhYnMtdGl0bGUgYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogLjc1cmVtIDFyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLnRhYnMgLnRhYnMtdGl0bGUgPiBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi50YWJzIC50YWJzLXRpdGxlIC5wYXltZW50LWltYWdlLXN3aXNoIHtcbiAgbWF4LXdpZHRoOiAyNHB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbi50YWJzIC50YWJzLXRpdGxlIC5wYXltZW50LWltYWdlLWNyZWRpdGNhcmQge1xuICBtYXgtd2lkdGg6IDMycHg7XG4gIG1hcmdpbi1yaWdodDogNnB4O1xufVxuXG4udGFicyAudGFicy10aXRsZS5pcy1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLnRhYnMgLnRhYnMtdGl0bGUuaXMtYWN0aXZlIGEsIC50YWJzIC50YWJzLXRpdGxlLmlzLWFjdGl2ZSBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnRhYnMgLnRhYnMtdGl0bGUuaXMtYWN0aXZlIGE6YWZ0ZXIsIC50YWJzIC50YWJzLXRpdGxlLmlzLWFjdGl2ZSBhOmhvdmVyOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICBib3R0b206IC0xcHg7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi50YWJzIGxpIGEge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW0gIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC50YWJzIGxpIGEge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuXG4udGFicyBsaSBhOmhvdmVyIHtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi50YWJzIGxpLmFjdGl2ZSBhIHtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi5zd2lzaC1mb3JtIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxuLnN3aXNoLWZvcm0gbGFiZWwge1xuICBmb250LXdlaWdodDogNTAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMXJlbTtcbn1cblxuLnN3aXNoLWZvcm0gLmlucHV0LWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMjZweDtcbn1cblxuLnN3aXNoLWZvcm0gLmlucHV0LWdyb3VwLS1oYWxmIHtcbiAgd2lkdGg6IDQ4JTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uc3dpc2gtZm9ybSAuaW5wdXQtZ3JvdXAtLWhhbGY6Zmlyc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi1yaWdodDogMiU7XG59XG5cbi5zd2lzaC1mb3JtIC5pbnB1dC1ncm91cCBpbnB1dCB7XG4gIG1hcmdpbi1ib3R0b206IDZweDtcbn1cblxuLnN3aXNoLWZvcm0gcC5zbWFsbCB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAuODEzZW07XG4gIGxldHRlci1zcGFjaW5nOiAwO1xufVxuXG4jc3dpc2gtZm9ybS1lcnJvciB7XG4gIHBhZGRpbmc6IDFlbTtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgYmFja2dyb3VuZDogI2ZmNzY3NTtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4vKlxuXHQqIEZvb3RlclxuXHQqL1xuLmZvb3RlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6IGJsYWNrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmJmYmZiO1xufVxuXG4uZm9vdGVyIHAge1xuICBmb250LWZhbWlseTogJ0RJTlByby1Cb2xkJztcbn1cblxuLmZvb3RlciBhIHtcbiAgY29sb3I6ICMzOEQ0MzA7XG59XG5cbi5mb290ZXIgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uZm9vdGVyX19tZW51IHtcbiAgbWFyZ2luLXRvcDogMi44MTI1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5mb290ZXJfX2lubmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmZvb3Rlcl9faW5uZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLmZvb3Rlcl9faW5uZXI6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5tZW51LS1mb290ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubWVudS0tZm9vdGVyIGxpIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbn1cblxuLmZvb3Rlcl9faW1hZ2Uge1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xufVxuXG4vKlxuXHQqIFNlY3Rpb24gU3BlY2lmaWNcblx0Ki9cbi5pbWFnZS10ZXh0ICsgLmltYWdlLXRleHQge1xuICBwYWRkaW5nLXRvcDogMDtcbn1cblxuLmltYWdlLXRleHRfX3RleHQge1xuICBwYWRkaW5nOiAwIDIuMTg3NXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmltYWdlLXRleHRfX3RleHQubWVkaXVtLW9yZGVyLTIge1xuICAgIHBhZGRpbmctdG9wOiAyLjgxMjVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDMuNDM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuODc1cmVtO1xuICB9XG4gIC5pbWFnZS10ZXh0X190ZXh0Lm1lZGl1bS1vcmRlci0xIHtcbiAgICBwYWRkaW5nLXRvcDogMi44MTI1cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAzLjQzNzVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMS44NzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC5pbWFnZS10ZXh0X190ZXh0Lm1lZGl1bS1vcmRlci0yIHtcbiAgICBwYWRkaW5nLXRvcDogNC4wNjI1cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiA0LjY4NzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAzLjc1cmVtO1xuICB9XG4gIC5pbWFnZS10ZXh0X190ZXh0Lm1lZGl1bS1vcmRlci0xIHtcbiAgICBwYWRkaW5nLXRvcDogNC4wNjI1cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiA0LjY4NzVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMy43NXJlbTtcbiAgfVxufVxuXG4uaW1hZ2UtdGV4dF9faW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5pbWFnZS10ZXh0X19pbWFnZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbiAgfVxufVxuXG4uaW1hZ2UtdGV4dF9faW1hZ2UgaW1nLCAuaW1hZ2UtdGV4dF9faW1hZ2UgdmlkZW8ge1xuICB0b3A6IDA7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uaW1hZ2UtdGV4dCAuYnV0dG9uLCAuaW1hZ2UtdGV4dCBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgbWFyZ2luLXRvcDogMC42MjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5pbWFnZS10ZXh0IC5idXR0b24sIC5pbWFnZS10ZXh0IGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIG1hcmdpbi10b3A6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAuaW1hZ2UtdGV4dF9fdmlkZW8gLmhlcm8tc2xpZGVyX19pbWFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG5cbi5ib3hlc19fYm94IHtcbiAgbWFyZ2luLWJvdHRvbTogMi41cmVtO1xufVxuXG4uYm94ZXNfX2ltYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTtcbiAgaGVpZ2h0OiAxMS4yNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmJveGVzX19pbWFnZSB7XG4gICAgaGVpZ2h0OiAxMy43NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLmJveGVzX19pbWFnZSB7XG4gICAgaGVpZ2h0OiAxNy41cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDIuMTg3NXJlbTtcbiAgfVxufVxuXG4ueGxhcmdlLTMgLmJveGVzX19pbWFnZSB7XG4gIGhlaWdodDogMTByZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC54bGFyZ2UtMyAuYm94ZXNfX2ltYWdlIHtcbiAgICBoZWlnaHQ6IDEyLjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC54bGFyZ2UtMyAuYm94ZXNfX2ltYWdlIHtcbiAgICBoZWlnaHQ6IDEzLjc1cmVtO1xuICB9XG59XG5cbi5ib3hlc19faW1hZ2UgaW1nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uYm94ZXNfX3RleHQgKyAuYm94ZXNfX2J1dHRvbiB7XG4gIG1hcmdpbi10b3A6IDAuOTM3NXJlbTtcbn1cblxuLmNvbnRhY3RfX2Zvcm0gaWZyYW1lIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzAuOTM3NXJlbTtcbiAgbWFyZ2luLXRvcDogMS44NzVyZW07XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM4LjQzNzVlbSkge1xuICAuY29udGFjdF9fZm9ybSBpZnJhbWUge1xuICAgIGhlaWdodDogMTYuMjVyZW07XG4gIH1cbn1cblxuLmJhbm5lciB7XG4gIHBhZGRpbmc6IDEuODc1cmVtIDA7XG59XG5cbi5iYW5uZXIubm8tcGFkZGluZy10b3Age1xuICBwYWRkaW5nLXRvcDogMDtcbn1cblxuLmJhbm5lci5uby1wYWRkaW5nLWJvdHRvbSB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uYmFubmVyX193cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYmFubmVyX193cmFwcGVyLmJnLWJsYWNrLCAuYmFubmVyX193cmFwcGVyLmJnLXByaW1hcnkge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLmJhbm5lcl9fd3JhcHBlciAuYnV0dG9uLCAuYmFubmVyX193cmFwcGVyIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICBtYXJnaW4tdG9wOiAxLjEyNXJlbTtcbn1cblxuLmJhbm5lcl9fY29udGVudCB7XG4gIHBhZGRpbmc6IDEuNTYyNXJlbSAycmVtIDEuODc1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuYmFubmVyX19jb250ZW50IHtcbiAgICBwYWRkaW5nOiAyLjE4NzVyZW0gMi42MjVyZW0gMi41cmVtO1xuICB9XG59XG5cbi5iYW5uZXJfX3RpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmJhbm5lcl9faW50cm8ge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYmFubmVyX19pbWFnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAtMTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mdWxsLXdpZHRoLWltYWdlIHtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgcGFkZGluZzogMnJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5mdWxsLXdpZHRoLWltYWdlX19tb2JpbGUge1xuICBtYXgtaGVpZ2h0OiA0MDBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uZnVsbC13aWR0aC1pbWFnZV9fbWFpbiB7XG4gIG1heC1oZWlnaHQ6IDUwMHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5vZmYtY2FudmFzLS1tZW51LWludmVydGVkIC50b3Atc2VjdGlvbi0tZXZlbnQgPiAucm93LFxuLm9mZi1jYW52YXMtLW1lbnUtaW52ZXJ0ZWQgLnRvcC1zZWN0aW9uLS1zaW1wbGUgPiAucm93IHtcbiAgcGFkZGluZy10b3A6IDEuODc1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLm9mZi1jYW52YXMtLW1lbnUtaW52ZXJ0ZWQgLnRvcC1zZWN0aW9uLS1ldmVudCA+IC5yb3csXG4gIC5vZmYtY2FudmFzLS1tZW51LWludmVydGVkIC50b3Atc2VjdGlvbi0tc2ltcGxlID4gLnJvdyB7XG4gICAgcGFkZGluZy10b3A6IDQuMzc1cmVtO1xuICB9XG59XG5cbi50b3Atc2VjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG59XG5cbi50b3Atc2VjdGlvbi0tZml4ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMHZoO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IC0xO1xufVxuXG4udG9wLXNlY3Rpb24gLmNvbHVtbiwgLnRvcC1zZWN0aW9uIC5jb2x1bW5zIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAudG9wLXNlY3Rpb24tLWltYWdlLXRleHQge1xuICAgIHBhZGRpbmctdG9wOiAxMnJlbSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC50b3Atc2VjdGlvbl9fdGV4dCB7XG4gICAgcGFkZGluZy10b3A6IDEuNTYyNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS44NzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2NS42MjM3NWVtKSB7XG4gIC50b3Atc2VjdGlvbl9fdGV4dCB7XG4gICAgcGFkZGluZy10b3A6IDIuNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS44NzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2NS42MjM3NWVtKSB7XG4gIC50b3Atc2VjdGlvbl9faW1hZ2Uge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDU1ZW0pIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG4gIC50b3Atc2VjdGlvbl9faW1hZ2UgLmltYWdlLWNvbnRhaW5lciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMzMzMlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cbi50b3Atc2VjdGlvbiAuYnV0dG9uLCAudG9wLXNlY3Rpb24gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC50b3Atc2VjdGlvbiAuYnV0dG9uLCAudG9wLXNlY3Rpb24gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgbWFyZ2luLXRvcDogMS41NjI1cmVtO1xuICB9XG59XG5cbi50b3Atc2VjdGlvbiBhOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi50b3Atc2VjdGlvbl9fcHJvbW9fX2ltYWdlIHtcbiAgbWFyZ2luLWJvdHRvbTogMi4xODc1cmVtO1xufVxuXG4udG9wLXNlY3Rpb25fX3Byb21vX19vdXRwdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTUxNTE1O1xufVxuXG4udG9wLXNlY3Rpb25fX3RyYWlsZXJzIHtcbiAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC50b3Atc2VjdGlvbl9fdHJhaWxlcnMge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLnRvcC1zZWN0aW9uLS1ldmVudCAudG9wLXNlY3Rpb25fX3RpdGxlLWhlYWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1LjYyNWVtKSB7XG4gIC50b3Atc2VjdGlvbi0tZXZlbnQgLnRvcC1zZWN0aW9uX190ZXh0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcbiAgfVxufVxuXG4udG9wLXNlY3Rpb24tLWJnLWltYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLWhlaWdodDogNjd2aDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAudG9wLXNlY3Rpb24tLWJnLWltYWdlIC5hbGlnbi1taWRkbGUge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAudG9wLXNlY3Rpb24tLWJnLWltYWdlIHtcbiAgICBtaW4taGVpZ2h0OiA2MHZoO1xuICAgIHBhZGRpbmctdG9wOiAxMHJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNi4yNXJlbTtcbiAgfVxufVxuXG4udG9wLXNlY3Rpb24tLWJnLWltYWdlLnRvcC1zZWN0aW9uLS1jb21wYWN0IHtcbiAgbWluLWhlaWdodDogYXV0bztcbn1cblxuLnRvcC1zZWN0aW9uLS1iZy1pbWFnZSA+IC5yb3cge1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMjtcbn1cblxuLnRvcC1zZWN0aW9uLS1iZy1pbWFnZTphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgei1pbmRleDogMTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4ub2ZmLWNhbnZhcy0tbWVudS1pbnZlcnRlZCAudG9wLXNlY3Rpb24tLWJnLWltYWdlOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBjb250ZW50OiAnICc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgtMTgwZGVnLCByZ2JhKDAsIDAsIDAsIDAuNSkgMCUsIHRyYW5zcGFyZW50IDIwJSk7XG4gIHotaW5kZXg6IDE7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnRvcC1zZWN0aW9uX19jb250ZW50LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNjByZW07XG4gIG1hcmdpbjogMi41cmVtIDA7XG59XG5cbi50b3Atc2VjdGlvbl9fYnV0dG9uLWdyb3VwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEuNTYyNXJlbTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDk7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC50b3Atc2VjdGlvbl9fYnV0dG9uLWdyb3VwIHtcbiAgICBib3R0b206IDIuNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjUuNjI1ZW0pIHtcbiAgLnRvcC1zZWN0aW9uX19idXR0b24tZ3JvdXAge1xuICAgIGJvdHRvbTogNC4zNzVyZW07XG4gIH1cbn1cblxuLnRvcC1zZWN0aW9uX19kaXZpZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBib3JkZXItdG9wOiAwLjA2MjVyZW0gc29saWQgIzM4RDQzMDtcbiAgYm9yZGVyLWJvdHRvbTogMC4wNjI1cmVtIHNvbGlkICMzOEQ0MzA7XG4gIHBhZGRpbmc6IDFyZW0gMDtcbiAgbWFyZ2luLXRvcDogMi41cmVtO1xufVxuXG4udG9wLXNlY3Rpb25fX2RpdmlkZXIgKiB7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi53cG1sLWxzLWZsYWcge1xuICBtYXJnaW4tcmlnaHQ6IDdweDtcbn1cblxuLmNvdmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY292ZXIudGV4dC13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG59XG5cbi5jb3Zlci50ZXh0LWJsYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbn1cblxuLmNvdmVyIC5yb3cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG59XG5cbi5jb3ZlciAuY292ZXJfX2JnLXZpZGVvLFxuLmNvdmVyIC5jb3Zlcl9fYmctaW1hZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgei1pbmRleDogMTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5jb3ZlcjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgei1pbmRleDogMTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKlxuXHQqIEJhc2Vcblx0KiBCYXNlIHN0eWxpbmcgb3IgYW55IG90aGVyIHN0eWxpbmcgdGhhdCBcblx0KiBkb24ndCBmaXQgaW4gYW55IG90aGVyIG1vZHVsZSBnb2VzIGhlcmVcblx0Ki9cbjo6c2VsZWN0aW9uIHtcbiAgY29sb3I6ICMwMDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzOEQ0MzA7XG59XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG5ib2R5OmFmdGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgY29udGVudDogJyc7XG4gIHotaW5kZXg6IDIwMDtcbiAgdHJhbnNpdGlvbi1kZWxheTogLjVzO1xuICB0cmFuc2l0aW9uOiBhbGwgLjc1cztcbn1cblxuYm9keS5pcy1sb2FkZWQ6YWZ0ZXIge1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAtMTtcbn1cblxuYm9keSN0aW55bWNlIHtcbiAgcGFkZGluZzogMzBweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbmJvZHkjdGlueW1jZTphZnRlciB7XG4gIGNvbnRlbnQ6IG5vbmU7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5My43NDg3NWVtKSB7XG4gIC5yb3cge1xuICAgIHBhZGRpbmctbGVmdDogMi43NXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NS42MjM3NWVtKSB7XG4gIC5yb3cge1xuICAgIHBhZGRpbmctbGVmdDogMi4xMjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMi4xMjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLnJvdyB7XG4gICAgcGFkZGluZy1sZWZ0OiBpbml0aWFsO1xuICAgIHBhZGRpbmctcmlnaHQ6IGluaXRpYWw7XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5TdHlsZXNoZWV0OiBQcmludCBTdHlsZXNoZWV0XG5cblRoaXMgaXMgdGhlIHByaW50IHN0eWxlc2hlZXQuIFRoZXJlJ3MgcHJvYmFibHkgbm90IGEgbG90XG5vZiByZWFzb25zIHRvIGVkaXQgdGhpcyBzdHlsZXNoZWV0LiBcblxuUmVtZW1iZXIgdG8gYWRkIHRoaW5ncyB0aGF0IHdvbid0IG1ha2Ugc2Vuc2UgdG8gcHJpbnQgYXQgXG50aGUgYm90dG9tLiBUaGluZ3MgbGlrZSBuYXYsIGFkcywgYW5kIGZvcm1zIHNob3VsZGJlIHNldCBcbnRvIGRpc3BsYXkgbm9uZS5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbkBtZWRpYSBwcmludCB7XG4gICoge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBmaWx0ZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtbXMtZmlsdGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICBjb2xvcjogIzQ0NCAhaW1wb3J0YW50O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG4gIGE6YWZ0ZXIsIGE6dmlzaXRlZDphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7XG4gIH1cbiAgYSBhYmJyW3RpdGxlXTphZnRlciwgYTp2aXNpdGVkIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7XG4gIH1cbiAgLmlyIGE6YWZ0ZXIsXG4gIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gIGFbaHJlZl49JyMnXTphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7XG4gIH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgQHBhZ2Uge1xuICAgIG1hcmdpbjogMC41Y207XG4gIH1cbiAgcCxcbiAgaDIsXG4gIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMztcbiAgfVxuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuICB9XG4gIC5zaWRlYmFyLFxuICAucGFnZS1uYXZpZ2F0aW9uLFxuICAud3AtcHJldi1uZXh0LFxuICAucmVzcG9uZC1mb3JtLFxuICBuYXYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9zY3NzL3N0eWxlLnNjc3MiLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cblN0eWxlc2hlZXQ6IE1peGlucyAmIENvbnN0YW50cyBTdHlsZXNoZWV0XG5UaGlzIGlzIHdoZXJlIHlvdSBjYW4gdGFrZSBhZHZhbnRhZ2Ugb2YgU2FzcycgZ3JlYXQgZmVhdHVyZXM6IE1peGlucyAmIENvbnN0YW50cy5cblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKioqKioqKioqKioqKioqKioqKioqXG5HTE9CQUwgVFJBTlNJVElPTiBNSVhJTlxuVXNlIGxpa2UgdGhpczogQGluY2x1ZGUgdHJhbnNpdGlvbihwcm9wZXJ0eTEsIHByb3BlcnR5Mik7XG4qKioqKioqKioqKioqKioqKioqKiovXG5cbkBtaXhpbiB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLXByb3BlcnR5Li4uKSB7XG4gIHRyYW5zaXRpb246IDAuMjVzIGN1YmljLWJlemllciguMTUsLjc1LC41LDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiAkdHJhbnNpdGlvbi1wcm9wZXJ0eTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuQ09MT1JTXG4qKioqKioqKioqKioqKioqKioqKiovXG5AZnVuY3Rpb24gY29sb3IoJGNvbCkge1xuICBAcmV0dXJuIG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJyN7JGNvbH0nKTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuQ1NTMyBHUkFESUVOVFMuXG4qKioqKioqKioqKioqKioqKioqKiovXG5cbi8qIEBpbmNsdWRlIGNzcy1ncmFkaWVudCgjZGZkZmRmLCNmOGY4ZjgpOyAqL1xuQG1peGluIGNzcy1ncmFkaWVudCgkZnJvbTogI2RmZGZkZiwgJHRvOiAjZjhmOGY4KSB7XG5cdGJhY2tncm91bmQtY29sb3I6ICR0bztcblx0YmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbSgkZnJvbSksIHRvKCR0bykpO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICRmcm9tLCAkdG8pO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICRmcm9tLCAkdG8pO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAkZnJvbSwgJHRvKTtcblx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJGZyb20sICR0byk7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKipcbldvb0NvbW1lcmNlIE1peGluc1BcbioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKiBEZXByZWNhdGVkXG4gKiBGYWxsYmFjayBmb3IgYm91cmJvbiBlcXVpdmFsZW50XG4gKi9cbiBAbWl4aW4gY2xlYXJmaXgoKSB7XG5cdCp6b29tOiAxO1xuXG5cdCY6OmJlZm9yZSxcblx0Jjo6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6ICcgJztcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0fVxuXG5cdCY6OmFmdGVyIHtcblx0XHRjbGVhcjogYm90aDtcblx0fVxufVxuXG4vKipcbiAqIERlcHJlY2F0ZWRcbiAqIFZlbmRvciBwcmVmaXggbm8gbG9uZ2VyIHJlcXVpcmVkLlxuICovXG5AbWl4aW4gYm9yZGVyX3JhZGl1cygkcmFkaXVzOiA0cHgpIHtcblx0Ym9yZGVyLXJhZGl1czogJHJhZGl1cztcbn1cblxuLyoqXG4gKiBEZXByZWNhdGVkXG4gKiBWZW5kb3IgcHJlZml4IG5vIGxvbmdlciByZXF1aXJlZC5cbiAqL1xuQG1peGluIGJvcmRlcl9yYWRpdXNfcmlnaHQoJHJhZGl1czogNHB4KSB7XG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbn1cblxuLyoqXG4gKiBEZXByZWNhdGVkXG4gKiBWZW5kb3IgcHJlZml4IG5vIGxvbmdlciByZXF1aXJlZC5cbiAqL1xuQG1peGluIGJvcmRlcl9yYWRpdXNfbGVmdCgkcmFkaXVzOiA0cHgpIHtcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbn1cblxuLyoqXG4gKiBEZXByZWNhdGVkXG4gKiBWZW5kb3IgcHJlZml4IG5vIGxvbmdlciByZXF1aXJlZC5cbiAqL1xuQG1peGluIGJvcmRlcl9yYWRpdXNfYm90dG9tKCRyYWRpdXM6IDRweCkge1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbn1cblxuLyoqXG4gKiBEZXByZWNhdGVkXG4gKiBWZW5kb3IgcHJlZml4IG5vIGxvbmdlciByZXF1aXJlZC5cbiAqL1xuQG1peGluIGJvcmRlcl9yYWRpdXNfdG9wKCRyYWRpdXM6IDRweCkge1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbn1cblxuLyoqXG4gKiBEZXByZWNhdGVkXG4gKiBWZW5kb3IgcHJlZml4IG5vIGxvbmdlciByZXF1aXJlZC5cbiAqL1xuQG1peGluIG9wYWNpdHkoICRvcGFjaXR5OiAwLjc1ICkge1xuXHRvcGFjaXR5OiAkb3BhY2l0eTtcbn1cblxuLyoqXG4gKiBEZXByZWNhdGVkXG4gKiBWZW5kb3IgcHJlZml4IG5vIGxvbmdlciByZXF1aXJlZC5cbiAqL1xuQG1peGluIGJveF9zaGFkb3coJHNoYWRvd194OiAzcHgsICRzaGFkb3dfeTogM3B4LCAkc2hhZG93X3JhZDogM3B4LCAkc2hhZG93X2luOiAzcHgsICRzaGFkb3dfY29sb3I6ICM4ODgpIHtcblx0Ym94LXNoYWRvdzogJHNoYWRvd194ICRzaGFkb3dfeSAkc2hhZG93X3JhZCAkc2hhZG93X2luICRzaGFkb3dfY29sb3I7XG59XG5cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXG4gKi9cbkBtaXhpbiBpbnNldF9ib3hfc2hhZG93KCRzaGFkb3dfeDogM3B4LCAkc2hhZG93X3k6IDNweCwgJHNoYWRvd19yYWQ6IDNweCwgJHNoYWRvd19pbjogM3B4LCAkc2hhZG93X2NvbG9yOiAjODg4KSB7XG5cdGJveC1zaGFkb3c6IGluc2V0ICRzaGFkb3dfeCAkc2hhZG93X3kgJHNoYWRvd19yYWQgJHNoYWRvd19pbiAkc2hhZG93X2NvbG9yO1xufVxuXG4vKipcbiAqIERlcHJlY2F0ZWRcbiAqIFZlbmRvciBwcmVmaXggbm8gbG9uZ2VyIHJlcXVpcmVkLlxuICovXG5AbWl4aW4gdGV4dF9zaGFkb3coJHNoYWRvd194OiAzcHgsICRzaGFkb3dfeTogM3B4LCAkc2hhZG93X3JhZDogM3B4LCAkc2hhZG93X2NvbG9yOiAjZmZmKSB7XG5cdHRleHQtc2hhZG93OiAkc2hhZG93X3ggJHNoYWRvd195ICRzaGFkb3dfcmFkICRzaGFkb3dfY29sb3I7XG59XG5cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXG4gKi9cbkBtaXhpbiB2ZXJ0aWNhbF9ncmFkaWVudCgkZnJvbTogIzAwMCwgJHRvOiAjZmZmKSB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRmcm9tO1xuXHRiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkZnJvbSwgJHRvKTtcbn1cblxuLyoqXG4gKiBEZXByZWNhdGVkXG4gKiBWZW5kb3IgcHJlZml4IG5vIGxvbmdlciByZXF1aXJlZC5cbiAqL1xuQG1peGluIHRyYW5zaXRpb24oJHNlbGVjdG9yOiBhbGwsICRhbmltYXRpb246IGVhc2UtaW4tb3V0LCAkZHVyYXRpb246IDAuMnMpIHtcblx0dHJhbnNpdGlvbjogJHNlbGVjdG9yICRhbmltYXRpb24gJGR1cmF0aW9uO1xufVxuXG4vKipcbiAqIERlcHJlY2F0ZWRcbiAqIFVzZSBib3VyYm9uIG1peGluIGluc3RlYWQgYEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxLjUpKTtgXG4gKi9cbkBtaXhpbiBzY2FsZSgkcmF0aW86IDEuNSkge1xuXHQtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoJHJhdGlvKTtcblx0dHJhbnNmb3JtOiBzY2FsZSgkcmF0aW8pO1xufVxuXG4vKipcbiAqIERlcHJlY2F0ZWRcbiAqIFVzZSBib3VyYm9uIG1peGluIGluc3RlYWQgYEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7YFxuICovXG5AbWl4aW4gYm9yZGVyYm94KCkge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5AbWl4aW4gZGFya29ybGlnaHR0ZXh0c2hhZG93KCRhLCAkb3BhY2l0eTogMC44KSB7XG5cdEBpZiBsaWdodG5lc3MoJGEpID49IDY1JSB7XG5cdFx0QGluY2x1ZGUgdGV4dF9zaGFkb3coMCwgLTFweCwgMCwgcmdiYSgwLCAwLCAwLCAkb3BhY2l0eSkpO1xuXHR9XG5cdEBlbHNlIHtcblx0XHRAaW5jbHVkZSB0ZXh0X3NoYWRvdygwLCAxcHgsIDAsIHJnYmEoMjU1LCAyNTUsIDI1NSwgJG9wYWNpdHkpKTtcblx0fVxufVxuXG4vKipcbiAqIE9iamVjdHNcbiAqL1xuQG1peGluIG1lbnUoKSB7XG5cdEBpbmNsdWRlIGNsZWFyZml4KCk7XG59XG5cbkBtaXhpbiBtZWRpYXJpZ2h0KCkge1xuXHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xuXG5cdGltZyB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxufVxuXG5AbWl4aW4gbWVkaWFsZWZ0KCkge1xuXHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xuXG5cdGltZyB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxufVxuXG5AbWl4aW4gaXIoKSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0ZXh0LWluZGVudDogLTk5OTlweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRoZWlnaHQ6IDFlbTtcblx0d2lkdGg6IDFlbTtcbn1cblxuQG1peGluIGljb24oICRnbHlwaDogJ1xcZTAwMScgKSB7XG5cdGZvbnQtZmFtaWx5OiAnV29vQ29tbWVyY2UnO1xuXHRzcGVhazogbm9uZTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC12YXJpYW50OiBub3JtYWw7XG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRsaW5lLWhlaWdodDogMTtcblx0bWFyZ2luOiAwO1xuXHR0ZXh0LWluZGVudDogMDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Y29udGVudDogJGdseXBoO1xufVxuXG5AbWl4aW4gaWNvbl9kYXNoaWNvbnMoICRnbHlwaDogJ1xcZjMzMycgKSB7XG5cdGZvbnQtZmFtaWx5OiAnRGFzaGljb25zJztcblx0c3BlYWs6IG5vbmU7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtdmFyaWFudDogbm9ybWFsO1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHRtYXJnaW46IDA7XG5cdHRleHQtaW5kZW50OiAwO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRjb250ZW50OiAkZ2x5cGg7XG59XG5cbkBtaXhpbiBpY29uYmVmb3JlKCAkZ2x5cGg6ICdcXGUwMDEnICkge1xuXHRmb250LWZhbWlseTogJ1dvb0NvbW1lcmNlJztcblx0c3BlYWs6IG5vbmU7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtdmFyaWFudDogbm9ybWFsO1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHRtYXJnaW4tcmlnaHQ6IDAuNjE4ZW07XG5cdGNvbnRlbnQ6ICRnbHlwaDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5AbWl4aW4gaWNvbmJlZm9yZWRhc2hpY29ucyggJGdseXBoOiAnXFxmMzMzJyApIHtcblx0Zm9udC1mYW1pbHk6ICdEYXNoaWNvbnMnO1xuXHRzcGVhazogbm9uZTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC12YXJpYW50OiBub3JtYWw7XG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRsaW5lLWhlaWdodDogMTtcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdGNvbnRlbnQ6ICRnbHlwaDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5AbWl4aW4gaWNvbmFmdGVyKCAkZ2x5cGg6ICdcXGUwMDEnICkge1xuXHRmb250LWZhbWlseTogJ1dvb0NvbW1lcmNlJztcblx0c3BlYWs6IG5vbmU7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtdmFyaWFudDogbm9ybWFsO1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHRtYXJnaW4tbGVmdDogMC42MThlbTtcblx0Y29udGVudDogJGdseXBoO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtaXhpbiBsb2FkZXIoKSB7XG5cdCY6OmJlZm9yZSB7XG5cdFx0aGVpZ2h0OiAxZW07XG5cdFx0d2lkdGg6IDFlbTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiA1MCU7XG5cdFx0bGVmdDogNTAlO1xuXHRcdG1hcmdpbi1sZWZ0OiAtMC41ZW07XG5cdFx0bWFyZ2luLXRvcDogLTAuNWVtO1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdGFuaW1hdGlvbjogc3BpbiAxcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9sb2FkZXIuc3ZnJykgY2VudGVyIGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LXNpemU6IDJlbTtcblx0XHRjb2xvcjogcmdiYSgjMDAwLCAwLjc1KTtcblx0fVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3Njc3MvX21peGlucy5zY3NzIiwiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlc1xuICogVmVyc2lvbiA2LjYuM1xuICogaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cblxuLy8gLS0tIERlcGVuZGVuY2llcyAtLS1cbkBpbXBvcnQgJ3ZlbmRvci9ub3JtYWxpemUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL21pc3NpbmctZGVwZW5kZW5jaWVzJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy90cnVlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL2NvbnRhaW4nO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcHVyZ2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVtb3ZlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlcGxhY2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvdG8tbGlzdCc7XG5cbi8vIC0tLSBTZXR0aW5ncyAtLS1cbi8vIGltcG9ydCB5b3VyIG93biBgc2V0dGluZ3NgIGhlcmUgb3Jcbi8vIGltcG9ydCBhbmQgbW9kaWZ5IHRoZSBkZWZhdWx0IHNldHRpbmdzIHRocm91Z2hcbi8vIEBpbXBvcnQgJ3NldHRpbmdzL3NldHRpbmdzJztcblxuLy8gLS0tIENvbXBvbmVudHMgLS0tXG4vLyBVdGlsaXRpZXNcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG4vLyBHbG9iYWwgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuQGltcG9ydCAnZm9ybXMvZm9ybXMnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcblxuLy8gR3JpZHNcbkBpbXBvcnQgJ2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICd4eS1ncmlkL3h5LWdyaWQnO1xuLy8gR2VuZXJpYyBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3dpdGNoJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUnO1xuLy8gQmFzaWMgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhcmQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sdGlwJztcblxuLy8gQ29udGFpbmVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1vYmplY3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Jlc3BvbnNpdmUtZW1iZWQnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbi8vIE1lbnUtYmFzZWQgY29udGFpbmVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudS1pY29uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcblxuLy8gTGF5b3V0IGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb2ZmLWNhbnZhcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3JldmVhbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RpdGxlLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xuXG4vLyBIZWxwZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Zpc2liaWxpdHknO1xuQGltcG9ydCAncHJvdG90eXBlL3Byb3RvdHlwZSc7XG5cblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZyhcbiAgJGZsZXg6IHRydWUsXG4gICRwcm90b3R5cGU6IGZhbHNlLFxuICAkeHktZ3JpZDogJHh5LWdyaWRcbikge1xuICBAaWYgJGZsZXgge1xuICAgICRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgQGlmICR4eS1ncmlkIHtcbiAgICAkeHktZ3JpZDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgLy8gR2xvYmFsIHN0eWxlc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcblxuICAvLyBHcmlkc1xuICBAaWYgbm90ICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkeHktZ3JpZCB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gR2VuZXJpYyBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG4gIC8vIEJhc2ljIGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhcmQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuXG4gIC8vIENvbnRhaW5lcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG4gIC8vIE1lbnUtYmFzZWQgY29udGFpbmVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG5cbiAgLy8gTGF5b3V0IGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG5cbiAgLy8gSGVscGVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG4gIEBpZiAkZmxleCB7IEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzOyB9XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaWYgJHByb3RvdHlwZSB7IEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWNsYXNzZXM7IH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwiQG1peGluIGZvdW5kYXRpb24tbm9ybWFsaXplKCkge1xuICAvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbiAgLy8gRG9jdW1lbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuXG4gIGh0bWwge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvLyAxXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG4gIH1cblxuICAvLyBTZWN0aW9uc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cblxuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gIC8vIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIG1hcmdpbjogMC42N2VtIDA7XG4gIH1cblxuICAvLyBHcm91cGluZyBjb250ZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAgLy8gMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG5cbiAgaHIge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvLyAxXG4gICAgaGVpZ2h0OiAwOyAvLyAxXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IC8vIDJcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cblxuICBwcmUge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMWVtOyAvLyAyXG4gIH1cblxuICAvLyBUZXh0LWxldmVsIHNlbWFudGljc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cblxuICBhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC8vIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gIC8vIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG5cbiAgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8vIDFcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLy8gMlxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLy8gMlxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cblxuICBiLFxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgY29kZSxcbiAga2JkLFxuICBzYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8vIDFcbiAgICBmb250LXNpemU6IDFlbTsgLy8gMlxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgLy8gUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gIC8vIGFsbCBicm93c2Vycy5cblxuICBzdWIsXG4gIHN1cCB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIHN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xuICB9XG5cbiAgc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbiAgfVxuXG4gIC8vIEVtYmVkZGVkIGNvbnRlbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuXG4gIGltZyB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICB9XG5cbiAgLy8gRm9ybXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMTAwJTsgLy8gMVxuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvLyAxXG4gICAgbWFyZ2luOiAwOyAvLyAyXG4gIH1cblxuICAvLyBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgLy8gMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cblxuICBidXR0b24sXG4gIGlucHV0IHsgLy8gMVxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gIC8vIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cblxuICBidXR0b24sXG4gIHNlbGVjdCB7IC8vIDFcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG5cbiAgYnV0dG9uLFxuICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgW3R5cGU9XCJyZXNldFwiXSxcbiAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cblxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG5cbiAgYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cblxuICBmaWVsZHNldCB7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAvLyAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gIC8vICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGxlZ2VuZCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIGNvbG9yOiBpbmhlcml0OyAvLyAyXG4gICAgZGlzcGxheTogdGFibGU7IC8vIDFcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIDFcbiAgICBwYWRkaW5nOiAwOyAvLyAzXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLy8gMVxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cblxuICBwcm9ncmVzcyB7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG5cbiAgdGV4dGFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gIC8vIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cblxuICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICBbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyAxXG4gICAgcGFkZGluZzogMDsgLy8gMlxuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuXG4gIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuXG4gIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gMVxuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvLyAyXG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG5cbiAgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gIC8vIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cblxuICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLy8gMVxuICAgIGZvbnQ6IGluaGVyaXQ7IC8vIDJcbiAgfVxuXG4gIC8vIEludGVyYWN0aXZlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cblxuICBkZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cblxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIH1cblxuICAvLyBNaXNjXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuXG4gIHRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG5cbiAgW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vLyBAdHlwZSBNYXBcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwYWRkaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcG9zaXRpb25pbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcG9zaXRpb246IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIENhbiBiZSBvdmVyd3JpdHRlbiBhdCBpbmRpdmlkdWFsIG1lbnUgY29tcG9uZW50IGxldmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gTmVzdGVkIG1hcmdpbiBmb3Igc3VibWVudS5cbiRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIENTUy4gQ2FuIGJlIGVpdGhlciBgbHRyYCBvciBgcnRsYC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggZm9yIGNvbXBvbmVudHMgdGhhdCBzdXBwb3J0IGl0LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZWQgcmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcHJvdG90eXBlcyBpZiBhcHBsaWNhYmxlXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQnV0dG9uIGN1cnNvcidzIHZhbHVlLCBgYXV0b2AgYnkgZGVmYXVsdFxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtYnV0dG9uLWN1cnNvcjogYXV0byAhZGVmYXVsdDtcblxuQGlmIG5vdCBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gIEBlcnJvciAnSW4gJGZvdW5kYXRpb24tcGFsZXR0ZSwgeW91IG11c3QgaGF2ZSBhIGNvbG9yIG5hbWVkIFwicHJpbWFyeVwiLic7XG59XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxuJGdsb2JhbC1sZWZ0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgcmlnaHQsIGxlZnQpO1xuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGUgdGhhdCBjb250YWlucyB0aGUgZmxleCBqdXN0aWZ5aW5nIG9wdGlvbnNcbiQtemYtZmxleC1qdXN0aWZ5OiAtemYtZmxleC1qdXN0aWZ5KCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24pO1xuXG4vLy8gR2xvYmFsIHRvbGVyYW5jZSBmb3IgY29sb3IgcGljayBjb250cmFzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2U6IDAgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciBjb2xvcnNcbkBpbmNsdWRlIGFkZC1mb3VuZGF0aW9uLWNvbG9ycztcblxuQG1peGluIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcyB7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbm9ybWFsaXplO1xuXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuICAuZm91bmRhdGlvbi1tcSB7XG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xuICB9XG5cbiAgaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6ICRnbG9iYWwtYnV0dG9uLWN1cnNvcjtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIE1ha2UgcmVzZXQgaW5oZXJpdCBmb250LWZhbWlseSBpbnN0ZWFkIG9mIHNldHRpbmdzIHNhbnMtc2VyaWZcbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCIvLyAgRm91bmRhdGlvbiBmb3IgU2l0ZXMgU2V0dGluZ3Ncbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vICBUYWJsZSBvZiBDb250ZW50czpcbi8vXG4vLyAgIDEuIEdsb2JhbFxuLy8gICAyLiBCcmVha3BvaW50c1xuLy8gICAzLiBUaGUgR3JpZFxuLy8gICA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vICAgNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAgIDYuIEFiaWRlXG4vLyAgIDcuIEFjY29yZGlvblxuLy8gICA4LiBBY2NvcmRpb24gTWVudVxuLy8gICA5LiBCYWRnZVxuLy8gIDEwLiBCcmVhZGNydW1ic1xuLy8gIDExLiBCdXR0b25cbi8vICAxMi4gQnV0dG9uIEdyb3VwXG4vLyAgMTMuIENhbGxvdXRcbi8vICAxNC4gQ2FyZFxuLy8gIDE1LiBDbG9zZSBCdXR0b25cbi8vICAxNi4gRHJpbGxkb3duXG4vLyAgMTcuIERyb3Bkb3duXG4vLyAgMTguIERyb3Bkb3duIE1lbnVcbi8vICAxOS4gRm9ybXNcbi8vICAyMC4gTGFiZWxcbi8vICAyMS4gTWVkaWEgT2JqZWN0XG4vLyAgMjIuIE1lbnVcbi8vICAyMy4gTWV0ZXJcbi8vICAyNC4gT2ZmLWNhbnZhc1xuLy8gIDI1LiBPcmJpdFxuLy8gIDI2LiBQYWdpbmF0aW9uXG4vLyAgMjcuIFByb2dyZXNzIEJhclxuLy8gIDI4LiBSZXNwb25zaXZlIEVtYmVkXG4vLyAgMjkuIFJldmVhbFxuLy8gIDMwLiBTbGlkZXJcbi8vICAzMS4gU3dpdGNoXG4vLyAgMzIuIFRhYmxlXG4vLyAgMzMuIFRhYnNcbi8vICAzNC4gVGh1bWJuYWlsXG4vLyAgMzUuIFRpdGxlIEJhclxuLy8gIDM2LiBUb29sdGlwXG4vLyAgMzcuIFRvcCBCYXJcblxuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL3V0aWwnO1xuXG4vLyAxLiBHbG9iYWxcbi8vIC0tLS0tLS0tLVxuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJTtcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDE1NjApO1xuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjU7XG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMzOEQ0MzAsXG4gIHNlY29uZGFyeTogIzAwMCxcbiAgc3VjY2VzczogIzUxYTk2OCxcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNGRjU2MzAsXG4pO1xuJGxpZ2h0LWJlaWdlOiAjZmJmYmZiO1xuJG1lZGl1bS1iZWlnZTogI2NhYzZiZDtcbiRtZWRpdW0tZ3JheTogI2U4ZTVkYTtcbiRkYXJrLWdyYXk6ICMxNTE1MTU7XG4kYmxhY2s6ICMwMDA7XG4kd2hpdGU6ICNmZmY7XG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2s7XG4kYm94LXNoYWRvdzogMHB4IDNweCAyNXB4IHJnYmEoICRibGFjaywgLjE1ICksIDBweCAxcHggNHB4IHJnYmEoICRibGFjaywgLjIgKTtcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlO1xuJGdsb2JhbC1tYXJnaW46IDFyZW07XG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW07XG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbDtcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQ7XG4kZ2xvYmFsLXJhZGl1czogcmVtLWNhbGMoMyk7XG4kZ2xvYmFsLWJvcmRlcjogcmVtLWNhbGMoMikgc29saWQgJGxpZ2h0LWJlaWdlO1xuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyO1xuJGdsb2JhbC1mbGV4Ym94OiB0cnVlO1xuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlO1xuXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbi8vIDIuIEJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDUwcHgsXG4gIHhsYXJnZTogMTMwMHB4LFxuICB4eGxhcmdlOiAxNTAwcHgsXG4pO1xuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlO1xuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSB4bGFyZ2UgeHhsYXJnZSk7XG5cbi8vIDMuIFRoZSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4kZ3JpZC1yb3ctd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyO1xuJGdyaWQtY29sdW1uLWd1dHRlcjogKFxuICBzbWFsbDogMzVweCxcbiAgbWVkaXVtOiAzNXB4XG4pO1xuJGdyaWQtY29sdW1uLWFsaWduLWVkZ2U6IHRydWU7XG4kYmxvY2stZ3JpZC1tYXg6IDg7XG5cbi8vIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRib2R5LWZvbnQtZmFtaWx5OiAnRElOUHJvJywgJ0hlbHZldGljYSBOZXVlJywgJ1JvYm90bycsICdIZWx2ZXRpY2EnLCAnQXJpYWwnLCBzYW5zLXNlcmlmO1xuJGhlYWRlci1mb250LWZhbWlseTogJ0RJTlByby1Cb2xkJywgJ0ltcGFjdCcsICdBcmlhbCBCbGFjaycsICdIZWx2ZXRpY2EnLCAnQXJpYWwnLCBzYW5zLXNlcmlmO1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWw7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiRoZWFkZXItY29sb3I6IGluaGVyaXQ7XG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKTtcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRzbWFsbC1mb250LXNpemU6IDgwJTtcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjY7XG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW07XG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kY29kZS1jb2xvcjogJGJsYWNrO1xuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWJlaWdlO1xuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpO1xuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmU7XG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG87XG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbTtcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbTtcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtO1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpO1xuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheTtcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCc7XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2s7XG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1iZWlnZTtcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApO1xuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjaztcblxuLy8gNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjU7XG4kbGVhZC1saW5laGVpZ2h0OiAxLjY7XG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXk7XG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbTtcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJHN0YXQtZm9udC1zaXplOiAyLjVyZW07XG5cbi8vIDYuIEFiaWRlXG4vLyAtLS0tLS0tLVxuXG4kYWJpZGUtaW5wdXRzOiB0cnVlO1xuJGFiaWRlLWxhYmVsczogdHJ1ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCk7XG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpO1xuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuXG4vLyA3LiBBY2NvcmRpb25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlO1xuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWJlaWdlO1xuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWJlaWdlO1xuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDguIEFjY29yZGlvbiBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWU7XG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplOiA2cHg7XG5cbi8vIDkuIEJhZGdlXG4vLyAtLS0tLS0tLVxuXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kYmFkZ2UtY29sb3I6ICR3aGl0ZTtcbiRiYWRnZS1jb2xvci1hbHQ6ICRibGFjaztcbiRiYWRnZS1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGJhZGdlLXBhZGRpbmc6IDAuM2VtO1xuJGJhZGdlLW1pbndpZHRoOiAyLjFlbTtcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbTtcblxuLy8gMTAuIEJyZWFkY3J1bWJzXG4vLyAtLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKTtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjaztcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW07XG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IHRydWU7XG4kYnJlYWRjcnVtYnMtaXRlbS1zbGFzaDogdHJ1ZTtcblxuLy8gMTEuIEJ1dHRvblxuLy8gLS0tLS0tLS0tLVxuXG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW07XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnV0dG9uLWZpbGw6IHNvbGlkO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiRidXR0b24tY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2s7XG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kYnV0dG9uLXNpemVzOiAoXG4gIHRpbnk6IDAuNnJlbSxcbiAgc21hbGw6IDAuNzVyZW0sXG4gIGRlZmF1bHQ6IDAuOXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pO1xuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJTtcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJTtcbiRidXR0b24tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG5cbi8vIDEyLiBCdXR0b24gR3JvdXBcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbTtcbiRidXR0b25ncm91cC1zcGFjaW5nOiAxcHg7XG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJztcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2O1xuJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoOiB0cnVlO1xuXG4vLyAxMy4gQ2FsbG91dFxuLy8gLS0tLS0tLS0tLS1cblxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSU7XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSk7XG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDA7XG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtO1xuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kO1xuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRjYWxsb3V0LWxpbmstdGludDogMzAlO1xuXG4vLyAxNC4gQ2FyZFxuLy8gLS0tLS0tLS1cblxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGNhcmQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRjYXJkLWRpdmlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWJlaWdlO1xuJGNhcmQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWJlaWdlO1xuJGNhcmQtc2hhZG93OiBub25lO1xuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kY2FyZC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luO1xuXG4vLyAxNS4gQ2xvc2UgQnV0dG9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wO1xuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsOiAoXG4gIHNtYWxsOiAwLjY2cmVtLFxuICBtZWRpdW06IDFyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogKFxuICBzbWFsbDogMC4zM2VtLFxuICBtZWRpdW06IDAuNXJlbSxcbik7XG4kY2xvc2VidXR0b24tc2l6ZTogKFxuICBzbWFsbDogMS41ZW0sXG4gIG1lZGl1bTogMmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxO1xuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5O1xuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2s7XG5cbi8vIDE2LiBEcmlsbGRvd25cbi8vIC0tLS0tLS0tLS0tLS1cblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyO1xuJGRyaWxsZG93bi1hcnJvd3M6IHRydWU7XG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4O1xuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG5cbi8vIDE3LiBEcm9wZG93blxuLy8gLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtO1xuJGRyb3Bkb3duLWJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbTtcbiRkcm9wZG93bi13aWR0aDogMzAwcHg7XG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRkcm9wZG93bi1zaXplczogKFxuICB0aW55OiAxMDBweCxcbiAgc21hbGw6IDIwMHB4LFxuICBsYXJnZTogNDAwcHgsXG4pO1xuXG4vLyAxOC4gRHJvcGRvd24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWU7XG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplOiA2cHg7XG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHg7XG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuXG4vLyAxOS4gRm9ybXNcbi8vIC0tLS0tLS0tLVxuXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApO1xuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpO1xuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpO1xuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2s7XG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljO1xuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtYmVpZ2U7XG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbTtcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2s7XG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44O1xuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kc2VsZWN0LXRyaWFuZ2xlLWNvbG9yOiAkZGFyay1ncmF5O1xuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGlucHV0LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdDtcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiRpbnB1dC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWJlaWdlO1xuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpO1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZDtcbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWU7XG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMC4gTGFiZWxcbi8vIC0tLS0tLS0tLVxuXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kbGFiZWwtY29sb3I6ICR3aGl0ZTtcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjaztcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtO1xuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIxLiBNZWRpYSBPYmplY3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCU7XG5cbi8vIDIyLiBNZW51XG4vLyAtLS0tLS0tLVxuXG4kbWVudS1tYXJnaW46IDA7XG4kbWVudS1tYXJnaW4tbmVzdGVkOiAxcmVtO1xuJG1lbnUtaXRlbS1wYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGU7XG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSk7XG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG4kbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1iZWlnZTtcbiRtZW51LWJvcmRlcjogJGxpZ2h0LWJlaWdlO1xuXG4vLyAyMy4gTWV0ZXJcbi8vIC0tLS0tLS0tLVxuXG4kbWV0ZXItaGVpZ2h0OiAxcmVtO1xuJG1ldGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kbWV0ZXItYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJG1ldGVyLWZpbGwtZ29vZDogJHN1Y2Nlc3MtY29sb3I7XG4kbWV0ZXItZmlsbC1tZWRpdW06ICR3YXJuaW5nLWNvbG9yO1xuJG1ldGVyLWZpbGwtYmFkOiAkYWxlcnQtY29sb3I7XG5cbi8vIDI0LiBPZmYtY2FudmFzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kb2ZmY2FudmFzLXNpemVzOiAoXG4gIHNtYWxsOiByZW0tY2FsYygzMDApLFxuICBsYXJnZTogcmVtLWNhbGMoNjAwKSxcbik7XG4kb2ZmY2FudmFzLXZlcnRpY2FsLXNpemU6IDI1MHB4O1xuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkYmxhY2s7XG4kb2ZmY2FudmFzLXNoYWRvdzogbm9uZTtcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDE7XG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMDtcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTtcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXM7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlO1xuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWU7XG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNjUpO1xuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JztcblxuLy8gMjUuIE9yYml0XG4vLyAtLS0tLS0tLS1cblxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5O1xuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW46IDAuMXJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDogMC44cmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW07XG4kb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwO1xuXG4vLyAyNi4gUGFnaW5hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS1cblxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCk7XG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6IHJlbS1jYWxjKDEpO1xuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWJlaWdlO1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiAkd2hpdGU7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZTtcbiRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW06IGZhbHNlO1xuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlO1xuXG4vLyAyNy4gUHJvZ3Jlc3MgQmFyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm9ncmVzcy1oZWlnaHQ6IDFyZW07XG4kcHJvZ3Jlc3MtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHByb2dyZXNzLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHByb2dyZXNzLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDI4LiBSZXNwb25zaXZlIEVtYmVkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogMTYgYnkgOSxcbiAgd2lkZXNjcmVlbjogMTYgYnkgOSxcbik7XG5cbi8vIDI5LiBSZXZlYWxcbi8vIC0tLS0tLS0tLS1cblxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kcmV2ZWFsLXdpZHRoOiA2MDBweDtcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRyZXZlYWwtemluZGV4OiAxMDA1O1xuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KTtcblxuLy8gMzAuIFNsaWRlclxuLy8gLS0tLS0tLS0tLVxuXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW07XG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuJHNsaWRlci1oZWlnaHQ6IDAuNXJlbTtcbiRzbGlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWJlaWdlO1xuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAzMS4gU3dpdGNoXG4vLyAtLS0tLS0tLS0tXG5cbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3I7XG4kc3dpdGNoLWhlaWdodDogMnJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtO1xuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbTtcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbjtcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbTtcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG5cbi8vIDMyLiBUYWJsZVxuLy8gLS0tLS0tLS0tXG5cbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFibGUtY29sb3Itc2NhbGU6IDUlO1xuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApO1xuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZTtcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXN0cmlwZTogZXZlbjtcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKTtcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2U7XG5cbi8vIDMzLiBUYWJzXG4vLyAtLS0tLS0tLVxuXG4kdGFiLW1hcmdpbjogMDtcbiR0YWItYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYi1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtYmVpZ2U7XG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlO1xuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuJHRhYi1leHBhbmQtbWF4OiA2O1xuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1iZWlnZTtcbiR0YWItY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyAzNC4gVGh1bWJuYWlsXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aHVtYm5haWwtYm9yZGVyOiBzb2xpZCA0cHggJHdoaXRlO1xuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMik7XG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KTtcbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dDtcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMzUuIFRpdGxlIEJhclxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrO1xuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtO1xuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQ7XG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlO1xuJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXI6ICRtZWRpdW0tZ3JheTtcbiR0aXRsZWJhci1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG5cbi8vIDM2LiBUb29sdGlwXG4vLyAtLS0tLS0tLS0tLVxuXG4kaGFzLXRpcC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggJGRhcmstZ3JheTtcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGU7XG4kdG9vbHRpcC1wYWRkaW5nOiAwLjc1cmVtO1xuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtO1xuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAzNy4gVG9wIEJhclxuLy8gLS0tLS0tLS0tLS1cblxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW07XG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1iZWlnZTtcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwO1xuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHg7XG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvc2Nzcy9fc2V0dGluZ3Muc2NzcyIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBSZW1vdmVzIHRoZSB1bml0IChlLmcuIHB4LCBlbSwgcmVtKSBmcm9tIGEgdmFsdWUsIHJldHVybmluZyB0aGUgbnVtYmVyIG9ubHkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgc2FtZSBudW1iZXIsIHNhbnMgdW5pdC5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vLyBDb252ZXJ0cyBvbmUgb3IgbW9yZSBwaXhlbCB2YWx1ZXMgaW50byBtYXRjaGluZyByZW0gdmFsdWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gVGhlIGJhc2UgdmFsdWUgdG8gdXNlIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGByZW1gLiBJZiB5b3UncmUgdXNpbmcgRm91bmRhdGlvbiBvdXQgb2YgdGhlIGJveCwgdGhpcyBpcyAxNnB4LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBgbnVsbGAsIHRoZSBmdW5jdGlvbiB3aWxsIHJlZmVyZW5jZSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBVc2luZyByZW0gYXMgYmFzZSBhbGxvd3MgY29ycmVjdCBzY2FsaW5nXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cblxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSArICcgd2FzIHBhc3NlZCB0byByZW0tY2FsYygpLCB3aGljaCBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBlbSBpbnRvIHJlbSBpZiBzb21lb25lIGhhbmRzIG92ZXIgJ2VtJ3NcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFyZW07XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbSBvciBlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwsIHBlcmNlbnRhZ2UsIHJlbSBvciBlbSB2YWx1ZSB0byBhIHVuaXRsZXNzIHZhbHVlIGJhc2VkIG9uIGEgZ2l2ZW4gZm9udCBzaXplLiBJZGVhbCBmb3Igd29ya2luZyBvdXQgdW5pdGxlc3MgbGluZSBoZWlnaHRzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGNvbnZlcnQgdG8gYSB1bml0bGVzcyBsaW5lIGhlaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBmb250IHNpemUgdG8gdXNlIHRvIHdvcmsgb3V0IHRoZSBsaW5lIGhlaWdodCAtIGRlZmF1bHRzIHRvICRnbG9iYWwtZm9udC1zaXplXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gVW5pdGxlc3MgbnVtYmVyXG5AZnVuY3Rpb24gdW5pdGxlc3MtY2FsYygkdmFsdWUsICRiYXNlOiBudWxsKSB7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gRmlyc3QsIGxldHMgY29udmVydCBvdXIgJGJhc2UgdG8gcGl4ZWxzXG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ2VtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIC8vIE5vdyBsZXQncyBjb252ZXJ0IG91ciB2YWx1ZSB0byBwaXhlbHMgdG9vXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJyUnIHtcbiAgICAkdmFsdWU6ICgkdmFsdWUgLyAxMDAlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIC8vICdweCdcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIHtcbiAgICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpO1xuICB9XG5cbiAgLy8gYXNzdW1lIHRoYXQgbGluZS1oZWlnaHRzIGdyZWF0ZXIgdGhhbiAxMCBhcmUgbWVhbnQgdG8gYmUgYWJzb2x1dGUgaW4gJ3B4J1xuICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgKCR2YWx1ZSA+IDEwKSB7XG4gICAgQHJldHVybiAkdmFsdWUgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGFuIGlubmVyIGJveC1zaGFkb3cgZm9yIG9ubHkgb25lIHNpZGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpZGUgLSBTaWRlIHRoZSBzaGFkb3cgaXMgc3VwcG9zZWQgdG8gYXBwZWFyLiBDYW4gYmUgYHRvcGAsIGBsZWZ0YCwgYHJpZ2h0YCBvciBgYm90dG9tYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgLSBXaWR0aCBmb3IgdGhlIHRhcmdldCBzaWRlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIG9mIHRoZSBzaGFkb3cuXG5AbWl4aW4gaW5uZXItc2lkZS1zaGFkb3coXG4gICRzaWRlOiBib3R0b20sXG4gICRzaXplOiAyMHB4LFxuICAkY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KVxuKSB7XG5cbiAgJGhlbHBlcjogcm91bmQoJHNpemUgKiAwLjY1KTtcblxuICBAaWYgKCRzaWRlID09IHRvcCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBsZWZ0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IHJpZ2h0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgKC0xKSokaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gYm90dG9tKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAoLTEpKiRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcblxuICBib3JkZXI6IGluc2V0ICR0cmlhbmdsZS1zaXplO1xuXG4gIGNvbnRlbnQ6ICcnO1xuXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBkb3duKSB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdXApIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgbWVudSBpY29uIHdpdGggYSBzZXQgd2lkdGgsIGhlaWdodCwgbnVtYmVyIG9mIGJhcnMsIGFuZCBjb2xvcnMuIFRoZSBtaXhpbiB1c2VzIHRoZSBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgdGhlIGJhcnMgdG8gZGV0ZXJtaW5lIHNwYWNpbmcuIDxkaXYgY2xhc3M9XCJkb2NzLWV4YW1wbGUtYnVyZ2VyXCI+PC9kaXY+XG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvci1ob3ZlciBbJGRhcmstZ3JheV0gLSBDb2xvciB0byB1c2Ugd2hlbiB0aGUgaWNvbiBpcyBob3ZlcmVkIG92ZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMjBweF0gLSBXaWR0aCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMTZweF0gLSBIZWlnaHQgb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWzJweF0gLSBIZWlnaHQgb2YgaW5kaXZpZHVhbCBiYXJzIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFycyBbM10gLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cbkBtaXhpbiBoYW1idXJnZXIoXG4gICRjb2xvcjogJGJsYWNrLFxuICAkY29sb3ItaG92ZXI6ICRkYXJrLWdyYXksXG4gICR3aWR0aDogMjBweCxcbiAgJGhlaWdodDogMTZweCxcbiAgJHdlaWdodDogMnB4LFxuICAkYmFyczogM1xuKSB7XG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxuICAkc2hhZG93OiAoKTtcbiAgJGhvdmVyLXNoYWRvdzogKCk7XG5cbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXG4gICRzcGFjaW5nOiAoJGhlaWdodCAtICgkd2VpZ2h0ICogJGJhcnMpKSAvICgkYmFycyAtIDEpO1xuXG4gIEBpZiB1bml0KCRzcGFjaW5nKSA9PSAncHgnIHtcbiAgICAkc3BhY2luZzogZmxvb3IoJHNwYWNpbmcpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLCBjb21tYSk7XG4gIH1cblxuICAvLyBJY29uIGNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gSWNvbiBiYXJzXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgQGlmICRjb2xvci1ob3ZlciB7XG4gICAgLy8gR2VuZXJhdGUgQ1NTXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJGhvdmVyLXNoYWRvdzogYXBwZW5kKCRob3Zlci1zaGFkb3csIDAgJG9mZnNldCAwICRjb2xvci1ob3ZlciwgY29tbWEpO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcbiAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxuLy8vIFRoZXJlIGFyZSB0d28gUE5HIGZhbGxiYWNrczogYSBibGFjayB0cmlhbmdsZSBhbmQgYSB3aGl0ZSB0cmlhbmdsZS4gVGhlIG9uZSB1c2VkIGRlcGVuZHMgb24gdGhlIGxpZ2h0bmVzcyBvZiB0aGUgaW5wdXQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cbkBtaXhpbiBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRjb2xvcjogJGJsYWNrKSB7XG4gICRyZ2I6ICdyZ2IlMjgje3JvdW5kKHJlZCgkY29sb3IpKX0sICN7cm91bmQoZ3JlZW4oJGNvbG9yKSl9LCAje3JvdW5kKGJsdWUoJGNvbG9yKSl9JTI5JztcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6ICN7JHJnYn0nPjwvcG9seWdvbj48L3N2Zz5cIik7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSAvICRpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgdGhlIGZvY3VzIHJpbmcgYXJvdW5kIGFuIGVsZW1lbnQgd2hlbiBhIG1vdXNlIGlucHV0IGlzIGRldGVjdGVkLlxuQG1peGluIGRpc2FibGUtbW91c2Utb3V0bGluZSB7XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAmIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGFjY2Vzc2libGUgdG8ga2V5Ym9hcmRzIGFuZCBhc3Npc3RpdmUgZGV2aWNlcy5cbi8vLyBAbGluayBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5IEhpZGluZyBDb250ZW50IGZvciBBY2Nlc3NpYmlsaXR5XG4vLy8gQGxpbmsgaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGVuZm9yY2UgLSBJZiBgdHJ1ZWAsIHVzZSBgIWltcG9ydGFudGAgb24gYXBwbGllZCBwcm9wZXJ0aWVzXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUoXG4gICRlbmZvcmNlOiB0cnVlXG4pIHtcbiAgJGltcG9ydGFudDogaWYoJGVuZm9yY2UsICchaW1wb3J0YW50JywgbnVsbCk7XG5cbiAgcG9zaXRpb246IGFic29sdXRlICN7JGltcG9ydGFudH07XG4gIHdpZHRoOiAxcHggI3skaW1wb3J0YW50fTtcbiAgaGVpZ2h0OiAxcHggI3skaW1wb3J0YW50fTtcbiAgcGFkZGluZzogMCAjeyRpbXBvcnRhbnR9O1xuICBvdmVyZmxvdzogaGlkZGVuICN7JGltcG9ydGFudH07XG4gIGNsaXA6IHJlY3QoMCwwLDAsMCkgI3skaW1wb3J0YW50fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAjeyRpbXBvcnRhbnR9O1xuICBib3JkZXI6IDAgI3skaW1wb3J0YW50fTtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRlbmZvcmNlIC0gSWYgYHRydWVgLCB1c2UgYCFpbXBvcnRhbnRgIG9uIGFwcGxpZWQgcHJvcGVydGllc1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZihcbiAgJGVuZm9yY2U6IHRydWVcbikge1xuICAkaW1wb3J0YW50OiBpZigkZW5mb3JjZSwgJyFpbXBvcnRhbnQnLCBudWxsKTtcblxuICBwb3NpdGlvbjogc3RhdGljICN7JGltcG9ydGFudH07XG4gIHdpZHRoOiBhdXRvICN7JGltcG9ydGFudH07XG4gIGhlaWdodDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICBvdmVyZmxvdzogdmlzaWJsZSAjeyRpbXBvcnRhbnR9O1xuICBjbGlwOiBhdXRvICN7JGltcG9ydGFudH07XG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgI3skaW1wb3J0YW50fTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gdmVydGljYWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGhvcml6b250YWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLy8vIEFic29sdXRlbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLy8vIEl0ZXJhdGVzIHRocm91Z2ggYnJlYWtwb2ludHMgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgYW5kIHByaW50cyB0aGUgQ1NTIGluc2lkZSB0aGUgbWl4aW4gYXQgZWFjaCBicmVha3BvaW50J3MgbWVkaWEgcXVlcnkuIFVzZSB0aGlzIHdpdGggdGhlIGdyaWQsIG9yIGFueSBvdGhlciBjb21wb25lbnQgdGhhdCBoYXMgcmVzcG9uc2l2ZSBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc21hbGwgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgc2tpcCB0aGUgYHNtYWxsYCBicmVha3BvaW50LiBVc2UgdGhpcyB3aXRoIGNvbXBvbmVudHMgdGhhdCBkb24ndCBwcmVmaXggY2xhc3NlcyB3aXRoIGBzbWFsbC1gLCBvbmx5IGBtZWRpdW0tYCBhbmQgdXAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgaXRlcmF0ZSBvdmVyIGJyZWFrcG9pbnRzIHdpdGhvdXQgZG9pbmcgdGhlIG1lZGlhIHF1ZXJ5IGl0c2VsZi4gVXNlZnVsIGZvciBtb3JlIGNvbXBsZXggbWVkaWEgcXVlcnkgZ2VuZXJhdGlvbiBhcyBpbiB0aGUgbWFyZ2luIGdyaWQuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludChcbiAgJHNtYWxsOiB0cnVlLFxuICAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHM6IHRydWVcbikge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50LWluKGF1dG8sIC16Zi1ib29sKCRzbWFsbCksIC16Zi1ib29sKCRhdXRvLWluc2VydC1icmVha3BvaW50cykpIHtcbiAgICBAY29udGVudFxuICB9O1xufVxuXG4vLy8gSXRlcmF0ZXMgd2l0aCBgQGNvbnRlbnRgIHRocm91Z2ggdGhlIGdpdmVuIGxpc3Qgb2YgYnJlYWtwb2ludHMgYCRicmVha3BvaW50c2AuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYnJlYWtwb2ludHMgW2F1dG9dIC0gQnJlYWtwb2ludHMgdG8gaXRlcmF0ZXMgb24uIEl0IGNhbiBiZSBhIGJyZWFrcG9pbnQgbmFtZSwgbGlzdCBvZiBicmVha3BvaW50cyBvciBgYXV0b2AgZm9yIGFsbCBicmVha3BvaW50cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW58TnVsbH0gJHplcm8tYnJlYWtwb2ludCBbbnVsbF0gLSBXaGV0aGVyIHRoZSB6ZXJvLWJyZWFrcG9pbnQgKG9mdGVuIGBzbWFsbGApIG11c3QgYmUgaW5jbHVkZWQuIElmIGB0cnVlYCwgaXQgd2lsbCBhbHdheXMgYmUgYWRkZWQgdG8gdGhlIGxpc3QgaWYgbm90IGFscmVhZHkgdGhlcmUuIElmIGBmYWxzZWAsIGl0IHdpbGwgYWx3YXlzIGJlIHJlbW92ZWQuIERvZXMgbm90aGluZyBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbnxLZXl3b3JkfSAkbWVkaWEtcXVlcmllcyBbdHJ1ZV0gLSBXaGV0aGVyIG1lZGlhLXF1ZXJpZXMgbXVzdCBiZSBnZW5lcmF0ZWQuIElmIGBmb3ItbGlzdHNgLCBvbmx5IGdlbmVyYXRlIG1lZGlhLXF1ZXJpZXMgd2hlbiBgJGJyZWFrcG9pbnRzYCBpcyBhIGxpc3QuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludC1pbihcbiAgJGJyZWFrcG9pbnRzOiBhdXRvLFxuICAkemVyby1icmVha3BvaW50OiBudWxsLFxuICAkbWVkaWEtcXVlcmllczogdHJ1ZVxuKSB7XG4gICQtbGlzdDogKCk7XG4gICQtYnJlYWtwb2ludHMtaXMtYS1saXN0OiB0cnVlO1xuXG4gIC8vIFJldHJpZXZlIHRoZSBsaXN0IG9mIGJyZWFrcG9pbnQocykgdG8gaXRlcmF0ZSBvbi5cbiAgQGlmICRicmVha3BvaW50cyA9PSBhdXRvIHtcbiAgICAkLWxpc3Q6ICRicmVha3BvaW50LWNsYXNzZXM7XG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkYnJlYWtwb2ludHMpID09ICdsaXN0JyB7XG4gICAgJC1saXN0OiAkYnJlYWtwb2ludHM7XG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkYnJlYWtwb2ludHMpID09ICdzdHJpbmcnIHtcbiAgICAkLWxpc3Q6ICgkYnJlYWtwb2ludHMpO1xuICAgICQtYnJlYWtwb2ludHMtaXMtYS1saXN0OiBmYWxzZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIFwiJGJyZWFrcG9pbnRzXCIgaW4gXCItemYtZWFjaC1icmVha3BvaW50LWluKClcIi4gR290IFwiI3skYnJlYWtwb2ludHN9XCIgKCN7dHlwZS1vZigkYnJlYWtwb2ludHMpfSkuIEV4cGVjdGVkIGEgYnJlYWtwb2ludCBuYW1lLCBhIGxpc3Qgb2YgYnJlYWtwb2ludHMgb3IgXCJhdXRvXCInO1xuICB9XG5cbiAgLy8gQWRkIG9yIHJlbW92ZSB0aGUgemVybyBicmVha3BvaW50IGFjY29yZGluZyB0byBgJHplcm8tYnJlYWtwb2ludGBcbiAgQGlmICR6ZXJvLWJyZWFrcG9pbnQgPT0gdHJ1ZSB7XG4gICAgJC1saXN0OiBqb2luKCgkLXpmLXplcm8tYnJlYWtwb2ludCksIHNsLXJlbW92ZSgkLWxpc3QsICQtemYtemVyby1icmVha3BvaW50KSk7XG4gIH1cbiAgQGVsc2UgaWYgJHplcm8tYnJlYWtwb2ludCA9PSBmYWxzZSB7XG4gICAgJC1saXN0OiBzbC1yZW1vdmUoJC1saXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gIH1cblxuICAvLyBJdGVyYXRlIG9uIGJyZWFrcG9pbnQocylcbiAgQGVhY2ggJGJwIGluICQtbGlzdCB7XG4gICAgJG9sZC16Zi1zaXplOiBudWxsO1xuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgICB9XG4gICAgJC16Zi1zaXplOiAkYnAgIWdsb2JhbDtcblxuICAgIEBpZiAoJG1lZGlhLXF1ZXJpZXMgPT0gdHJ1ZVxuICAgICAgb3IgKCRtZWRpYS1xdWVyaWVzID09ICdmb3ItbGlzdHMnIGFuZCAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdCkpIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUsIGJyZWFrcG9pbnQgbmFtZSwgb3IgbGlzdCBvZiBicmVha3BvaW50IG5hbWVzIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRicC12YWx1ZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgICAgQGlmICRicC12YWx1ZSAhPSBudWxsIHtcbiAgICAgICAgJG5hbWU6ICRicC12YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBicmVha3BvaW50IHZhbHVlXG4gICAgJC16Zi1icC12YWx1ZTogJG5hbWUgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbGV4LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBjb250YWluZXIgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZSBmb3IgdGhpcyByb3cuIElmIHNldCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSwgdGhlIGdsb2JhbCBjb2x1bW4gY291bnQgd2lsbCBiZSB1c2VkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGJhc2UgW3RydWVdIC0gU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCBiYXNpYyBzdHlsZXMgZnJvbSBiZWluZyBvdXRwdXQuIFVzZWZ1bCBpZiB5b3UncmUgY2FsbGluZyB0aGlzIG1peGluIG9uIHRoZSBzYW1lIGVsZW1lbnQgdHdpY2UsIGFzIGl0IHByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgb3V0cHV0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHdyYXAgW3RydWVdIC0gU2V0IHRvIGBmYWxzZWAgdG8gaGF2ZSByb3cgd3JhcHBpbmcgYmVoYXZpb3Igc2V0IHRvIG5vd3JhcFxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMsIGluIGNhc2UgdGhlIHJvdyBpcyBuZXN0ZWQuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZmxleC1ncmlkLXJvdyhcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJhc2U6IHRydWUsXG4gICR3cmFwOiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG4gICR3cmFwOiBpZigkd3JhcCwgd3JhcCwgbm93cmFwKTtcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRiYXNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93ICR3cmFwO1xuICB9XG5cbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucywgJGJhc2UpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgYGZsZXhgIHByb3BlcnR5IGZvciBhIGZsZXggZ3JpZCBjb2x1bW4uIEl0IGFjY2VwdHMgYWxsIG9mIHRoZSBzYW1lIHZhbHVlcyBhcyB0aGUgYmFzaWMgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uLCBhbG9uZyB3aXRoIHR3byBleHRyYXM6XG4vLy8gICAtIGBleHBhbmRgICh0aGUgZGVmYXVsdCkgd2lsbCBtYWtlIHRoZSBjb2x1bW4gZXhwYW5kIHRvIGZpbGwgc3BhY2UuXG4vLy8gICAtIGBzaHJpbmtgIHdpbGwgbWFrZSB0aGUgY29sdW1uIGNvbnRyYWN0LCBzbyBpdCBvbmx5IHRha2VzIHVwIHRoZSBob3Jpem9udGFsIHNwYWNlIGl0IG5lZWRzLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLlxuQGZ1bmN0aW9uIGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IGV4cGFuZCkge1xuICAkZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcblxuICBAaWYgJGNvbHVtbnMgPT0gc2hyaW5rIHtcbiAgICAkZmxleDogMCAwIGF1dG87XG4gIH1cbiAgQGVsc2UgaWYgJGNvbHVtbnMgIT0gZXhwYW5kIHtcbiAgICAkZmxleDogMCAwIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxuXG4gIEByZXR1cm4gJGZsZXg7XG59XG5cbi8vLyBDcmVhdGVzIGEgY29sdW1uIGZvciBhIGZsZXggZ3JpZC4gQnkgZGVmYXVsdCwgdGhlIGNvbHVtbiB3aWxsIHN0cmV0Y2ggdG8gdGhlIGZ1bGwgd2lkdGggb2YgaXRzIGNvbnRhaW5lciwgYnV0IHRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCBzaXppbmcgY2xhc3Nlcywgb3IgYnkgdXNpbmcgdGhlIGB1bnN0YWNrYCBjbGFzcyBvbiB0aGUgcGFyZW50IGZsZXggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMgd2lkdGguIFNlZSB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcmAgbWl4aW4uXG5AbWl4aW4gZmxleC1ncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6IGV4cGFuZCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAvLyBCYXNlIHByb3BlcnRpZXNcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXNpemUoJGNvbHVtbnMpO1xuXG4gIC8vIEd1dHRlcnNcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgLy8gZml4ZXMgcmVjZW50IENocm9tZSB2ZXJzaW9uIG5vdCBsaW1pdGluZyBjaGlsZCB3aWR0aFxuICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNDkzNDU4Ni93aGl0ZS1zcGFjZS1ub3dyYXAtYW5kLWZsZXhib3gtZGlkLW5vdC13b3JrLWluLWNocm9tZVxuICBAaWYgJGNvbHVtbnMgPT0gZXhwYW5kIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBibG9jayBncmlkIGZvciBhIGZsZXggZ3JpZCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgY29sdW1ucyB0byBkaXNwbGF5IG9uIGVhY2ggcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgLSBTZWxlY3RvciB0byB1c2UgdG8gdGFyZ2V0IGNvbHVtbnMgd2l0aGluIHRoZSByb3cuXG5AbWl4aW4gZmxleC1ncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jb2x1bW4nXG4pIHtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gID4gI3skc2VsZWN0b3J9IHtcbiAgICAkcGN0OiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICAgZmxleDogMCAwICRwY3Q7XG4gICAgbWF4LXdpZHRoOiAkcGN0O1xuICB9XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSB3aWR0aCBmbGV4IGdyaWQgY29sdW1uLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFtleHBhbmRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBmbGV4LWdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG5AbWl4aW4gZmxleC1ncmlkLXNpemUoJGNvbHVtbnM6IG51bGwpIHtcbiAgJGNvbHVtbnM6ICRjb2x1bW5zIG9yIGV4cGFuZDtcblxuICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRjb2x1bW5zKTtcblxuICAvLyBtYXgtd2lkdGggZml4ZXMgSUUgMTAvMTEgbm90IHJlc3BlY3RpbmcgdGhlIGZsZXgtYmFzaXMgcHJvcGVydHlcbiAgQGlmICRjb2x1bW5zICE9IGV4cGFuZCBhbmQgJGNvbHVtbnMgIT0gc2hyaW5rIHtcbiAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxufVxuXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtZ3JpZCB7XG4gIC8vIFJvd1xuICAucm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93O1xuXG4gICAgLy8gTmVzdGluZyBiZWhhdmlvclxuICAgICYgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KG5lc3QsICRiYXNlOiBmYWxzZSk7XG5cbiAgICAgICYuY29sbGFwc2Uge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cGFuZGVkIHJvd1xuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuXG4gICAgICAucm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguZXhwYW5kZWQpIC5yb3cge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuICAgIH1cblxuICAgICYuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVW5kbyBuZWdhdGl2ZSBtYXJnaW5zXG4gICAgLy8gRnJvbSBjb2xsYXBzZWQgY2hpbGRcbiAgICAmLmlzLWNvbGxhcHNlLWNoaWxkLFxuICAgICYuY29sbGFwc2UgPiAuY29sdW1uID4gLnJvdyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLmNvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbjtcbiAgfVxuXG4gIC8vIENvbHVtbiByb3dcbiAgLy8gVGhlIGRvdWJsZSAucm93IGNsYXNzIGlzIG5lZWRlZCB0byBidW1wIHVwIHRoZSBzcGVjaWZpY2l0eVxuICAuY29sdW1uLnJvdy5yb3cge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gVG8gcHJvcGVybHkgbmVzdCBhIGNvbHVtbiByb3csIHBhZGRpbmcgYW5kIG1hcmdpbiBpcyByZW1vdmVkXG4gIC5yb3cgLmNvbHVtbi5yb3cucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkaSk7XG4gICAgICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQmxvY2sgZ3JpZFxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtbWF4IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtbGF5b3V0KCRpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJC16Zi1zaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC8vIFNpemluZyAoZXhwYW5kKVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXNpemUpIHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS1leHBhbmQge1xuICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBBdXRvLXN0YWNraW5nL3Vuc3RhY2tpbmdcbiAgICAgIEBhdC1yb290ICh3aXRob3V0OiBtZWRpYSkge1xuICAgICAgICAucm93LiN7JC16Zi1zaXplfS11bnN0YWNrIHtcbiAgICAgICAgICA+IC5jb2x1bW4ge1xuICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigxMDAlKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXNpemUpIHtcbiAgICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xuICAgIC4jeyQtemYtc2l6ZX0tY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LXVuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCQtemYtc2l6ZSk7IH1cbiAgICB9XG4gIH1cblxuICAvLyBTaXppbmcgKHNocmluaylcbiAgLnNocmluayB7XG4gICAgZmxleDogZmxleC1ncmlkLWNvbHVtbihzaHJpbmspO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIEJsb2NrIGdyaWQgY29sdW1uc1xuICAuY29sdW1uLWJsb2NrIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1tYXJnaW47XG4gIH1cblxuICAuY29sdW1ucyB7XG4gICAgQGV4dGVuZCAuY29sdW1uOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHBsYWNlaG9sZGVyLWluLWV4dGVuZFxuXG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MiLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2hhbmdlIHRoZSBiZWhhdmlvciBvZiBjb2x1bW5zIGRlZmluZWQgaW5zaWRlIHRoaXMgbWl4aW4gdG8gdXNlIGEgZGlmZmVyZW50IGNvbHVtbiBjb3VudC5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHJvb3QgW2ZhbHNlXVxuLy8vICAgSWYgYGZhbHNlYCwgc2VsZWN0b3JzIGluc2lkZSB0aGlzIG1peGluIHdpbGwgbmVzdCBpbnNpZGUgdGhlIHBhcmVudCBzZWxlY3Rvci5cbi8vLyAgIElmIGB0cnVlYCwgc2VsZWN0b3JzIHdpbGwgbm90IG5lc3QuXG5AbWl4aW4gZ3JpZC1jb250ZXh0KFxuICAkY29sdW1ucyxcbiAgJHJvb3Q6IGZhbHNlXG4pIHtcbiAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgY29sdW1uIGNvdW50IHNvIGl0IGNhbiBiZSByZS1zZXQgbGF0ZXJcbiAgJG9sZC1ncmlkLWNvbHVtbi1jb3VudDogJGdyaWQtY29sdW1uLWNvdW50O1xuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRjb2x1bW5zICFnbG9iYWw7XG5cbiAgQGlmICRyb290IHtcbiAgICBAYXQtcm9vdCB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgb2xkIGNvbHVtbiBjb3VudFxuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRvbGQtZ3JpZC1jb2x1bW4tY291bnQgIWdsb2JhbDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIHJvdy5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIENvbHVtbiBjb3VudCBmb3IgdGhpcyByb3cuIGBudWxsYCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb2x1bW4gY291bnQuXG4vLy8gQHBhcmFtIHtLZXl3b3Jkc30gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGNmIFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgYSBjbGVhcmZpeC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93KFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY2Y6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRjZiB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEludmVydHMgdGhlIG1hcmdpbnMgb2YgYSByb3cgdG8gbmVzdCBpdCBpbnNpZGUgb2YgYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93LW5lc3QoJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgJG1hcmdpbjogcmVtLWNhbGMoLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICQtemYtc2l6ZSkpIC8gMiAqIC0xO1xuXG4gICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXQgYSBncmlkIHJvdyBzaXplXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG5AbWl4aW4gZ3JpZC1yb3ctc2l6ZSgkc2l6ZTogJGdyaWQtcm93LXdpZHRoKSB7XG4gIEBpZiAkc2l6ZSA9PSBleHBhbmQge1xuICAgICRzaXplOiBub25lO1xuICB9XG5cbiAgbWF4LXdpZHRoOiAkc2l6ZTtcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcm93LnNjc3MiLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWtwb2ludHNcbi8vLy9cblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcy5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgSGlEUEkgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMgZm9yIHJlc29sdXRpb25zLlxuLy8vIFZhbHVlcyBtdXN0IHJlcHJlc2VudCB0aGUgZGV2aWNlIHBpeGVscyAvIHdlYiBwaXhlbHMgcmF0aW9uIGFuZCBiZSB1bml0bGVzcyBvciBpbiBEUFBYLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzLWhpZHBpOiAoXG4gIGhpZHBpLTE6IDEsXG4gIGhpZHBpLTEtNTogMS41LFxuICBoaWRwaS0yOiAyLFxuICByZXRpbmE6IDIsXG4gIGhpZHBpLTM6IDNcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGFyZ2VzdCBuYW1lZCBicmVha3BvaW50IGluIHdoaWNoIHRvIGluY2x1ZGUgcHJpbnQgYXMgYSBtZWRpYSB0eXBlXG4vLy8gQHR5cGUgS2V5d29yZFxuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlICFkZWZhdWx0O1xuXG4kLXpmLXplcm8tYnJlYWtwb2ludDogc21hbGwgIWRlZmF1bHQ7XG5cbiQtemYtYnJlYWtwb2ludHMta2V5czogbWFwLXRvLWxpc3QoJGJyZWFrcG9pbnRzLCAna2V5cycpO1xuXG5AaWYgbnRoKG1hcC12YWx1ZXMoJGJyZWFrcG9pbnRzKSwgMSkgIT0gMCB7XG4gIEBlcnJvciAnVGhlIGZpcnN0IGtleSBpbiB0aGUgJGJyZWFrcG9pbnRzIG1hcCBtdXN0IGhhdmUgYSB2YWx1ZSBvZiBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gV2ViIHN0YW5kYXJkIFBpeGVscyBwZXIgaW5jaC4gKDFkZHB4IC8gJHN0ZC13ZWItZHBpKSA9IDFkcGlcbiAgLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdmFsdWVzLTMvI2Fic29sdXRlLWxlbmd0aHNcbiAgJHN0ZC13ZWItZHBpOiA5NjtcblxuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIG9mIHRoZSBmb2xsb3dpbmcgYnJlYWtwb2ludFxuICAkYnAtbmV4dDogbnVsbDtcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1taW46IG51bGw7XG4gIC8vIFZhbHVlIGZvciBtaW4td2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiBudWxsO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gSWYgbmFtZWQsIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnRcbiAgJG5hbWU6IG51bGw7XG4gIC8vIElmIHRoZSBicmVha3BvaW50IGlzIGEgSGlEUEkgYnJlYWtwb2ludFxuICAkaGlkcGk6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuXG4gIC8vIElmIGEgYnJlYWtwb2ludCBuYW1lIGlzIGdpdmVuLCBnZXQgaXRzIHZhbHVlIGZyb20gdGhlICRicmVha3BvaW50cy8kYnJlYWtwb2ludHMtaGlkcGkgbWFwLlxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgICRuYW1lOiAkYnA7XG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgICAkYnAtbmV4dDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgIH1cbiAgICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMtaGlkcGksICRicCkge1xuICAgICAgJG5hbWU6ICRicDtcbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMtaGlkcGksICRuYW1lKTtcbiAgICAgICRicC1uZXh0OiAtemYtbWFwLW5leHQtbnVtYmVyKCRicmVha3BvaW50cy1oaWRwaSwgJGJwKTtcbiAgICAgICRoaWRwaTogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJwOiAwO1xuICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogXCIjeyR2YWx9XCIgaXMgbm90IGRlZmluZWQgaW4geW91ciBgJGJyZWFrcG9pbnRzYCBvciBgJGJyZWFrcG9pbnRzLWhpZHBpYCBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgQGlmIG5vdCAkbmFtZSBhbmQgJGRpciA9PSAnb25seScge1xuICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBPbmx5ICdvbmx5JyBhbmQgJ3VwJyBoYXZlIGEgbWluIGxpbWl0LlxuICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAndXAnIHtcbiAgICAkYnAtbWluOiBpZigkaGlkcGksIHN0cmlwLXVuaXQoJGJwKSwgLXpmLWJwLXRvLWVtKCRicCkpO1xuICB9XG4gIC8vIE9ubHkgJ29ubHknIGFuZCAnZG93bicgaGF2ZSBhIG1heCBsaW1pdC5cbiAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBhIHZhbHVlLCB1c2UgaXQgYXMgbWF4IGxpbWl0LlxuICAgIEBpZiBub3QgJG5hbWUge1xuICAgICAgJGJwLW1heDogaWYoJGhpZHBpLCBzdHJpcC11bml0KCRicCksIC16Zi1icC10by1lbSgkYnApKTtcbiAgICB9XG4gICAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgbmFtZWQsIHRoZSBtYXggbGltaXQgaXMgdGhlIGZvbGxvd2luZyBicmVha3BvaW50IC0gMXB4LlxuICAgIEBlbHNlIGlmICRicC1uZXh0IHtcbiAgICAgIC8vIE1heCB2YWx1ZSBpcyAwLjJweCB1bmRlciB0aGUgbmV4dCBicmVha3BvaW50ICgwLjAyIC8gMTYgPSAwLjAwMTI1KS5cbiAgICAgIC8vIFVzZSBhIHByZWNpc2lvbiB1bmRlciAxcHggdG8gc3VwcG9ydCBicm93c2VyIHpvb20sIGJ1dCBub3QgdG8gbG93IHRvIGF2b2lkIHJvdW5kaW5nLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzExMzEzXG4gICAgICAkYnAtbWF4OiBpZigkaGlkcGksICRicC1uZXh0IC0gKDEvJHN0ZC13ZWItZHBpKSwgLXpmLWJwLXRvLWVtKCRicC1uZXh0KSAtIDAuMDAxMjUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdlbmVyYXRlIHRoZSBtZWRpYSBxdWVyeSBzdHJpbmcgZnJvbSBtaW4gYW5kIG1heCBsaW1pdHMuXG4gIEBpZiAkaGlkcGkge1xuICAgIC8vIEdlbmVyYXRlIHZhbHVlcyBpbiBEUEkgaW5zdGVhZCBvZiBEUFBYIGZvciBhbiBJRTktMTEvT3BlcmEgbWluaSBjb21wYXRpYmlsaXR5LlxuICAgIC8vIFNlZSBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy1tZWRpYS1yZXNvbHV0aW9uXG4gICAgJGJwLW1pbi1kcGk6IGlmKCRicC1taW4sICRicC1taW4gKiAkc3RkLXdlYi1kcGkgKiAxZHBpLCAkYnAtbWluKTtcbiAgICAkYnAtbWF4LWRwaTogaWYoJGJwLW1heCwgJGJwLW1heCAqICRzdGQtd2ViLWRwaSAqIDFkcGksICRicC1tYXgpO1xuICAgIEByZXR1cm4gemYtc3RyLWpvaW4oXG4gICAgICAtemYtYnAtam9pbigkYnAtbWluLCAkYnAtbWF4LCAnLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvJywgJy13ZWJraXQtbWF4LWRldmljZS1waXhlbC1yYXRpbycpLFxuICAgICAgLXpmLWJwLWpvaW4oJGJwLW1pbi1kcGksICRicC1tYXgtZHBpLCAnbWluLXJlc29sdXRpb24nLCAnbWF4LXJlc29sdXRpb24nKSxcbiAgICAgICcsICcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIC16Zi1icC1qb2luKCRicC1taW4sICRicC1tYXgpO1xuICB9XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgYW5kIGAkYnJlYWtwb2ludHMtaGlkcGlgIG1hcHMsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBJZiBtdWx0aXBsZSB2YWx1ZXMgYXJlIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgZ2VuZXJhdGUgYSBtZWRpYSBxdWVyeSBmb3IgZWFjaCBvZiB0aGVtIGFzIGRlc2NyaWJlZCBhYm92ZS5cbi8vLyBTaW5jZSB0aGUgY29udGVudCBpcyBkdXBsaWNhdGVkIGZvciBlYWNoIGJyZWFrcG9pbnQsIHRoaXMgbWl4aW4gc2hvdWxkIG9ubHkgYmUgdXNlZCB3aXRoIHByb3BlcnRpZXMgdGhhdFxuLy8vIGNoYW5nZSBhY3Jvc3MgYnJlYWtwb2ludHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWVzLi4uIC0gQnJlYWtwb2ludCBuYW1lIG9yIHB4L3JlbS9lbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWVzLi4uKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZXMpIHtcbiAgICAkdmFsdWU6IG50aCgkdmFsdWVzLCAkaSk7XG4gICAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAgICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCBudGgoJHZhbHVlLCAxKSk7XG4gICAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG4gICAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgICAkZGlyOiBpZihsZW5ndGgoJHZhbHVlKSA+IDEsIG50aCgkdmFsdWUsIDIpLCB1cCk7XG5cbiAgICAkb2xkLXpmLXNpemU6IG51bGw7XG5cbiAgICAvLyBNYWtlIGJyZWFrcG9pbnQgc2l6ZSBhdmFpbGFibGUgYXMgYSB2YXJpYWJsZVxuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgICB9XG4gICAgJC16Zi1zaXplOiBudGgoJHZhbHVlLCAxKSAhZ2xvYmFsOyAvLyBnZXQgdGhlIGZpcnN0IHZhbHVlIHRvIGFjY291bnQgZm9yIGBvbmx5YCBhbmQgYGRvd25gIGtleXdvcmRzXG5cbiAgICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gICAgQGlmICRzdHIgPT0gJycge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcbiAgICBAZWxzZSB7XG4gICAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgICAvLyBnZW5lcmF0ZSBwcmludCBpZiB0aGUgYnJlYWtwb2ludCBhZmZlY3RzIHRoZSBwcmludC1icmVha3BvaW50IChvciBzbWFsbGVyKS5cbiAgICAgIC8vIFRoaXMgbWVhbnMgdGhlIGN1cnJlbnQgY29uZGl0aW9uIG9ubHkgbmVlZHMgdG8gYmUgZXh0ZW5kZWQgc28gJ2Rvd24nIGFsd2F5cyBnZW5lcmF0ZXMgcHJpbnQuXG4gICAgICBAaWYgJGJwICE9IG51bGwgYW5kICgkYnAgPD0gJHBicCBvciAkZGlyID09IGRvd24pIHtcbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcbiAgfVxufVxuXG4vLy8gQ29udmVydHMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuICAkc3RyOiAnJztcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG5cbiAgLy8gU3RvcmUgdGhlIGtleXMgb2YgdGhlIG1hcCBhcyBhIGxpc3RcbiAgJHZhbHVlczogbWFwLWtleXMoJG1hcCk7XG5cbiAgJGk6IDA7XG5cbiAgLy8gSWYgdGhlIEtleSBFeGlzdHMsIEdldCB0aGUgaW5kZXggb2YgdGhlIGtleSB3aXRoaW4gdGhlIG1hcCBhbmQgYWRkIDEgdG8gaXQgZm9yIHRoZSBuZXh0IGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxuICBAaWYgKG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgJGk6IGluZGV4KCR2YWx1ZXMsICRrZXkpICsgMTtcbiAgfVxuXG4gIC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCwgb3IgaXQncyB0aGUgbGFzdCBrZXkgaW4gdGhlIG1hcCwgcmV0dXJuIG51bGxcbiAgQGlmICgkaSA+IGxlbmd0aCgkbWFwKSBvciAkaSA9PSAwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkdmFsdWVzLCAkaSkpO1xuICB9XG5cbn1cblxuLy8vIEZpbmQgdGhlIG5leHQgbnVtYmVyIGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJG51bWJlciAtIE51bWJlciB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIG51bWJlciBmb2xsb3dpbmcgYCRudW1iZXJgLCBpZiBgJG51bWJlcmAgd2FzIGZvdW5kLiBJZiBgJG51bWJlcmAgd2FzIG5vdCBmb3VuZCwgb3IgYCRudW1iZXJgIHdhcyB0aGUgYmlnZ2VzdCBudW1iZXIgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0LW51bWJlcigkbWFwLCAkbnVtYmVyKSB7XG5cbiAgJG5leHRfbnVtYmVyOiBudWxsO1xuXG4gIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICBAaWYgdHlwZS1vZigkdikgPT0gJ251bWJlcicgYW5kICR2ID4gJG51bWJlciBhbmQgKCRuZXh0X251bWJlciA9PSBudWxsIG9yICR2IDwgJG5leHRfbnVtYmVyKSB7XG4gICAgICAkbmV4dF9udW1iZXI6ICR2O1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG5leHRfbnVtYmVyO1xufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBsYXN0IGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigka2V5KSB7XG4gICRsaXN0OiAoKTtcbiAgJGZvdW5kX2tleTogZmFsc2U7XG5cbiAgQGVhY2ggJG5hbWUgaW4gJC16Zi1icmVha3BvaW50cy1rZXlzIHtcbiAgICBAaWYgKCRuYW1lID09ICRrZXkpIHtcbiAgICAgICRmb3VuZF9rZXk6IHRydWU7XG4gICAgfVxuICAgIEBpZiBub3QgJGZvdW5kX2tleSB7XG4gICAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkbmFtZSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGxpc3Q7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IC0gYSBuYW1lZCBvciBub24tbmFtZWQgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICRsYXN0OiAkLXpmLXplcm8tYnJlYWtwb2ludDtcbiAgJGZvdW5kOiBmYWxzZTtcblxuICAkdmFsdWU6IHVuaXRsZXNzLWNhbGMoJGJyZWFrcG9pbnQsIDFweCk7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICBAaWYgdW5pdGxlc3MtY2FsYygkdmFsKSA+ICR2YWx1ZSB7XG4gICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkbGFzdDogJGtleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsYXN0O1xufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBSZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBJZiB0aGUgZ2l2ZW4gbWFwIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXRcbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJG1hcDtcbiAgfVxuXG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgZ2xvYmFsbHlcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCR2YWx1ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbi8vLyBSZXR1cm4gdGhlIGJlc3QgYnJlYWtwb2ludCB0byB1c2UgYWNjb3JkaW5nIHRvIHRoZSBjYWxsaW5nIGNvbnRleHQuIEl0IHJldHVybnMgaW4gb3JkZXI6XG4vLy8gMS4gdGhlIGdpdmVuIGAkdmFsdWVgIGFyZ3VtZW50IGlmIGl0IGlzIG5vdCBudWxsLlxuLy8vIDIuIHRoZSBnbG9iYWwgYnJlYWtwb2ludCBjb250ZXh0IGAkLXpmLXNpemVgIGlmIGl0IGlzIG5vdCBudWxsIChsaWtlIGlmIGNhbGxlZCBpbnNpZGUgdGhlbiBgYnJlYWtwb2ludCgpYCBtaXhpbilcbi8vLyAzLiB0aGUgZ2l2ZW4gYCRkZWZhdWx0YCBhcmd1bWVudC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGluIHByaW9yaXR5IGlmIG5vbi1udWxsLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRlZmF1bHQgW251bGxdIC0gQnJlYWtwb2ludCB0byB1c2UgYnkgZGVmYXVsdCBpZiBubyBvdGhlciB2YWx1ZSBjYW4gYmUgdXNlZC5cbi8vL1xuLy8vIEByZXR1cm4ge0tleXdvcmR9IFRoZSByZXNvbHZlZCBicmVha3BvaW50LlxuQGZ1bmN0aW9uIC16Zi1jdXJyZW50LWJyZWFrcG9pbnQoJHZhbHVlOiBudWxsLCAkZGVmYXVsdDogbnVsbCkge1xuICBAaWYgKCR2YWx1ZSAhPSBudWxsKSB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgQGVsc2UgaWYgKHZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkgYW5kIHR5cGUtb2YoJC16Zi1zaXplKSAhPSAnbnVtYmVyJykgYW5kICQtemYtc2l6ZSAhPSBudWxsIHtcbiAgICBAcmV0dXJuICQtemYtc2l6ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkZGVmYXVsdDtcbiAgfVxufVxuXG4vLy8gUmV0dXJuIG1lZGlhIHF1ZXJ5IHN0cmluZyBmcm9tIHRoZSBnaXZlbiBtaW4gYW5kL29yIG1heCBsaW1pdHMuXG4vLy8gSWYgYSBsaW1pdCBpcyBlcXVhbCB0byBgbnVsbGAgb3IgYDBgLCBpdCBpcyBpZ25vcmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtaW4gWzBdIC0gTWluIG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IFswXSAtIE1heCBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1pbi1uYW1lIFsnbWluLXdpZHRoJ10gLSBOYW1lIG9mIHRoZSBtaW4gbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkZWxpbWl0ZXIgWydtYXgtd2lkdGgnXSAtIE5hbWUgb2YgdGhlIG1heCBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IE1lZGlhIFF1ZXJ5IHN0cmluZy5cbkBmdW5jdGlvbiAtemYtYnAtam9pbihcbiAgJG1pbjogMCxcbiAgJG1heDogMCxcbiAgJG1pbi1uYW1lOiAnbWluLXdpZHRoJyxcbiAgJG1heC1uYW1lOiAnbWF4LXdpZHRoJ1xuKSB7XG4gIEByZXR1cm4gemYtc3RyLWpvaW4oXG4gICAgaWYoJG1pbiBhbmQgJG1pbiA+IDAsICcoI3skbWluLW5hbWV9OiAjeyRtaW59KScsIG51bGwpLFxuICAgIGlmKCRtYXggYW5kICRtYXggPiAwLCAnKCN7JG1heC1uYW1lfTogI3skbWF4fSknLCBudWxsKSxcbiAgICAnIGFuZCAnKTtcbn1cblxuJHNtYWxsLXVwOiAnJztcbiRzbWFsbC1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuJG1lZGl1bS11cDogJyc7XG4kbWVkaXVtLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcbiAgJG1lZGl1bS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0gb25seSl9Jyk7XG59XG5cbiRsYXJnZS11cDogJyc7XG4kbGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIGxhcmdlKSB7XG4gICRsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2UpfScpO1xuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XG59XG5cbiR4bGFyZ2UtdXA6ICcnO1xuJHhsYXJnZS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG4keHhsYXJnZS11cDogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3MiLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJGd1dHRlciBbYXV0b11cbi8vLyAgIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkZ3V0dGVycyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkZ3V0dGVycyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLWd1dHRlcihcbiAgJGd1dHRlcjogYXV0byxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkZ3V0dGVyLCAkZ3V0dGVycykge1xuICAgICRwYWRkaW5nOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAvIDI7XG5cbiAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICB9XG59XG5cbi8vLyBDb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZW1vdmluZyB0aGUgcGFkZGluZy4gKipOb3RlOioqIG9ubHkgdXNlIHRoaXMgbWl4aW4gd2l0aGluIGEgYnJlYWtwb2ludC4gVG8gY29sbGFwc2UgYSBjb2x1bW4ncyBndXR0ZXJzIG9uIGFsbCBzY3JlZW4gc2l6ZXMsIHVzZSB0aGUgYCRndXR0ZXJgIHBhcmFtZXRlciBvZiB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluIGluc3RlYWQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tY29sbGFwc2Uge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoMCk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWd1dHRlclxuQG1peGluIGdyaWQtY29sLWd1dHRlcihcbiAgJGd1dHRlcjogYXV0byxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlciwgJGd1dHRlcnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tY29sbGFwc2UoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWNvbGxhcHNlXG5AbWl4aW4gZ3JpZC1jb2wtY29sbGFwc2Uge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1jb2xsYXBzZTtcbn1cblxuLy8vIFNldHMgYm90dG9tIG1hcmdpbiBvbiBncmlkIGNvbHVtbnMgdG8gbWF0Y2ggZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRtYXJnaW4gW2F1dG9dXG4vLy8gICBUaGUgYm90dG9tIG1hcmdpbiBvbiBncmlkIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHNpbmdsZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRtYXJnaW5zIG1hcC5cbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBtYXJnaW4gcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRtYXJnaW5zIG1hcCB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFyZ2lucyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLWNvbHVtbi1tYXJnaW4gKFxuICAkbWFyZ2luOiBhdXRvLFxuICAkbWFyZ2luczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRtYXJnaW4sICRtYXJnaW5zKSB7XG4gICAgJG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpO1xuICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tYm90dG9tO1xuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19ndXR0ZXIuc2NzcyIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIEZpbmRzIHRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvciBvZiB0d28gaW50ZWdlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGEgLSBGaXJzdCBudW1iZXIgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGIgLSBTZWNvbmQgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3IuXG5AZnVuY3Rpb24gZ2NkKCRhLCAkYikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvR3JlYXRlc3RfY29tbW9uX2Rpdmlzb3IjSmF2YVNjcmlwdFxuICBAaWYgKCRiICE9IDApIHtcbiAgICBAcmV0dXJuIGdjZCgkYiwgJGEgJSAkYik7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gYWJzKCRhKTtcbiAgfVxufVxuXG4vLy8gSGFuZGxlcyBkZWNpbWFsIGV4cG9uZW50cyBieSB0cnlpbmcgdG8gY29udmVydCB0aGVtIGludG8gYSBmcmFjdGlvbiBhbmQgdGhlbiB1c2UgYSBudGgtcm9vdC1hbGdvcml0aG0gZm9yIHBhcnRzIG9mIHRoZSBjYWxjdWxhdGlvblxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGJhc2UgbnVtYmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZXhwb25lbnQgLSBUaGUgZXhwb25lbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgcHJvZHVjdCBvZiB0aGUgZXhwb25lbnRpYXRpb24uXG5AZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwb25lbnQsICRwcmVjOiAxNikge1xuICBAaWYgKGZsb29yKCRleHBvbmVudCkgIT0gJGV4cG9uZW50KSB7XG4gICAgJHByZWMyIDogcG93KDEwLCAkcHJlYyk7XG4gICAgJGV4cG9uZW50OiByb3VuZCgkZXhwb25lbnQgKiAkcHJlYzIpO1xuICAgICRkZW5vbWluYXRvcjogZ2NkKCRleHBvbmVudCwgJHByZWMyKTtcbiAgICBAcmV0dXJuIG50aC1yb290KHBvdygkYmFzZSwgJGV4cG9uZW50IC8gJGRlbm9taW5hdG9yKSwgJHByZWMyIC8gJGRlbm9taW5hdG9yLCAkcHJlYyk7XG4gIH1cblxuICAkdmFsdWU6ICRiYXNlO1xuICBAaWYgJGV4cG9uZW50ID4gMSB7XG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiAkYmFzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cG9uZW50IDwgMSB7XG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAtJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlIC8gJGJhc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBudGgtcm9vdCgkbnVtLCAkbjogMiwgJHByZWM6IDEyKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9OdGhfcm9vdCNKYXZhU2NyaXB0XG4gICR4OiAxO1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHByZWMge1xuICAgICR4OiAxIC8gJG4gKiAoKCRuIC0gMSkgKiAkeCArICgkbnVtIC8gcG93KCR4LCAkbiAtIDEpKSk7XG4gIH1cblxuICBAcmV0dXJuICR4O1xufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgd2lkdGggZm9yIGEgZ2l2ZW4gcmF0aW8uXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gLSBSYXRpbyB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBoZWlnaHQsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IEEgcGVyY2VudGFnZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCByZWxhdGl2ZSB0byB0aGUgd2lkdGggb2YgYSByZXNwb25zaXZlIGNvbnRhaW5lci5cbkBmdW5jdGlvbiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbykge1xuICAkdzogbnRoKCRyYXRpbywgMSk7XG4gICRoOiBudGgoJHJhdGlvLCAzKTtcbiAgQHJldHVybiAkaCAvICR3ICogMTAwJTtcbn1cblxuLy8vIFBhcnNlIHRoZSBnaXZlbiBgJGZyYWN0aW9uYCB0byBudW1lcmF0b3JzIGFuZCBkZW51bWVyYXRvcnMuXG4vLy9cbi8vLyBAcGFyYW0geyp9ICRmcmFjdGlvbiAtIFZhbHVlIHJlcHJlc2VudGluZyBhIGZyYWN0aW9uIHRvIHBhcnNlLiBJdCBjYW4gYmUgZm9ybWF0dGVkIGFzIGA1MCVgLCBgMSBvZiAyYCwgYDEvMmAgb3IgYDUwYCAobm8gZGVub21pbmF0b3Igd291bGQgYmUgcmV0dXJuZWQpLlxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH0gTGlzdCBvZiBwYXJzZWQgdmFsdWVzIHdpdGggbnVtZXJhdG9yIGF0IGZpcnN0IHBvc2l0aW9uIGFuZCBkZW51bWVyYXRvciBhcyBzZWNvbmQuIFRoZXNlIHZhbHVlcyBtYXkgYmUgbnVsbC5cbkBmdW5jdGlvbiB6Zi1wYXJzZS1mcmFjdGlvbigkZnJhY3Rpb24pIHtcblxuICBAaWYgdHlwZS1vZigkZnJhY3Rpb24pID09ICdudW1iZXInIHtcbiAgICAvLyBcIjUwJVwiXG4gICAgQGlmIHVuaXQoJGZyYWN0aW9uKSA9PSAnJScge1xuICAgICAgQHJldHVybiAoc3RyaXAtdW5pdCgkZnJhY3Rpb24pLCAxMDApO1xuICAgIH1cbiAgICBAZWxzZSBpZiAodW5pdCgkZnJhY3Rpb24pID09ICcnKSB7XG4gICAgICAvLyBcIjAuNVwiXG4gICAgICBAaWYgJGZyYWN0aW9uIDwgMSB7XG4gICAgICAgIEByZXR1cm4gKCRmcmFjdGlvbiAqIDEwMCwgMTAwKTtcbiAgICAgIH1cbiAgICAgIC8vIFwiNTBcIlxuICAgICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuICgkZnJhY3Rpb24sIG51bGwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGZyYWN0aW9uKSA9PSAnbGlzdCcge1xuICAgIC8vIFwiNTAgb2YgMTAwXCIsIFwiNTAvMTAwXCIuLi5cbiAgICBAaWYgbGVuZ3RoKCRmcmFjdGlvbikgPT0gM1xuICAgICAgYW5kIHR5cGUtb2YobnRoKCRmcmFjdGlvbiwgMSkgPT0gJ251bWJlcicpXG4gICAgICBhbmQgdHlwZS1vZihudGgoJGZyYWN0aW9uLCAzKSA9PSAnbnVtYmVyJykge1xuICAgICAgQHJldHVybiAobnRoKCRmcmFjdGlvbiwgMSksIG50aCgkZnJhY3Rpb24sIDMpKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIChudWxsLCBudWxsKTtcbn1cblxuLy8vIFJldHVybnMgd2hldGhlciB0aGUgZ2l2ZW4gYCR2YWx1ZWAgcmVwcmVzZW50cyBhIGZyYWN0aW9uLiBTdXBwb3J0cyBmb3JtYXRzIGxpa2UgYDUwJWAsIGAxIG9mIDJgLCBgMSBwZXIgMmAgb3IgYDEvMmAuXG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZSAtIFZhbHVlIHRvIHRlc3QuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYWxsb3ctbm8tZGVub21pbmF0b3IgW2ZhbHNlXSAtIElmIGB0cnVlYCwgc2ltcGxlIG51bWJlcnMgd2l0aG91dCBkZW5vbWluYXRvcnMgbGlrZSBgNTBgIGFyZSBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSBgdHJ1ZWAgaWYgYCR2YWx1ZWAgcmVwcmVzZW50cyBhIGZyYWN0aW9uLCBgZmFsc2VgIG90aGVyd2lzZS5cbkBmdW5jdGlvbiB6Zi1pcy1mcmFjdGlvbigkdmFsdWUsICRhbGxvdy1uby1kZW5vbWluYXRvcjogZmFsc2UpIHtcbiAgJHBhcnNlZDogemYtcGFyc2UtZnJhY3Rpb24oJHZhbHVlKTtcbiAgQHJldHVybiBub3QobnRoKCRwYXJzZWQsIDEpID09IG51bGxcbiAgICBvciAobnRoKCRwYXJzZWQsIDIpID09IG51bGwgYW5kICRhbGxvdy1uby1kZW5vbWluYXRvciA9PSBmYWxzZSkpO1xufVxuXG4vLy8gQ2FsY3VsYXRlIGEgcGVyY2VudGFnZSBmcm9tIGEgZ2l2ZW4gZnJhY3Rpb24uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkZnJhY3Rpb24gLSBWYWx1ZSByZXByZXNlbnRpbmcgYSBmcmFjdGlvbiB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBwZXJjZW50YWdlLCBmb3JtYXR0ZWQgYXMgYDUwYCAocmVsYXRpdmUgdG8gYCRkZW5vbWluYXRvcmApLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvMmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGRlbm9taW5hdG9yIC0gRGVmYXVsdCB2YWx1ZSB0byB1c2UgYXMgZGVub21pbmF0b3Igd2hlbiBgJGZyYWN0aW9uYCByZXByZXNlbnRzIGFuIGFic29sdXRlIHZhbHVlLlxuQGZ1bmN0aW9uIGZyYWN0aW9uLXRvLXBlcmNlbnRhZ2UoXG4gICRmcmFjdGlvbixcbiAgJGRlbm9taW5hdG9yOiBudWxsXG4pIHtcbiAgJHBhcnNlZDogemYtcGFyc2UtZnJhY3Rpb24oJGZyYWN0aW9uKTtcbiAgJHBhcnNlZC1ub21pbmF0b3I6IG50aCgkcGFyc2VkLCAxKTtcbiAgJHBhcnNlZC1kZW5vbWluYXRvcjogbnRoKCRwYXJzZWQsIDIpO1xuXG4gIEBpZiAkcGFyc2VkLW5vbWluYXRvciA9PSBudWxsIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgXCJmcmFjdGlvbi10by1wZXJjZW50YWdlKClcIi4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiIC8gXCJuL25cIi4nO1xuICB9XG4gIEBpZiAkcGFyc2VkLWRlbm9taW5hdG9yID09IG51bGwge1xuICAgIEBpZiB0eXBlLW9mKCRkZW5vbWluYXRvcikgPT0gJ251bWJlcicge1xuICAgICAgJHBhcnNlZC1kZW5vbWluYXRvcjogJGRlbm9taW5hdG9yO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAZXJyb3IgJ0Vycm9yIHdpdGggXCJmcmFjdGlvbi10by1wZXJjZW50YWdlKClcIi4gQSBkZWZhdWx0IFwiJGRlbm9taW5hdG9yXCIgaXMgcmVxdWlyZWQgdG8gc3VwcG9ydCBhYnNvbHV0ZSB2YWx1ZXMnO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gcGVyY2VudGFnZSgkcGFyc2VkLW5vbWluYXRvciAvICRwYXJzZWQtZGVub21pbmF0b3IpO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19tYXRoLnNjc3MiLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gUmVwb3NpdGlvbiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRwb3NpdGlvbiAtIEl0IGNhbiBiZTpcbi8vLyAgICogQSBudW1iZXI6IFRoZSBjb2x1bW4gd2lsbCBtb3ZlIGVxdWFsIHRvIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGNvdW50XG4vLy8gICAgIHNwZWNpZmllZC4gQSBwb3NpdGl2ZSBudW1iZXIgd2lsbCBwdXNoIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0LCB3aGlsZVxuLy8vICAgICBhIG5lZ2F0aXZlIG51bWJlciB3aWxsIHB1bGwgaXQgdG8gdGhlIGxlZnQuXG4vLy8gICAqIGBjZW50ZXJgOiBDb2x1bW4gd2lsbCBiZSBjZW50ZXJlZFxuLy8vICAgKiBgYXV0b2A6IENvbHVtbiB3aWxsIGJlIHB1c2hlZCB0byB0aGUgbGVmdCAob3IgdG8gdGhlIHJpZ2h0IGZvciB0aGUgbGFzdCBjb2x1bW4pLlxuQG1peGluIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbikge1xuICAvLyBBdXRvIHBvc2l0aW9uaW5nXG4gIEBpZiAkcG9zaXRpb24gPT0gYXV0byB7XG4gICAgJiwgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBMYXN0IGNvbHVtbiBhbGlnbm1lbnRcbiAgICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHVzaC9wdWxsXG4gIEBlbHNlIGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSAnbnVtYmVyJyB7XG4gICAgJG9mZnNldDogcGVyY2VudGFnZSgkcG9zaXRpb24gLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxuXG4gIC8vIENlbnRlciBwb3NpdGlvbmluZ1xuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gY2VudGVyIHtcbiAgICAmLCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uLXBvc2l0aW9uKCkuIEVudGVyIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgbnVtYmVyLCBcImNlbnRlclwiIG9yIFwiYXV0b1wiLic7XG4gIH1cbn1cblxuLy8vIFJlc2V0IGEgcG9zaXRpb24gZGVmaW5pdGlvbi5cbkBtaXhpbiBncmlkLWNvbHVtbi11bnBvc2l0aW9uIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oYXV0byk7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodCBieSBgJG5gIGNvbHVtbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBXaWR0aCB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ3JpZC1jb2x1bW4oJG4pO1xufVxuXG4vLy8gRGlzYWJsZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgYWxpZ25pbmcgdG8gdGhlIG9wcG9zaXRlIGVkZ2UuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZW5kIHtcbiAgLy8gVGhpcyBleHRyYSBzcGVjaWZpY2l0eSBpcyByZXF1aXJlZCBmb3IgdGhlIHByb3BlcnR5IHRvIGJlIGFwcGxpZWRcbiAgJjpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXBvcygkcG9zaXRpb24pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVucG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC11bnBvcyB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVucG9zaXRpb247XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1vZmZzZXQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLW9mZnNldFxuQG1peGluIGdyaWQtY29sLW9mZigkbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG4pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZW5kKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1lbmRcbkBtaXhpbiBncmlkLWNvbC1lbmQge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1lbmQ7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Bvc2l0aW9uLnNjc3MiLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgRmxleGJveCBVdGlsaXRpZXNcbi8vLy9cbi8vXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNvdW50IG9mIHNvdXJjZSBvcmRlcmluZ2Bcbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNiAhZGVmYXVsdDtcblxuLy8vIFF1aWNrbHkgZGlzYWJsZS9lbmFibGUgUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgVmFuaWxsYSBGbGV4IEhlbHBlcnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50czogdHJ1ZSAhZGVmYXVsdDtcblxuQG1peGluIGZsZXgtaGVscGVycyB7XG4gIC5mbGV4LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleDtcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG5cbiAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XG4gICAgLmZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY29udGFpbmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtYXV0byB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1ncm93IHtcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWRpci0jeyRkaXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LWNsYXNzZXMge1xuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCB1c2luZyBqdXN0aWZ5LWNvbnRlbnRcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluICQtemYtZmxleC1qdXN0aWZ5IHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gSG9yaXpvbnRhbCBhbGlnbm1lbnQgU3BlY2lmaWNhbGx5IGZvciBWZXJ0aWNhbCBNZW51XG4gIEBlYWNoICRoZGlyLCAkcHJvcCBpbiBtYXAtcmVtb3ZlKCQtemYtZmxleC1qdXN0aWZ5LCAnanVzdGlmeScsICdzcGFjZWQnKSB7XG4gICAgLmFsaWduLSN7JGhkaXJ9IHtcbiAgICAgICYudmVydGljYWwge1xuICAgICAgICAmLm1lbnUgPiBsaSA+IGEge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6ICRoZGlyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGFsaWdubWVudCB1c2luZyBhbGlnbi1pdGVtcyBhbmQgYWxpZ24tc2VsZlxuICBAZWFjaCAkdmRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWFsaWduIHtcbiAgICAuYWxpZ24tI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogJHZkaXIpO1xuICAgIH1cblxuICAgIC5hbGlnbi1zZWxmLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZigkeTogJHZkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENlbnRyYWwgYWxpZ25tZW50IG9mIGNvbnRlbnRcbiAgLmFsaWduLWNlbnRlci1taWRkbGUge1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6IGNlbnRlciwgJHk6IG1pZGRsZSk7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLy8gU291cmNlIG9yZGVyaW5nXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tb3JkZXItI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LW9yZGVyKCRpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWYW5pbGxhIEZsZXhib3ggSGVscGVyc1xuICBAaW5jbHVkZSBmbGV4LWhlbHBlcnM7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsIkBmdW5jdGlvbiAtemYtZmxleC1qdXN0aWZ5KCR0ZXh0LWRpcmVjdGlvbil7XG4gICQtemYtZmxleC1qdXN0aWZ5OiAoXG4gICAgJ2xlZnQnOiBpZigkdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBmbGV4LWVuZCwgZmxleC1zdGFydCksXG4gICAgJ3JpZ2h0JzogaWYoJHRleHQtZGlyZWN0aW9uID09IHJ0bCwgZmxleC1zdGFydCwgZmxleC1lbmQpLFxuICAgICdjZW50ZXInOiBjZW50ZXIsXG4gICAgJ2p1c3RpZnknOiBzcGFjZS1iZXR3ZWVuLFxuICAgICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4gICk7XG5cbiAgQHJldHVybiAkLXpmLWZsZXgtanVzdGlmeTtcbn1cblxuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuJC16Zi1mbGV4LWRpcmVjdGlvbjogKFxuICAncm93Jzogcm93LFxuICAncm93LXJldmVyc2UnOiByb3ctcmV2ZXJzZSxcbiAgJ2NvbHVtbic6IGNvbHVtbixcbiAgJ2NvbHVtbi1yZXZlcnNlJzogY29sdW1uLXJldmVyc2UsXG4pO1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXG5AbWl4aW4gZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGl0ZW1zIHdpdGhpbiBhIGZsZXggY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLic7XG4gICAgfVxuICB9XG5cbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAganVzdGlmeS1jb250ZW50OiAkeDtcbiAgYWxpZ24taXRlbXM6ICR5O1xufVxuXG4vLy8gVmVydGljYWxseSBhbGlnbiBhIHNpbmdsZSBjb2x1bW4gd2l0aGluIGEgZmxleCByb3cuIEFwcGx5IHRoaXMgbWl4aW4gdG8gYSBmbGV4IGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHk6IG51bGwpIHtcbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtY29sdW1uLWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAgYWxpZ24tc2VsZjogJHk7XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXG5AbWl4aW4gZmxleC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cblxuLy8vIENoYW5nZSBmbGV4LWRpcmVjdGlvblxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbcm93XSAtIEZsZXggZGlyZWN0aW9uIHRvIHVzZS4gQ2FuIGJlXG4vLy8gICAtIHJvdyAoZGVmYXVsdCk6IHNhbWUgYXMgdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gcm93LXJldmVyc2U6IG9wcG9zaXRlIHRvIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIGNvbHVtbjogc2FtZSBhcyByb3cgYnV0IHRvcCB0byBib3R0b21cbi8vLyAgIC0gY29sdW1uLXJldmVyc2U6IHNhbWUgYXMgcm93LXJldmVyc2UgdG9wIHRvIGJvdHRvbVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZmxleC5zY3NzIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgLy8gTWF4IHZhbHVlIGlzIDAuMnB4IHVuZGVyIHRoZSBuZXh0IGJyZWFrcG9pbnQgKDAuMDIgLyAxNiA9IDAuMDAxMjUpLlxuICAvLyBVc2UgYSBwcmVjaXNpb24gdW5kZXIgMXB4IHRvIHN1cHBvcnQgYnJvd3NlciB6b29tLCBidXQgbm90IHRvIGxvdyB0byBhdm9pZCByb3VuZGluZy5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzExMzEzXG4gICRzaXplOiAtemYtYnAtdG8tZW0oJHNpemUpIC0gLjAwMTI1O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCB3aXRoaW4gYSBjZXJ0YWluIGJyZWFrcG9pbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XG4gICRsb3dlci1ib3VuZC1zaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xuXG4gIC8vIG1vcmUgb2Z0ZW4gdGhhbiBub3QgdGhpcyB3aWxsIGJlIGNvcnJlY3QsIGp1c3Qgb25lIHRpbWUgcm91bmQgdGhlIGxvb3AgaXQgd29uJ3Qgc28gc2V0IGluIHNjb3BlIGhlcmVcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gLjAwMTI1O1xuICAvLyB0ZXN0IGFjdHVhbCBsb3dlci1ib3VuZC1zaXplLCBpZiAwIHNldCBpdCB0byAwZW1cbiAgQGlmIHN0cmlwLXVuaXQoJGxvd2VyLWJvdW5kLXNpemUpID09IDAge1xuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcbiAgfVxuXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1iYXNlXG4vLy8vXG5cbi8vIEJhc2UgVHlwb2dyYXBoeVxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbi8vIFRoZXNlIGFyZSBzdHlsZXMgYXBwbGllZCB0byBiYXNpYyBIVE1MIHRhZ3MsIGluY2x1ZGluZzpcbi8vICAgLSBQYXJhZ3JhcGhzIDxwPlxuLy8gICAtIEJvbGQvaXRhbGljcyA8Yj4gPHN0cm9uZz4gPGk+IDxlbT5cbi8vICAgLSBTbWFsbCB0ZXh0IDxzbWFsbD5cbi8vICAgLSBIZWFkaW5ncyA8aDE+LTxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyBmb3IgaGVhZGluZ3MgYXQgdmFyaW91cyBzY3JlZW4gc2l6ZXMuIEVhY2gga2V5IGlzIGEgYnJlYWtwb2ludCwgYW5kIGVhY2ggdmFsdWUgaXMgYSBtYXAgb2YgaGVhZGluZyBzdHlsZXMuXG4vLy8gQHR5cGUgTWFwXG4kaGVhZGVyLXN0eWxlczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDQ4KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMxKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI1KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vICRoZWFkZXItc3R5bGVzIG1hcCBpcyBidWlsdCBmcm9tICRoZWFkZXItc2l6ZXMgaW4gb3JkZXIgdG8gZW5zdXJlIGRvd253YXJkIGNvbXBhdGliaWxpdHlcbi8vIHdoZW4gJGhlYWRlci1zaXplcyBpcyBkZXByZWNpYXRlZCwgJGhlYWRlci1zdHlsZXMgbmVlZHMgdG8gZ2V0ICFkZWZhdWx0IHZhbHVlcyBsaWtlIHNldHRpbmdzLnNjc3NcbkBmdW5jdGlvbiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKSB7XG4gIEB3YXJuICdOb3RlLCB0aGF0ICRoZWFkZXItc2l6ZXMgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAkaGVhZGVyLXN0eWxlcy4gJGhlYWRlci1zaXplcyBzdGlsbCB3b3JrcywgYnV0IGl0IGlzIGdvaW5nIHRvIGJlIGRlcHJlY2lhdGVkLic7XG4gICRoZWFkZXItc3R5bGVzOiAoKTtcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc2l6ZXMge1xuICAgICRoZWFkZXItbWFwOiAoKTtcbiAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcbiAgICAgICRoZWFkZXItbWFwOiBtYXAtbWVyZ2UoJGhlYWRlci1tYXAsICgkaGVhZGVyOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUpKSk7XG4gICAgfVxuICAgICRoZWFkZXItc3R5bGVzOiBtYXAtbWVyZ2UoJGhlYWRlci1zdHlsZXMsICgkc2l6ZTogJGhlYWRlci1tYXApKTtcbiAgfVxuICBAcmV0dXJuICRoZWFkZXItc3R5bGVzO1xufVxuXG4vLyBJZiBpdCBleGlzdHMgJGhlYWRlcnMtc2l6ZXMgaXMgdXNlZCB0byBidWlsZCAkaGVhZGVyLXN0eWxlcy4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhoZWFkZXItc2l6ZXMpIHtcbiAgJGhlYWRlci1zdHlsZXM6IGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpO1xufVxuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5zaWRlIGA8cD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gVXNlIHRoZSBgLmNvZGUtaW5saW5lYCBjb21wb25lbnQgYXMgZGVmYXVsdCBmb3IgYDxjb2RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGVuYWJsZS1jb2RlLWlubGluZTogdHJ1ZTtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbmluZyBmb3IgYnVsbGV0cyBvbiB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgYDxkbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcblxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBVc2UgdGhlIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50IGFzIGRlZmF1bHQgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRlbmFibGUtY2l0ZS1ibG9jazogdHJ1ZTtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFBhcmFncmFwaHNcbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gIH1cblxuICAvLyBFbXBoYXNpemVkIHRleHRcbiAgZW0sXG4gIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFN0cm9uZyB0ZXh0XG4gIHN0cm9uZyxcbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTbWFsbCB0ZXh0XG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBIZWFkaW5nc1xuICBoMSwgLmgxLFxuICBoMiwgLmgyLFxuICBoMywgLmgzLFxuICBoNCwgLmg0LFxuICBoNSwgLmg1LFxuICBoNiwgLmg2IHtcbiAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG5cbiAgICBzbWFsbCB7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzdHlsZXNcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc3R5bGVzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkaGVhZGVyLCAkaGVhZGVyLWRlZnMgaW4gJGhlYWRlcnMge1xuICAgICAgICAkZm9udC1zaXplLXRlbXA6IDFyZW07XG4gICAgICAgICN7JGhlYWRlcn0sIC4jeyRoZWFkZXJ9IHtcblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZnMpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZzKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGgpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYygkaGVhZGVyLWxpbmVoZWlnaHQsICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbXQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtdCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYikpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJGhlYWRlci1tYXJnaW4tYm90dG9tKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xuICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvcml6b250YWwgcnVsZVxuICBociB7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAkaHItbWFyZ2luO1xuXG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuXG4gIC8vIExpc3RzXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zXG4gIGxpIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBVbm9yZGVyZWQgbGlzdHNcbiAgdWwge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogJGxpc3Qtc3R5bGUtdHlwZTtcbiAgfVxuXG4gIC8vIE9yZGVyZWQgbGlzdHNcbiAgb2wge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXG4gIHVsLCBvbCB7XG4gICAgJiAmIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XG5cbiAgICBkdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tO1xuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcbiAgICB9XG4gIH1cblxuICAvLyBCbG9ja3F1b3Rlc1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAmLCBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSW5saW5lIENpdGF0aW9uc1xuICBAaWYgKCRlbmFibGUtY2l0ZS1ibG9jayA9PSB0cnVlKSB7XG4gICAgY2l0ZSB7XG4gICAgICAvLyBFeHRlbmRpbmcgYSBjbGFzcyBpcyBub3QgcmVjb21tZW5kZWQuXG4gICAgICAvLyBUT0RPOiBCcmVhayB0aGUgdHlwb2dyYXBoeS1iYXNlL3R5cG9ncmFwaHktaGVscGVycyBzZXBhcmF0aW9uXG4gICAgICBAZXh0ZW5kIC5jaXRlLWJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFiYnJldmlhdGlvbnNcbiAgYWJiciwgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206ICRhYmJyLXVuZGVybGluZTtcbiAgICBjdXJzb3I6IGhlbHA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gRmlndXJlc1xuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIENvZGVcbiAgQGlmICgkZW5hYmxlLWNvZGUtaW5saW5lID09IHRydWUpIHtcbiAgICBjb2RlIHtcbiAgICAgIEBleHRlbmQgLmNvZGUtaW5saW5lO1xuICAgIH1cbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MiLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1oZWxwZXJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGVhZC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0b3AgbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBzdGF0aXN0aWMgbnVtYmVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBgLmNpdGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gUHNldWRvIGNvbnRlbnQgZm9yIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJyAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIHRoZSBgLmNvZGUtaW5saW5lYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiB0aGUgYC5jb2RlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtYmxvY2stcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiB1bmRlciB0aGUgYC5jb2RlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY29kZS1ibG9jay1tYXJnaW4tYm90dG9tOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBjaXRlLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAkY2l0ZS1jb2xvcjtcbiAgZm9udC1zaXplOiAkY2l0ZS1mb250LXNpemU7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRjaXRlLXBzZXVkby1jb250ZW50O1xuICB9XG59XG5cbi8vLyBBZGQgYmFzaWMgc3R5bGVzIGZvciBhIGNvZGUgaGVscGVyLlxuLy8vIFNlZSBgY29kZS1pbmxpbmVgIGFuZCBgY29kZS1ibG9ja2AgbWl4aW5zLlxuQG1peGluIGNvZGUtc3R5bGUge1xuICBib3JkZXI6ICRjb2RlLWJvcmRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcbiAgY29sb3I6ICRjb2RlLWNvbG9yO1xufVxuXG4vLy8gTWFrZSBjb2RlIGhlbHBlciBmcm9tIHRoZSBgY29kZS1zdHlsZWAgbWl4aW4gaW5saW5lLlxuLy8vIFVzZWQgdG8gZ2VuZXJhdGUgYC5jb2RlLWlubGluZWBcbkBtaXhpbiBjb2RlLWlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG5cbiAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcbn1cblxuLy8vIE1ha2UgY29kZSBoZWxwZXIgZnJvbSB0aGUgYGNvZGUtc3R5bGVgIG1peGluIGEgYmxvY2suXG4vLy8gVXNlZCB0byBnZW5lcmF0ZSBgLmNvZGUtYmxvY2tgXG5AbWl4aW4gY29kZS1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogYXV0bztcbiAgd2hpdGUtc3BhY2U6IHByZTtcblxuICBwYWRkaW5nOiAkY29kZS1ibG9jay1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiAkY29kZS1ibG9jay1tYXJnaW4tYm90dG9tO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWhlbHBlcnMge1xuICAvLyBVc2UgdG8gY3JlYXRlIGEgc3ViaGVhZGluZyB1bmRlciBhIG1haW4gaGVhZGVyXG4gIC8vIE1ha2Ugc3VyZSB5b3UgcGFpciB0aGUgdHdvIGVsZW1lbnRzIGluIGEgPGhlYWRlcj4gZWxlbWVudCwgbGlrZSB0aGlzOlxuICAvLyA8aGVhZGVyPlxuICAvLyAgIDxoMT5IZWFkaW5nPC9oMT5cbiAgLy8gICA8aDI+U3ViaGVhZGluZzwvaDI+XG4gIC8vIDwvaGVhZGVyPlxuICAuc3ViaGVhZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAkc3ViaGVhZGVyLW1hcmdpbi10b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC13ZWlnaHQ6ICRzdWJoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRzdWJoZWFkZXItbGluZWhlaWdodDtcbiAgICBjb2xvcjogJHN1YmhlYWRlci1jb2xvcjtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhbiBpbnRyb2R1Y3RvcnkgbGVhZCwgZGVjaywgYmx1cmIsIGV0Yy5cbiAgLmxlYWQge1xuICAgIGZvbnQtc2l6ZTogJGxlYWQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGVhZC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGEgbGFyZ2UgbnVtYmVyIHRvIGRpc3BsYXkgYSBzdGF0aXN0aWNcbiAgLnN0YXQge1xuICAgIGZvbnQtc2l6ZTogJHN0YXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgcCArICYge1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgfVxuICB9XG5cbiAgdWwsIG9sIHtcbiAgICAvLyBVc2UgdG8gcmVtb3ZlIG51bWJlcnMgZnJvbSBvcmRlcmVkIGxpc3QgJiBidWxsZXRzIGZyb20gdW5vcmRlcmVkIGxpc3RcbiAgICAmLm5vLWJ1bGxldCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuY2l0ZS1ibG9jayB7XG4gICAgQGluY2x1ZGUgY2l0ZS1ibG9jaztcbiAgfVxuXG4gIC5jb2RlLWlubGluZSB7XG4gICAgQGluY2x1ZGUgY29kZS1zdHlsZTtcbiAgICBAaW5jbHVkZSBjb2RlLWlubGluZTtcbiAgfVxuXG4gIC5jb2RlLWJsb2NrIHtcbiAgICBAaW5jbHVkZSBjb2RlLXN0eWxlO1xuICAgIEBpbmNsdWRlIGNvZGUtYmxvY2s7XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi10ZXh0LWFsaWdubWVudCB7XG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRhbGlnbiBpbiAobGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAudGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIElmIGB0cnVlYCwgYWxsIGVsZW1lbnRzIHdpbGwgaGF2ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcyB3aGVuIHByaW50ZWQsIHRvIHNhdmUgb24gaW5rLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGRpc3BsYXlzIG5leHQgdG8gYWxsIGxpbmtzIHRoZWlyIFwiaHJlZlwiIHdoZW4gcHJpbnRlZC5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LWhyZWZzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZS1hbGxcblxuQG1peGluIGZvdW5kYXRpb24tcHJpbnQtc3R5bGVzIHtcbiAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICAqIHtcbiAgICAgIC8vIEVuc3VyZSBhIFwiYmxhY2stb24td2hpdGVcIiBwcmludCBieSByZW1vdmluZyBiYWNrZ3JvdW5kcyxcbiAgICAgIC8vIHVzaW5nIGJsYWNrIHRleHQgZXZlcnl3aGVyZSBhbmQgZm9yY2luZyB0aGUgYnJvd3NlciB0byBlY29ub21pemUgaW5rLlxuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICAgIGNvbG9yLWFkanVzdDogZWNvbm9teTtcbiAgICAgIH1cbiAgICAgIC8vIE90aGVyd2lzZSwgcHJldmVudCBhbnkgZWNvbm9teSBieSB0aGUgYnJvd3Nlci5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICAgIH1cblxuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAvLyBEaXNwbGF5IHRoZSBVUkwgb2YgYSBsaW5rIGFmdGVyIHRoZSB0ZXh0XG4gICAgYSxcbiAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4gICAgQGlmICRwcmludC1ocmVmcyB7XG4gICAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuICAgIH1cblxuICAgIC8vIERvbid0IGRpc3BsYXkgdGhlIFVSTCBmb3IgaW1hZ2VzIG9yIEphdmFTY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAuaXIgYTphZnRlcixcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAgIGFbaHJlZl49JyMnXTphZnRlciB7IGNvbnRlbnQ6ICcnOyB9XG5cbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcbiAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cih0aXRsZSkgJyknOyB9XG5cbiAgICAvLyBQcmV2ZW50IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgYSBibG9ja3F1b3RlIG9yIHByZWZvcm1hdHRlZCB0ZXh0IGJsb2NrXG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvLyBoNWJwLmNvbS90XG4gICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cblxuICAgIHRyLFxuICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBvcnBoYW5zOiAzO1xuICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIC8vIEF2b2lkIHBhZ2UgYnJlYWtzIGFmdGVyIGEgaGVhZGluZ1xuICAgIGgyLFxuICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cblxuICAgIC8vIEhlbHBlciB0byByZS1hbGxvdyBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGNlcnRhaW4gZWxlbWVudHMgKGUuZy4gcHJlLCBibG9ja3F1b3RlLCB0cilcbiAgICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJlc3BvbnNpdmUtZW1iZWRcbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gQXNwZWN0IHJhdGlvcyB1c2VkIHRvIGRldGVybWluZSBwYWRkaW5nLWJvdHRvbSBvZiByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lcnMuXG4vLy8gQHR5cGUgTWFwXG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxuKSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ3xMaXN0fSAkcmF0aW8gW2RlZmF1bHRdIC0gUmF0aW8gb2YgdGhlIGNvbnRhaW5lci4gQ2FuIGJlIGEga2V5IGZyb20gdGhlIGAkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3NgIG1hcCBvciBhIGxpc3QgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuQG1peGluIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KSB7XG4gIEBpZiB0eXBlLW9mKCRyYXRpbykgPT0gJ3N0cmluZycge1xuICAgICRyYXRpbzogbWFwLWdldCgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsICRyYXRpbyk7XG4gIH1cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b207XG4gIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgaWZyYW1lLFxuICBvYmplY3QsXG4gIGVtYmVkLFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQge1xuICAucmVzcG9uc2l2ZS1lbWJlZCxcbiAgLmZsZXgtdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KTtcblxuICAgICRyYXRpb3M6IG1hcC1yZW1vdmUoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLGRlZmF1bHQpO1xuXG4gICAgQGVhY2ggJG5hbWUsICRyYXRpbyBpbiAkcmF0aW9zIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXNwb25zaXZlLWVtYmVkLnNjc3MiLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb2ZmLWNhbnZhc1xuLy8vL1xuXG4vLy8gV2lkdGggbWFwIG9mIGEgbGVmdC9yaWdodCBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE1hcFxuJG9mZmNhbnZhcy1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG1hcCBvZiBhIHRvcC9ib3R0b20gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBNYXBcbiRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXM6IChcbiAgc21hbGw6IDI1MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgZm9yIHRoZSBvZmYtY2FudmFzIG92ZXJsYXAgcGFuZWwuXG4vLy8gQHR5cGUgU2hhZG93XG4kb2ZmY2FudmFzLXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssIDAuNykgIWRlZmF1bHQ7XG5cbi8vLyBJbm5lciBib3ggc2hhZG93IHNpemUgZm9yIHRoZSBvZmYtY2FudmFzIHB1c2ggcGFuZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplOiAyMHB4ICFkZWZhdWx0O1xuXG4vLy8gSW5uZXIgYm94IHNoYWRvdyBjb2xvciBmb3IgdGhlIG9mZi1jYW52YXMgcHVzaCBwYW5lbC5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBjb250ZW50IG92ZXJsYXkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXktemluZGV4OiAxMSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB3aXRoIHRoZSBgcHVzaGAgdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDEyICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBvdmVybGFwYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTMgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgdXNpbmcgdGhlIGByZXZlYWwtZm9yLSpgIGNsYXNzZXMgb3IgbWl4aW4uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6IDEyICFkZWZhdWx0O1xuXG4vLy8gTGVuZ3RoIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXMgIWRlZmF1bHQ7XG5cbi8vLyBUaW1pbmcgZnVuY3Rpb24gb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGEgcmV2ZWFsZWQgb2ZmLWNhbnZhcyB3aWxsIGJlIGZpeGVkLXBvc2l0aW9uLCBhbmQgc2Nyb2xsIHdpdGggdGhlIHNjcmVlbi5cbi8vLyBAdHlwZSBCb29sXG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBvdmVybGF5IHRoYXQgYXBwZWFycyB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIENTUyBjbGFzcyB1c2VkIGZvciB0aGUgbWFpbiBjb250ZW50IGFyZWEuIFRoZSBvZmYtY2FudmFzIG1peGlucyB1c2UgdGhpcyB0byB0YXJnZXQgdGhlIHBhZ2UgY29udGVudC5cbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCcgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2VsaW5lIHN0eWxlcyBmb3Igb2ZmLWNhbnZhcy4gVGhpcyBDU1MgaXMgcmVxdWlyZWQgdG8gbWFrZSB0aGUgb3RoZXIgcGllY2VzIHdvcmsuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNpY3Mge1xuXG4gIC8vLyBUcmFuc2Zvcm0gZGVwcmVjYXRlZCBzaXplIHNldHRpbmdzIGludG8gbWFwICYgc2hvdyB3YXJuaW5nXG4gIEBpZiB2YXJpYWJsZS1leGlzdHMob2ZmY2FudmFzLXNpemUpIHtcbiAgICAkb2ZmY2FudmFzLXNpemVzOiAoc21hbGw6ICRvZmZjYW52YXMtc2l6ZSwgbWVkaXVtOiAkb2ZmY2FudmFzLXNpemUpICFnbG9iYWw7XG4gICAgQHdhcm4gJyRvZmZjYW52YXMtc2l6ZSBpcyBkZXByZWNhdGVkIGFuZCBub3QgdXNlZCBhbnltb3JlISBQbGVhc2UgdXBkYXRlIHlvdXIgc2V0dGluZ3MgYW5kIHVzZSB0aGUgbWFwICRvZmZjYW52YXMtc2l6ZXMgaW5zdGVhZCc7XG4gIH1cbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhvZmZjYW52YXMtdmVydGljYWwtc2l6ZSkge1xuICAgICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXM6IChzbWFsbDogJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplLCBtZWRpdW06ICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZSkgIWdsb2JhbDtcbiAgICBAd2FybiAnJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplIGlzIGRlcHJlY2F0ZWQgYW5kIG5vdCB1c2VkIGFueW1vcmUhIFBsZWFzZSB1cGRhdGUgeW91ciBzZXR0aW5ncyBhbmQgdXNlIHRoZSBtYXAgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplcyBpbnN0ZWFkJztcbiAgfVxuXG4gIC8vIENoZWNrcyB0aGUgei1pbmRleGVzIGFuZCBpbmNyZWFzZSB0aGVtIGR1ZSB0byBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgb3ZlcmxheSdzIHotaW5kZXggaXMgbmV3IHNpbmNlIHY2LjQgYW5kIG1heSBiZSBpZGVudGljYWwgdG8gdGhlIHVzZXIgY3VzdG9tIHNldHRpbmdzIG9mIHRoZSBwdXNoIHotaW5kZXguXG4gIEBpZiAkb2ZmY2FudmFzLXB1c2gtemluZGV4IDw9ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggeyAkb2ZmY2FudmFzLXB1c2gtemluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4ICsgMSAhZ2xvYmFsOyB9XG4gIEBpZiAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4IDw9ICRvZmZjYW52YXMtcHVzaC16aW5kZXggeyAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4ICsgMSAhZ2xvYmFsOyB9XG4gIEBpZiAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXggPD0gJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCB7ICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCArIDEgIWdsb2JhbDsgfVxuXG4gIC8vIEhpZGVzIG92ZXJmbG93IG9uIGJvZHkgd2hlbiBhbiBvZmYtY2FudmFzIHBhbmVsIGlzIG9wZW4uXG4gIC5pcy1vZmYtY2FudmFzLW9wZW4ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIG92ZXJsYXkgKGdlbmVyYXRlZCBieSBKYXZhU2NyaXB0KVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLCB2aXNpYmlsaXR5ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcblxuICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kO1xuXG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgICYuaXMtY2xvc2FibGUge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICYuaXMtb3ZlcmxheS1hYnNvbHV0ZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWZpeGVkIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgd3JhcHBlci5cbkBtaXhpbiBvZmYtY2FudmFzLXdyYXBwZXIoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtYmFzZShcbiAgJGJhY2tncm91bmQ6ICRvZmZjYW52YXMtYmFja2dyb3VuZCxcbiAgJHRyYW5zaXRpb246ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZyxcbiAgJGZpeGVkOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuXG4gIEBpZiAkZml4ZWQgPT0gdHJ1ZSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAvLyBTZXQgdGhlIG9mZi1jYW52YXMgei1pbmRleC5cbiAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcblxuICAvLyBJbmNyZWFzZSBDU1Mgc3BlY2lmaWNpdHlcbiAgJi5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXg7XG4gIH1cblxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAvLyBIaWRlIGluYWN0aXZlIG9mZi1jYW52YXMgd2l0aGluIHRoZSBjb250ZW50IHRoYXQgaGF2ZSB0aGUgc2FtZSBwb3NpdGlvblxuICAmLmlzLWNsb3NlZCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gT3ZlcmxhcCBvbmx5IHN0eWxlcy5cbiAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg7XG5cbiAgICAmLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogJG9mZmNhbnZhcy1zaGFkb3c7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0cyB0cmFuc2Zvcm0gdG8gMCB0byBzaG93IGFuIG9mZi1jYW52YXMgcGFuZWwuXG4gICYuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHBvc2l0aW9uIGFuIG9mZi1jYW52YXMgcGFuZWwgdG8gdGhlIGxlZnQvcmlnaHQvdG9wL2JvdHRvbS5cbkBtaXhpbiBvZmYtY2FudmFzLXBvc2l0aW9uKFxuICAkcG9zaXRpb246IGxlZnQsXG4gICRvcmllbnRhdGlvbjogaG9yaXpvbnRhbCxcbiAgJHNpemVzOiBpZigkb3JpZW50YXRpb24gPT0gaG9yaXpvbnRhbCwgJG9mZmNhbnZhcy1zaXplcywgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplcylcbikge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuXG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplIGlzIHNldCwgYWRkIGlubmVyIGJveC1zaGFkb3cuXG4gIC8vIFRoaXMgbWltaWNzIHRoZSBvZmYtY2FudmFzIHBhbmVsIGhhdmluZyBhIGxvd2VyIHotaW5kZXgsIHdpdGhvdXQgaGF2aW5nIHRvIGhhdmUgb25lLlxuICBAaWYgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSB7XG4gICAgJi5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3cocmlnaHQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KGxlZnQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhib3R0b20sICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyh0b3AsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4vLy8gU2V0cyB0aGUgc3R5bGVzIGZvciB0aGUgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gb2ZmLWNhbnZhcy1jb250ZW50KCkge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAvLyBCaW5kIHRvIGhhcy10cmFuc2l0aW9uLVggY2xhc3MgdG8gcHJldmVudCB0cmFuc2l0aW9uIGZvciB0cmFuc2Zvcm06bm9uZVxuICAmLmhhcy10cmFuc2l0aW9uLW92ZXJsYXAsXG4gICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBzY29wZSB1bnRpbCB0aGUgZWxlbWVudCBpcyBjbG9zZWQgKG1ha2VzIHN1cmUgdHJhbnNpdGlvbmVuZCBnZXRzIHRyaWdnZXJlZClcbiAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxuXG4gIC8vIENvbnNpZGVyIGVsZW1lbnQgJiBjb250ZW50LCBuZXN0ZWQgaW4gYW5vdGhlciBjb250ZW50XG4gIC5vZmYtY2FudmFzLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0aGF0IHJldmVhbCBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtcmV2ZWFsKFxuJHBvc2l0aW9uOiBsZWZ0LFxuJHppbmRleDogJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LFxuJGNvbnRlbnQ6ICRtYWluY29udGVudC1jbGFzcyxcbiRicmVha3BvaW50OiBzbWFsbFxuKSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgei1pbmRleDogJHppbmRleDtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcblxuICBAaWYgbm90ICRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gQ29uc2lkZXIgcmV2ZWFsZWQgZWxlbWVudCBpcyBuZXN0ZWQgaW4gY29udGVudFxuICAuI3skbWFpbmNvbnRlbnQtY2xhc3N9ICYge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIEBhdC1yb290IC4jeyRjb250ZW50fS5oYXMtcmV2ZWFsLSN7JHBvc2l0aW9ufSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogLXpmLWdldC1icC12YWwoJG9mZmNhbnZhcy1zaXplcywgJGJyZWFrcG9pbnQpO1xuICB9XG5cbiAgLy8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgKHByaW9yIHRvIHY2LjQpXG4gICYgfiAuI3skY29udGVudH0ge1xuICAgIG1hcmdpbi0jeyRwb3NpdGlvbn06IC16Zi1nZXQtYnAtdmFsKCRvZmZjYW52YXMtc2l6ZXMsICRicmVha3BvaW50KTtcbiAgfVxufVxuXG4vLy8gT3ZlcnJpZGVzIHRoZSBvZmYtY2FudmFzIHN0eWxlc1xuQG1peGluIGluLWNhbnZhcygpIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB3aWR0aDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHRyYW5zaXRpb246IG5vbmU7XG5cbiAgLy8gSW5jcmVhc2UgQ1NTIHNwZWNpZmljaXR5XG4gICYucG9zaXRpb24tbGVmdCxcbiAgJi5wb3NpdGlvbi1yaWdodCxcbiAgJi5wb3NpdGlvbi10b3AsXG4gICYucG9zaXRpb24tYm90dG9tIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tb2ZmLWNhbnZhcyB7XG4gIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzaWNzO1xuXG4gIC8vIE9mZi1jYW52YXMgd3JhcHBlclxuICAub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXdyYXBwZXI7XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lclxuICAub2ZmLWNhbnZhcyB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlO1xuXG4gICAgLy8gRm9yY2UgcG9zaXRpb24gYWJzb2x1dGUgZm9yIG5lc3RlZCBvZmYtY2FudmFzIGJlY2F1c2UgZml4ZWQgZG9lc24ndCB3b3JrIGZvciBwdXNoIHRyYW5zaXRpb24gd2l0aGluIHRoZSB0cmFuc2Zvcm0gc2NvcGUuXG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAmIHtcbiAgICAgIC8vIE5PVEU6IHNpbmNlIG92ZXJsYXAgdHJhbnNpdGlvbiBpcyBjdXJyZW50bHkgZm9yY2VkIGlmIG5lc3RlZCwgdGhlcmUncyBubyBuZWVkIHRvIGZvcmNlIHBvc2l0aW9uIGFic29sdXRlIHVudGlsIG5lc3RlZCBwdXNoIHRyYW5zaXRpb24gaXMgc3VwcG9ydGVkLlxuICAgICAgLy8gcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgY29udGFpbmVyIHdpdGggYWJzb2x1dGUgcG9zaXRpb25cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZSgkZml4ZWQ6IGZhbHNlKTtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgcG9zaXRpb24gY2xhc3Nlc1xuICAucG9zaXRpb24tbGVmdCAgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24obGVmdCwgICBob3Jpem9udGFsKTsgfVxuICAucG9zaXRpb24tcmlnaHQgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24ocmlnaHQsICBob3Jpem9udGFsKTsgfVxuICAucG9zaXRpb24tdG9wICAgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24odG9wLCAgICB2ZXJ0aWNhbCk7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbSAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGJvdHRvbSwgdmVydGljYWwpOyB9XG5cbiAgLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1jb250ZW50O1xuICB9XG5cbiAgLy8gUmV2ZWFsIG9mZi1jYW52YXMgcGFuZWwgb24gbGFyZ2VyIHNjcmVlbnNcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG5hbWUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChsZWZ0LCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHJpZ2h0LCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbCh0b3AsICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGJvdHRvbSwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE1vdmUgaW4tY2FudmFzIGZvciBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGluLWNhbnZhcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29mZi1jYW52YXMuc2NzcyIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0YWJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBvZiB0aGUgdGFiIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBBY3RpdmUgZm9udCBjb2xvciBvZiB0YWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1hY3RpdmUtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRhYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhIHRhYiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lciAoXG4gICRtYXJnaW46ICR0YWItbWFyZ2luLFxuICAkYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJG1hcmdpbjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRhaW5lciB0byBoYXZlIHZlcnRpY2FsIHRhYnMuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGFpbmVyKClgLlxuQG1peGluIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsIHtcbiAgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgbGlua3Mgd2l0aGluIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgYDxsaT5gIGVsZW1lbnRzIGluc2lkZSBhIHRhYiBjb250YWluZXIuXG5AbWl4aW4gdGFicy10aXRsZSAoXG4gICRwYWRkaW5nOiAkdGFiLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJHRhYi1pdGVtLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkdGFiLWNvbG9yLFxuICAkY29sb3ItYWN0aXZlOiAkdGFiLWFjdGl2ZS1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkYmFja2dyb3VuZC1hY3RpdmU6ICR0YWItYmFja2dyb3VuZC1hY3RpdmVcbikge1xuICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gID4gYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJlthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgY29sb3I6ICRjb2xvci1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHdyYXBwZXIgdGhhdCBzdXJyb3VuZHMgYSB0YWIgZ3JvdXAncyBjb250ZW50IHBhbmVzLlxuQG1peGluIHRhYnMtY29udGVudCAoXG4gICRiYWNrZ3JvdW5kOiAkdGFiLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkdGFiLWNvbnRlbnQtY29sb3IsXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItdG9wOiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRlbnQgY29udGFpbmVyIHRvIGhhdmUgYSB2ZXJ0aWNhbCBzdHlsZSwgYnkgc2hpZnRpbmcgdGhlIGJvcmRlciBhcm91bmQuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGVudCgpYC5cbkBtaXhpbiB0YWJzLWNvbnRlbnQtdmVydGljYWwgKFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBpbmRpdmlkdWFsIHRhYiBjb250ZW50IHBhbmVsIHdpdGhpbiB0aGUgdGFiIGNvbnRlbnQgY29udGFpbmVyLlxuQG1peGluIHRhYnMtcGFuZWwgKFxuICAkcGFkZGluZzogJHRhYi1jb250ZW50LXBhZGRpbmdcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFicyB7XG4gIC50YWJzIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsXG4gIC50YWJzLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFNpbXBsZVxuICAudGFicy5zaW1wbGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmltYXJ5IGNvbG9yXG4gIC50YWJzLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgPiBsaSA+IGEge1xuICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJHByaW1hcnktY29sb3IpO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCRwcmltYXJ5LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGFicy10aXRsZSB7XG4gICAgQGluY2x1ZGUgdGFicy10aXRsZTtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudDtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudC12ZXJ0aWNhbDtcbiAgfVxuXG4gIC50YWJzLXBhbmVsIHtcbiAgICBAaW5jbHVkZSB0YWJzLXBhbmVsO1xuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnbWF0aCc7XG5cbiRjb250cmFzdC13YXJuaW5nczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENoZWNrcyB0aGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gY2hlY2sgdGhlIGx1bWluYW5jZSBvZi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG5AZnVuY3Rpb24gY29sb3ItbHVtaW5hbmNlKCRjb2xvcikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jcmVsYXRpdmVsdW1pbmFuY2VkZWZcbiAgJHJnYmE6IHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvcik7XG4gICRyZ2JhMjogKCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAzIHtcbiAgICAkcmdiOiBudGgoJHJnYmEsICRpKTtcbiAgICAkcmdiOiAkcmdiIC8gMjU1O1xuXG4gICAgJHJnYjogaWYoJHJnYiA8IDAuMDM5MjgsICRyZ2IgLyAxMi45MiwgcG93KCgkcmdiICsgMC4wNTUpIC8gMS4wNTUsIDIuNCkpO1xuXG4gICAgJHJnYmEyOiBhcHBlbmQoJHJnYmEyLCAkcmdiKTtcbiAgfVxuXG4gIEByZXR1cm4gMC4yMTI2ICogbnRoKCRyZ2JhMiwgMSkgKyAwLjcxNTIgKiBudGgoJHJnYmEyLCAyKSArIDAuMDcyMiAqIG50aCgkcmdiYTIsIDMpO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBjb250cmFzdCByYXRpbyBvZiB0d28gY29sb3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMSAtIEZpcnN0IGNvbG9yIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMiAtIFNlY29uZCBjb2xvciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGNvbnRyYXN0IHJhdGlvIG9mIHRoZSBjb21wYXJlZCBjb2xvcnMuXG5AZnVuY3Rpb24gY29sb3ItY29udHJhc3QoJGNvbG9yMSwgJGNvbG9yMikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jY29udHJhc3QtcmF0aW9kZWZcbiAgJGx1bWluYW5jZTE6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IxKSArIDAuMDU7XG4gICRsdW1pbmFuY2UyOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMikgKyAwLjA1O1xuICAkcmF0aW86ICRsdW1pbmFuY2UxIC8gJGx1bWluYW5jZTI7XG5cbiAgQGlmICRsdW1pbmFuY2UyID4gJGx1bWluYW5jZTEge1xuICAgICRyYXRpbzogMSAvICRyYXRpbztcbiAgfVxuXG4gICRyYXRpbzogcm91bmQoJHJhdGlvICogMTApIC8gMTA7XG5cbiAgQHJldHVybiAkcmF0aW87XG59XG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGJhc2VgLCBhbmQgcmV0dXJucyB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYXNlIC0gQ29sb3IgdG8gY2hlY2sgbHVtaW5hbmNlLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGNvbG9ycyBbKCR3aGl0ZSwgJGJsYWNrKV0gLSBDb2xvcnMgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvbGVyYW5jZSBbJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZV0gLSBDb250cmFzdCB0b2xlcmFuY2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuQGZ1bmN0aW9uIGNvbG9yLXBpY2stY29udHJhc3QoJGJhc2UsICRjb2xvcnM6ICgkd2hpdGUsICRibGFjayksICR0b2xlcmFuY2U6ICRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2UpIHtcbiAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsIDEpKTtcbiAgJGJlc3Q6IG50aCgkY29sb3JzLCAxKTtcblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIGxlbmd0aCgkY29sb3JzKSB7XG4gICAgJGN1cnJlbnQtY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICBAaWYgKCRjdXJyZW50LWNvbnRyYXN0IC0gJGNvbnRyYXN0ID4gJHRvbGVyYW5jZSkge1xuICAgICAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgICAkYmVzdDogbnRoKCRjb2xvcnMsICRpKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRjb250cmFzdC13YXJuaW5ncyBhbmQgJGNvbnRyYXN0IDwgMykge1xuICAgIEB3YXJuIFwiQ29udHJhc3QgcmF0aW8gb2YgI3skYmVzdH0gb24gI3skYmFzZX0gaXMgcHJldHR5IGJhZCwganVzdCAjeyRjb250cmFzdH1cIjtcbiAgfVxuXG4gIEByZXR1cm4gJGJlc3Q7XG59XG5cbi8vLyBTY2FsZXMgYSBjb2xvciB0byBiZSBkYXJrZXIgaWYgaXQncyBsaWdodCwgb3IgbGlnaHRlciBpZiBpdCdzIGRhcmsuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHRpbnQgYSBjb2xvciBhcHByb3ByaWF0ZSB0byBpdHMgbGlnaHRuZXNzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gc2NhbGUuXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkc2NhbGUgWzUlXSAtIEFtb3VudCB0byBzY2FsZSB1cCBvciBkb3duLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHRocmVzaG9sZCBbNDAlXSAtIFRocmVzaG9sZCBvZiBsaWdodG5lc3MgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gQSBzY2FsZWQgY29sb3IuXG5AZnVuY3Rpb24gc21hcnQtc2NhbGUoJGNvbG9yLCAkc2NhbGU6IDUlLCAkdGhyZXNob2xkOiA0MCUpIHtcbiAgQGlmIGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCB7XG4gICAgJHNjYWxlOiAtJHNjYWxlO1xuICB9XG4gIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkc2NhbGUpO1xufVxuXG4vLy8gR2V0IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcGFyYW0ge2tleX0gY29sb3Iga2V5IGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG5AZnVuY3Rpb24gZ2V0LWNvbG9yKCRrZXkpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnZ2l2ZW4gJGtleSBpcyBub3QgYXZhaWxhYmxlIGluICRmb3VuZGF0aW9uLXBhbGV0dGUnO1xuICB9XG59XG5cbi8vLyBUcmFuc2ZlcnMgdGhlIGNvbG9ycyBpbiB0aGUgYCRmb3VuZGF0aW9uLXBhbGV0dGVgIG1hcCBpbnRvIHZhcmlhYmxlcywgc3VjaCBhcyBgJHByaW1hcnktY29sb3JgIGFuZCBgJHNlY29uZGFyeS1jb2xvcmAuIENhbGwgdGhpcyBtaXhpbiBiZWxvdyB0aGUgR2xvYmFsIHNlY3Rpb24gb2YgeW91ciBzZXR0aW5ncyBmaWxlIHRvIHByb3Blcmx5IG1pZ3JhdGUgeW91ciBjb2RlYmFzZS5cbkBtaXhpbiBhZGQtZm91bmRhdGlvbi1jb2xvcnMoKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gICAgJHByaW1hcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHByaW1hcnktY29sb3I6ICMxNzc5YmEgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSB7XG4gICAgJHNlY29uZGFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRzZWNvbmRhcnktY29sb3I6ICM3Njc2NzYgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2Vzcykge1xuICAgICRzdWNjZXNzLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRzdWNjZXNzLWNvbG9yOiAjM2FkYjc2ICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpIHtcbiAgICAkd2FybmluZy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkd2FybmluZy1jb2xvcjogI2ZmYWUwMCAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkge1xuICAgICRhbGVydC1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJGFsZXJ0LWNvbG9yOiAjY2M0YjM3ICFnbG9iYWw7XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fY29sb3Iuc2NzcyIsIi8qKioqKioqKioqKioqKioqKioqKipcbkJPUkRFUlNcbioqKioqKioqKioqKioqKioqKioqKi9cblxuLmJvcmRlciB7XG5cblx0Ji0tYWxsIHtcblx0XHRib3JkZXI6ICRnbG9iYWwtYm9yZGVyO1xuXHR9XG5cblx0Ji0tdG9wIHtcblx0XHRib3JkZXItdG9wOiAkZ2xvYmFsLWJvcmRlcjtcblx0fVxuXG5cdCYtLWJvdHRvbSB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogJGdsb2JhbC1ib3JkZXI7XG5cdH1cblxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5URVhUIEFMSUdOU1xuKioqKioqKioqKioqKioqKioqKioqL1xuXG4udGV4dC1jZW50ZXIge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi50ZXh0LWxlZnQge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4udGV4dC1yaWdodCB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5URVhUIFNUWUxFU1xuKioqKioqKioqKioqKioqKioqKioqL1xuXG4udGV4dC11cHBlcmNhc2Uge1xuXHRmb250LXNpemU6IHJlbS1jYWxjKDEwKTtcblx0bGluZS1oZWlnaHQ6IDEuMTtcblx0bGV0dGVyLXNwYWNpbmc6IHJlbS1jYWxjKDIpO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygxMik7XG5cdH1cbn1cblxuLnRleHQtY2FwaXRhbC1sZXR0ZXJzIHtcblx0bGV0dGVyLXNwYWNpbmc6IHJlbS1jYWxjKDIpO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4udGV4dC1tZWRpdW0ge1xuXHRmb250LXdlaWdodDogNTAwO1xufVxuXG4udGV4dC1ib2xkIHtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLnRleHQtaGlkZSB7XG5cdHRleHQtaW5kZW50OiAyMDAlO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHQvLyBodHRwOi8vd3d3LnplbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnQvXG59XG5cbi8qKioqKioqKioqKioqKioqKioqKipcbkJBQ0tHUk9VTkQgSU1BR0VcbioqKioqKioqKioqKioqKioqKioqKi9cblxuLmJnLWltYWdlIHtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblxuXHQmLS1maXQge1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblx0fVxuXG5cdCYtLWZpbGwge1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdH1cbn1cblxuLm9iamVjdC1maXRfX2ltYWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5vYmplY3QtZml0X19pbWFnZSBpbWcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMzVzO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5CQUNLR1JPVU5EIENPTE9SU1xuKioqKioqKioqKioqKioqKioqKioqL1xuXG4uYmctcHJpbWFyeSB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xufVxuXG4uYmctd2hpdGUge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG59XG5cbi5iZy1saWdodGdyYXkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtYmVpZ2U7XG5cdC8vIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL3BhcGVyLWJhY2tncm91bmQuanBnJyk7XG5cdC8vIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7XG5cdC8vIGJhY2tncm91bmQtYmxlbmQtbW9kZTogbXVsdGlwbHk7XG59XG5cbi5iZy1ibGFjayB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbn1cblxuLmJnLXRyYW5zcGFyZW50IHtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKipcblNQQUNFIENMQVNTRVNcbioqKioqKioqKioqKioqKioqKioqKi9cblxuLnNwYWNlIHtcblx0cGFkZGluZy10b3A6IHJlbS1jYWxjKDM1KTtcblx0cGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDM1KTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdHBhZGRpbmctdG9wOiByZW0tY2FsYyg1MCk7XG5cdFx0cGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDU1KTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRwYWRkaW5nLXRvcDogcmVtLWNhbGMoNjApO1xuXHRcdHBhZGRpbmctYm90dG9tOiByZW0tY2FsYyg2NSk7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuXHRcdHBhZGRpbmctdG9wOiByZW0tY2FsYyg4MCk7XG5cdFx0cGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDg1KTtcblx0fVxuXG5cdCYuYm94ZXMge1xuXHRcdHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygwKTtcblx0XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygxNSk7XG5cdFx0fVxuXHRcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMjUpO1xuXHRcdH1cblx0XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcblx0XHRcdHBhZGRpbmctYm90dG9tOiByZW0tY2FsYyg0NSk7XG5cdFx0fVxuXHR9XG5cbn1cblxuLnNwYWNlLS1sYXJnZSB7XG5cdHBhZGRpbmctdG9wOiByZW0tY2FsYyg1NSk7XG5cdHBhZGRpbmctYm90dG9tOiByZW0tY2FsYyg1NSk7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRwYWRkaW5nLXRvcDogcmVtLWNhbGMoNjApO1xuXHRcdHBhZGRpbmctYm90dG9tOiByZW0tY2FsYyg2NSk7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0cGFkZGluZy10b3A6IHJlbS1jYWxjKDgwKTtcblx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoODUpO1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCgxNjgxIHVwKSB7XG5cdFx0cGFkZGluZy10b3A6IHJlbS1jYWxjKDEyMCk7XG5cdFx0cGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDEyNSk7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KDE5MjAgdXApIHtcblx0XHRwYWRkaW5nLXRvcDogcmVtLWNhbGMoMTUwKTtcblx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMTU1KTtcblx0fVxuXG59XG5cbi5zcGFjZS0tc21hbGwge1xuXHRwYWRkaW5nLXRvcDogcmVtLWNhbGMoMzApO1xuXHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0cGFkZGluZy10b3A6IHJlbS1jYWxjKDQwKTtcblx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdHBhZGRpbmctdG9wOiByZW0tY2FsYyg1MCk7XG5cdFx0cGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDUwKTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG5cdFx0cGFkZGluZy10b3A6IHJlbS1jYWxjKDYwKTtcblx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoNjApO1xuXHR9XG5cbn1cblxuLm5vLXBhZGRpbmctYm90dG9tIHtcblx0cGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5uby1wYWRkaW5nLXRvcCB7XG5cdHBhZGRpbmctdG9wOiAwO1xufVxuXG4ubm8tbWFyZ2luLWJvdHRvbSB7XG5cdG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLm5vLW1hcmdpbi10b3Age1xuXHRtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKipcbk1JU0NcbioqKioqKioqKioqKioqKioqKioqKi9cblxuLmltYWdlLWNvbnRhaW5lciB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDUpO1xuXHQvL2JveC1zaGFkb3c6IDAgNTBweCA4MHB4IHJnYmEoMCwwLDAsLjA2KSwgMCAyMHB4IDU1cHggcmdiYSgwLDAsMCwuMDYpO1xuXHQvL2JhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi5zZWxsaW5nLXBvaW50cyB7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdC5yb3cge1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0fVxuXHR9XG5cblx0Jl9fd3JhcHBlciB7XG5cdFx0cGFkZGluZzogcmVtLWNhbGMoNSAwKTtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg1MCk7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0XHRwIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRwYWRkaW5nOiAgcmVtLWNhbGMoMTAgMCAyMCk7XG5cdFx0fVxuXHRcblx0fVxuXG5cdCZfX2NvbnRlbnQge1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdG1heC13aWR0aDogbm9uZTtcblx0XHRcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0bWF4LXdpZHRoOiA1MCU7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0cGFkZGluZzogMS41ZW07XG5cdFx0XHRtYXgtd2lkdGg6IG5vbmU7XG5cdFx0fVxuXHR9XG5cbn1cblxuLmZ1bGwtaGVpZ2h0IHtcblx0bWluLWhlaWdodDogMTAwdmg7XG59XG4uaGFsZi1oZWlnaHQge1xuXHRtaW4taGVpZ2h0OiA1MHZoO1xufVxuXG4uZmlyc3Qtc2VjdGlvbiB7XG5cdG1hcmdpbi10b3A6IHJlbS1jYWxjKDEwMCk7XG59XG5cbi5iZy1ibGFjayB7XG5cdGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuXHRjb2xvcjogd2hpdGU7XG5cdGgxLCAuaDEsXG5cdGgyLCAuaDIge1xuXHRcdGNvbG9yOiB3aGl0ZTtcblx0fVxuXG59XG5cbi52YyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG5cbi5pbWFnZS1nYWxsZXJ5IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1mbG93OiByb3cgd3JhcDtcblxuXHQmX19pbWFnZSB7XG5cblx0XHQmLS1oYWxmIHtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0fVxuXHRcdCYtLWZ1bGwge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG5cdCZfX2lubmVyIHtcblx0XHRwYWRkaW5nOiAuNXJlbTtcblx0fVxufVxuXG4uc2hpZnQtb25lLXNjcmVlbi1oZWlnaHQge1xuXHRtYXJnaW4tdG9wOiAxMDB2aDtcbn1cblxuLmZvb3Rlci1zbGFudCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMHB4O1xuXHRcdGxlZnQ6IDA7XG5cdFx0aGVpZ2h0OiAxMDBweDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRiYWNrZ3JvdW5kOiAkbGlnaHQtYmVpZ2U7XG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG5cdFx0dHJhbnNmb3JtOiBza2V3WSgtMmRlZyk7XG5cdH1cbn1cblxuLnNsYW50ZWQge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbi10b3A6IDEwMHB4O1xuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAtMTAwcHg7XG5cdFx0bGVmdDogMDtcblx0XHRoZWlnaHQ6IDEwMHB4O1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGJhY2tncm91bmQ6ICRibGFjaztcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcblx0XHR0cmFuc2Zvcm06IHNrZXdZKDRkZWcpO1xuXHR9XG5cdFxuXHQmLS1ncmF5OmJlZm9yZSB7XG5cdFx0YmFja2dyb3VuZDogJGxpZ2h0LWJlaWdlO1xuXHR9XG59XG5cbi5zbGFudGVkLnNoaWZ0LW9uZS1zY3JlZW4taGVpZ2h0IHtcblx0bWFyZ2luLXRvcDogY2FsYygxMDB2aCArIDEwMHB4KTtcbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvc2Nzcy9jb21wb25lbnRzL19oZWxwZXJzLnNjc3MiLCIvKioqKioqKioqKioqKioqKioqKioqXG5MSU5LIFNUWUxFU1xuKioqKioqKioqKioqKioqKioqKioqL1xuXG5hIHtcblxuXHRjb2xvcjogaW5oZXJpdDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0QGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvcik7XG5cblx0Ly8gTW9iaWxlIHRhcCBjb2xvclxuXHQmOmxpbmsge1xuXHRcdC8vSGlnaGxpZ2h0IGxpbmtzIG9uIGlPUywgU2ltaWxhciB0byA6aG92ZXIgZm9yIG1vYmlsZSBkZXZpY2VzLlxuXHRcdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvciA6IHJnYmEoIDAsIDAsIDAsIDAuMyApO1xuXHR9XG5cbn1cblxuLmxpbmstc3R5bGluZyB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkcHJpbWFyeS1jb2xvciAwJSwgJHByaW1hcnktY29sb3IgMTAwJSk7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtc2l6ZTogMCUgcmVtLWNhbGMoMik7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgYm90dG9tO1xuXHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLXNpemUgMC41NXMgY3ViaWMtYmV6aWVyKC4yLC43NSwuNSwxKSwgY29sb3IgMC41cyBlYXNlO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSByZW0tY2FsYygyKTtcblx0fVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5UWVBPR1JBUEhZIFNUWUxFU1xuKioqKioqKioqKioqKioqKioqKioqL1xuXG5zdHJvbmcsIGIge1xuXHRmb250LXdlaWdodDogNzAwO1xufVxuXG4uYnJpeHRvbi1sZWFkIHtcblx0Zm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHkgIWltcG9ydGFudDtcblx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0bGV0dGVyLXNwYWNpbmc6IDAuMTVyZW07XG59XG5cbi5ib2R5LWZvbnQge1xuXHRmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWltcG9ydGFudDtcblx0bGV0dGVyLXNwYWNpbmc6IDA7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbmgxLCAuaDEsIGgyLCAuaDIsIGgzLCAuaDMsIGg0LCAuaDQsIGg1LCAuaDUsIGg2LCAuaDYge1xuXG5cdG1hcmdpbjogMCAwIHJlbS1jYWxjKDE1KTtcblx0bGluZS1oZWlnaHQ6IDEuMjU7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdGxldHRlci1zcGFjaW5nOiAtLjAzZW07XG5cdFxuXHQmLmJsYWNrIHtcblx0XHRmb250LWZhbWlseTogJ0RJTlByby1CbGFjaycgIWltcG9ydGFudDtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRtYXJnaW46IDAgMCByZW0tY2FsYygyNSk7XG5cdH1cblxuXHQvLyBSZW1vdmluZyB0ZXh0IGRlY29yYXRpb24gZnJvbSBhbGwgaGVhZGxpbmUgbGlua3Ncblx0YSB7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdH1cblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdGJyIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cbn1cblxuaDEsIC5oMSB7XG5cdEBleHRlbmQgLmJyaXh0b24tbGVhZDtcblx0Y29sb3I6ICRibGFjaztcblx0Zm9udC1zaXplOiByZW0tY2FsYyg0MCk7XG5cdGxpbmUtaGVpZ2h0OiAxO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoODApO1xuXHRcdH1cblx0XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYyg5MCk7XG5cdFx0XHRsaW5lLWhlaWdodDogMS4xO1xuXHRcdH1cblx0XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTAwKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjE7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlKSB7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDEyMCk7XG5cdFx0XHRsaW5lLWhlaWdodDogMS4xO1xuXHRcdH1cblxuXHRcdCYuYm9keS1mb250IHtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMzYpO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDQ1KTtcblx0XHRcdH1cblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDUwKTtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuMTtcblx0XHRcdH1cblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcblx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYyg2MCk7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxLjE7XG5cdFx0XHR9XG5cdFx0fVxuXG59XG5cbmgyLCAuaDIge1xuXHRAZXh0ZW5kIC5icml4dG9uLWxlYWQ7XG5cdGNvbG9yOiAkYmxhY2s7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMzIpO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYyg1Mik7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYyg2Nik7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMTtcblx0fVxuXG5cdCYuYm9keS1mb250IHtcblxuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMzApO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMzgpO1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoNDYpO1xuXHRcdH1cblxuXHR9XG5cbn1cblxuaDMsIC5oMyB7XG5cdEBleHRlbmQgLmJyaXh0b24tbGVhZDtcblx0Zm9udC1zaXplOiByZW0tY2FsYygyNik7XG5cdGNvbG9yOiAkYmxhY2s7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoNDIpO1xuXHRcdG1hcmdpbjogMCAwIHJlbS1jYWxjKDI1KTtcblx0fVxuXG5cdCYuYm9keS1mb250IHtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMzYpO1xuXHRcdH1cblxuXHR9XG5cbn1cblxuaDQsIC5oNCB7XG5cdGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcblx0Zm9udC1zaXplOiByZW0tY2FsYygxNyk7XG5cdG1hcmdpbjogMCAwIHJlbS1jYWxjKDEwKTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygyNCk7XG5cdH1cblxuXHQmLmJyaXh0b24tbGVhZCB7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygyMSk7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDI4KTtcblx0XHR9XG5cdFx0XG5cdH1cblxufVxuXG5oNSwgLmg1IHtcblx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuXHRmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcblx0bWFyZ2luOiAwIDAgcmVtLWNhbGMoMTApO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcblx0fVxuXG5cdCYuYnJpeHRvbi1sZWFkIHtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjQpO1xuXHRcdH1cblx0XHRcblx0fVxuXG59XG5cbmg2LCAuaDYge1xuXHRmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuXHRtYXJnaW46IDAgMCByZW0tY2FsYygxMCk7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuXHR9XG5cbn1cblxucCwgdWwgbGksIG9sIGxpLFxuLnRleHQtZGVmYXVsdCB7XG5cdGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcblx0Zm9udC1zaXplOiByZW0tY2FsYygxNCk7XG5cdGxpbmUtaGVpZ2h0OiAxLjY7XG5cdG1hcmdpbjogcmVtLWNhbGMoMCAwIDE1KTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTUpO1xuXHRcdGxldHRlci1zcGFjaW5nOiAtMC4wMTVyZW07XG5cdFx0bGluZS1oZWlnaHQ6IDEuODtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcblx0XHRsZXR0ZXItc3BhY2luZzogLTAuMDFyZW07XG5cdH1cblxufVxuXG51bCBsaSwgb2wgbGkge1xuXHRsaW5lLWhlaWdodDogMS4yNTtcblx0bWFyZ2luOiByZW0tY2FsYygxMCAwKTtcbn1cblxuLnRleHQtbGFyZ2Uge1xuXHRmb250LXNpemU6IHJlbS1jYWxjKDE1KTtcblx0bGluZS1oZWlnaHQ6IDEuNTtcblx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0bWFyZ2luOiByZW0tY2FsYygwIDAgMTUpO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygxOCk7XG5cdFx0bGluZS1oZWlnaHQ6IDEuNztcblx0XHRtYXJnaW46IHJlbS1jYWxjKDAgMCAyMCk7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuXHRcdG1hcmdpbjogcmVtLWNhbGMoMCAwIDI1KTtcblx0fVxuXG5cdGEge1xuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IpO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdH1cblx0XHRcblx0fVxuXG59XG5cbi50ZXh0LXNtYWxsIHtcblx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuXHRmb250LXNpemU6IHJlbS1jYWxjKDE1KTtcblx0bGluZS1oZWlnaHQ6IDEuNjtcblx0bWFyZ2luOiByZW0tY2FsYygwIDAgMTUpO1xuXHRcblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjg7XG5cdH1cblxufVxuXG4udGV4dC1vdXRsaW5lIHtcblx0LXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMC4wMmVtO1xuXHQtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiBpbmhlcml0O1xuXHQtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcblxuXHRoMiAmIHtcblx0XHQtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwLjAzZW07XG5cdH1cbn1cblxuLmhlYWRpbmctZGl2aWRlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQmOmFmdGVyIHtcblx0XHRjb250ZW50OiAnJztcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogcmVtLWNhbGMoNDApO1xuXHRcdGhlaWdodDogcmVtLWNhbGMoMyk7XG5cdFx0bWFyZ2luOiByZW0tY2FsYygzMCkgYXV0bztcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0fVxuXG5cdCYtLWxhcmdlIHtcblx0XHQmOmFmdGVyIHtcblx0XHRcdHdpZHRoOiByZW0tY2FsYyg1MCk7XG5cdFx0XHRtYXJnaW46IHJlbS1jYWxjKDUwKSBhdXRvIHJlbS1jYWxjKDcwKTtcblx0XHR9XG5cdH1cblxufVxuXG4udGV4dC1oaWdobGlnaHQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG5cdGJveC1zaGFkb3c6IDAuMmVtIDAgMCAkYmxhY2ssIC0wLjJlbSAwIDAgJGJsYWNrO1xuXHRjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuXHRkaXNwbGF5OiBpbmxpbmU7XG5cdHBhZGRpbmc6IC4xMmVtIDAgLjE4ZW07XG5cdG1hcmdpbjogMCAxZW0gMCAwO1xuXHQtd2Via2l0LWJveC1kZWNvcmF0aW9uLWJyZWFrOiBjbG9uZTtcblx0Ym94LWRlY29yYXRpb24tYnJlYWs6IGNsb25lO1xuXHRib3R0b206IHJlbS1jYWxjKDYpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0Ji5icml4dG9uLWxlYWQge1xuXHRcdHBhZGRpbmc6IC4xMmVtIDAgLjJlbSAuMmVtO1xuXHRcdGxlZnQ6IC4yZW07XG5cdH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuVEVYVCBDT0xPUlNcbioqKioqKioqKioqKioqKioqKioqKi9cblxuLnRleHQtd2hpdGUge1xuXHRjb2xvcjogJHdoaXRlO1xufVxuXG4udGV4dC1ibGFjayB7XG5cdGNvbG9yOiAkYmxhY2s7XG59XG5cbi50ZXh0LXByaW1hcnkge1xuXHRjb2xvcjogJHByaW1hcnktY29sb3I7XG59XG5cbmJsb2NrcXVvdGUge1xuICAgIHBhZGRpbmc6IC4xMmVtIDAgLjE4ZW07XG4gICAgbWFyZ2luOiAwIDFlbSAwIDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBtYXgtd2lkdGg6IDk0JTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IC41cmVtIGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjAyKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDEuMnJlbSAxcmVtO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRtYXgtd2lkdGg6IDg1JTtcblx0XHR9XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0bWF4LXdpZHRoOiA3NSU7XG5cdFx0fVxuXHRcdHAge1xuXHRcdFx0Zm9udC1zaXplOiAxcmVtO1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxLjE1cmVtO1xuXHRcdFx0fVxuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cbn1cblxuaDEuaGVyb19faGVhZGluZyB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiA1MCU7XG5cdGxlZnQ6IDUwJTtcblx0d2lkdGg6IDkwdnc7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBhZGRpbmc6IDA7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdGZvbnQtZmFtaWx5OiAnRElOUHJvLUJsYWNrJyAhaW1wb3J0YW50O1xuXHRmb250LXdlaWdodDogOTAwICFpbXBvcnRhbnQ7XG5cdGxldHRlci1zcGFjaW5nOiAtLjAwNWVtO1xuXHRsaW5lLWhlaWdodDogMS43O1xuXHRzcGFuIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHQtd2Via2l0LWJveC1kZWNvcmF0aW9uLWJyZWFrOiBjbG9uZTtcblx0XHRib3gtZGVjb3JhdGlvbi1icmVhazogY2xvbmU7XG5cdFx0cGFkZGluZzogLjFlbTtcblx0fVxufVxuXG4uVHlwZXdyaXRlcl9fY3Vyc29yIHtcblx0bWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uaW5saW5lLXNtaWxleSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLXJpZ2h0OiAuM2VtO1xuXHQuc21pbGV5IHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IC4yM2VtO1xuXHRcdHJpZ2h0OiAtMnB4O1xuXHRcdHdpZHRoOiAuM2VtO1xuXHRcdGhlaWdodDogLjNlbTtcblx0XHRzdmcge1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwOyBsZWZ0OiAwO1xuXHRcdH1cblx0XHQjc21pbGV5LWxvZ28ge1xuXHRcdFx0ZmlsbDogd2hpdGU7XG5cdFx0fVxuXHR9XG59XG4udGV4dC11cHBlciB7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5oZWFkaW5nLWljb24ge1xuXHRtYXgtd2lkdGg6IDEwMHB4O1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDByZW0gMCAxcmVtO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0cGFkZGluZzogM3JlbSAwIDRyZW07XG5cdH1cbn1cblxuLmNhc2VfX2NvbnRlbnQge1xuXHRoMiwgLmgyLFxuXHRoMywgLmgzIHtcblx0XHRtYXJnaW4tYm90dG9tOiAuMjVlbTtcblx0fVxufVxuXG4uZm9vdGVyIGEuc29jaWFsLWxpbmsge1xuXHRtYXJnaW46IDAgMTBweDtcblx0d2lkdGg6IDQwcHg7XG5cdGhlaWdodDogNDBweDtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGJhY2tncm91bmQ6IHdoaXRlO1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0Y29sb3I6ICRibGFjaztcblx0dHJhbnNpdGlvbjogLjE1cyBlYXNlLW91dCBhbGw7XG5cdCY6aG92ZXIge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRib3gtc2hhZG93OiAwIDAgMCAycHggJHByaW1hcnktY29sb3I7XG5cdH1cblx0Jjpob3ZlcjphZnRlciB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9zY3NzL2NvbXBvbmVudHMvX3R5cG9ncmFwaHkuc2NzcyIsIi5lbWVyZ2VbZGF0YS1lbWVyZ2VuY2U9aGlkZGVuXSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTYwcHgpO1xuICAgIHRyYW5zaXRpb246IGFsbCAuODVzIGN1YmljLWJlemllcigwLjE2NSwgMC44NDAsIDAuNDQwLCAxLjAwMCk7IC8qIGVhc2VPdXRRdWFydCAqL1xufVxuLmVtZXJnZVtkYXRhLWVtZXJnZW5jZT12aXNpYmxlXSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjg1cyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQwLCAwLjQ0MCwgMS4wMDApOyAvKiBlYXNlT3V0UXVhcnQgKi9cbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvc2Nzcy9jb21wb25lbnRzL19hbmltYXRpb25zLnNjc3MiLCIuYWNjb3JkaW9uLWNvbHVtbiB7XG4gIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDQwKTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNjUpO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi5hY2NvcmRpb24ge1xuXG4gICZfX2l0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0QGluY2x1ZGUgdHJhbnNpdGlvbihib3gtc2hhZG93KTtcblx0Ym9yZGVyLXJhZGl1czogcmVtLWNhbGMoMTApO1xuXHRcdFxuXHRcdC5hY2NvcmRpb25fX2ljb24ge1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdGhlaWdodDogcmVtLWNhbGMoMjApO1xuXHRcdFx0XHR3aWR0aDogcmVtLWNhbGMoMjApO1xuXHRcdFx0fVxuXG5cdFx0XHQmX19maWxsIHtcblx0XHRcdFx0ZmlsbDogJG1lZGl1bS1ncmF5O1xuXHRcdFx0fVxuXG5cdFx0XHQubGluZS1ob3Jpem9udGFsIHtcblx0XHRcdFx0dHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcblx0XHRcdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIGxpbmVhciAuMTVzO1xuXHRcdFx0fVxuXG5cdFx0fVxuXG4gICAgJi5pcy1hY3RpdmUge1xuXHRcdGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCBcblx0XHRcdFx0XHQwIC02cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMDgpLFxuXHRcdFx0XHRcdDAgLTEycHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMDIpO1xuICAgICAgei1pbmRleDogNTtcblxuXHRcdC5hY2NvcmRpb24tdGl0bGUge1xuICAgICAgICBcdG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblx0XHR9XG5cdFx0XHRcblx0XHQuYWNjb3JkaW9uX19pY29uIHtcblx0XHRcdC5saW5lLWhvcml6b250YWwge1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXHRcdFx0fVxuXHRcdH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcblx0XHRib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgXG5cdFx0XHRcdFx0MCAtNnB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjA4KSxcblx0XHRcdFx0XHQwIC0xMnB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjAyKTtcbiAgICAgIFx0ei1pbmRleDogNTtcblxuICAgICAgXHQuYWNjb3JkaW9uLWlubmVyIHtcblx0XHRcdGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cdFx0XHRib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxuXHRcdFxuICB9XG5cbiAgJi1pbm5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDEwKTtcblx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApO1xuXHRwYWRkaW5nOiByZW0tY2FsYygxMCAxOCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDM7XG5cbiAgICAuaXMtYWN0aXZlICYge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXHRcdH1cblx0XHRcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0cGFkZGluZzogMXJlbSAxLjVyZW07XG5cdFx0fVxuXG4gIH1cblxuICAmLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmX19pbm5lciB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICBwOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtdGl0bGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgcGFkZGluZzogcmVtLWNhbGMoMTAgMCAxMik7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG1hcmdpbik7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0XHR9XG5cbiAgICBoMyB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXHR9XG5cbiAgJi0tcHJldmlldyB7XG4gICAgLmFjY29yZGlvbi1jb2x1bW4ge1xuICAgICAgLmFjY29yZGlvbl9faXRlbSB7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjVzO1xuXG4gICAgICAgICY6bm90KC5pcy1hY3RpdmUpIHtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAmOm50aC1jaGlsZCgxKSxcbiAgICAgICAgICAmOm50aC1jaGlsZCgyKSxcbiAgICAgICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA5OTlyZW07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb25zLnNjc3MiLCJAZm9udC1mYWNlIHtcblx0Zm9udC1mYW1pbHk6ICdESU5Qcm8nO1xuXHRzcmM6IHVybCgnLi4vZm9udHMvRElOUHJvLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG5cdFx0XHR1cmwoJy4uL2ZvbnRzL0RJTlByby1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuXHRmb250LWZhbWlseTogJ0RJTlByby1Cb2xkJztcblx0c3JjOiB1cmwoJy4uL2ZvbnRzL0RJTlByby1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuXHRcdFx0dXJsKCcuLi9mb250cy9ESU5Qcm8tQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG5cdGZvbnQtZmFtaWx5OiAnRElOUHJvLUJsYWNrJztcblx0c3JjOiB1cmwoJy4uL2ZvbnRzL0RJTlByby1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcblx0XHRcdHVybCgnLi4vZm9udHMvRElOUHJvLUJsYWNrLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcblx0Zm9udC13ZWlnaHQ6IDkwMDtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3Njc3MvY29tcG9uZW50cy9fZm9udHMuc2NzcyIsIi5iZy12aWRlbyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogLTE7XG4gIH1cbiAgXG4gIC5iZy12aWRlbyAjcGxheWVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgei1pbmRleDogLTI7XG4gIH1cbiAgXG4gIC5iZy12aWRlbyAub3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cblxuXG5cbi5zeW1ib2xzIHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg1MCk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg5MCk7XG4gICAgfVxuXG4gICAgJl9fcm93IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci10b3A6ICRnbG9iYWwtYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkZ2xvYmFsLWJvcmRlcjtcbiAgICB9XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTggMzAgMjApO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxOCA0MCAyMCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygwIDQwIDApO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmX19zeW1ib2xfX3dyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygyMSAxNSAyMyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDIwMCk7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoODYpO1xuICAgICAgICB3aWR0aDogcmVtLWNhbGMoODYpO1xuICAgICAgICB0cmFuc2l0aW9uOiAuM3MgZWFzZSBiYWNrZ3JvdW5kO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDEwMCk7XG4gICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMTAwKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDI1IDIyIDI3KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zeW1ib2xzX19saW5rICYge1xuXG4gICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCAkcHJpbWFyeS1jb2xvciwgMTAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmX19zeW1ib2wge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygyMCk7XG4gICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoODYpO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoLTAuNSk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMTAwKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3Njc3MvY29tcG9uZW50cy9fc3ltYm9scy5zY3NzIiwiLyoqXG4qIEJ1dHRvbnNcbiovXG4uYnV0dG9uLFxuYS5idXR0b24sXG5idXR0b24uYnV0dG9uLFxuaW5wdXQuYnV0dG9uLFxuI3Jlc3BvbmQgaW5wdXQjc3VibWl0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHBhZGRpbmc6IHJlbS1jYWxjKDEwIDIwIDExKTtcbiAgYm9yZGVyOiByZW0tY2FsYygyKSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IC4wNWVtO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDE4IDMyIDIwKTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDE4KTtcbiAgfVxuXG4gICYtLWZ1bGwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIGNvbG9yOiAkd2hpdGU7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRib3gtc2hhZG93OiAwIDIwcHggMzhweCByZ2JhKDAsIDAsIDAsIDAuMTYpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcblx0fVxuXHRcblx0LnRvcC1zZWN0aW9uICYge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0XHRib3JkZXItY29sb3I6ICR3aGl0ZTtcblx0XHRjb2xvcjogJGJsYWNrO1xuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0XHRcdGJvcmRlci1jb2xvcjogJHdoaXRlO1xuXHRcdFx0Y29sb3I6ICRibGFjaztcblx0XHR9XG5cdH1cblxuICAmLS1ob2xsb3cge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogcmVtLWNhbGMoMykgc29saWQgJHByaW1hcnktY29sb3I7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG5cdFx0fVxuXHRcdFxuXHRcdC50b3Atc2VjdGlvbiAmIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0Ym9yZGVyOiByZW0tY2FsYygzKSBzb2xpZCB3aGl0ZTtcblx0XHRcdGNvbG9yOiB3aGl0ZTtcblxuXHRcdFx0Jjpob3Zlcixcblx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB3aGl0ZTtcblx0XHRcdFx0Y29sb3I6ICRibGFjaztcblx0XHRcdH1cblx0XHR9XG4gIH1cblxuICAmLS1pbmxpbmUge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgICAgaGVpZ2h0OiAyLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogLTAuNjI1cmVtO1xuICAgIH1cbiAgfVxuXG4gICYtLXNtYWxsIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiAgICBwYWRkaW5nOiByZW0tY2FsYyg4IDE4KTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQsXG4gICYuZGlzYWJsZWQsXG4gICY6ZGlzYWJsZWRbZGlzYWJsZWRdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICB9XG4gIH1cbn1cblxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdEBleHRlbmQgLmJ1dHRvbjtcbn1cblxuLmFjdGlvbi1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA0cmVtIDAgMnJlbTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3Njc3MvY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwiLyoqKioqKioqKioqKioqKioqKioqKlxuREVTS1RPUCBNRU5VIFNUWUxJTkdcbioqKioqKioqKioqKioqKioqKioqKi9cblxuLm1lbnUge1xuICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICYtLW1haW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgLm1lbnVfX2l0ZW0ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cdFx0fVxuXHRcdFxuXHRcdC53cG1sLWxzLWZsYWcge1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuICB9XG59XG5cbi5tZW51X19pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogcmVtLWNhbGMoMCAxNik7XG59XG5cbi5tZW51X19saW5rIHtcblx0Zm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG5cdG1hcmdpbjogMDtcbiAgb3V0bGluZTogMCAhaW1wb3J0YW50O1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNik7XG5cdH1cblx0XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcblx0fVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cblxuLy8gICAmOmFmdGVyLFxuLy8gICAuaXMtYWN0aXZlICY6YWZ0ZXIge1xuLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLyAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4vLyAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICR3aGl0ZTtcbi8vICAgICBwYWRkaW5nLWJvdHRvbTogaW5oZXJpdDtcbi8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgICAgZGlzcGxheTogYmxvY2s7XG4vLyAgICAgYm90dG9tOiAtM3B4O1xuLy8gICAgIGxlZnQ6IDA7XG4vLyAgICAgd2lkdGg6IDEwMCU7XG4vLyAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMzVzIGN1YmljLWJlemllcigwLjUyLCAwLjAxLCAwLjE2LCAxKSxcbi8vICAgICAgIGJvcmRlci1jb2xvciAwLjM1cyBjdWJpYy1iZXppZXIoMC41MiwgMC4wMSwgMC4xNiwgMSk7XG4vLyAgIH1cblxuLy8gICAuaXMtYWN0aXZlICY6YWZ0ZXIge1xuLy8gICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbi8vICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbi8vICAgfVxuXG4vLyAgICY6aG92ZXIsXG4vLyAgICY6Zm9jdXMge1xuLy8gICAgIGNvbG9yOiAkd2hpdGU7XG5cbi8vICAgICAmOmFmdGVyIHtcbi8vICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbi8vICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuLy8gICAgIH1cbi8vICAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5ERVNLVE9QIERST1BET1dOIE1FTlVcbioqKioqKioqKioqKioqKioqKioqKi9cblxuLm1lbnUtLW1haW4ge1xuICAubWVudV9faXRlbSB7XG4gICAgJi5oYXMtY2hpbGRyZW4ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAuc3ViX19tZW51IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnN1Yl9fbWVudSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDMwMCk7XG4gICAgICBtaW4td2lkdGg6IHJlbS1jYWxjKDE4MCk7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiByZW0tY2FsYygxNCAzIDE0IDApO1xuICAgICAgdG9wOiByZW0tY2FsYyg0Nik7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgLThweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4wOCksXG4gICAgICAgIDAgLTE4cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMDIpO1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIHdpZHRoOiByZW0tY2FsYygxOCk7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMTgpO1xuICAgICAgICB0b3A6IC0ycHg7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuXG4gICAgICAubWVudV9faXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMyAxMCk7XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgICAgICAuc3RhdGUtLXNjcm9sbGVkICYge1xuICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDMgMTcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICAgIGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5NT0JJTEUgTUVOVSBTVFlMSU5HXG4qKioqKioqKioqKioqKioqKioqKiovXG5cbi5tZW51LXRvZ2dsZSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgd2lkdGg6IHJlbS1jYWxjKDQwKTtcbiAgaGVpZ2h0OiByZW0tY2FsYyg0MCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgZWFzZSAwLjNzO1xuXG4gIC8vICY6aG92ZXIge1xuICAvLyAgIGN1cnNvcjogcG9pbnRlcjtcbiAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtYmVpZ2U7XG4gIC8vICAgYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoNjApO1xuXG4gIC8vICAgLmhlYWRlcl9fbWFpbi0taW52ZXJ0ZWQgJiB7XG4gIC8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCR3aGl0ZSwgMC4xKTtcbiAgLy8gICB9XG4gIC8vIH1cbn1cblxuLmhhbWJ1cmdlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogcmVtLWNhbGMoNDApO1xuICB3aWR0aDogcmVtLWNhbGMoNDApO1xuICB0b3A6IHJlbS1jYWxjKC00KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gIHBhZGRpbmc6IDA7IG1hcmdpbjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiAuMTVzIGVhc2Utb3V0IGFsbDtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRwcmltYXJ5LWNvbG9yLCAxNSUpO1xuICB9XG59XG5cbi5oYW1idXJnZXJfX2JhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gIHdpZHRoOiBjYWxjKDcwJSAtIDFweCk7XG4gIGhlaWdodDogcmVtLWNhbGMoNSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogY2FsYygxNSUgKyAxcHgpO1xuICByaWdodDogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiB0b3AgMC4zcyBlYXNlLCBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTtcblxuICAmOm50aC1vZi10eXBlKDEpIHtcbiAgICB0b3A6IHJlbS1jYWxjKDkpO1xuICB9XG5cbiAgJjpudGgtb2YtdHlwZSgyKSB7XG4gICAgdG9wOiByZW0tY2FsYygxNyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gICY6bnRoLW9mLXR5cGUoMykge1xuICAgIHRvcDogcmVtLWNhbGMoMjUpO1xuICB9XG5cbiAgLmhlYWRlcl9fbWFpbi0taW52ZXJ0ZWQgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXG4gICAgLnN0YXRlLS1zY3JvbGxlZCAmIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gIH1cblxufVxuXG4ubWVudS10b2dnbGVbYXJpYS1leHBhbmRlZD1cInRydWVcIl0ge1xuICAuaGFtYnVyZ2VyX19iYXIge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odG9wLCBvcGFjaXR5LCB0cmFuc2Zvcm0pO1xuICB9XG5cbiAgLmhhbWJ1cmdlcl9fYmFyOm50aC1vZi10eXBlKDIpIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgLmhhbWJ1cmdlcl9fYmFyOm50aC1vZi10eXBlKDEpIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgdG9wOiAxNnB4O1xuICB9XG5cbiAgLmhhbWJ1cmdlcl9fYmFyOm50aC1vZi10eXBlKDMpIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgIHRvcDogMTZweDtcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5PRkYtQ0FOVkFTIFNUWUxJTkdcbioqKioqKioqKioqKioqKioqKioqKi9cblxuLm9mZi1jYW52YXMge1xuICBvcGFjaXR5OiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IC41cyBlYXNlLW91dCBvcGFjaXR5O1xuXG4gICYuaXMtb3BlbiB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICBcbiAgLm1lbnVfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAubWVudV9fbGluayB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBib3JkZXItbGVmdDogMCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4ub2ZmLWNhbnZhc19fY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLm9mZi1jYW52YXNfX2lubmVyIHtcbiAgcGFkZGluZzogcmVtLWNhbGMoMjUpO1xuICBoZWlnaHQ6IDEwMCU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDUwKTtcbiAgfVxufVxuXG4ub2ZmLWNhbnZhcy5pcy1vcGVuIC5tZW51X19pdGVtIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICBvcGFjaXR5OiAxO1xuXG4gICY6bnRoLWNoaWxkKDEpIHsgdHJhbnNpdGlvbi1kZWxheTogLjFzOyB9XG4gICY6bnRoLWNoaWxkKDIpIHsgdHJhbnNpdGlvbi1kZWxheTogLjJzOyB9XG4gICY6bnRoLWNoaWxkKDMpIHsgdHJhbnNpdGlvbi1kZWxheTogLjNzOyB9XG4gICY6bnRoLWNoaWxkKDQpIHsgdHJhbnNpdGlvbi1kZWxheTogLjRzOyB9XG4gICY6bnRoLWNoaWxkKDUpIHsgdHJhbnNpdGlvbi1kZWxheTogLjVzOyB9XG4gICY6bnRoLWNoaWxkKDYpIHsgdHJhbnNpdGlvbi1kZWxheTogLjZzOyB9XG5cbn1cblxuLm1lbnUtLW9mZmNhbnZhcyB7XG4gIC5tZW51X19pdGVtIHtcbiAgICBcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIC41NXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0MCwgMC40NDAsIDEuMDAwKTsgLyogZWFzZU91dFF1YXJ0ICovXG5cbiAgICAmLmhhcy1jaGlsZHJlbjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Fycm93LWRvd24td2hpdGUuc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICAgIGhlaWdodDogMzVweDtcbiAgICAgIHdpZHRoOiAzNXB4O1xuICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDM0KTtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzApO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICB9XG5cbiAgICAmLmhhcy1jaGlsZHJlbi5pcy1vcGVuOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvYXJyb3ctdXAtd2hpdGUuc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm1lbnVfX2xpbmsge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBwYWRkaW5nOiByZW0tY2FsYygxMCAwKTtcbiAgICAgIG1hcmdpbjogcmVtLWNhbGMoMTAgMCk7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIEBleHRlbmQgLmgzO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIC41NXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0MCwgMC40NDAsIDEuMDAwKTsgLyogZWFzZU91dFF1YXJ0ICovXG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7IGxlZnQ6IC01JTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjU1cyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgICAgJjphZnRlcjpmb2N1cyB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgICAmOmZvY3VzOmhvdmVyOmFmdGVyLFxuICAgICAgJjpob3ZlcjphZnRlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHdpZHRoOiBjYWxjKDExMCUpO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIFxuICAgICAgfVxuXG4gICAgICAud3BtbC1scy1uYXRpdmUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE1KTtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMjApO1xuICAgICAgICB0b3A6IC0zcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2ljb24tbGFuZ3VhZ2Uuc3ZnXCIpO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDEwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5tZW51LFxuICAgIC5zdWItbWVudSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgcGFkZGluZzogcmVtLWNhbGMoNSAxMCA2KTtcbiAgICAgIG1hcmdpbjogMDtcblxuICAgICAgLm1lbnVfX2l0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDApO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC5tZW51X19saW5rIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYyg1IDE1IDEwKTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKipcblBBR0lOQVRJT04gU1RZTElOR1xuKioqKioqKioqKioqKioqKioqKioqL1xuXG4ucGFnZS1uYXZpZ2F0aW9uIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmbGV4OiAyIDAgYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMCk7XG4gIH1cblxuICB1bCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIG1hcmdpbjogMXB4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IHJlbS1jYWxjKDAgMTApO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDAgMTUgMCAwKTtcbiAgICAgIH1cblxuICAgICAgYSxcbiAgICAgICYuY3VycmVudCB7XG4gICAgICAgIHdpZHRoOiByZW0tY2FsYygzMCk7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMzApO1xuICAgICAgICBib3JkZXItcmFkaXVzOiByZW0tY2FsYyg3KTtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgZGFya2VuKCRsaWdodC1iZWlnZSwgMTAlKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDcgMTEgNyk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE1KTtcbiAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMzYpO1xuICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMzMpO1xuICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDYgMTEpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuY3VycmVudCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgfVxuXG4gICAgICBzcGFuLmN1cnJlbnQsXG4gICAgICBhOmhvdmVyLFxuICAgICAgYTpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmlzLWxvZ2dlZC1pbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgLmxvZ2dlZC1pbiAmIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAubWVudV9fbGluayB7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDIwKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9zY3NzL2NvbXBvbmVudHMvX25hdmlnYXRpb24uc2NzcyIsIi8qKioqKioqKioqKioqKioqKioqKipcbkxJU1QgKCBVTCwgTEkgKSAtIFNUWUxFU1xuKioqKioqKioqKioqKioqKioqKioqL1xuXG51bCB7XG5cblx0Lm1haW4taGVhZGVyICYsICYubWVudSB7XG5cdFx0cGFkZGluZzogMDtcblx0XHRtYXJnaW46IDA7XG5cdH1cblxufVxuXG4ubGlzdCB7XG5cblx0Ji0tY2xlYW4ge1xuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cblx0Ji0taG9yaXpvbnRhbCB7XG5cdFx0XG5cdFx0Lmxpc3RfX2l0ZW0ge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdH1cblxuXHR9XG5cbn1cblxuLmxpc3RfX2l0ZW0ge1xuXG59XG5cbi5saXN0X19saW5rIHtcblxufVxuXG5cbi5pbWFnZS1ncmlkIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRtYXJnaW46IDAgYXV0bztcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdG1heC13aWR0aDogMTYwMHB4O1xuXHRcdGFsaWduLXNlbGY6IGNlbnRlcjtcblx0fVxuXHRcblx0Jl9fY29udGVudCB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cblx0Jl9faXRlbSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHdpZHRoOiA1MCU7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdHdpZHRoOiAzMyU7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdHdpZHRoOiAyNSU7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG5cdFx0XHR3aWR0aDogMjAlO1xuXHRcdH1cblx0XHQmOmhvdmVyIC5pbWFnZS1ncmlkX19ob3ZlciB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxuXG5cdCYtLWxhcmdlIHtcblx0XHQuaW1hZ2UtZ3JpZF9faXRlbSB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHR9XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdHdpZHRoOiAzMy4zMzMzMzMlO1xuXHRcdFx0fVxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcblx0XHRcdFx0d2lkdGg6IDMzLjMzMzMzJTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLS1zcGFjZWQge1xuXHRcdC5pbWFnZS1ncmlkX19jb250ZW50IHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHRwYWRkaW5nOiAxZW07XG5cdFx0XHR9XG5cdFx0XHRcblx0XHR9XG5cdH1cblxuXHQmLS1jYXNlIC5pbWFnZS1ncmlkX19ob3ZlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0dG9wOiBhdXRvO1xuXHRcdGJvdHRvbTogMGVtICFpbXBvcnRhbnQ7XG5cdFx0bGVmdDogMDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0cGFkZGluZy1ib3R0b206IDEuNWVtO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdHRvcDogMWVtOyBsZWZ0OiAxZW07XG5cdFx0XHRib3R0b206IGF1dG87XG5cdFx0XHR3aWR0aDogY2FsYygxMDAlIC0gMmVtKTtcblx0XHRcdGhlaWdodDogY2FsYygxMDAlIC0gMmVtKTtcblx0XHRcdHBhZGRpbmctYm90dG9tOiAwO1xuXHRcdH1cblxuXHRcdFxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMCUsIHJnYmEoMCwwLDAsMSkgMTAwJSk7XG5cdFx0b3BhY2l0eTogMTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblx0XHR9XG5cdFx0XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHRcdHRyYW5zaXRpb246IC4yNXMgZWFzZS1vdXQgYWxsO1xuXHRcdGg0IHtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdFx0XHRmb250LXNpemU6IDI0cHg7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IC4yZW07XG5cdFx0XHR9XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdFx0aDUge1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRcdH1cblx0XHRcdG1hcmdpbjogMDsgcGFkZGluZzogMDtcblx0XHR9XG5cdFx0cCB7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0fVxuXHRcdFx0bWFyZ2luOiAwOyBwYWRkaW5nOiAwO1xuXHRcdH1cblx0fVxuXG5cdCZfX2hvdmVyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAxZW07IGxlZnQ6IDFlbTtcblx0XHRib3R0b206IGF1dG87XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHR3aWR0aDogY2FsYygxMDAlIC0gMmVtKTtcblx0XHRoZWlnaHQ6IGNhbGMoMTAwJSAtIDJlbSk7XG5cdFx0XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHRcdHRyYW5zaXRpb246IC4yNXMgZWFzZS1vdXQgYWxsO1xuXHRcdGg0IHtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdFx0XHRmb250LXNpemU6IDI0cHg7XG5cdFx0XHR9XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdFx0aDUge1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRcdH1cblx0XHRcdG1hcmdpbjogMDsgcGFkZGluZzogMDtcblx0XHR9XG5cdH1cblxufVxuXG4uYWx0ZXJuYXRpbmctZ3JpZCB7XG5cblx0Jl9faW1hZ2Utd3JhcHBlciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1x0XG5cdFx0Ly8gb3ZlcmZsb3c6IGhpZGRlbjtcblx0fVxuXG5cdCZfX2ltYWdlIHtcblx0XHQvLyBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ly8gdG9wOiAwOyBsZWZ0OiAwO1xuXHRcdC8vIHdpZHRoOiAxMDAlO1xuXHRcdC8vIGhlaWdodDogMTAwJTtcblx0XHQvLyB6LWluZGV4OiAzO1xuXHR9XG5cblx0Jl9faGVhZGluZyB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogNTAlO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcblx0XHR6LWluZGV4OiA0O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxuXG5cdCZfX2NvbnRlbnQge1xuXHRcdFxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRwYWRkaW5nOiA3cmVtIDJyZW07XG5cblx0XHRwIHtcblx0XHRcdEBleHRlbmQgLnRleHQtbGFyZ2U7XG5cdFx0fVxuXHRcdFxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdHBhZGRpbmc6IDRyZW07XG5cdFx0fVxuXHR9XG5cbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvc2Nzcy9jb21wb25lbnRzL19saXN0cy5zY3NzIiwiLmhhbGYtaGVpZ2h0IC5jYXJvdXNlbF9fY2VsbCB7XG5cdGhlaWdodDogNTB2aCAhaW1wb3J0YW50O1xufVxuXG4uY2Fyb3VzZWwge1xuXG5cdCYtLXF1b3RlLCAmLS11c3AsICYtLWNhc2VzLCAmLS1oZWFkZXJzIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcblx0XHRjb2xvcjogd2hpdGU7XG5cblx0XHQmX19pbWFnZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0XHR9XG5cblx0XHQmX19jZWxsIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiAxMDB2aDtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdG92ZXJmbG93OiB2aXNpYmxlO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0b3BhY2l0eTogMC41O1xuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAuMzVzIGVhc2U7XG5cblx0XHRcdCYuaXMtc2VsZWN0ZWQge1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHR0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSB0cmFuc2xhdGVYKDBweCkgcm90YXRlWSgwZGVnKSB0cmFuc2xhdGVaKDBweCk7XG5cdFx0XHR9XG5cblx0XHRcdC5jYXJvdXNlbC0tcmVhZHkgJiB7XG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdFx0bWluLWhlaWdodDogMTAwJTtcblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdCZfX3dyYXBwZXIge1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0dHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0XHR9XG5cblx0XHQmX19sZWZ0LCAmX19yaWdodCB7XG5cdFx0XHR3aWR0aDogNTAlO1xuXHRcdH1cblx0XHQmX19sZWZ0IHtcblx0XHRcdHBhZGRpbmc6IDAgM3JlbTtcblx0XHR9XG5cblx0XHQmX19pbm5lciB7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHRwYWRkaW5nOiByZW0tY2FsYygwKTtcblx0XHRcdH1cblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRwYWRkaW5nOiByZW0tY2FsYygwMCk7XG5cdFx0XHR9XG5cblx0XHRcdCo6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0fVxuXG5cdC5mbGlja2l0eS1zbGlkZXIge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxuXG5cdC5mbGlja2l0eS12aWV3cG9ydCB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDApO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDApO1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDApO1xuXHRcdH1cblx0fVxuXG5cdCYuaXMtZHJhZ2dhYmxlIHtcblxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0b3V0bGluZTogbm9uZTtcblx0XHR9XG5cblx0XHQuZmxpY2tpdHktdmlld3BvcnQge1xuXHRcdFx0Y3Vyc29yOiBncmFiO1xuXG5cdFx0XHQmLmlzLXBvaW50ZXItZG93biB7XG5cdFx0XHRcdGN1cnNvcjogZ3JhYmJpbmc7XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0fVxuXG59XG5cbi52aXNpYmlsaXR5LW92ZXJsYXkge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHotaW5kZXg6IDk7XG5cdGJvdHRvbTogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMjV2aDtcblx0YmFja2dyb3VuZDogcmdiKDI1NSwyNTUsMjU1KTtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsMjU1LDI1NSwwKSAwJSwgcmdiYSgwLDAsMCwxKSAxMDAlKTtcblx0b3BhY2l0eTogLjk7XG59XG5cbi5jYXNlX19oZWFkaW5nLFxuLmNhcm91c2VsLS1jYXNlc19faGVhZGluZyxcbi5jYXJvdXNlbC0taGVhZGVyc19faGVhZGluZyB7XG5cblx0ei1pbmRleDogMTA7XG5cblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogOTUlO1xuXG5cdGJvdHRvbTogNHJlbTtcblx0bGVmdDogNTAlO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRib3R0b206IDRyZW07XG5cdFx0bGVmdDogNHJlbTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG5cdH1cblxuXHRoMiB7XG5cdFx0Zm9udC1mYW1pbHk6ICdESU5Qcm8tQmxhY2snICFpbXBvcnRhbnQ7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcblx0XHRsaW5lLWhlaWdodDogMWVtO1xuXHRcdHRyYW5zaXRpb246IGFsbCA1MDBtcyBjdWJpYy1iZXppZXIoMC4yMzAsIDEuMDAwLCAwLjMyMCwgMS4wMDApOyAvKiBlYXNlT3V0UXVpbnQgKi9cblxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjYpO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoNTIpO1xuXHRcdH1cblx0XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYyg2Nik7XG5cdFx0XHRsaW5lLWhlaWdodDogMS4xO1xuXHRcdH1cblxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGhlaWdodDogLjFlbTtcblx0XHRcdHdpZHRoOiAwO1xuXHRcdFx0Ym90dG9tOiAtLjFlbTtcblx0XHRcdGxlZnQ6IC0yMHB4O1xuXHRcdFx0YmFja2dyb3VuZDogd2hpdGU7XG5cdFx0XHRvcGFjaXR5OiAwO1xuXHRcdFx0dHJhbnNpdGlvbjogYWxsIDUwMG1zIGN1YmljLWJlemllcigwLjIzMCwgMS4wMDAsIDAuMzIwLCAxLjAwMCk7IC8qIGVhc2VPdXRRdWludCAqL1xuXHRcdH1cblx0fVxuXHRoMyB7XG5cdFx0Zm9udC1mYW1pbHk6ICdESU5Qcm8tQm9sZCcgIWltcG9ydGFudDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuXHRcdGxpbmUtaGVpZ2h0OiAwZW07XG5cdFx0dHJhbnNpdGlvbjogYWxsIDUwMG1zIGN1YmljLWJlemllcigwLjIzMCwgMS4wMDAsIDAuMzIwLCAxLjAwMCk7IC8qIGVhc2VPdXRRdWludCAqL1xuXG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygyMCk7XG5cdFxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDQyKTtcblx0XHRcdG1hcmdpbjogMCAwIHJlbS1jYWxjKDI1KTtcblx0XHR9XG5cblx0fVxufVxuXG4uY2Fyb3VzZWwtLWNhc2VzX19oZWFkaW5nIHtcblx0Jjpob3ZlciB7XG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcblx0XHR9XG5cdFx0aDI6YWZ0ZXIge1xuXHRcdFx0d2lkdGg6IGNhbGMoMTAwJSArIDQwcHgpO1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdFx0aDIge1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpO1xuXHRcdH1cblx0XHRoMyB7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwcHgpO1xuXHRcdH1cblx0fVxufVxuXG4uZmxpY2tpdHktYnV0dG9uLFxuLmZsaWNraXR5LWJ1dHRvbjpmb2N1cyxcbi5mbGlja2l0eS1idXR0b246YWN0aXZlLFxuLmZsaWNraXR5LWJ1dHRvbjpob3ZlciB7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRjb2xvcjogd2hpdGU7XG59XG4uZmxpY2tpdHktYnV0dG9uW2Rpc2FibGVkXSB7XG5cdG9wYWNpdHk6IDA7XG59XG5cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcbn1cblxuLmZsaWNraXR5LXBhZ2UtZG90cyB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAyMCU7XG5cdGxlZnQ6IDUlO1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGxpbmUtaGVpZ2h0OiAxO1xuXHR3aWR0aDogYXV0bztcblx0aGVpZ2h0OiA1MHB4O1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0aGVpZ2h0OiAxMDBweDtcblx0fVxuXG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHBhZGRpbmc6IDA7XG5cdG1hcmdpbjogMDtcblx0Y291bnRlci1yZXNldDogYTtcblxuXHQuZG90IHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGhlaWdodDogcmVtLWNhbGMoMzUpO1xuXHRcdHdpZHRoOiByZW0tY2FsYygzNSk7XG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0bWFyZ2luOiAwIDEwcHggMCAwO1xuXHRcdHRyYW5zaXRpb246IC4yNXMgZWFzZS1vdXQgYWxsO1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiKDY5LCA2OSwgNjkpO1xuXHRcdGNvbG9yOiBibGFjaztcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LWZhbWlseTogJ0RJTlByby1CbGFjayc7XG5cdFx0cGFkZGluZzogMDtcblx0XHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IGNvdW50ZXIoYSk7XG5cdFx0XHRjb3VudGVyLWluY3JlbWVudDogYTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogNTAlOyBsZWZ0OiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcblx0XHRcdGZvbnQtc2l6ZTogMnJlbTtcblx0XHR9XG5cblx0XHQmLmlzLXNlbGVjdGVkIHtcblx0XHRcdGJhY2tncm91bmQ6IHdoaXRlO1xuXHRcdFx0aGVpZ2h0OiA0MHB4O1xuXHRcdH1cblxuXHR9XG5cbn1cblxuLmNhcm91c2VsLS1jYXNlcyAuZmxpY2tpdHktcGFnZS1kb3RzLFxuLmNhcm91c2VsLS1oZWFkZXJzIC5mbGlja2l0eS1wYWdlLWRvdHMge1xuXHR0b3A6IGF1dG87XG5cdGxlZnQ6IGF1dG87XG5cblx0Ym90dG9tOiAtMTVweDsgbGVmdDogNTAlO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRib3R0b206IDFyZW07XG5cdFx0cmlnaHQ6IDVyZW07XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuXHR9XG5cblx0LmRvdCB7XG5cdFx0YmFja2dyb3VuZDogd2hpdGU7XG5cblx0XHR3aWR0aDogMTVweDtcblx0XHRoZWlnaHQ6IDE1cHg7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0d2lkdGg6IDI1cHg7XG5cdFx0XHRoZWlnaHQ6IDI1cHg7XG5cdFx0fVxuXG5cdFx0Ji5pcy1zZWxlY3RlZCB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdFxuXHRcdFx0aGVpZ2h0OiAyMHB4O1xuXHRcdFx0d2lkdGg6IDIwcHg7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRcdGhlaWdodDogMzVweDtcblx0XHRcdFx0d2lkdGg6IDM1cHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmRvdDphZnRlciB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3Njc3MvY29tcG9uZW50cy9fc2xpZGVycy5zY3NzIiwiLyoqKioqKioqKioqKioqKioqKioqKlxuRk9STSBTVFlMRVNcbioqKioqKioqKioqKioqKioqKioqKi9cblxuZm9ybSB7XG5cdG1hcmdpbi10b3A6IHJlbS1jYWxjKDIwKTtcblx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApO1xufVxuXG4uaW5wdXQsXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbmlucHV0W3R5cGU9XCJ0ZWxcIl0sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuaW5wdXRbdHlwZT1cInVybFwiXSxcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG50ZXh0YXJlYSwgc2VsZWN0IHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgcGFkZGluZzogcmVtLWNhbGMoOSAxNiAxMCkgIWltcG9ydGFudDtcbiAgbWFyZ2luOiByZW0tY2FsYygwIDAgMTApO1xuICBib3JkZXI6IHJlbS1jYWxjKDEpIHNvbGlkICRtZWRpdW0tYmVpZ2U7XG4gIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG5cdGJveC1zaGFkb3c6IDAgMCAwcHggMTAwMHB4ICR3aGl0ZSBpbnNldCxcblx0XHRcdFx0MCAwIDAgcmVtLWNhbGMoMSkgcmdiYSgkcHJpbWFyeS1jb2xvciwgMCk7XG5cdHRyYW5zaXRpb246IGJveC1zaGFkb3cgZWFzZSAwLjM1O1xuXG4gICY6Zm9jdXMge1xuXHRcdGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDBweCAxMDAwcHggJHdoaXRlIGluc2V0LFxuXHRcdFx0XHRcdDAgMCAwIHJlbS1jYWxjKDQpIHJnYmEoJHByaW1hcnktY29sb3IsIDAuMik7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgICBwYWRkaW5nOiByZW0tY2FsYygxMiAxNiAxMykgIWltcG9ydGFudDtcbiAgfVxuXG4gICYuaW5wdXQtLWlubGluZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuaW5wdXQuaW5wdXQtLTUwIHtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMC41cmVtKTtcbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgfVxuICB9XG59XG5cbmlucHV0LmlucHV0LS0zMyB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMyUgLSAxcmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMS41cmVtO1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG5mb3JtIGxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiByZW0tY2FsYygxNSkgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg0KTtcbn1cblxuW3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYXBwZWFyYW5jZTogYnV0dG9uO1xuICAtbW96LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogRmlyZWZveCAqL1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogU2FmYXJpIGFuZCBDaHJvbWUgKi9cbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMC4yNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGhlaWdodDogcmVtLWNhbGMoMTgpO1xuICB3aWR0aDogcmVtLWNhbGMoMTgpO1xuXG4gICY6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgJjpjaGVja2VkIHtcblx0XHQtd2Via2l0LWZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2NoZWNrLXByaW1hcnkuc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiByZW0tY2FsYygxNCk7XG4gIH1cblxuICArIGxhYmVsLFxuICArIHNwYW4ge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDgpO1xuICB9XG59XG5cbiNmb3JtX19sb2dpbiB7XG5cblx0LmJ1dHRvbiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxufVxuXG5zZWxlY3Qge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvYXJyb3ctZG93bi1ibGFjay5zdmdcIik7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0ICsxNnB4IGNlbnRlcjtcblx0YmFja2dyb3VuZC1zaXplOiByZW0tY2FsYygxNCk7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0bGluZS1oZWlnaHQ6IDIgIWltcG9ydGFudDtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0YmFja2dyb3VuZC1zaXplOiByZW0tY2FsYygxNik7XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHR9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKipcblBMVUdJTiBTVFlMRVNcbioqKioqKioqKioqKioqKioqKioqKi9cbi8vIE1ha2VzIEdyYXZpdHkgRm9ybXMgcGxheSBuaWNlIHdpdGggRm91bmRhdGlvbiBGb3JtIHN0eWxlc1xuLmdmb3JtX2JvZHkgdWwge1xuICBsaXN0LXN0eWxlOiBub25lIG91dHNpZGUgbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuXG5ib2R5IC5nZm9ybV93cmFwcGVyIHtcblxuXHQuZ2Zvcm1fZm9vdGVyLFxuXHQuZ2lucHV0X2NvbnRhaW5lcl9jb25zZW50IHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cblxuXHQuZ2ZpZWxkX3JlcXVpcmVkIHtcblx0XHRjb2xvcjogJGJsYWNrO1xuXHR9XG5cbn1cblxuLmdpbnB1dF9jb250YWluZXJfY29uc2VudCB7XG5cdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcbn1cblxuLmdmaWVsZF9jb25zZW50X2xhYmVsIHtcblx0Zm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50O1xuXG5cdGEge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHR9XG59XG5cbi5nZmllbGRfcHJpY2Uge1xuXG5cdC5pbnN0cnVjdGlvbiB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG59XG5cbi5nZmllbGRfdG90YWwge1xuXHRib3JkZXItcmFkaXVzOiAzcHg7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRtYXJnaW46IHJlbS1jYWxjKDE0KTtcblx0fVxuXHRcblx0LmdpbnB1dF9jb250YWluZXIsIC5naW5wdXRfdG90YWwge1xuXHRcdG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcblx0XHRtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuaW5wdXQ6LWludGVybmFsLWF1dG9maWxsLXNlbGVjdGVkLFxuaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCxcbmlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG5pbnB1dDotd2Via2l0LWF1dG9maWxsOmZvY3VzLFxuaW5wdXQ6LWludGVybmFsLWF1dG9maWxsLXNlbGVjdGVkLFxudGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbCxcbnRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG50ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmZvY3VzLFxuc2VsZWN0Oi13ZWJraXQtYXV0b2ZpbGwsXG5zZWxlY3Q6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbnNlbGVjdDotd2Via2l0LWF1dG9maWxsOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDBweCAxMDAwcHggI2ZmZiBpbnNldCAhaW1wb3J0YW50O1xufVxuXG4uZm9ybV9fYm90dG9tIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIHRleHRhcmVhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGhlaWdodDogcmVtLWNhbGMoMTgwKTtcbiAgfVxuXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogcmVtLWNhbGMoMTUpO1xuICAgIGJvdHRvbTogcmVtLWNhbGMoMjApO1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDkgMjIgMTEpO1xuICB9XG59XG5cbiNtY19lbWJlZF9zaWdudXAge1xuXG5cdC5mb3JtX19ncm91cCB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0bWF4LXdpZHRoOiByZW0tY2FsYyg1NjApO1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE1KTtcblxuXHRcdC5lbWFpbCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygwKTtcblx0XHRcdG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMjApO1xuXHRcdFx0aGVpZ2h0OiByZW0tY2FsYyg1Mik7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0d2lkdGg6IHJlbS1jYWxjKDQ1MCk7XG5cdFx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxufVxuXG5ib2R5IC5nZm9ybV93cmFwcGVyIHNwYW4uZ2lucHV0X3RvdGFsIHtcblx0Y29sb3I6ICRibGFjaztcbn1cblxuLmx3YSB7XG5cblx0dHIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1mbG93OiByb3cgd3JhcDtcblx0fVxuXG5cdHRkIHtcblx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHR9XG5cblx0Lmx3YS1yZW1lbWJlcm1lIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Lmx3YS1zdWJtaXQtbGlua3Mge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdD4gbGFiZWwge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0fVxuXG5cdC5sd2EtbGlua3MtcmVtZW1iZXIge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdEBleHRlbmQgLmxpbmstc3R5bGluZyAhb3B0aW9uYWw7XG5cdH1cblxuXHQjbHdhX3dwLXN1Ym1pdCB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cbn1cbi5nZmllbGRfZGVzY3JpcHRpb24ge1xuXHRwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tYm90dG9tOiAyOXB4ICFpbXBvcnRhbnQ7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi5nZm9ybV9sZWdhY3lfbWFya3VwX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIGxpLmdmaWVsZCxcbi5nZmllbGQtLXdpZHRoLWZ1bGwsXG4uZ2ZpZWxkwqB7XG5cdHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvc2Nzcy9jb21wb25lbnRzL19mb3Jtcy5zY3NzIiwiLyoqKioqKioqKioqKioqKioqKioqKlxuTWFpbiBIZWFkZXJcbioqKioqKioqKioqKioqKioqKioqKi9cblxuYm9keS5hZG1pbi1iYXIgLmhlYWRlcl9fbWFpbiB7XG5cdHRvcDogMzJweDtcbn1cblxuLmhlYWRlcl9fbWFpbiB7XG5cdHdpbGwtY2hhbmdlOiBwYWRkaW5nLCB0b3AsIHRyYW5zZm9ybTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdHBhZGRpbmc6IHJlbS1jYWxjKDEuNXJlbSAwKTtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR6LWluZGV4OiAyMDtcblx0dG9wOiAwO1xuXHR0cmFuc2l0aW9uOiAuMnMgZWFzZSBwYWRkaW5nLCAuMnMgZWFzZSB0b3AsIC4zNXMgZWFzZSB0cmFuc2Zvcm07XG5cblx0LnN0YXRlLS1zY3JvbGxlZC1kb3duICYge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG5cdH1cblx0LnN0YXRlLS1zY3JvbGxlZC11cCAmIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG5cdH1cblxuXHQuc3RhdGUtLXNjcm9sbGVkICYge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdC8vIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KSBicmlnaHRuZXNzKDYwJSk7XG5cdFx0LmhlYWRlcl9fbG9nbyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9sb2dvL2hhcHBpZnktbG9nby1ncmVlbi5zdmcnKTtcblx0XHR9XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdHBhZGRpbmc6IHJlbS1jYWxjKDIuMTI1cmVtIDAgMzApO1xuXG5cdFx0Ly8gLnN0YXRlLS1zY3JvbGxlZCAmIHtcblx0XHQvLyBcdHBhZGRpbmc6IHJlbS1jYWxjKDE1IDAgMTYpO1xuXHRcdC8vIH1cblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG5cdFx0cGFkZGluZzogcmVtLWNhbGMoMi43NXJlbSAwIDMwKTtcblx0XHQucm93IHtcblx0XHRcdHBhZGRpbmctbGVmdDogMi43NXJlbTtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDIuNzVyZW07XG5cdFx0fVxuXHR9XG5cblx0Ji0taW52ZXJ0ZWQge1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcdFxuXHRcdHdpZHRoOiAxMDAlO1xuICAgIFx0Y29sb3I6ICR3aGl0ZTtcblx0XHR0b3A6IHJlbS1jYWxjKDApO1xuXHRcdFxuXHRcdC5zdGF0ZS0tc2Nyb2xsZWQgJiB7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdH1cblxuXHR9XG5cblx0Jl9fbGVmdCB7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHR9XG5cdH1cblxuXHQmX19jZW50ZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cdH1cblxufVxuXG4uaGVhZGVyX19sb2dvIHtcblxuXHRAZXh0ZW5kIC50ZXh0LWhpZGU7XG5cblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0aGVpZ2h0OiByZW0tY2FsYygzNik7XG5cdHdpZHRoOiByZW0tY2FsYygxMjcpO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0aGVpZ2h0OiByZW0tY2FsYyg0NCk7XG5cdFx0d2lkdGg6IHJlbS1jYWxjKDE1NSk7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0aGVpZ2h0OiByZW0tY2FsYyg1MCk7XG5cdFx0d2lkdGg6IHJlbS1jYWxjKDE2NSk7XG5cdH1cblxuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9sb2dvL2hhcHBpZnktbG9nby1ncmVlbi5zdmcnKTtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBjZW50ZXI7XG5cdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblxuXHRAaW5jbHVkZSB0cmFuc2l0aW9uKHdpZHRoLCBoZWlnaHQpO1xuXG59XG5cbi5icmFuZC1sb2dvIHtcblxuXHRAZXh0ZW5kIC50ZXh0LWhpZGU7XG5cblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0aGVpZ2h0OiByZW0tY2FsYygyMCk7XG5cdHdpZHRoOiByZW0tY2FsYyg5MCk7XG5cblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvbG9nby9oYXBwaWZ5LWxvZ28tZ3JlZW4uc3ZnJyk7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyO1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuSEVBREVSIFRPUCBCQVJcbioqKioqKioqKioqKioqKioqKioqKi9cblxuLmhlYWRlcl9fdG9wIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRjb2xvcjogJHdoaXRlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG5cdHBhZGRpbmc6IHJlbS1jYWxjKDUgMCA4KTtcblx0ei1pbmRleDogNTtcblxuXHQub2ZmLWNhbnZhcy0tbWVudS1pbnZlcnRlZCAmIHtcblx0XHRib3JkZXItYm90dG9tOiByZW0tY2FsYygxKSBzb2xpZCByZ2JhKCR3aGl0ZSwgLjE1KTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0cGFkZGluZzogcmVtLWNhbGMoOCAwIDkpO1xuXHR9XG5cblx0Jl9fbGluaywgJl9fdGV4dCB7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygxMSk7XG5cdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuXHRcdH1cblx0fVxufVxuXG4uaGVhZGVyX190b3BfX3NlbGxpbmctcG9pbnRzIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW46IHJlbS1jYWxjKDAgMCAwIDgpO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0bWFyZ2luOiByZW0tY2FsYygwIDgpO1xuXHR9XG5cbn1cblxuLmhlYWRlcl9fdG9wX19pY29uIHtcblx0bWF4LWhlaWdodDogcmVtLWNhbGMoOSk7XG5cdG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMik7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0bWF4LWhlaWdodDogcmVtLWNhbGMoMTMpO1xuXHRcdHRvcDogLTFweDtcblx0fVxufVxuXG4uaGVhZGVyX190b3BfX2xlZnQge1xuXHRsaW5lLWhlaWdodDogMS4xO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxufVxuXG4uaGVhZGVyX190b3BfX3JpZ2h0IHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdGxpbmUtaGVpZ2h0OiAxLjE7XG59XG5cblxuLmNhc2VfX2hlYWRlciB7XG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvc2Nzcy9jb21wb25lbnRzL19oZWFkZXIuc2NzcyIsIi8qKioqKioqKioqKioqKioqKioqKipcblRvZ2dsZSBDb250ZW50IExpbmtzXG4qKioqKioqKioqKioqKioqKioqKiovXG5cbi50b2dnbGVfX2xpbmsge1xuXG5cdGRpc3BsYXk6IG5vbmU7XG5cblx0Ji5pcy1hY3RpdmUge1xuXHRcdGRpc3BsYXk6IGlubGluZTtcblx0fVxuXG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuRU5UUlkgQ09OVEVOVFxuKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbWcuYWxpZ25jZW50ZXIge1xuXHRtYXJnaW4tdG9wOiByZW0tY2FsYygxMik7XG5cdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEyKTtcbn1cblxuLnRleHQtY29udGVudCB7XG5cblx0dWwsIG9sIHtcblx0XHRmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG5cdH1cblxufVxuXG4uZW50cnktY29udGVudCwgLnRlcm0tZGVzY3JpcHRpb24ge1xuXG5cdGgxLCAuaDEsIGgyLCAuaDIsIGgzLCAuaDMsIGg0LCAuaDQsIGg1LCAuaDUsIGg2LCAuaDYge1xuXHRcdG1hcmdpbjogcmVtLWNhbGMoMCAwIDUpO1xuXHR9XG5cblx0YSB7XG5cdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdH1cblxuXHRpbWcge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdH1cblxuXHQuYWxpZ25sZWZ0LCBpbWcuYWxpZ25sZWZ0IHtcblx0XHRtYXJnaW46IHJlbS1jYWxjKDI1IDI1IDI1IDApO1xuXHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHRmbG9hdDogbGVmdDtcblx0fVxuXHQuYWxpZ25yaWdodCwgaW1nLmFsaWducmlnaHQge1xuXHRcdG1hcmdpbjogcmVtLWNhbGMoMjUgMCAyNSAyNSk7XG5cdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdGZsb2F0OiByaWdodDtcblx0fVxuXHQuYWxpZ25jZW50ZXIsIGltZy5hbGlnbmNlbnRlciB7XG5cdFx0bWFyZ2luOiByZW0tY2FsYygyNSBhdXRvKTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRjbGVhcjogYm90aDtcblx0fVxuXG5cdHZpZGVvLCBvYmplY3Qge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdH1cblxuXHRwcmUge1xuXHRcdGJhY2tncm91bmQ6ICNlZWU7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI2NlY2VjZTtcblx0XHRwYWRkaW5nOiAxMHB4O1xuXHR9XG5cbn1cblxuLnBvc3QtbWV0YSB7XG5cblx0cGFkZGluZzogcmVtLWNhbGMoNCAwKTtcblxuXHQuY2F0ZWdvcnktbGlzdCB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBhZGRpbmctbGVmdDogcmVtLWNhbGMoNCk7XG5cdH1cblxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5QT1NUUyBJTkRFWFxuKioqKioqKioqKioqKioqKioqKioqL1xuXG4jcG9zdHMge1xuXG5cdGFydGljbGUge1xuXHRcdHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygyNSk7XG5cdH1cblxuXHQuYXJ0aWNsZV9fYm9keSB7XG5cdFx0cGFkZGluZy10b3A6IHJlbS1jYWxjKDE1KTtcblx0fVxuXG5cdGltZyB7XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTUpO1xuXHR9XG5cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuU0lOR0xFIFBPU1RcbioqKioqKioqKioqKioqKioqKioqKi9cblxuLnNpbmdsZS1wb3N0IHtcblxuXHQmX190b3Atc2VjdGlvbiB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogcmVtLWNhbGMoMSkgc29saWQgJG1lZGl1bS1ncmF5O1xuXHR9XG5cblx0Jl9faW50cm8ge1xuXHRcdHBhZGRpbmc6IHJlbS1jYWxjKDMwIDAgNSk7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxuXG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuTUlTQ1xuKioqKioqKioqKioqKioqKioqKioqL1xuXG4jc2Nyb2xsLXRvLWNvbnRlbnQgLm1vcmUtY29udGVudCB7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRjb2x1bW4tY291bnQ6IDI7XG5cdH1cblxufVxuXG5cbi53cC1jYXB0aW9uIHtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdC8vIEltYWdlcyBpbnNpZGUgd3AtY2FwdGlvblxuXHRpbWcge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG59XG5cbi53cC1jYXB0aW9uLXRleHQge1xuXHRmb250LXNpemU6IDAuODVlbTtcblx0bWFyZ2luOiAwLjM1cmVtIDAgMS41cmVtO1xufVxuXG4uZ3JlY2FwdGNoYS1iYWRnZSB7XG5cdG9wYWNpdHk6IDA7XG59XG5cbi5pZnJhbWUtc2VjdGlvbiB7XG5cdGlmcmFtZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXHR9XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3Njc3MvY29tcG9uZW50cy9fY29udGVudC5zY3NzIiwiLmFyY2hpdmVfX2FydGljbGUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDI1KTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDYwKTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg4MCk7XG5cdH1cbn1cblxuLmFyY2hpdmVfX2hlYWRlci0tZXZlbnQge1xuXHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cdHBhZGRpbmc6IHJlbS1jYWxjKDI2IDI4KTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdGJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjk0KTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bWF4LXdpZHRoOiByZW0tY2FsYygzNjApO1xuXHRcdGJvdHRvbTogcmVtLWNhbGMoNDApO1xuXHRcdGxlZnQ6IHJlbS1jYWxjKC0zMCk7XG5cdFx0cGFkZGluZzogcmVtLWNhbGMoMzAgMzIpO1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdG1heC13aWR0aDogcmVtLWNhbGMoNTAwKTtcblx0XHR0b3A6IHJlbS1jYWxjKDQwKTtcblx0XHRsZWZ0OiByZW0tY2FsYygtNDApO1xuXHRcdGJvdHRvbTogYXV0bztcblx0fVxufVxuXG4uZXZlbnRfX2FydGljbGUge1xuXHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzNik7XG59XG5cbi5ldmVudC1ib3gge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmctdG9wOiA3NSU7XG5cdG1heC13aWR0aDogMTAwJTtcblxuXHQmX19kYXRlIHtcblxuXHRcdCZfX2JnIHtcblx0XHRcdHotaW5kZXg6IDU7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNXM7XG5cdFx0XHR3aWR0aDogMTMzcHg7XG5cdFx0XHRoZWlnaHQ6IDIxMXB4O1xuXHRcdFx0Ym90dG9tOiAtNzRweDtcblx0XHRcdGxlZnQ6IC01MHB4O1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTQwZGVnKTtcblxuXHRcdFx0LmV2ZW50LWJveC0tdm9kICYge1xuXHRcdFx0XHR3aWR0aDogcmVtLWNhbGMoMjIwKTtcblx0XHRcdFx0aGVpZ2h0OiByZW0tY2FsYygyNTApO1xuXHRcdFx0XHRib3R0b206IHJlbS1jYWxjKC0xMTApO1xuXHRcdFx0XHRsZWZ0OiByZW0tY2FsYygtMTE0KTtcblx0XHRcdH1cblxuXHRcdFx0LmV2ZW50LWJveF9fbGluazpob3ZlciAmIHtcblx0XHRcdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZSgtNDBkZWcpO1xuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0Jl9fdGV4dCB7XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0ei1pbmRleDogMTAwMDtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGxlZnQ6IHJlbS1jYWxjKDE2KTtcblx0XHRcdGJvdHRvbTogcmVtLWNhbGMoMTQpO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDE7XG5cblx0XHRcdGJyIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cblx0XHRcdCoge1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHR9XG5cblx0XHR9XG5cdH1cblxuXHQmX19pbWFnZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAuNXM7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC41cztcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XG5cdFx0LmV2ZW50LWJveF9fbGluazpob3ZlciAmIHtcblx0XHRcdHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcblx0XHR9XG5cdH1cblxufVxuXG4uZXZlbnQtbWV0YSB7XG5cdG1hcmdpbi10b3A6IHJlbS1jYWxjKDI2KTtcblxuXHQmX19saW5rIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcblx0XHR9XG5cdH1cbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvc2Nzcy9jb21wb25lbnRzL19ldmVudHMuc2NzcyIsIi5mbGV4LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLmJnLXZpZGVvX19jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbn1cbi50ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFsaWduLW1pZGRsZSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5hbGlnbi1jZW50ZXIge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uYmctdmlkZW9fX2NvbnRlbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgei1pbmRleDogMTtcbn1cblxuLnN0cmVhbS1maW5pc2hlZF9fY29udGVudCB7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBtYXgtd2lkdGg6IDg1JTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIG1heC13aWR0aDogODUlOyBcbiAgICB9XG5cbn1cblxuLmJnLXZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLW8tb2JqZWN0LWZpdDogY292ZXI7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgdG9wOiAwO1xuICAgIHotaW5kZXg6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9zY3NzL2NvbXBvbmVudHMvX3ZpZGVvLnNjc3MiLCJcbi50YWJzLWNvbnRlbnQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiA1cHggNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAuMDUpO1xuICAgIHBhZGRpbmc6IDFlbTtcbn1cblxuLnRhYnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC50YWJzLXRpdGxlIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IC43NXJlbSAxcmVtO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICAgICAgPiBhOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLnBheW1lbnQtaW1hZ2Utc3dpc2gge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICB9XG4gICAgICAgIC5wYXltZW50LWltYWdlLWNyZWRpdGNhcmQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMnB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICAgIGEsIGE6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpIHtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKCAkYmxhY2ssIDAuNSApO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNHB4KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlIHtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuXG4uc3dpc2gtZm9ybSB7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICBsYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxcmVtO1xuICAgIH1cbiAgICAuaW5wdXQtZ3JvdXAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNnB4O1xuICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgIHdpZHRoOiA0OCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMiU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIHAuc21hbGwge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogLjgxM2VtO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB9XG59XG4jc3dpc2gtZm9ybS1lcnJvciB7XG4gICAgcGFkZGluZzogMWVtO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgYmFja2dyb3VuZDogI2ZmNzY3NTtcbiAgICBjb2xvcjogd2hpdGU7XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3Njc3MvY29tcG9uZW50cy9fdGFicy5zY3NzIiwiLmZvb3RlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0Y29sb3I6IGJsYWNrO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmJmYmZiO1xuXG5cdHAge1xuXHRcdGZvbnQtZmFtaWx5OiAnRElOUHJvLUJvbGQnO1xuXHR9XG5cblx0YSB7XG5cdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdCY6aG92ZXIge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0fVxuXHR9XG5cbn1cblxuLmZvb3Rlcl9fbWVudSB7XG5cdG1hcmdpbi10b3A6IHJlbS1jYWxjKDQ1KTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZm9vdGVyX19pbm5lciB7XG5cdG1hcmdpbi1ib3R0b206IDJyZW07XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxuXHQmOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cblxuLm1lbnUtLWZvb3RlciB7XG5cdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0bGkge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRtYXJnaW46IDAgcmVtLWNhbGMoMjApO1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHR9XG59XG5cbi5mb290ZXJfX2ltYWdlIHtcblx0bWFyZ2luLXRvcDogcmVtLWNhbGMoMjApO1xufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9zY3NzL2NvbXBvbmVudHMvX2Zvb3Rlci5zY3NzIiwiLmltYWdlLXRleHQge1xuXG5cdCsgLmltYWdlLXRleHQge1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHR9XG5cbiAgICAmX190ZXh0IHtcblxuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygwIDM1KTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXG4gICAgICAgICAgICAmLm1lZGl1bS1vcmRlci0yIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoNDUpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYyg1NSk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYygzMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubWVkaXVtLW9yZGVyLTEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYyg0NSk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDU1KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygzMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cbiAgICAgICAgICAgICYubWVkaXVtLW9yZGVyLTIge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYyg2NSk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDc1KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDYwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5tZWRpdW0tb3JkZXItMSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDY1KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoNzUpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDYwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpbWcsIHZpZGVvIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5idXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygxMCk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDE1KTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4uaW1hZ2UtdGV4dF9fdmlkZW8ge1xuXG4gICAgLmhlcm8tc2xpZGVyX19pbWFnZSB7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgIH1cbiAgICBcbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvc2Nzcy9zZWN0aW9ucy9faW1hZ2UtdGV4dC5zY3NzIiwiLmJveGVzIHtcblx0XG4gICAgJl9fYm94IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzMCk7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMTgwKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygyMjApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IHJlbS1jYWxjKDI4MCk7XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzNSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdC54bGFyZ2UtMyAmIHtcblx0XHRcdFx0XHRoZWlnaHQ6IHJlbS1jYWxjKDE2MCk7XG5cblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6IHJlbS1jYWxjKDIwMCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OiByZW0tY2FsYygyMjApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBAZXh0ZW5kIC50ZXh0LXNtYWxsO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQrIC5ib3hlc19fYnV0dG9uIHtcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiByZW0tY2FsYygxNSk7XG5cdFx0XHRcdH1cblxuICAgIH1cblxufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9zY3NzL3NlY3Rpb25zL19ib3hlcy5zY3NzIiwiLmNvbnRhY3RfX2Zvcm0ge1xuXG4gICAgaWZyYW1lIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoNDk1KTtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMzApO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoNjE1IHVwKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDI2MCk7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvc2Nzcy9zZWN0aW9ucy9fY29udGFjdC5zY3NzIiwiLmJhbm5lciB7XG5cbiAgICBwYWRkaW5nOiByZW0tY2FsYygzMCAwKTtcblxuICAgICYubm8tcGFkZGluZy10b3Age1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG5cbiAgICAmLm5vLXBhZGRpbmctYm90dG9tIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG59XG5cbi5iYW5uZXJfX3dyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICYuYmctYmxhY2ssIFxuICAgICYuYmctcHJpbWFyeSB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgLmJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDE4KTtcbiAgICB9XG5cbn1cblxuLmJhbm5lcl9fY29udGVudCB7XG5cbiAgICBwYWRkaW5nOiByZW0tY2FsYygyNSAzMiAzMCk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygzNSA0MiA0MCk7XG4gICAgfVxuXG59XG5cbi5iYW5uZXJfX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygwKTtcbn1cblxuLmJhbm5lcl9faW50cm8ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5iYW5uZXJfX2ltYWdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLmZ1bGwtd2lkdGgtaW1hZ2Uge1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgcGFkZGluZzogMnJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICBcbiAgICAmX19tb2JpbGUge1xuICAgICAgICBtYXgtaGVpZ2h0OiA0MDBweDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICAmX19tYWluIHtcbiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG5cbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvc2Nzcy9zZWN0aW9ucy9fYmFubmVyLnNjc3MiLCIub2ZmLWNhbnZhcy0tbWVudS1pbnZlcnRlZCB7XG5cdC50b3Atc2VjdGlvbi0tZXZlbnQgPiAucm93LFxuXHQudG9wLXNlY3Rpb24tLXNpbXBsZSA+IC5yb3cge1xuXHRcdHBhZGRpbmctdG9wOiByZW0tY2FsYygzMCk7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRwYWRkaW5nLXRvcDogcmVtLWNhbGMoNzApO1xuXHRcdH1cblx0fVxufVxuXG4udG9wLXNlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG5cblx0Ji0tZml4ZWQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG5cdFx0cG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG5cdFx0d2lkdGg6IDEwMHZ3O1xuXHRcdGhlaWdodDogMTAwdmg7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0ei1pbmRleDogLTE7XG5cdH1cblxuXHQuY29sdW1uIHtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHR9XG5cblx0Ji0taW1hZ2UtdGV4dCB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0cGFkZGluZy10b3A6IDEycmVtICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHRcdFxuXHR9XG5cblx0Jl9fdGV4dCB7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHRcdHBhZGRpbmctdG9wOiByZW0tY2FsYygyNSk7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIG9ubHkpIHtcblx0XHRcdHBhZGRpbmctdG9wOiByZW0tY2FsYyg0MCk7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuXHRcdH1cblxuXHR9XG5cblx0Jl9faW1hZ2Uge1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuXHRcdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMDtcblx0XHR9XG5cblx0XHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1NWVtKSBhbmQgKG1heC13aWR0aDogNjRlbSkge1xuXHRcdFx0LmltYWdlLWNvbnRhaW5lciB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0bWF4LXdpZHRoOiA4My4zMzMzMzMzMyU7XG5cdFx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5idXR0b24ge1xuXHRcdG1hcmdpbi10b3A6IHJlbS1jYWxjKDIwKTtcblx0XHRtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDEwKTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRtYXJnaW4tdG9wOiByZW0tY2FsYygyNSk7XG5cdFx0fVxuXHR9XG5cblx0YSB7XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdH1cblx0fVxuXHRcbn1cblxuLnRvcC1zZWN0aW9uX19wcm9tb19faW1hZ2Uge1xuXHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzNSk7XG59XG5cbi50b3Atc2VjdGlvbl9fcHJvbW9fX291dHB1dCB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWdyYXk7XG59XG5cbi50b3Atc2VjdGlvbl9fdHJhaWxlcnMge1xuXHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzMCk7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG59XG5cbi50b3Atc2VjdGlvbi0tZXZlbnQge1xuXG5cdC50b3Atc2VjdGlvbl9fdGl0bGUtaGVhZGVyIHtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg0MCk7XG5cdH1cblxuXHQudG9wLXNlY3Rpb25fX3RleHQge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdHBhZGRpbmctbGVmdDpcdHJlbS1jYWxjKDQwKTtcblx0XHR9XG5cdH1cblxufVxuXG4udG9wLXNlY3Rpb24tLWJnLWltYWdlIHtcblx0ZGlzcGxheTogZmxleDtcblx0bWluLWhlaWdodDogNjd2aDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdC5hbGlnbi1taWRkbGUge1xuXHRcdFx0YWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuXHRcdH1cblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0bWluLWhlaWdodDogNjB2aDtcblx0XHRwYWRkaW5nLXRvcDogcmVtLWNhbGMoMTYwKTtcblx0XHRwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMTAwKTtcblx0fVxuXG5cdCYudG9wLXNlY3Rpb24tLWNvbXBhY3Qge1xuXHRcdG1pbi1oZWlnaHQ6IGF1dG87XG5cdH1cblxuXHQ+IC5yb3cge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHotaW5kZXg6IDI7XG5cdH1cblxuXHQmOmFmdGVyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRjb250ZW50OiAnJztcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0ei1pbmRleDogMTtcblx0XHRiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cdH1cblxuXHQub2ZmLWNhbnZhcy0tbWVudS1pbnZlcnRlZCAmIHtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0Y29udGVudDogJyAnO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoLTE4MGRlZywgcmdiYSgwLCAwLCAwLCAwLjUpIDAlLCB0cmFuc3BhcmVudCAyMCUpO1xuXHRcdFx0ei1pbmRleDogMTtcblx0XHRcdGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHR9XG5cblx0fVxuXG59XG5cbi50b3Atc2VjdGlvbl9fY29udGVudC1pbWFnZSB7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXgtd2lkdGg6IHJlbS1jYWxjKDk2MCk7XG5cdG1hcmdpbjogcmVtLWNhbGMoNDAgMCk7XG59XG5cbi50b3Atc2VjdGlvbl9fYnV0dG9uLWdyb3VwIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcblx0Ym90dG9tOiByZW0tY2FsYygyNSk7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRib3R0b206IHJlbS1jYWxjKDQwKVxuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRib3R0b206IHJlbS1jYWxjKDcwKVxuXHR9XG5cblx0bGVmdDogNTAlO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdHotaW5kZXg6IDk7XG5cbn1cblxuLnRvcC1zZWN0aW9uX19kaXZpZGVyIHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRib3JkZXItdG9wOiByZW0tY2FsYygxKSBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcblx0Ym9yZGVyLWJvdHRvbTogcmVtLWNhbGMoMSkgc29saWQgJHByaW1hcnktY29sb3I7XG5cdHBhZGRpbmc6IHJlbS1jYWxjKDE2IDApO1xuXHRtYXJnaW4tdG9wOiByZW0tY2FsYyg0MCk7XG5cblx0KiB7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMjtcblx0fVxufVxuXG4ud3BtbC1scy1mbGFnIHtcblx0bWFyZ2luLXJpZ2h0OiA3cHg7XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3Njc3Mvc2VjdGlvbnMvX3RvcC1zZWN0aW9uLnNjc3MiLCIuY292ZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0Ji50ZXh0LXdoaXRlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG5cdH1cblxuXHQmLnRleHQtYmxhY2sge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5O1xuXHR9XG5cblx0LnJvdyB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IDI7XG5cdH1cblxuXHQuY292ZXJfX2JnLXZpZGVvLFxuXHQuY292ZXJfX2JnLWltYWdlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0b2JqZWN0LWZpdDogY292ZXI7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG5cblx0JjphZnRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRyaWdodDogMDtcblx0XHRib3R0b206IDA7XG5cdFx0bGVmdDogMDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0YmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHR9XG5cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9zY3NzL3NlY3Rpb25zL19jb3Zlci5zY3NzIiwiOjpzZWxlY3Rpb24ge1xuICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG59XG5cbmJvZHkge1xuXHQvLyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9wYXBlci1iYWNrZ3JvdW5kLmpwZycpO1xuXHQvLyBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG5cdCY6YWZ0ZXIge1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0ei1pbmRleDogMjAwO1xuXHRcdHRyYW5zaXRpb24tZGVsYXk6IC41cztcblx0XHR0cmFuc2l0aW9uOiBhbGwgLjc1cztcblx0fVxuXG5cdCYuaXMtbG9hZGVkIHtcblx0XHQmOmFmdGVyIHtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHR6LWluZGV4OiAtMTtcblx0XHR9XG5cdH1cblxufVxuXG5ib2R5I3RpbnltY2Uge1xuXHRcdHBhZGRpbmc6IDMwcHg7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogbm9uZTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogbm9uZTtcblx0XHR9XG59XG5cbi5yb3cge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSBkb3duKSB7XG5cdFx0cGFkZGluZy1sZWZ0OiByZW0tY2FsYyg0NCk7XG5cdFx0cGFkZGluZy1yaWdodDogcmVtLWNhbGMoNDQpO1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMzQpO1xuXHRcdHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDM0KTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdHBhZGRpbmctbGVmdDogaW5pdGlhbDtcblx0XHRwYWRkaW5nLXJpZ2h0OiBpbml0aWFsO1xuXHR9XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3Njc3MvX2Jhc2Uuc2NzcyIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuU3R5bGVzaGVldDogUHJpbnQgU3R5bGVzaGVldFxuXG5UaGlzIGlzIHRoZSBwcmludCBzdHlsZXNoZWV0LiBUaGVyZSdzIHByb2JhYmx5IG5vdCBhIGxvdFxub2YgcmVhc29ucyB0byBlZGl0IHRoaXMgc3R5bGVzaGVldC4gXG5cblJlbWVtYmVyIHRvIGFkZCB0aGluZ3MgdGhhdCB3b24ndCBtYWtlIHNlbnNlIHRvIHByaW50IGF0IFxudGhlIGJvdHRvbS4gVGhpbmdzIGxpa2UgbmF2LCBhZHMsIGFuZCBmb3JtcyBzaG91bGRiZSBzZXQgXG50byBkaXNwbGF5IG5vbmUuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AbWVkaWEgcHJpbnQge1xuXG4gICoge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBmaWx0ZXI6bm9uZSAhaW1wb3J0YW50O1xuICAgIC1tcy1maWx0ZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIGEsIGE6dmlzaXRlZCB7XG4gICAgY29sb3I6ICM0NDQgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgIC8vIHNob3cgbGlua3Mgb24gcHJpbnRlZCBwYWdlc1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7XG4gICAgfVxuXG4gICAgLy8gc2hvdyB0aXRsZSB0b29cbiAgICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7XG4gICAgfVxuICB9XG5cbiAgLmlyIGE6YWZ0ZXIsXG4gIGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlcixcbiAgYVtocmVmXj1cIiNcIl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cblxuICBwcmUsIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG5cbiAgdGhlYWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDtcbiAgfVxuXG4gIHRyLCBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuXG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAgIEBwYWdlIHtcbiAgICAgIG1hcmdpbjogMC41Y207XG4gICAgfVxuXG4gICAgcCwgaDIsIGgzIHtcbiAgICAgIG9ycGhhbnM6IDM7XG4gICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gSGlkZSBjb250ZW50IHBlb3BsZSB3aG8gcHJpbnQgZG9uJ3QgbmVlZCB0byBzZWVcbiAgICAuc2lkZWJhcixcbiAgICAucGFnZS1uYXZpZ2F0aW9uLFxuICAgIC53cC1wcmV2LW5leHQsXG4gICAgLnJlc3BvbmQtZm9ybSxcbiAgICBuYXYge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgXG59IC8vIEVuZCBvZiBtZWRpYSBxdWVyeVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9zY3NzL19wcmludC5zY3NzIl0sInNvdXJjZVJvb3QiOiIifQ==*/