@import url("https://fonts.googleapis.com/css?family=Lora:400,400i,700|Open+Sans:400,600,700"); /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
footer {
  background-image: url(/wp-content/uploads/2023/09/footer-image-scaled.jpg)!important;
}
body {
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden],
template {
  display: none;
}
a {
  background-color: transparent;
}
a:active,
a:hover {
  outline: 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
mark {
  background: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 1em 40px;
}
hr {
  box-sizing: content-box;
  height: 0;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
html input[disabled] {
  cursor: not-allowed;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
input {
  line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
legend {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
}
optgroup {
  font-weight: bold;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
.foundation-mq {
  font-family: "xsmall=0em&small=31.25em&medium=56.25em&large=64em&xlarge=75em&xxlarge=90em";
}
html {
  font-size: 100%;
  box-sizing: border-box;
}
*,
*::before,
*::after {
  box-sizing: inherit;
}
body {
  padding: 0;
  margin: 0;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  background: #fefefe;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img {
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic;
  display: inline-block;
  vertical-align: middle;
}
textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0;
}
select {
  width: 100%;
  border-radius: 0;
}
#map_canvas img,
#map_canvas embed,
#map_canvas object,
.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important;
}
button {
  -webkit-appearance: none;
  -moz-appearance: none;
  background: transparent;
  padding: 0;
  border: 0;
  border-radius: 0;
  line-height: 1;
}
[data-whatinput="mouse"] button {
  outline: 0;
}
.is-visible {
  display: block !important;
}
.is-hidden {
  display: none !important;
}
.row {
  max-width: 75rem;
  margin-left: auto;
  margin-right: auto;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-flow: row wrap;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap;
}
@media screen and (min-width: 31.25em) {
  .row .row {
    margin-left: -0.625rem;
    margin-right: -0.625rem;
  }
}
@media screen and (min-width: 56.25em) {
  .row .row {
    margin-left: -0.9375rem;
    margin-right: -0.9375rem;
  }
}
.row.expanded {
  max-width: none;
}
.row.collapse > .column,
.row.collapse > .columns {
  padding-left: 0;
  padding-right: 0;
}
.row.is-collapse-child,
.row.collapse > .column > .row,
.row.collapse > .columns > .row {
  margin-left: 0;
  margin-right: 0;
}
.column,
.columns {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 0px;
  -ms-flex: 1 1 0px;
  flex: 1 1 0px;
  min-width: initial;
}
@media screen and (min-width: 31.25em) {
  .column,
  .columns {
    padding-left: 0.625rem;
    padding-right: 0.625rem;
  }
}
@media screen and (min-width: 56.25em) {
  .column,
  .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
  }
}
.column.row.row,
.row.row.columns {
  float: none;
  display: block;
}
.row .column.row.row,
.row .row.row.columns {
  padding-left: 0;
  padding-right: 0;
  margin-left: 0;
  margin-right: 0;
}
@media screen and (min-width: 31.25em) {
  .small-1 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 8.33333%;
    -ms-flex: 0 0 8.33333%;
    flex: 0 0 8.33333%;
    max-width: 8.33333%;
  }
  .small-offset-0 {
    margin-left: 0%;
  }
  .small-2 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 16.66667%;
    -ms-flex: 0 0 16.66667%;
    flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .small-offset-1 {
    margin-left: 8.33333%;
  }
  .small-3 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 25%;
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
    max-width: 25%;
  }
  .small-offset-2 {
    margin-left: 16.66667%;
  }
  .small-4 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 33.33333%;
    -ms-flex: 0 0 33.33333%;
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .small-offset-3 {
    margin-left: 25%;
  }
  .small-5 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 41.66667%;
    -ms-flex: 0 0 41.66667%;
    flex: 0 0 41.66667%;
    max-width: 41.66667%;
  }
  .small-offset-4 {
    margin-left: 33.33333%;
  }
  .small-6 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 50%;
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
  }
  .small-offset-5 {
    margin-left: 41.66667%;
  }
  .small-7 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 58.33333%;
    -ms-flex: 0 0 58.33333%;
    flex: 0 0 58.33333%;
    max-width: 58.33333%;
  }
  .small-offset-6 {
    margin-left: 50%;
  }
  .small-8 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 66.66667%;
    -ms-flex: 0 0 66.66667%;
    flex: 0 0 66.66667%;
    max-width: 66.66667%;
  }
  .small-offset-7 {
    margin-left: 58.33333%;
  }
  .small-9 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 75%;
    -ms-flex: 0 0 75%;
    flex: 0 0 75%;
    max-width: 75%;
  }
  .small-offset-8 {
    margin-left: 66.66667%;
  }
  .small-10 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 83.33333%;
    -ms-flex: 0 0 83.33333%;
    flex: 0 0 83.33333%;
    max-width: 83.33333%;
  }
  .small-offset-9 {
    margin-left: 75%;
  }
  .small-11 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 91.66667%;
    -ms-flex: 0 0 91.66667%;
    flex: 0 0 91.66667%;
    max-width: 91.66667%;
  }
  .small-offset-10 {
    margin-left: 83.33333%;
  }
  .small-12 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
  .small-offset-11 {
    margin-left: 91.66667%;
  }
  .small-order-1 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1;
  }
  .small-order-2 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
    -ms-flex-order: 2;
    order: 2;
  }
  .small-order-3 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
    -ms-flex-order: 3;
    order: 3;
  }
  .small-order-4 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
    -ms-flex-order: 4;
    order: 4;
  }
  .small-order-5 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 5;
    -ms-flex-order: 5;
    order: 5;
  }
  .small-order-6 {
    -webkit-box-ordinal-group: 7;
    -webkit-order: 6;
    -ms-flex-order: 6;
    order: 6;
  }
  .small-up-1 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .small-up-1 > .column,
  .small-up-1 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
  .small-up-2 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .small-up-2 > .column,
  .small-up-2 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 50%;
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
  }
  .small-up-3 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .small-up-3 > .column,
  .small-up-3 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 33.33333%;
    -ms-flex: 0 0 33.33333%;
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .small-up-4 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .small-up-4 > .column,
  .small-up-4 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 25%;
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
    max-width: 25%;
  }
  .small-up-5 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .small-up-5 > .column,
  .small-up-5 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 20%;
    -ms-flex: 0 0 20%;
    flex: 0 0 20%;
    max-width: 20%;
  }
  .small-up-6 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .small-up-6 > .column,
  .small-up-6 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 16.66667%;
    -ms-flex: 0 0 16.66667%;
    flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .small-up-7 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .small-up-7 > .column,
  .small-up-7 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 14.28571%;
    -ms-flex: 0 0 14.28571%;
    flex: 0 0 14.28571%;
    max-width: 14.28571%;
  }
  .small-up-8 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .small-up-8 > .column,
  .small-up-8 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 12.5%;
    -ms-flex: 0 0 12.5%;
    flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}
@media screen and (min-width: 31.25em) and (min-width: 31.25em) {
  .small-expand {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
    -ms-flex: 1 1 0px;
    flex: 1 1 0px;
  }
}
.row.small-unstack > .column,
.row.small-unstack > .columns {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 100%;
  -ms-flex: 0 0 100%;
  flex: 0 0 100%;
}
@media screen and (min-width: 31.25em) {
  .row.small-unstack > .column,
  .row.small-unstack > .columns {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
    -ms-flex: 1 1 0px;
    flex: 1 1 0px;
  }
}
@media screen and (min-width: 31.25em) {
  .small-collapse > .column,
  .small-collapse > .columns {
    padding-left: 0;
    padding-right: 0;
  }
  .small-uncollapse > .column,
  .small-uncollapse > .columns {
    padding-left: 0.625rem;
    padding-right: 0.625rem;
  }
}
@media screen and (min-width: 56.25em) {
  .medium-1 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 8.33333%;
    -ms-flex: 0 0 8.33333%;
    flex: 0 0 8.33333%;
    max-width: 8.33333%;
  }
  .medium-offset-0 {
    margin-left: 0%;
  }
  .medium-2 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 16.66667%;
    -ms-flex: 0 0 16.66667%;
    flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .medium-offset-1 {
    margin-left: 8.33333%;
  }
  .medium-3 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 25%;
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
    max-width: 25%;
  }
  .medium-offset-2 {
    margin-left: 16.66667%;
  }
  .medium-4 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 33.33333%;
    -ms-flex: 0 0 33.33333%;
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .medium-offset-3 {
    margin-left: 25%;
  }
  .medium-5 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 41.66667%;
    -ms-flex: 0 0 41.66667%;
    flex: 0 0 41.66667%;
    max-width: 41.66667%;
  }
  .medium-offset-4 {
    margin-left: 33.33333%;
  }
  .medium-6 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 50%;
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
  }
  .medium-offset-5 {
    margin-left: 41.66667%;
  }
  .medium-7 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 58.33333%;
    -ms-flex: 0 0 58.33333%;
    flex: 0 0 58.33333%;
    max-width: 58.33333%;
  }
  .medium-offset-6 {
    margin-left: 50%;
  }
  .medium-8 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 66.66667%;
    -ms-flex: 0 0 66.66667%;
    flex: 0 0 66.66667%;
    max-width: 66.66667%;
  }
  .medium-offset-7 {
    margin-left: 58.33333%;
  }
  .medium-9 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 75%;
    -ms-flex: 0 0 75%;
    flex: 0 0 75%;
    max-width: 75%;
  }
  .medium-offset-8 {
    margin-left: 66.66667%;
  }
  .medium-10 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 83.33333%;
    -ms-flex: 0 0 83.33333%;
    flex: 0 0 83.33333%;
    max-width: 83.33333%;
  }
  .medium-offset-9 {
    margin-left: 75%;
  }
  .medium-11 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 91.66667%;
    -ms-flex: 0 0 91.66667%;
    flex: 0 0 91.66667%;
    max-width: 91.66667%;
  }
  .medium-offset-10 {
    margin-left: 83.33333%;
  }
  .medium-12 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
  .medium-offset-11 {
    margin-left: 91.66667%;
  }
  .medium-order-1 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1;
  }
  .medium-order-2 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
    -ms-flex-order: 2;
    order: 2;
  }
  .medium-order-3 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
    -ms-flex-order: 3;
    order: 3;
  }
  .medium-order-4 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
    -ms-flex-order: 4;
    order: 4;
  }
  .medium-order-5 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 5;
    -ms-flex-order: 5;
    order: 5;
  }
  .medium-order-6 {
    -webkit-box-ordinal-group: 7;
    -webkit-order: 6;
    -ms-flex-order: 6;
    order: 6;
  }
  .medium-up-1 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .medium-up-1 > .column,
  .medium-up-1 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
  .medium-up-2 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .medium-up-2 > .column,
  .medium-up-2 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 50%;
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
  }
  .medium-up-3 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .medium-up-3 > .column,
  .medium-up-3 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 33.33333%;
    -ms-flex: 0 0 33.33333%;
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .medium-up-4 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .medium-up-4 > .column,
  .medium-up-4 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 25%;
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
    max-width: 25%;
  }
  .medium-up-5 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .medium-up-5 > .column,
  .medium-up-5 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 20%;
    -ms-flex: 0 0 20%;
    flex: 0 0 20%;
    max-width: 20%;
  }
  .medium-up-6 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .medium-up-6 > .column,
  .medium-up-6 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 16.66667%;
    -ms-flex: 0 0 16.66667%;
    flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .medium-up-7 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .medium-up-7 > .column,
  .medium-up-7 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 14.28571%;
    -ms-flex: 0 0 14.28571%;
    flex: 0 0 14.28571%;
    max-width: 14.28571%;
  }
  .medium-up-8 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .medium-up-8 > .column,
  .medium-up-8 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 12.5%;
    -ms-flex: 0 0 12.5%;
    flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}
@media screen and (min-width: 56.25em) and (min-width: 56.25em) {
  .medium-expand {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
    -ms-flex: 1 1 0px;
    flex: 1 1 0px;
  }
}
.row.medium-unstack > .column,
.row.medium-unstack > .columns {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 100%;
  -ms-flex: 0 0 100%;
  flex: 0 0 100%;
}
@media screen and (min-width: 56.25em) {
  .row.medium-unstack > .column,
  .row.medium-unstack > .columns {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
    -ms-flex: 1 1 0px;
    flex: 1 1 0px;
  }
}
@media screen and (min-width: 56.25em) {
  .medium-collapse > .column,
  .medium-collapse > .columns {
    padding-left: 0;
    padding-right: 0;
  }
  .medium-uncollapse > .column,
  .medium-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
  }
}
@media screen and (min-width: 64em) {
  .large-1 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 8.33333%;
    -ms-flex: 0 0 8.33333%;
    flex: 0 0 8.33333%;
    max-width: 8.33333%;
  }
  .large-offset-0 {
    margin-left: 0%;
  }
  .large-2 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 16.66667%;
    -ms-flex: 0 0 16.66667%;
    flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .large-offset-1 {
    margin-left: 8.33333%;
  }
  .large-3 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 25%;
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
    max-width: 25%;
  }
  .large-offset-2 {
    margin-left: 16.66667%;
  }
  .large-4 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 33.33333%;
    -ms-flex: 0 0 33.33333%;
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .large-offset-3 {
    margin-left: 25%;
  }
  .large-5 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 41.66667%;
    -ms-flex: 0 0 41.66667%;
    flex: 0 0 41.66667%;
    max-width: 41.66667%;
  }
  .large-offset-4 {
    margin-left: 33.33333%;
  }
  .large-6 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 50%;
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
  }
  .large-offset-5 {
    margin-left: 41.66667%;
  }
  .large-7 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 58.33333%;
    -ms-flex: 0 0 58.33333%;
    flex: 0 0 58.33333%;
    max-width: 58.33333%;
  }
  .large-offset-6 {
    margin-left: 50%;
  }
  .large-8 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 66.66667%;
    -ms-flex: 0 0 66.66667%;
    flex: 0 0 66.66667%;
    max-width: 66.66667%;
  }
  .large-offset-7 {
    margin-left: 58.33333%;
  }
  .large-9 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 75%;
    -ms-flex: 0 0 75%;
    flex: 0 0 75%;
    max-width: 75%;
  }
  .large-offset-8 {
    margin-left: 66.66667%;
  }
  .large-10 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 83.33333%;
    -ms-flex: 0 0 83.33333%;
    flex: 0 0 83.33333%;
    max-width: 83.33333%;
  }
  .large-offset-9 {
    margin-left: 75%;
  }
  .large-11 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 91.66667%;
    -ms-flex: 0 0 91.66667%;
    flex: 0 0 91.66667%;
    max-width: 91.66667%;
  }
  .large-offset-10 {
    margin-left: 83.33333%;
  }
  .large-12 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
  .large-offset-11 {
    margin-left: 91.66667%;
  }
  .large-order-1 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1;
  }
  .large-order-2 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
    -ms-flex-order: 2;
    order: 2;
  }
  .large-order-3 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
    -ms-flex-order: 3;
    order: 3;
  }
  .large-order-4 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
    -ms-flex-order: 4;
    order: 4;
  }
  .large-order-5 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 5;
    -ms-flex-order: 5;
    order: 5;
  }
  .large-order-6 {
    -webkit-box-ordinal-group: 7;
    -webkit-order: 6;
    -ms-flex-order: 6;
    order: 6;
  }
  .large-up-1 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .large-up-1 > .column,
  .large-up-1 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
  .large-up-2 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .large-up-2 > .column,
  .large-up-2 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 50%;
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
  }
  .large-up-3 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .large-up-3 > .column,
  .large-up-3 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 33.33333%;
    -ms-flex: 0 0 33.33333%;
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .large-up-4 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .large-up-4 > .column,
  .large-up-4 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 25%;
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
    max-width: 25%;
  }
  .large-up-5 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .large-up-5 > .column,
  .large-up-5 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 20%;
    -ms-flex: 0 0 20%;
    flex: 0 0 20%;
    max-width: 20%;
  }
  .large-up-6 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .large-up-6 > .column,
  .large-up-6 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 16.66667%;
    -ms-flex: 0 0 16.66667%;
    flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .large-up-7 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .large-up-7 > .column,
  .large-up-7 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 14.28571%;
    -ms-flex: 0 0 14.28571%;
    flex: 0 0 14.28571%;
    max-width: 14.28571%;
  }
  .large-up-8 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .large-up-8 > .column,
  .large-up-8 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 12.5%;
    -ms-flex: 0 0 12.5%;
    flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}
@media screen and (min-width: 64em) and (min-width: 64em) {
  .large-expand {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
    -ms-flex: 1 1 0px;
    flex: 1 1 0px;
  }
}
.row.large-unstack > .column,
.row.large-unstack > .columns {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 100%;
  -ms-flex: 0 0 100%;
  flex: 0 0 100%;
}
@media screen and (min-width: 64em) {
  .row.large-unstack > .column,
  .row.large-unstack > .columns {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
    -ms-flex: 1 1 0px;
    flex: 1 1 0px;
  }
}
@media screen and (min-width: 64em) {
  .large-collapse > .column,
  .large-collapse > .columns {
    padding-left: 0;
    padding-right: 0;
  }
  .large-uncollapse > .column,
  .large-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
  }
}
.shrink {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  max-width: 100%;
}
.column.align-top,
.align-top.columns {
  -webkit-align-self: flex-start;
  -ms-flex-item-align: start;
  align-self: flex-start;
}
.column.align-bottom,
.align-bottom.columns {
  -webkit-align-self: flex-end;
  -ms-flex-item-align: end;
  align-self: flex-end;
}
.column.align-middle,
.align-middle.columns {
  -webkit-align-self: center;
  -ms-flex-item-align: center;
  -ms-grid-row-align: center;
  align-self: center;
}
.column.align-stretch,
.align-stretch.columns {
  -webkit-align-self: stretch;
  -ms-flex-item-align: stretch;
  -ms-grid-row-align: stretch;
  align-self: stretch;
}
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0;
}
p {
  font-size: inherit;
  line-height: 1.6;
  margin-bottom: 1rem;
  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,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Lora", sans-serif;
  font-weight: normal;
  font-style: normal;
  color: inherit;
  text-rendering: optimizeLegibility;
  margin-top: 0;
  margin-bottom: 0.5rem;
  line-height: 1.4;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small {
  color: #cacaca;
  line-height: 0;
}
@media screen and (min-width: 31.25em) {
  h1 {
    font-size: 1.5rem;
  }
  h2 {
    font-size: 1.25rem;
  }
  h3 {
    font-size: 1.1875rem;
  }
  h4 {
    font-size: 1.125rem;
  }
  h5 {
    font-size: 1.0625rem;
  }
  h6 {
    font-size: 1rem;
  }
}
@media screen and (min-width: 56.25em) {
  h1 {
    font-size: 3rem;
  }
  h2 {
    font-size: 2.5rem;
  }
  h3 {
    font-size: 1.9375rem;
  }
  h4 {
    font-size: 1.5625rem;
  }
  h5 {
    font-size: 1.25rem;
  }
  h6 {
    font-size: 1rem;
  }
}
a {
  color: #2199e8;
  text-decoration: none;
  line-height: inherit;
  cursor: pointer;
}
a:hover,
a:focus {
  color: #1585cf;
}
a img {
  border: 0;
}
hr {
  max-width: 75rem;
  height: 0;
  border-right: 0;
  border-top: 0;
  border-bottom: 1px solid #cacaca;
  border-left: 0;
  margin: 1.25rem auto;
  clear: both;
}
ul,
ol,
dl {
  line-height: 1.6;
  margin-bottom: 1rem;
  list-style-position: outside;
}
li {
  font-size: inherit;
}
ul {
  list-style-type: disc;
  margin-left: 1.25rem;
}
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 #cacaca;
}
blockquote,
blockquote p {
  line-height: 1.6;
  color: #8a8a8a;
}
cite {
  display: block;
  font-size: 0.8125rem;
  color: #8a8a8a;
}
cite:before {
  content: "\2014 \0020";
}
abbr {
  color: #0a0a0a;
  cursor: help;
  border-bottom: 1px dotted #0a0a0a;
}
code {
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #0a0a0a;
  background-color: #e6e6e6;
  border: 1px solid #cacaca;
  padding: 0.125rem 0.3125rem 0.0625rem;
}
kbd {
  padding: 0.125rem 0.25rem 0;
  margin: 0;
  background-color: #e6e6e6;
  color: #0a0a0a;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
}
.subheader {
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  font-weight: normal;
  line-height: 1.4;
  color: #8a8a8a;
}
.lead {
  font-size: 125%;
  line-height: 1.6;
}
.stat {
  font-size: 2.5rem;
  line-height: 1;
}
p + .stat {
  margin-top: -1rem;
}
.no-bullet {
  margin-left: 0;
  list-style: none;
}
@media screen and (min-width: 31.25em) {
  .small-text-left {
    text-align: left;
  }
  .small-text-right {
    text-align: right;
  }
  .small-text-center {
    text-align: center;
  }
  .small-text-justify {
    text-align: justify;
  }
}
@media screen and (min-width: 56.25em) {
  .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 screen and (min-width: 64em) {
  .large-text-left {
    text-align: left;
  }
  .large-text-right {
    text-align: right;
  }
  .large-text-center {
    text-align: center;
  }
  .large-text-justify {
    text-align: justify;
  }
}
.show-for-print {
  display: none !important;
}
@media print {
  * {
    background: transparent !important;
    color: black !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 #8a8a8a;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
}
[type="text"],
[type="password"],
[type="date"],
[type="datetime"],
[type="datetime-local"],
[type="month"],
[type="week"],
[type="email"],
[type="number"],
[type="search"],
[type="tel"],
[type="time"],
[type="url"],
[type="color"],
textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  margin: 0 0 1rem;
  font-family: inherit;
  font-size: 1rem;
  color: #0a0a0a;
  background-color: #fefefe;
  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
  border-radius: 0;
  -webkit-transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-appearance: none;
  -moz-appearance: none;
}
[type="text"]:focus,
[type="password"]:focus,
[type="date"]:focus,
[type="datetime"]:focus,
[type="datetime-local"]:focus,
[type="month"]:focus,
[type="week"]:focus,
[type="email"]:focus,
[type="number"]:focus,
[type="search"]:focus,
[type="tel"]:focus,
[type="time"]:focus,
[type="url"]:focus,
[type="color"]:focus,
textarea:focus {
  border: 1px solid #8a8a8a;
  background-color: #fefefe;
  outline: none;
  box-shadow: 0 0 5px #cacaca;
  -webkit-transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}
textarea {
  max-width: 100%;
}
textarea[rows] {
  height: auto;
}
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #cacaca;
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #cacaca;
}
input::placeholder,
textarea::placeholder {
  color: #cacaca;
}
input:disabled,
input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #e6e6e6;
  cursor: not-allowed;
}
[type="submit"],
[type="button"] {
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
}
input[type="search"] {
  box-sizing: border-box;
}
[type="file"],
[type="checkbox"],
[type="radio"] {
  margin: 0 0 1rem;
}
[type="checkbox"] + label,
[type="radio"] + label {
  display: inline-block;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0;
  vertical-align: baseline;
}
[type="checkbox"] + label[for],
[type="radio"] + label[for] {
  cursor: pointer;
}
label > [type="checkbox"],
label > [type="radio"] {
  margin-right: 0.5rem;
}
[type="file"] {
  width: 100%;
}
label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #0a0a0a;
}
label.middle {
  margin: 0 0 1rem;
  padding: 0.5625rem 0;
}
.help-text {
  margin-top: -0.5rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: #0a0a0a;
}
.input-group {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  margin-bottom: 1rem;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
}
.input-group > :first-child {
  border-radius: 0 0 0 0;
}
.input-group > :last-child > * {
  border-radius: 0 0 0 0;
}
.input-group-label,
.input-group-field,
.input-group-button {
  margin: 0;
  white-space: nowrap;
}
.input-group-label {
  text-align: center;
  padding: 0 1rem;
  background: #e6e6e6;
  color: #0a0a0a;
  border: 1px solid #cacaca;
  white-space: nowrap;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
.input-group-label:first-child {
  border-right: 0;
}
.input-group-label:last-child {
  border-left: 0;
}
.input-group-field {
  border-radius: 0;
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 0px;
  -ms-flex: 1 1 0px;
  flex: 1 1 0px;
  height: auto;
}
.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}
.input-group-button a,
.input-group-button input,
.input-group-button button {
  margin: 0;
}
fieldset {
  border: 0;
  padding: 0;
  margin: 0;
}
legend {
  margin-bottom: 0.5rem;
  max-width: 100%;
}
.fieldset {
  border: 1px solid #cacaca;
  padding: 1.25rem;
  margin: 1.125rem 0;
}
.fieldset legend {
  background: #fefefe;
  padding: 0 0.1875rem;
  margin: 0;
  margin-left: -0.1875rem;
}
select {
  height: 2.4375rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  margin: 0 0 1rem;
  font-size: 1rem;
  font-family: inherit;
  line-height: normal;
  color: #0a0a0a;
  background-color: #fefefe;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");
  background-size: 9px 6px;
  background-position: right -1rem center;
  background-origin: content-box;
  background-repeat: no-repeat;
  padding-right: 1.5rem;
}
@media screen and (min-width: 0\0) {
  select {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==");
  }
}
select:disabled {
  background-color: #e6e6e6;
  cursor: not-allowed;
}
select::-ms-expand {
  display: none;
}
select[multiple] {
  height: auto;
  background-image: none;
}
.is-invalid-input:not(:focus) {
  background-color: rgba(236, 88, 64, 0.1);
  border-color: #ec5840;
}
.is-invalid-label {
  color: #ec5840;
}
.form-error {
  display: none;
  margin-top: -0.5rem;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: #ec5840;
}
.form-error.is-visible {
  display: block;
}
.button {
  display: inline-block;
  text-align: center;
  line-height: 1;
  cursor: pointer;
  -webkit-appearance: none;
  -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  vertical-align: middle;
  border: 1px solid transparent;
  border-radius: 0;
  padding: 0.85em 1em;
  margin: 0 0 1rem 0;
  font-size: 0.9rem;
  background-color: #f7a400;
  color: #fefefe;
}
[data-whatinput="mouse"] .button {
  outline: 0;
}
.button:hover,
.button:focus {
  background-color: #d28b00;
  color: #fefefe;
}
.button.tiny {
  font-size: 0.6rem;
}
.button.small {
  font-size: 0.75rem;
}
.button.large {
  font-size: 1.25rem;
}
.button.expanded {
  display: block;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}
.button.primary {
  background-color: #2199e8;
  color: #fefefe;
}
.button.primary:hover,
.button.primary:focus {
  background-color: #147cc0;
  color: #fefefe;
}
.button.secondary {
  background-color: #777;
  color: #fefefe;
}
.button.secondary:hover,
.button.secondary:focus {
  background-color: #5f5f5f;
  color: #fefefe;
}
.button.success {
  background-color: #3adb76;
  color: #fefefe;
}
.button.success:hover,
.button.success:focus {
  background-color: #22bb5b;
  color: #fefefe;
}
.button.warning {
  background-color: #ffae00;
  color: #fefefe;
}
.button.warning:hover,
.button.warning:focus {
  background-color: #cc8b00;
  color: #fefefe;
}
.button.alert {
  background-color: #ec5840;
  color: #fefefe;
}
.button.alert:hover,
.button.alert:focus {
  background-color: #da3116;
  color: #fefefe;
}
.button.hollow {
  border: 1px solid #2199e8;
  color: #2199e8;
}
.button.hollow,
.button.hollow:hover,
.button.hollow:focus {
  background-color: transparent;
}
.button.hollow:hover,
.button.hollow:focus {
  border-color: #0c4d78;
  color: #0c4d78;
}
.button.hollow.primary {
  border: 1px solid #2199e8;
  color: #2199e8;
}
.button.hollow.primary:hover,
.button.hollow.primary:focus {
  border-color: #0c4d78;
  color: #0c4d78;
}
.button.hollow.secondary {
  border: 1px solid #777;
  color: #777;
}
.button.hollow.secondary:hover,
.button.hollow.secondary:focus {
  border-color: #3c3c3c;
  color: #3c3c3c;
}
.button.hollow.success {
  border: 1px solid #3adb76;
  color: #3adb76;
}
.button.hollow.success:hover,
.button.hollow.success:focus {
  border-color: #157539;
  color: #157539;
}
.button.hollow.warning {
  border: 1px solid #ffae00;
  color: #ffae00;
}
.button.hollow.warning:hover,
.button.hollow.warning:focus {
  border-color: #805700;
  color: #805700;
}
.button.hollow.alert {
  border: 1px solid #ec5840;
  color: #ec5840;
}
.button.hollow.alert:hover,
.button.hollow.alert:focus {
  border-color: #881f0e;
  color: #881f0e;
}
.button.disabled,
.button[disabled] {
  opacity: 0.25;
  cursor: not-allowed;
}
.button.disabled:hover,
.button.disabled:focus,
.button[disabled]:hover,
.button[disabled]:focus {
  background-color: #2199e8;
  color: #fefefe;
}
.button.disabled.primary,
.button[disabled].primary {
  opacity: 0.25;
  cursor: not-allowed;
}
.button.disabled.primary:hover,
.button.disabled.primary:focus,
.button[disabled].primary:hover,
.button[disabled].primary:focus {
  background-color: #2199e8;
  color: #fefefe;
}
.button.disabled.secondary,
.button[disabled].secondary {
  opacity: 0.25;
  cursor: not-allowed;
}
.button.disabled.secondary:hover,
.button.disabled.secondary:focus,
.button[disabled].secondary:hover,
.button[disabled].secondary:focus {
  background-color: #777;
  color: #fefefe;
}
.button.disabled.success,
.button[disabled].success {
  opacity: 0.25;
  cursor: not-allowed;
}
.button.disabled.success:hover,
.button.disabled.success:focus,
.button[disabled].success:hover,
.button[disabled].success:focus {
  background-color: #3adb76;
  color: #fefefe;
}
.button.disabled.warning,
.button[disabled].warning {
  opacity: 0.25;
  cursor: not-allowed;
}
.button.disabled.warning:hover,
.button.disabled.warning:focus,
.button[disabled].warning:hover,
.button[disabled].warning:focus {
  background-color: #ffae00;
  color: #fefefe;
}
.button.disabled.alert,
.button[disabled].alert {
  opacity: 0.25;
  cursor: not-allowed;
}
.button.disabled.alert:hover,
.button.disabled.alert:focus,
.button[disabled].alert:hover,
.button[disabled].alert:focus {
  background-color: #ec5840;
  color: #fefefe;
}
.button.dropdown::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 0.4em;
  border-color: #fefefe transparent transparent;
  border-top-style: solid;
  border-bottom-width: 0;
  position: relative;
  top: 0.4em;
  float: right;
  margin-left: 1em;
  display: inline-block;
}
.button.arrow-only::after {
  margin-left: 0;
  float: none;
  top: -0.1em;
}
.accordion {
  list-style-type: none;
  background: rgba(0, 0, 0, 0);
  margin-left: 0;
}
.accordion-item:first-child > :first-child {
  border-radius: 0 0 0 0;
}
.accordion-item:last-child > :last-child {
  border-radius: 0 0 0 0;
}
.accordion-title {
  display: block;
  padding: 10px;
  line-height: 1;
  font-size: 0.75rem;
  color: #2199e8;
  position: relative;
  border: none;
  border-bottom: 0;
}
:last-child:not(.is-active) > .accordion-title {
  border-radius: 0 0 0 0;
  border-bottom: none;
}
.accordion-title:hover,
.accordion-title:focus {
  background-color: rgba(0, 0, 0, 0);
}
.accordion-title::before {
  content: "+";
  position: absolute;
  right: 1rem;
  top: 50%;
  margin-top: -0.5rem;
}
.is-active > .accordion-title::before {
  content: "â€“";
}
.accordion-content {
  padding: 1rem;
  display: none;
  border: none;
  border-bottom: 0;
  background-color: rgba(0, 0, 0, 0);
  color: #0a0a0a;
}
:last-child > .accordion-content:last-child {
  border-bottom: none;
}
.is-accordion-submenu-parent > a {
  position: relative;
}
.is-accordion-submenu-parent > a::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  border-color: #2199e8 transparent transparent;
  border-top-style: solid;
  border-bottom-width: 0;
  position: absolute;
  top: 50%;
  margin-top: -4px;
  right: 1rem;
}
.is-accordion-submenu-parent[aria-expanded="true"] > a::after {
  -webkit-transform-origin: 50% 50%;
  -ms-transform-origin: 50% 50%;
  transform-origin: 50% 50%;
  -webkit-transform: scaleY(-1);
  -ms-transform: scaleY(-1);
  transform: scaleY(-1);
}
.badge {
  display: inline-block;
  padding: 0.3em;
  min-width: 2.1em;
  font-size: 0.6rem;
  text-align: center;
  border-radius: 50%;
  background: #2199e8;
  color: #fefefe;
}
.badge.secondary {
  background: #777;
  color: #fefefe;
}
.badge.success {
  background: #3adb76;
  color: #fefefe;
}
.badge.warning {
  background: #ffae00;
  color: #fefefe;
}
.badge.alert {
  background: #ec5840;
  color: #fefefe;
}
.breadcrumbs {
  list-style: none;
  margin: 0 0 1rem 0;
}
.breadcrumbs::before,
.breadcrumbs::after {
  content: " ";
  display: table;
  -webkit-flex-basis: 0;
  -ms-flex-preferred-size: 0;
  flex-basis: 0;
  -webkit-box-ordinal-group: 2;
  -webkit-order: 1;
  -ms-flex-order: 1;
  order: 1;
}
.breadcrumbs::after {
  clear: both;
}
.breadcrumbs li {
  float: left;
  color: #0a0a0a;
  font-size: 0.6875rem;
  cursor: default;
  text-transform: uppercase;
}
.breadcrumbs li:not(:last-child)::after {
  color: #cacaca;
  content: "/";
  margin: 0 0.75rem;
  position: relative;
  top: 1px;
  opacity: 1;
}
.breadcrumbs a {
  color: #2199e8;
}
.breadcrumbs a:hover {
  text-decoration: underline;
}
.breadcrumbs .disabled {
  color: #cacaca;
  cursor: not-allowed;
}
.button-group {
  margin-bottom: 1rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: nowrap;
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
}
.button-group::before,
.button-group::after {
  content: " ";
  display: table;
  -webkit-flex-basis: 0;
  -ms-flex-preferred-size: 0;
  flex-basis: 0;
  -webkit-box-ordinal-group: 2;
  -webkit-order: 1;
  -ms-flex-order: 1;
  order: 1;
}
.button-group::after {
  clear: both;
}
.button-group .button {
  margin: 0;
  margin-right: 1px;
  margin-bottom: 1px;
  font-size: 0.9rem;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}
.button-group .button:last-child {
  margin-right: 0;
}
.button-group.tiny .button {
  font-size: 0.6rem;
}
.button-group.small .button {
  font-size: 0.75rem;
}
.button-group.large .button {
  font-size: 1.25rem;
}
.button-group.expanded .button {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 0px;
  -ms-flex: 1 1 0px;
  flex: 1 1 0px;
}
.button-group.primary .button {
  background-color: #2199e8;
  color: #fefefe;
}
.button-group.primary .button:hover,
.button-group.primary .button:focus {
  background-color: #147cc0;
  color: #fefefe;
}
.button-group.secondary .button {
  background-color: #777;
  color: #fefefe;
}
.button-group.secondary .button:hover,
.button-group.secondary .button:focus {
  background-color: #5f5f5f;
  color: #fefefe;
}
.button-group.success .button {
  background-color: #3adb76;
  color: #fefefe;
}
.button-group.success .button:hover,
.button-group.success .button:focus {
  background-color: #22bb5b;
  color: #fefefe;
}
.button-group.warning .button {
  background-color: #ffae00;
  color: #fefefe;
}
.button-group.warning .button:hover,
.button-group.warning .button:focus {
  background-color: #cc8b00;
  color: #fefefe;
}
.button-group.alert .button {
  background-color: #ec5840;
  color: #fefefe;
}
.button-group.alert .button:hover,
.button-group.alert .button:focus {
  background-color: #da3116;
  color: #fefefe;
}
.button-group.stacked,
.button-group.stacked-for-small,
.button-group.stacked-for-medium {
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.button-group.stacked .button,
.button-group.stacked-for-small .button,
.button-group.stacked-for-medium .button {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 100%;
  -ms-flex: 0 0 100%;
  flex: 0 0 100%;
}
.button-group.stacked .button:last-child,
.button-group.stacked-for-small .button:last-child,
.button-group.stacked-for-medium .button:last-child {
  margin-bottom: 0;
}
@media screen and (min-width: 56.25em) {
  .button-group.stacked-for-small .button {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
    -ms-flex: 1 1 0px;
    flex: 1 1 0px;
    margin-bottom: 0;
  }
}
@media screen and (min-width: 64em) {
  .button-group.stacked-for-medium .button {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
    -ms-flex: 1 1 0px;
    flex: 1 1 0px;
    margin-bottom: 0;
  }
}
@media screen and (min-width: 31.25em) and (max-width: 56.1875em) {
  .button-group.stacked-for-small.expanded {
    display: block;
  }
  .button-group.stacked-for-small.expanded .button {
    display: block;
    margin-right: 0;
  }
}
.callout {
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(10, 10, 10, 0.25);
  border-radius: 0;
  position: relative;
  color: #0a0a0a;
  background-color: #fff;
}
.callout > :first-child {
  margin-top: 0;
}
.callout > :last-child {
  margin-bottom: 0;
}
.callout.primary {
  background-color: #def0fc;
}
.callout.secondary {
  background-color: #ebebeb;
}
.callout.success {
  background-color: #e1faea;
}
.callout.warning {
  background-color: #fff3d9;
}
.callout.alert {
  background-color: #fce6e2;
}
.callout.small {
  padding-top: 0.5rem;
  padding-right: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 0.5rem;
}
.callout.large {
  padding-top: 3rem;
  padding-right: 3rem;
  padding-bottom: 3rem;
  padding-left: 3rem;
}
.close-button {
  position: absolute;
  color: #8a8a8a;
  right: 1rem;
  top: 0.5rem;
  font-size: 2em;
  line-height: 1;
  cursor: pointer;
}
[data-whatinput="mouse"] .close-button {
  outline: 0;
}
.close-button:hover,
.close-button:focus {
  color: #0a0a0a;
}
.menu {
  margin: 0;
  list-style-type: none;
  width: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: nowrap;
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  flex-wrap: nowrap;
}
.menu > li {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}
[data-whatinput="mouse"] .menu > li {
  outline: 0;
}
.menu > li > a {
  display: block;
  padding: 0.7rem 1rem;
  line-height: 1;
}
.menu input,
.menu a,
.menu button {
  margin-bottom: 0;
}
.menu > li > a {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.menu > li > a {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-flow: row nowrap;
  -ms-flex-flow: row nowrap;
  flex-flow: row nowrap;
}
.menu > li > a img,
.menu > li > a i,
.menu > li > a svg {
  margin-right: 0.25rem;
}
.menu > li {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}
.menu.vertical {
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.menu.vertical > li {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 100%;
  -ms-flex: 0 0 100%;
  flex: 0 0 100%;
  max-width: 100%;
}
.menu.vertical > li > a {
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
  -ms-flex-align: start;
  align-items: flex-start;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
  -ms-flex-pack: start;
  justify-content: flex-start;
}
@media screen and (min-width: 31.25em) {
  .menu.small-horizontal {
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
  }
  .menu.small-horizontal > li {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
  }
  .menu.small-vertical {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .menu.small-vertical > li {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
  .menu.small-vertical > li > a {
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-box-pack: start;
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    justify-content: flex-start;
  }
}
@media screen and (min-width: 56.25em) {
  .menu.medium-horizontal {
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
  }
  .menu.medium-horizontal > li {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
  }
  .menu.medium-vertical {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .menu.medium-vertical > li {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
  .menu.medium-vertical > li > a {
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-box-pack: start;
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    justify-content: flex-start;
  }
}
@media screen and (min-width: 64em) {
  .menu.large-horizontal {
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
  }
  .menu.large-horizontal > li {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
  }
  .menu.large-vertical {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .menu.large-vertical > li {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
  .menu.large-vertical > li > a {
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-box-pack: start;
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    justify-content: flex-start;
  }
}
.menu.simple li {
  line-height: 1;
  display: inline-block;
  margin-right: 1rem;
}
.menu.simple a {
  padding: 0;
}
.menu.align-right {
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
  -ms-flex-pack: end;
  justify-content: flex-end;
}
.menu.expanded > li {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 0px;
  -ms-flex: 1 1 0px;
  flex: 1 1 0px;
}
.menu.expanded > li:first-child:last-child {
  width: 100%;
}
.menu.icon-top > li > a {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-flow: column nowrap;
  -ms-flex-flow: column nowrap;
  flex-flow: column nowrap;
}
.menu.icon-top > li > a img,
.menu.icon-top > li > a i,
.menu.icon-top > li > a svg {
  -webkit-align-self: stretch;
  -ms-flex-item-align: stretch;
  -ms-grid-row-align: stretch;
  align-self: stretch;
  text-align: center;
  margin-bottom: 0.25rem;
}
.menu.nested {
  margin-left: 1rem;
}
.menu .active > a {
  color: #fefefe;
  background: #2199e8;
}
.menu-text {
  font-weight: bold;
  color: inherit;
  line-height: 1;
  padding-top: 0;
  padding-bottom: 0;
  padding: 0.7rem 1rem;
}
.menu-centered {
  text-align: center;
}
.menu-centered > .menu {
  display: inline-block;
}
.no-js [data-responsive-menu] ul {
  display: none;
}
.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
  width: 20px;
  height: 16px;
}
.menu-icon::after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 2px;
  background: #fefefe;
  top: 0;
  left: 0;
  box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
}
.menu-icon:hover::after {
  background: #cacaca;
  box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca;
}
.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
  width: 20px;
  height: 16px;
}
.menu-icon.dark::after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 2px;
  background: #0a0a0a;
  top: 0;
  left: 0;
  box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
}
.menu-icon.dark:hover::after {
  background: #8a8a8a;
  box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a;
}
.is-drilldown {
  position: relative;
  overflow: hidden;
}
.is-drilldown li {
  display: block !important;
}
.is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  width: 100%;
  background: #fefefe;
  -webkit-transition: -webkit-transform 0.15s linear;
  transition: -webkit-transform 0.15s linear;
  transition: transform 0.15s linear;
  transition: transform 0.15s linear, -webkit-transform 0.15s linear;
}
.is-drilldown-submenu.is-active {
  z-index: 1;
  display: block;
  -webkit-transform: translateX(-100%);
  -ms-transform: translateX(-100%);
  transform: translateX(-100%);
}
.is-drilldown-submenu.is-closing {
  -webkit-transform: translateX(100%);
  -ms-transform: translateX(100%);
  transform: translateX(100%);
}
.is-drilldown-submenu-parent > a {
  position: relative;
}
.is-drilldown-submenu-parent > a::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  border-color: transparent transparent transparent #2199e8;
  border-left-style: solid;
  border-right-width: 0;
  position: absolute;
  top: 50%;
  margin-top: -6px;
  right: 1rem;
}
.js-drilldown-back > a::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  border-color: transparent #2199e8 transparent transparent;
  border-right-style: solid;
  border-left-width: 0;
  border-left-width: 0;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.75rem;
}
.dropdown-pane {
  background-color: #fefefe;
  border: 1px solid #cacaca;
  border-radius: 0;
  display: block;
  font-size: 1rem;
  padding: 1rem;
  position: absolute;
  visibility: hidden;
  width: 300px;
  z-index: 10;
}
.dropdown-pane.is-open {
  visibility: visible;
}
.dropdown-pane.tiny {
  width: 100px;
}
.dropdown-pane.small {
  width: 200px;
}
.dropdown-pane.large {
  width: 400px;
}
.dropdown.menu > li.opens-left > .is-dropdown-submenu {
  left: auto;
  right: 0;
  top: 100%;
}
.dropdown.menu > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 0;
  top: 100%;
}
.dropdown.menu > li.is-dropdown-submenu-parent > a {
  padding-right: 1.5rem;
  position: relative;
}
.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 5px;
  border-color: #2199e8 transparent transparent;
  border-top-style: solid;
  border-bottom-width: 0;
  right: 5px;
  margin-top: -2px;
}
[data-whatinput="mouse"] .dropdown.menu a {
  outline: 0;
}
.no-js .dropdown.menu ul {
  display: none;
}
.dropdown.menu.vertical > li .is-dropdown-submenu {
  top: 0;
}
.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
  left: auto;
  right: 100%;
}
.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%;
}
.dropdown.menu.vertical > li > a::after {
  right: 14px;
  margin-top: -3px;
}
.dropdown.menu.vertical > li.opens-left > a::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 5px;
  border-color: transparent #2199e8 transparent transparent;
  border-right-style: solid;
  border-left-width: 0;
}
.dropdown.menu.vertical > li.opens-right > a::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 5px;
  border-color: transparent transparent transparent #2199e8;
  border-left-style: solid;
  border-right-width: 0;
}
@media screen and (min-width: 31.25em) {
  .dropdown.menu.small-horizontal > li.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 0;
    top: 100%;
  }
  .dropdown.menu.small-horizontal > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 0;
    top: 100%;
  }
  .dropdown.menu.small-horizontal > li.is-dropdown-submenu-parent > a {
    padding-right: 1.5rem;
    position: relative;
  }
  .dropdown.menu.small-horizontal > li.is-dropdown-submenu-parent > a::after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: #2199e8 transparent transparent;
    border-top-style: solid;
    border-bottom-width: 0;
    right: 5px;
    margin-top: -2px;
  }
  .dropdown.menu.small-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.small-vertical > li.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 100%;
  }
  .dropdown.menu.small-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
  .dropdown.menu.small-vertical > li > a::after {
    right: 14px;
    margin-top: -3px;
  }
  .dropdown.menu.small-vertical > li.opens-left > a::after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent #2199e8 transparent transparent;
    border-right-style: solid;
    border-left-width: 0;
  }
  .dropdown.menu.small-vertical > li.opens-right > a::after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent transparent transparent #2199e8;
    border-left-style: solid;
    border-right-width: 0;
  }
}
@media screen and (min-width: 56.25em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 0;
    top: 100%;
  }
  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 0;
    top: 100%;
  }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
    padding-right: 1.5rem;
    position: relative;
  }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: #2199e8 transparent transparent;
    border-top-style: solid;
    border-bottom-width: 0;
    right: 5px;
    margin-top: -2px;
  }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 100%;
  }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
  .dropdown.menu.medium-vertical > li > a::after {
    right: 14px;
    margin-top: -3px;
  }
  .dropdown.menu.medium-vertical > li.opens-left > a::after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent #2199e8 transparent transparent;
    border-right-style: solid;
    border-left-width: 0;
  }
  .dropdown.menu.medium-vertical > li.opens-right > a::after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent transparent transparent #2199e8;
    border-left-style: solid;
    border-right-width: 0;
  }
}
@media screen and (min-width: 64em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 0;
    top: 100%;
  }
  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 0;
    top: 100%;
  }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
    padding-right: 1.5rem;
    position: relative;
  }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: #2199e8 transparent transparent;
    border-top-style: solid;
    border-bottom-width: 0;
    right: 5px;
    margin-top: -2px;
  }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 100%;
  }
  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
  .dropdown.menu.large-vertical > li > a::after {
    right: 14px;
    margin-top: -3px;
  }
  .dropdown.menu.large-vertical > li.opens-left > a::after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent #2199e8 transparent transparent;
    border-right-style: solid;
    border-left-width: 0;
  }
  .dropdown.menu.large-vertical > li.opens-right > a::after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent transparent transparent #2199e8;
    border-left-style: solid;
    border-right-width: 0;
  }
}
.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
  top: 100%;
  left: auto;
  right: 0;
}
.is-dropdown-menu.vertical {
  width: 100px;
}
.is-dropdown-menu.vertical.align-right {
  float: right;
}
.is-dropdown-submenu-parent {
  position: relative;
}
.is-dropdown-submenu-parent a::after {
  position: absolute;
  top: 50%;
  right: 5px;
  margin-top: -2px;
}
.is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
  top: 100%;
  left: auto;
}
.is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
  left: auto;
  right: 100%;
}
.is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%;
}
.is-dropdown-submenu {
  display: none;
  position: absolute;
  top: 0;
  left: 100%;
  min-width: 200px;
  z-index: 1;
  background: #fefefe;
  border: 1px solid #cacaca;
}
.is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
  right: 14px;
  margin-top: -3px;
}
.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 5px;
  border-color: transparent #2199e8 transparent transparent;
  border-right-style: solid;
  border-left-width: 0;
}
.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 5px;
  border-color: transparent transparent transparent #2199e8;
  border-left-style: solid;
  border-right-width: 0;
}
.is-dropdown-submenu .is-dropdown-submenu {
  margin-top: -1px;
}
.is-dropdown-submenu > li {
  width: 100%;
}
.is-dropdown-submenu.js-dropdown-active {
  display: block;
}
.flex-video {
  position: relative;
  height: 0;
  padding-bottom: 75%;
  margin-bottom: 1rem;
  overflow: hidden;
}
.flex-video iframe,
.flex-video object,
.flex-video embed,
.flex-video video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.flex-video.widescreen {
  padding-bottom: 56.25%;
}
.flex-video.vimeo {
  padding-top: 0;
}
.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  border-radius: 0;
  background: #2199e8;
  color: #fefefe;
}
.label.secondary {
  background: #777;
  color: #fefefe;
}
.label.success {
  background: #3adb76;
  color: #fefefe;
}
.label.warning {
  background: #ffae00;
  color: #fefefe;
}
.label.alert {
  background: #ec5840;
  color: #fefefe;
}
.media-object {
  margin-bottom: 1rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: nowrap;
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
}
.media-object img {
  max-width: none;
}
@media screen and (max-width: 31.1875em) {
  .media-object.stack-for-xsmall {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
}
@media screen and (max-width: 31.1875em) {
  .media-object.stack-for-xsmall .media-object-section {
    padding: 0;
    padding-bottom: 1rem;
    -webkit-flex-basis: 100%;
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%;
  }
  .media-object.stack-for-xsmall .media-object-section img {
    width: 100%;
  }
}
.media-object-section {
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
  -ms-flex: 0 1 auto;
  flex: 0 1 auto;
}
.media-object-section:first-child {
  padding-right: 1rem;
}
.media-object-section:last-child:not(:nth-child(2)) {
  padding-left: 1rem;
}
.media-object-section > :last-child {
  margin-bottom: 0;
}
.media-object-section.main-section {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 0px;
  -ms-flex: 1 1 0px;
  flex: 1 1 0px;
}
html,
body {
  height: 100%;
}
.off-canvas-wrapper {
  width: 100%;
  overflow-x: hidden;
  position: relative;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-overflow-scrolling: auto;
}
.off-canvas-wrapper-inner {
  position: relative;
  width: 100%;
  min-height: 100%;
  -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-wrapper-inner::before,
.off-canvas-wrapper-inner::after {
  content: " ";
  display: table;
  -webkit-flex-basis: 0;
  -ms-flex-preferred-size: 0;
  flex-basis: 0;
  -webkit-box-ordinal-group: 2;
  -webkit-order: 1;
  -ms-flex-order: 1;
  order: 1;
}
.off-canvas-wrapper-inner::after {
  clear: both;
}
.off-canvas-content,
.off-canvas-content {
  min-height: 100%;
  background: #fefefe;
  -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;
  z-index: 1;
  padding-bottom: 0.1px;
  box-shadow: 0 0 10px rgba(10, 10, 10, 0.5);
}
.js-off-canvas-exit {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(254, 254, 254, 0.25);
  cursor: pointer;
  -webkit-transition: background 0.5s ease;
  transition: background 0.5s ease;
}
.off-canvas {
  position: absolute;
  background: #e6e6e6;
  z-index: -1;
  max-height: 100%;
  overflow-y: auto;
  -webkit-transform: translateX(0);
  -ms-transform: translateX(0);
  transform: translateX(0);
}
[data-whatinput="mouse"] .off-canvas {
  outline: 0;
}
.off-canvas.position-left {
  left: -250px;
  top: 0;
  width: 250px;
}
.is-open-left {
  -webkit-transform: translateX(250px);
  -ms-transform: translateX(250px);
  transform: translateX(250px);
}
.off-canvas.position-right {
  right: -250px;
  top: 0;
  width: 250px;
}
.is-open-right {
  -webkit-transform: translateX(-250px);
  -ms-transform: translateX(-250px);
  transform: translateX(-250px);
}
@media screen and (min-width: 31.25em) {
  .position-left.reveal-for-small {
    left: 0;
    z-index: auto;
    position: fixed;
  }
  .position-left.reveal-for-small ~ .off-canvas-content {
    margin-left: 250px;
  }
  .position-right.reveal-for-small {
    right: 0;
    z-index: auto;
    position: fixed;
  }
  .position-right.reveal-for-small ~ .off-canvas-content {
    margin-right: 250px;
  }
}
@media screen and (min-width: 56.25em) {
  .position-left.reveal-for-medium {
    left: 0;
    z-index: auto;
    position: fixed;
  }
  .position-left.reveal-for-medium ~ .off-canvas-content {
    margin-left: 250px;
  }
  .position-right.reveal-for-medium {
    right: 0;
    z-index: auto;
    position: fixed;
  }
  .position-right.reveal-for-medium ~ .off-canvas-content {
    margin-right: 250px;
  }
}
@media screen and (min-width: 64em) {
  .position-left.reveal-for-large {
    left: 0;
    z-index: auto;
    position: fixed;
  }
  .position-left.reveal-for-large ~ .off-canvas-content {
    margin-left: 250px;
  }
  .position-right.reveal-for-large {
    right: 0;
    z-index: auto;
    position: fixed;
  }
  .position-right.reveal-for-large ~ .off-canvas-content {
    margin-right: 250px;
  }
}
.orbit {
  position: relative;
}
.orbit-container {
  position: relative;
  margin: 0;
  overflow: hidden;
  list-style: none;
}
.orbit-slide {
  width: 100%;
  max-height: 100%;
}
.orbit-slide.no-motionui.is-active {
  top: 0;
  left: 0;
}
.orbit-figure {
  margin: 0;
}
.orbit-image {
  margin: 0;
  width: 100%;
  max-width: 100%;
}
.orbit-caption {
  position: absolute;
  bottom: 0;
  width: 100%;
  padding: 1rem;
  margin-bottom: 0;
  color: #fefefe;
  background-color: rgba(10, 10, 10, 0.5);
}
.orbit-previous,
.orbit-next {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  z-index: 10;
  padding: 1rem;
  color: #fefefe;
}
[data-whatinput="mouse"] .orbit-previous,
[data-whatinput="mouse"] .orbit-next {
  outline: 0;
}
.orbit-previous:hover,
.orbit-next:hover,
.orbit-previous:active,
.orbit-next:active,
.orbit-previous:focus,
.orbit-next:focus {
  background-color: rgba(10, 10, 10, 0.5);
}
.orbit-previous {
  left: 0;
}
.orbit-next {
  left: auto;
  right: 0;
}
.orbit-bullets {
  position: relative;
  margin-top: 0.8rem;
  margin-bottom: 0.8rem;
  text-align: center;
}
[data-whatinput="mouse"] .orbit-bullets {
  outline: 0;
}
.orbit-bullets button {
  width: 1.2rem;
  height: 1.2rem;
  margin: 0.1rem;
  background-color: #cacaca;
  border-radius: 50%;
}
.orbit-bullets button:hover {
  background-color: #8a8a8a;
}
.orbit-bullets button.is-active {
  background-color: #8a8a8a;
}
.pagination {
  margin-left: 0;
  margin-bottom: 1rem;
}
.pagination::before,
.pagination::after {
  content: " ";
  display: table;
  -webkit-flex-basis: 0;
  -ms-flex-preferred-size: 0;
  flex-basis: 0;
  -webkit-box-ordinal-group: 2;
  -webkit-order: 1;
  -ms-flex-order: 1;
  order: 1;
}
.pagination::after {
  clear: both;
}
.pagination li {
  font-size: 0.875rem;
  margin-right: 0.0625rem;
  border-radius: 0;
  display: none;
}
.pagination li:last-child,
.pagination li:first-child {
  display: inline-block;
}
@media screen and (min-width: 56.25em) {
  .pagination li {
    display: inline-block;
  }
}
.pagination a,
.pagination button {
  color: #0a0a0a;
  display: block;
  padding: 0.1875rem 0.625rem;
  border-radius: 0;
}
.pagination a:hover,
.pagination button:hover {
  background: #e6e6e6;
}
.pagination .current {
  padding: 0.1875rem 0.625rem;
  background: #2199e8;
  color: #fefefe;
  cursor: default;
}
.pagination .disabled {
  padding: 0.1875rem 0.625rem;
  color: #cacaca;
  cursor: not-allowed;
}
.pagination .disabled:hover {
  background: transparent;
}
.pagination .ellipsis::after {
  content: "\2026";
  padding: 0.1875rem 0.625rem;
  color: #0a0a0a;
}
.pagination-previous a::before,
.pagination-previous.disabled::before {
  content: "\00ab";
  display: inline-block;
  margin-right: 0.5rem;
}
.pagination-next a::after,
.pagination-next.disabled::after {
  content: "\00bb";
  display: inline-block;
  margin-left: 0.5rem;
}
.progress {
  background-color: #cacaca;
  height: 1rem;
  margin-bottom: 1rem;
  border-radius: 0;
}
.progress.primary .progress-meter {
  background-color: #2199e8;
}
.progress.secondary .progress-meter {
  background-color: #777;
}
.progress.success .progress-meter {
  background-color: #3adb76;
}
.progress.warning .progress-meter {
  background-color: #ffae00;
}
.progress.alert .progress-meter {
  background-color: #ec5840;
}
.progress-meter {
  position: relative;
  display: block;
  width: 0%;
  height: 100%;
  background-color: #2199e8;
}
.progress-meter-text {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  position: absolute;
  margin: 0;
  font-size: 0.75rem;
  font-weight: bold;
  color: #fefefe;
  white-space: nowrap;
}
.slider {
  position: relative;
  height: 0.5rem;
  margin-top: 1.25rem;
  margin-bottom: 2.25rem;
  background-color: #e6e6e6;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: none;
  touch-action: none;
}
.slider-fill {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  max-width: 100%;
  height: 0.5rem;
  background-color: #cacaca;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
}
.slider-fill.is-dragging {
  -webkit-transition: all 0s linear;
  transition: all 0s linear;
}
.slider-handle {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  position: absolute;
  left: 0;
  z-index: 1;
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
  background-color: #2199e8;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
  border-radius: 0;
}
[data-whatinput="mouse"] .slider-handle {
  outline: 0;
}
.slider-handle:hover {
  background-color: #1583cc;
}
.slider-handle.is-dragging {
  -webkit-transition: all 0s linear;
  transition: all 0s linear;
}
.slider.disabled,
.slider[disabled] {
  opacity: 0.25;
  cursor: not-allowed;
}
.slider.vertical {
  display: inline-block;
  width: 0.5rem;
  height: 12.5rem;
  margin: 0 1.25rem;
  -webkit-transform: scale(1, -1);
  -ms-transform: scale(1, -1);
  transform: scale(1, -1);
}
.slider.vertical .slider-fill {
  top: 0;
  width: 0.5rem;
  max-height: 100%;
}
.slider.vertical .slider-handle {
  position: absolute;
  top: 0;
  left: 50%;
  width: 1.4rem;
  height: 1.4rem;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
}
.sticky-container {
  position: relative;
}
.sticky {
  position: absolute;
  z-index: 0;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
.sticky.is-stuck {
  position: fixed;
  z-index: 5;
}
.sticky.is-stuck.is-at-top {
  top: 0;
}
.sticky.is-stuck.is-at-bottom {
  bottom: 0;
}
.sticky.is-anchored {
  position: absolute;
  left: auto;
  right: auto;
}
.sticky.is-anchored.is-at-bottom {
  bottom: 0;
}
body.is-reveal-open {
  overflow: hidden;
}
html.is-reveal-open,
html.is-reveal-open body {
  min-height: 100%;
  overflow: hidden;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.reveal-overlay {
  display: none;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1005;
  background-color: rgba(10, 10, 10, 0.45);
  overflow-y: scroll;
}
.reveal {
  display: none;
  z-index: 1006;
  padding: 1rem;
  border: 1px solid #cacaca;
  background-color: #fefefe;
  border-radius: 0;
  position: relative;
  top: 100px;
  margin-left: auto;
  margin-right: auto;
  overflow-y: auto;
}
[data-whatinput="mouse"] .reveal {
  outline: 0;
}
@media screen and (min-width: 56.25em) {
  .reveal {
    min-height: 0;
  }
}
.reveal .column,
.reveal .columns,
.reveal .columns {
  min-width: 0;
}
.reveal > :last-child {
  margin-bottom: 0;
}
@media screen and (min-width: 56.25em) {
  .reveal {
    width: 600px;
    max-width: 75rem;
  }
}
@media screen and (min-width: 56.25em) {
  .reveal .reveal {
    left: auto;
    right: auto;
    margin: 0 auto;
  }
}
.reveal.collapse {
  padding: 0;
}
@media screen and (min-width: 56.25em) {
  .reveal.tiny {
    width: 30%;
    max-width: 75rem;
  }
}
@media screen and (min-width: 56.25em) {
  .reveal.small {
    width: 50%;
    max-width: 75rem;
  }
}
@media screen and (min-width: 56.25em) {
  .reveal.large {
    width: 90%;
    max-width: 75rem;
  }
}
.reveal.full {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  height: 100vh;
  min-height: 100vh;
  max-width: none;
  margin-left: 0;
  border: 0;
  border-radius: 0;
}
@media screen and (max-width: 31.1875em) {
  .reveal {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    height: 100vh;
    min-height: 100vh;
    max-width: none;
    margin-left: 0;
    border: 0;
    border-radius: 0;
  }
}
.reveal.without-overlay {
  position: fixed;
}
.switch {
  height: 2rem;
  margin-bottom: 1rem;
  outline: 0;
  position: relative;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  color: #fefefe;
  font-weight: bold;
  font-size: 0.875rem;
}
.switch-input {
  opacity: 0;
  position: absolute;
  margin-bottom: 0;
}
.switch-paddle {
  background: #cacaca;
  cursor: pointer;
  display: block;
  position: relative;
  width: 4rem;
  height: 2rem;
  -webkit-transition: all 0.25s ease-out;
  transition: all 0.25s ease-out;
  border-radius: 0;
  color: inherit;
  font-weight: inherit;
}
input + .switch-paddle {
  margin: 0;
}
.switch-paddle::after {
  background: #fefefe;
  content: "";
  display: block;
  position: absolute;
  height: 1.5rem;
  left: 0.25rem;
  top: 0.25rem;
  width: 1.5rem;
  -webkit-transition: all 0.25s ease-out;
  transition: all 0.25s ease-out;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  border-radius: 0;
}
input:checked ~ .switch-paddle {
  background: #2199e8;
}
input:checked ~ .switch-paddle::after {
  left: 2.25rem;
}
[data-whatinput="mouse"] input:focus ~ .switch-paddle {
  outline: 0;
}
.switch-active,
.switch-inactive {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}
.switch-active {
  left: 8%;
  display: none;
}
input:checked + label > .switch-active {
  display: block;
}
.switch-inactive {
  right: 15%;
}
input:checked + label > .switch-inactive {
  display: none;
}
.switch.tiny {
  height: 1.5rem;
}
.switch.tiny .switch-paddle {
  width: 3rem;
  height: 1.5rem;
  font-size: 0.625rem;
}
.switch.tiny .switch-paddle::after {
  width: 1rem;
  height: 1rem;
}
.switch.tiny input:checked ~ .switch-paddle::after {
  left: 1.75rem;
}
.switch.small {
  height: 1.75rem;
}
.switch.small .switch-paddle {
  width: 3.5rem;
  height: 1.75rem;
  font-size: 0.75rem;
}
.switch.small .switch-paddle::after {
  width: 1.25rem;
  height: 1.25rem;
}
.switch.small input:checked ~ .switch-paddle::after {
  left: 2rem;
}
.switch.large {
  height: 2.5rem;
}
.switch.large .switch-paddle {
  width: 5rem;
  height: 2.5rem;
  font-size: 1rem;
}
.switch.large .switch-paddle::after {
  width: 2rem;
  height: 2rem;
}
.switch.large input:checked ~ .switch-paddle::after {
  left: 2.75rem;
}
table {
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0;
}
thead,
tbody,
tfoot {
  border: 1px solid #f1f1f1;
  background-color: #fefefe;
}
caption {
  font-weight: bold;
  padding: 0.5rem 0.625rem 0.625rem;
}
thead {
  background: #f8f8f8;
  color: #0a0a0a;
}
tfoot {
  background: #f1f1f1;
  color: #0a0a0a;
}
thead tr,
tfoot tr {
  background: transparent;
}
thead th,
thead td,
tfoot th,
tfoot td {
  padding: 0.5rem 0.625rem 0.625rem;
  font-weight: bold;
  text-align: left;
}
tbody tr:nth-child(even) {
  background-color: #f1f1f1;
}
tbody th,
tbody td {
  padding: 0.5rem 0.625rem 0.625rem;
}
@media screen and (max-width: 63.9375em) {
  table.stack thead {
    display: none;
  }
  table.stack tfoot {
    display: none;
  }
  table.stack tr,
  table.stack th,
  table.stack td {
    display: block;
  }
  table.stack td {
    border-top: 0;
  }
}
table.scroll {
  display: block;
  width: 100%;
  overflow-x: auto;
}
table.hover thead tr:hover {
  background-color: #f3f3f3;
}
table.hover tfoot tr:hover {
  background-color: #ececec;
}
table.hover tbody tr:hover {
  background-color: #f9f9f9;
}
table.hover tbody tr:nth-of-type(even):hover {
  background-color: #ececec;
}
.table-scroll {
  overflow-x: auto;
}
.table-scroll table {
  width: auto;
}
.tabs {
  margin: 0;
  list-style-type: none;
  background: #fefefe;
  border: 1px solid #e6e6e6;
}
.tabs::before,
.tabs::after {
  content: " ";
  display: table;
  -webkit-flex-basis: 0;
  -ms-flex-preferred-size: 0;
  flex-basis: 0;
  -webkit-box-ordinal-group: 2;
  -webkit-order: 1;
  -ms-flex-order: 1;
  order: 1;
}
.tabs::after {
  clear: both;
}
.tabs.vertical > li {
  width: auto;
  float: none;
  display: block;
}
.tabs.simple > li > a {
  padding: 0;
}
.tabs.simple > li > a:hover {
  background: transparent;
}
.tabs.primary {
  background: #2199e8;
}
.tabs.primary > li > a {
  color: #fefefe;
}
.tabs.primary > li > a:hover,
.tabs.primary > li > a:focus {
  background: #1893e4;
}
.tabs-title {
  float: left;
}
.tabs-title > a {
  display: block;
  padding: 1.25rem 1.5rem;
  line-height: 1;
  font-size: 0.75rem;
}
.tabs-title > a:hover {
  background: #fefefe;
}
.tabs-title > a:focus,
.tabs-title > a[aria-selected="true"] {
  background: #e6e6e6;
}
.tabs-content {
  background: #fefefe;
  -webkit-transition: all 0.5s ease;
  transition: all 0.5s ease;
  border: 1px solid #e6e6e6;
  border-top: 0;
}
.tabs-content.vertical {
  border: 1px solid #e6e6e6;
  border-left: 0;
}
.tabs-panel {
  display: none;
  padding: 1rem;
}
.tabs-panel.is-active {
  display: block;
}
.thumbnail {
  border: solid 4px #fefefe;
  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
  display: inline-block;
  line-height: 0;
  max-width: 100%;
  -webkit-transition: box-shadow 200ms ease-out;
  transition: box-shadow 200ms ease-out;
  border-radius: 0;
  margin-bottom: 1rem;
}
.thumbnail:hover,
.thumbnail:focus {
  box-shadow: 0 0 6px 1px rgba(33, 153, 232, 0.5);
}
.title-bar {
  background: #0a0a0a;
  color: #fefefe;
  padding: 0.5rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
}
.title-bar .menu-icon {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}
.title-bar-left,
.title-bar-right {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 0px;
  -ms-flex: 1 1 0px;
  flex: 1 1 0px;
}
.title-bar-right {
  text-align: right;
}
.title-bar-title {
  font-weight: bold;
  vertical-align: middle;
  display: inline-block;
}
.has-tip {
  border-bottom: dotted 1px #8a8a8a;
  font-weight: bold;
  position: relative;
  display: inline-block;
  cursor: help;
}
.tooltip {
  background-color: #0a0a0a;
  color: #fefefe;
  font-size: 80%;
  padding: 0.75rem;
  position: absolute;
  z-index: 10;
  top: -webkit-calc(100% + 0.6495rem);
  top: calc(100% + 0.6495rem);
  max-width: 10rem !important;
  border-radius: 0;
}
.tooltip::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  border-color: transparent transparent #0a0a0a;
  border-bottom-style: solid;
  border-top-width: 0;
  bottom: 100%;
  position: absolute;
  left: 50%;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
}
.tooltip.top::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  border-color: #0a0a0a transparent transparent;
  border-top-style: solid;
  border-bottom-width: 0;
  top: 100%;
  bottom: auto;
}
.tooltip.left::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  border-color: transparent transparent transparent #0a0a0a;
  border-left-style: solid;
  border-right-width: 0;
  bottom: auto;
  left: 100%;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}
.tooltip.right::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  border-color: transparent #0a0a0a transparent transparent;
  border-right-style: solid;
  border-left-width: 0;
  bottom: auto;
  left: auto;
  right: 100%;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}
.top-bar {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-flex-wrap: nowrap;
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
  padding: 0.5rem;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.top-bar,
.top-bar ul {
  background-color: #e6e6e6;
}
.top-bar input {
  max-width: 200px;
  margin-right: 1rem;
}
.top-bar .input-group-field {
  width: 100%;
  margin-right: 0;
}
.top-bar input.button {
  width: auto;
}
.top-bar .top-bar-left,
.top-bar .top-bar-right {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 100%;
  -ms-flex: 0 0 100%;
  flex: 0 0 100%;
  max-width: 100%;
}
@media screen and (min-width: 56.25em) {
  .top-bar {
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
  }
  .top-bar .top-bar-left {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
  }
  .top-bar .top-bar-right {
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
  }
}
@media screen and (max-width: 56.1875em) {
  .top-bar.stacked-for-small {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .top-bar.stacked-for-small .top-bar-left,
  .top-bar.stacked-for-small .top-bar-right {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 63.9375em) {
  .top-bar.stacked-for-medium {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .top-bar.stacked-for-medium .top-bar-left,
  .top-bar.stacked-for-medium .top-bar-right {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 74.9375em) {
  .top-bar.stacked-for-large {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .top-bar.stacked-for-large .top-bar-left,
  .top-bar.stacked-for-large .top-bar-right {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.top-bar-title {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  margin-right: 1rem;
}
.top-bar-left,
.top-bar-right {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}
.hide {
  display: none !important;
}
.invisible {
  visibility: hidden;
}
@media screen and (min-width: 31.25em) {
  .hide-for-small {
    display: none !important;
  }
}
@media screen and (max-width: 31.1875em) {
  .show-for-small {
    display: none !important;
  }
}
@media screen and (min-width: 31.25em) and (max-width: 56.1875em) {
  .hide-for-small-only {
    display: none !important;
  }
}
@media screen and (max-width: 31.1875em), screen and (min-width: 56.25em) {
  .show-for-small-only {
    display: none !important;
  }
}
@media screen and (min-width: 56.25em) {
  .hide-for-medium {
    display: none !important;
  }
}
@media screen and (max-width: 56.1875em) {
  .show-for-medium {
    display: none !important;
  }
}
@media screen and (min-width: 56.25em) and (max-width: 63.9375em) {
  .hide-for-medium-only {
    display: none !important;
  }
}
@media screen and (max-width: 56.1875em), screen and (min-width: 64em) {
  .show-for-medium-only {
    display: none !important;
  }
}
@media screen and (min-width: 64em) {
  .hide-for-large {
    display: none !important;
  }
}
@media screen and (max-width: 63.9375em) {
  .show-for-large {
    display: none !important;
  }
}
@media screen and (min-width: 64em) and (max-width: 74.9375em) {
  .hide-for-large-only {
    display: none !important;
  }
}
@media screen and (max-width: 63.9375em), screen and (min-width: 75em) {
  .show-for-large-only {
    display: none !important;
  }
}
.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
.show-on-focus:active,
.show-on-focus:focus {
  position: static !important;
  height: auto;
  width: auto;
  overflow: visible;
  clip: auto;
}
.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;
  }
}
.float-left {
  float: left !important;
}
.float-right {
  float: right !important;
}
.float-center {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.clearfix::before,
.clearfix::after {
  content: " ";
  display: table;
  -webkit-flex-basis: 0;
  -ms-flex-preferred-size: 0;
  flex-basis: 0;
  -webkit-box-ordinal-group: 2;
  -webkit-order: 1;
  -ms-flex-order: 1;
  order: 1;
}
.clearfix::after {
  clear: both;
}
.align-right {
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
  -ms-flex-pack: end;
  justify-content: flex-end;
}
.align-center {
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
}
.align-justify {
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
}
.align-spaced {
  -webkit-justify-content: space-around;
  -ms-flex-pack: distribute;
  justify-content: space-around;
}
.align-top {
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
  -ms-flex-align: start;
  align-items: flex-start;
}
.align-self-top {
  -webkit-align-self: flex-start;
  -ms-flex-item-align: start;
  align-self: flex-start;
}
.align-bottom {
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
  -ms-flex-align: end;
  align-items: flex-end;
}
.align-self-bottom {
  -webkit-align-self: flex-end;
  -ms-flex-item-align: end;
  align-self: flex-end;
}
.align-middle {
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
.align-self-middle {
  -webkit-align-self: center;
  -ms-flex-item-align: center;
  -ms-grid-row-align: center;
  align-self: center;
}
.align-stretch {
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
}
.align-self-stretch {
  -webkit-align-self: stretch;
  -ms-flex-item-align: stretch;
  -ms-grid-row-align: stretch;
  align-self: stretch;
}
@media screen and (min-width: 31.25em) {
  .small-order-1 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1;
  }
  .small-order-2 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
    -ms-flex-order: 2;
    order: 2;
  }
  .small-order-3 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
    -ms-flex-order: 3;
    order: 3;
  }
  .small-order-4 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
    -ms-flex-order: 4;
    order: 4;
  }
  .small-order-5 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 5;
    -ms-flex-order: 5;
    order: 5;
  }
  .small-order-6 {
    -webkit-box-ordinal-group: 7;
    -webkit-order: 6;
    -ms-flex-order: 6;
    order: 6;
  }
}
@media screen and (min-width: 56.25em) {
  .medium-order-1 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1;
  }
  .medium-order-2 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
    -ms-flex-order: 2;
    order: 2;
  }
  .medium-order-3 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
    -ms-flex-order: 3;
    order: 3;
  }
  .medium-order-4 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
    -ms-flex-order: 4;
    order: 4;
  }
  .medium-order-5 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 5;
    -ms-flex-order: 5;
    order: 5;
  }
  .medium-order-6 {
    -webkit-box-ordinal-group: 7;
    -webkit-order: 6;
    -ms-flex-order: 6;
    order: 6;
  }
}
@media screen and (min-width: 64em) {
  .large-order-1 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1;
  }
  .large-order-2 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
    -ms-flex-order: 2;
    order: 2;
  }
  .large-order-3 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
    -ms-flex-order: 3;
    order: 3;
  }
  .large-order-4 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
    -ms-flex-order: 4;
    order: 4;
  }
  .large-order-5 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 5;
    -ms-flex-order: 5;
    order: 5;
  }
  .large-order-6 {
    -webkit-box-ordinal-group: 7;
    -webkit-order: 6;
    -ms-flex-order: 6;
    order: 6;
  }
}
.white-text,
.text-white {
  color: #fff !important;
}
a.white-text,
a.text-white {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.white-text:hover,
a.text-white:hover {
  color: #e6e6e6 !important;
}
.nasaa-gray-shade-text,
.text-nasaa-gray-shade {
  color: #ebebeb !important;
}
a.nasaa-gray-shade-text,
a.text-nasaa-gray-shade {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.nasaa-gray-shade-text:hover,
a.text-nasaa-gray-shade:hover {
  color: #d2d2d2 !important;
}
.nasaa-dark-gray-text,
.text-nasaa-dark-gray {
  color: #333 !important;
}
a.nasaa-dark-gray-text,
a.text-nasaa-dark-gray {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.nasaa-dark-gray-text:hover,
a.text-nasaa-dark-gray:hover {
  color: #1a1a1a !important;
}
.nasaa-light-gray-text,
.text-nasaa-light-gray {
  color: #acacac !important;
}
a.nasaa-light-gray-text,
a.text-nasaa-light-gray {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.nasaa-light-gray-text:hover,
a.text-nasaa-light-gray:hover {
  color: #939393 !important;
}
.nasaa-medium-gray-text,
.text-nasaa-medium-gray {
  color: #424242 !important;
}
a.nasaa-medium-gray-text,
a.text-nasaa-medium-gray {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.nasaa-medium-gray-text:hover,
a.text-nasaa-medium-gray:hover {
  color: #292929 !important;
}
.nasaa-gray-shade-dark-text,
.text-nasaa-gray-shade-dark {
  color: #d2d2d2 !important;
}
a.nasaa-gray-shade-dark-text,
a.text-nasaa-gray-shade-dark {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.nasaa-gray-shade-dark-text:hover,
a.text-nasaa-gray-shade-dark:hover {
  color: #b9b9b9 !important;
}
.dark-red-text,
.text-dark-red {
  color: #2e0206 !important;
}
a.dark-red-text,
a.text-dark-red {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.dark-red-text:hover,
a.text-dark-red:hover {
  color: #000 !important;
}
.red-text,
.text-red {
  color: #450007 !important;
}
a.red-text,
a.text-red {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.red-text:hover,
a.text-red:hover {
  color: #120002 !important;
}
.bright-red-text,
.text-bright-red {
  color: #880a17 !important;
}
a.bright-red-text,
a.text-bright-red {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.bright-red-text:hover,
a.text-bright-red:hover {
  color: #58070f !important;
}
.medium-gray-to-red-text,
.text-medium-gray-to-red {
  color: #acacac !important;
}
a.medium-gray-to-red-text,
a.text-medium-gray-to-red {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.medium-gray-to-red-text:hover,
a.text-medium-gray-to-red:hover {
  color: #450007 !important;
}
.dark-blue-text,
.text-dark-blue {
  color: #0b0838 !important;
}
a.dark-blue-text,
a.text-dark-blue {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.dark-blue-text:hover,
a.text-dark-blue:hover {
  color: #02020b !important;
}
.blue-text,
.text-blue {
  color: #262262 !important;
}
a.blue-text,
a.text-blue {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.blue-text:hover,
a.text-blue:hover {
  color: #17153c !important;
}
.cyan-text,
.text-cyan {
  color: #00afd4 !important;
}
a.cyan-text,
a.text-cyan {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.cyan-text:hover,
a.text-cyan:hover {
  color: #0085a1 !important;
}
.orange-text,
.text-orange {
  color: #f7a400 !important;
}
a.orange-text,
a.text-orange {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.orange-text:hover,
a.text-orange:hover {
  color: #c48200 !important;
}
.green-text,
.text-green {
  color: #099 !important;
}
a.green-text,
a.text-green {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.green-text:hover,
a.text-green:hover {
  color: #066 !important;
}
.teal-green-text,
.text-teal-green {
  color: #0fa79a !important;
}
a.teal-green-text,
a.text-teal-green {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.teal-green-text:hover,
a.text-teal-green:hover {
  color: #0b786f !important;
}
.purple-text,
.text-purple {
  color: #609 !important;
}
a.purple-text,
a.text-purple {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.purple-text:hover,
a.text-purple:hover {
  color: #406 !important;
}
.white-to-orange-text,
.text-white-to-orange {
  color: #fff !important;
}
a.white-to-orange-text,
a.text-white-to-orange {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.white-to-orange-text:hover,
a.text-white-to-orange:hover {
  color: #f7a400 !important;
}
.gray-to-red-text,
.text-gray-to-red {
  color: #424242 !important;
}
a.gray-to-red-text,
a.text-gray-to-red {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.gray-to-red-text:hover,
a.text-gray-to-red:hover {
  color: #880a17 !important;
}
.cyan-to-red-text,
.text-cyan-to-red {
  color: #00afd4 !important;
}
a.cyan-to-red-text,
a.text-cyan-to-red {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.cyan-to-red-text:hover,
a.text-cyan-to-red:hover {
  color: #450007 !important;
}
.orange-text,
.text-orange {
  color: #f7a400 !important;
}
a.orange-text,
a.text-orange {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.orange-text:hover,
a.text-orange:hover {
  color: #c48200 !important;
}
.med-light-gray-text,
.text-med-light-gray {
  color: #acacac !important;
}
a.med-light-gray-text,
a.text-med-light-gray {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.med-light-gray-text:hover,
a.text-med-light-gray:hover {
  color: !important;
}
.blue-to-red-text,
.text-blue-to-red {
  color: #262262 !important;
}
a.blue-to-red-text,
a.text-blue-to-red {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
a.blue-to-red-text:hover,
a.text-blue-to-red:hover {
  color: #880a17 !important;
}
p em {
  font-family: "Lora", sans-serif;
}
p,
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Lora", sans-serif;
}
h1 {
  font-size: 28px;
  color: #333;
}
h1.big {
  font-size: 38px;
  line-height: 1.2;
}
@media screen and (max-width: 56.1875em) {
  h1 {
    font-size: 22px;
  }
  h1.big {
    font-size: 28px;
  }
}
h2 {
  font-size: 24px;
}
@media screen and (max-width: 56.1875em) {
  h2 {
    font-size: 18px;
  }
}
h3 {
  font-size: 20px;
}
@media screen and (max-width: 56.1875em) {
  h3 {
    font-size: 16px;
  }
}
h4 {
  font-size: 18px;
}
@media screen and (max-width: 56.1875em) {
  h4 {
    font-size: 14px;
  }
}
.body > container h5 {
  font-size: 16px;
  font-weight: 600;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
}
@media screen and (max-width: 56.1875em) {
  .body > container h5 {
    font-size: 14px;
  }
}
.body > container h6 {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
}
@media screen and (max-width: 56.1875em) {
  .body > container h6 {
    font-size: 14px;
  }
}
h5.nasaa-tools-header {
  font-size: 28px;
  color: #450007;
  padding-top: 20px;
}
h5.nasaa-tools-header span {
  font-size: 32px;
}
p.photo-caption {
  position: absolute;
  bottom: 15px;
  right: 15px;
  font-family: "Lora", sans-serif;
  color: rgba(255, 255, 255, 0.8);
  font-weight: 600;
  font-style: italic;
  margin: 0;
  font-size: 11px;
  letter-spacing: 0.5px;
}
small.dark {
  color: #424242;
}
*.heavy {
  font-weight: 800;
}
* *.bold {
  font-weight: 600;
}
*.big {
  font-size: 140%;
}
* *.small {
  font-size: 80%;
}
*.spaced {
  letter-spacing: 1px;
}
*.sans-serif {
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
}
*.serif {
  font-family: "Lora", sans-serif;
}
*.underline {
  text-decoration: underline;
}
*.italic {
  font-style: italic;
}
*.capitalize,
*.uppercase {
  text-transform: uppercase;
}
*.indent {
  padding-left: 25px;
}
.big-header {
  font-size: 38px;
  font-family: "Lora", sans-serif;
  line-height: 1.2;
  color: #333;
}
.bold-subheader {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
}
.red-subheader {
  color: #880a17;
  font-family: "Lora", sans-serif;
  font-size: 25px;
  margin: 0;
}
.nasaa-simple-content ul {
  margin-left: 35px;
}
.nasaa-simple-content ul li {
  font-family: "Lora", sans-serif;
}
ul.no-bullets {
  margin-left: 0;
  list-style-type: none;
}
ul.raquo-list {
  list-style-type: none;
}
ul.raquo-list li {
  position: relative;
  margin: 0;
}
ul.raquo-list li:before {
  content: "Â»";
  position: absolute;
  top: -1px;
  left: -18px;
}
ul.raquo-list li a {
  color: #880a17;
}
ul.star-list {
  list-style-type: none;
  padding-left: 27px;
  margin: 0;
}
ul.star-list ul li {
  list-style-type: none;
}
ul.star-list li {
  position: relative;
  padding-bottom: 7px;
  margin: 0;
}
ul.star-list li:before {
  content: "\e806";
  color: #880a17;
  font-family: fontello;
  position: absolute;
  top: -1px;
  left: -19px;
}
ul.star-list li a {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #00afd4;
  font-family: "Lora", sans-serif;
}
ul.star-list li a:hover {
  color: #880a17;
}
ul.star-list.big {
  margin-left: 0;
  padding-left: 30px;
}
ul.star-list.big li:before {
  top: 5px;
  left: -22px;
  font-size: 17px;
}
ul.star-list.white li:before {
  color: #fff;
}
ul.star-list.nasaa-gray-shade li:before {
  color: #ebebeb;
}
ul.star-list.nasaa-dark-gray li:before {
  color: #333;
}
ul.star-list.nasaa-light-gray li:before {
  color: #acacac;
}
ul.star-list.nasaa-medium-gray li:before {
  color: #424242;
}
ul.star-list.nasaa-gray-shade-dark li:before {
  color: #d2d2d2;
}
ul.star-list.dark-red li:before {
  color: #2e0206;
}
ul.star-list.red li:before {
  color: #450007;
}
ul.star-list.bright-red li:before {
  color: #880a17;
}
ul.star-list.medium-gray-to-red li:before {
  color: #acacac;
}
ul.star-list.dark-blue li:before {
  color: #0b0838;
}
ul.star-list.blue li:before {
  color: #262262;
}
ul.star-list.cyan li:before {
  color: #00afd4;
}
ul.star-list.orange li:before {
  color: #f7a400;
}
ul.star-list.green li:before {
  color: #099;
}
ul.star-list.teal-green li:before {
  color: #0fa79a;
}
ul.star-list.purple li:before {
  color: #609;
}
ul.star-list.white-to-orange li:before {
  color: #fff;
}
ul.star-list.gray-to-red li:before {
  color: #424242;
}
ul.star-list.cyan-to-red li:before {
  color: #00afd4;
}
ul.star-list.orange li:before {
  color: #f7a400;
}
ul.star-list.med-light-gray li:before {
  color: #acacac;
}
ul.star-list.blue-to-red li:before {
  color: #262262;
}
ul.post-list {
  list-style-type: none;
  margin: 0;
}
ul.post-list li {
  line-height: 1.5;
  color: #686868;
  border-bottom: 1px solid #ebebeb;
  padding: 3px 0 5px;
}
ul.post-list li:last-of-type {
  border: none;
}
ul.post-list a {
  font-size: 18px;
  font-family: "Lora", sans-serif;
  text-decoration: none;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #424242;
}
ul.post-list a:hover {
  color: #880a17;
}
.fontello {
  font-family: fontello;
}
.no-margin {
  margin: 0;
}
.container p a,
.content p a,
.wp-editor-container p a {
  text-decoration: underline;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #00afd4;
}
.container p a:hover,
.content p a:hover,
.wp-editor-container p a:hover {
  color: #0085a1;
}
.container p a.button,
.content p a.button,
.wp-editor-container p a.button {
  underline: none;
  color: white;
}
.container p.no-margin,
.content p.no-margin,
.wp-editor-container p.no-margin {
  margin: 0;
}
.container li {
  margin: 0 0 10px 10px;
}
input:not[type="submit"],
textarea,
select {
  border: 1px solid #333;
  box-shadow: none;
  border-radius: 15px !important;
  outline: none;
  width: 100%;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
}
input {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
}
select {
  background-image: url(../img/select-arrow.png);
  background-size: 11px;
  background-position: -webkit-calc(100% - 7px) center;
  background-position: calc(100% - 7px) center;
}
.select-wrapper {
  position: relative;
}
.select-wrapper select {
  outline: none;
}
.select-wrapper select option {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
}
.select-wrapper .arrow {
  position: absolute;
  top: -webkit-calc(50% - 10px);
  top: calc(50% - 10px);
  right: 12px;
}
#wpregistration-meta .input_submit_wrapper input,
#loginform .input_submit_wrapper input,
.woocommerce-form-login .input_submit_wrapper input {
  height: 40px;
}
#wpregistration-meta .input_submit_wrapper:after,
#loginform .input_submit_wrapper:after,
.woocommerce-form-login .input_submit_wrapper:after {
  color: white;
  border-color: white;
}
#wpregistration-meta input[type="text"],
#loginform input[type="text"],
.woocommerce-form-login input[type="text"] {
  text-transform: none;
}
.gform_drop_area .button {
  margin: 0 0 0 7px;
}
.gform_wrapper .gfield {
  position: relative;
  float: left;
  width: 100%;
}
.gform_wrapper input {
  height: 40px;
}
.gform_wrapper input::-webkit-input-placeholder {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
}
.gform_wrapper input:-ms-input-placeholder {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
}
.gform_wrapper input::placeholder {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
}
.gform_wrapper .gfield.field_sublabel_below {
  margin-bottom: 16px;
}
.gform_wrapper .gfield.field_sublabel_below textarea {
  margin-bottom: 0;
}
.gform_wrapper .ginput_container_radio li {
  clear: left;
}
.gform_wrapper .gfield_checkbox li {
  clear: left;
}
.gform_wrapper .gfield.full_width_description .gfield_description {
  width: 100%;
}
.gform_wrapper .gfield .gfield_description {
  float: left;
  width: 50%;
}
.gform_wrapper .gfield .ginput_recaptcha {
  height: 80px;
}
.gform_wrapper .gfield .gfield_captcha_container {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  padding: 20px 0;
}
.gform_wrapper .gfield .gfield_captcha_container img {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 150px;
  -ms-flex: 0 0 150px;
  flex: 0 0 150px;
  height: 78px;
}
.gform_wrapper
  .gfield
  .gfield_captcha_container
  .gfield_captcha_input_container {
  padding: 0;
  margin-left: 30px;
}
.gform_wrapper .gfield .gfield_captcha_container input {
  margin: 0;
}
.gform_wrapper .gfield.gfield_error {
  float: left;
  padding-left: 8px;
  padding-right: 8px !important;
  border-right: 1px solid #c89797;
  border-left: 1px solid #c89797;
}
.gform_wrapper .gfield.gfield_error .validation_message {
  width: 100%;
  text-align: center;
  font-size: 16px;
  letter-spacing: 0.7px;
  font-weight: 100;
}
.gform_wrapper .gform_error_extra_message {
  display: none;
}
.gform_wrapper #error + .gform_body .gform_error_extra_message {
  display: block;
  color: #790000;
  font-weight: 700;
  font-size: 18px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  padding-bottom: 35px;
}
.gform_wrapper li.gfield.nasaa-custom-address-error.gfield_error {
  background: transparent;
  border-color: transparent;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error
  div.ginput_complex.ginput_container
  > span {
  display: block;
  position: relative;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error
  div.ginput_complex.ginput_container
  > span.ginput_left {
  display: inline-block;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error
  div.ginput_complex.ginput_container
  > span.ginput_left:before {
  right: 0;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error
  div.ginput_complex.ginput_container
  > span.ginput_right {
  display: inline-block;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error
  div.ginput_complex.ginput_container
  > span.ginput_right:before {
  right: 0;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error
  div.ginput_complex.ginput_container
  > span
  label {
  color: #790000;
  padding-top: 8px;
  z-index: 2;
  position: relative;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error
  div.ginput_complex.ginput_container
  > span
  select {
  padding: 0;
  margin: 0;
  border: 1px solid #790000;
  z-index: 2;
  position: relative;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error
  div.ginput_complex.ginput_container
  > span
  input {
  z-index: 2;
  position: relative;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error
  div.ginput_complex.ginput_container
  > span:before {
  content: "";
  position: absolute;
  height: 100%;
  left: -8px;
  right: -8px;
  top: -8px;
  bottom: -6px;
  background: rgba(255, 223, 224, 0.25);
  border: 1px solid #c89797;
  z-index: 1;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error
  div.ginput_complex.ginput_container
  > span:after {
  content: "This field is required";
  display: block;
  color: #790000;
  padding-bottom: 14px;
  width: 100%;
  text-align: center;
  font-size: 16px;
  letter-spacing: 0.7px;
  font-weight: 100;
  z-index: 2;
  position: relative;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error
  div.ginput_complex.ginput_container
  > .address_line_2
  label {
  border-color: transparent;
  background: white;
  color: #0a0a0a;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error
  div.ginput_complex.ginput_container
  > .address_line_2
  input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not(
    [type="button"]
  ):not([type="image"]):not([type="file"]) {
  border-color: #cacaca;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error
  div.ginput_complex.ginput_container
  > .address_line_2:before {
  display: none;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error
  div.ginput_complex.ginput_container
  > .address_line_2:after {
  display: none;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error.filled-street
  div.ginput_complex.ginput_container
  > .address_line_1
  label {
  border-color: transparent;
  background: white;
  color: #0a0a0a;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error.filled-street
  div.ginput_complex.ginput_container
  > .address_line_1
  input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not(
    [type="button"]
  ):not([type="image"]):not([type="file"]) {
  border-color: #cacaca;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error.filled-street
  div.ginput_complex.ginput_container
  > .address_line_1:before {
  display: none;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error.filled-street
  div.ginput_complex.ginput_container
  > .address_line_1:after {
  display: none;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error.filled-city
  div.ginput_complex.ginput_container
  > .address_city
  label {
  border-color: transparent;
  background: white;
  color: #0a0a0a;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error.filled-city
  div.ginput_complex.ginput_container
  > .address_city
  input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not(
    [type="button"]
  ):not([type="image"]):not([type="file"]) {
  border-color: #cacaca;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error.filled-city
  div.ginput_complex.ginput_container
  > .address_city:before {
  display: none;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error.filled-city
  div.ginput_complex.ginput_container
  > .address_city:after {
  display: none;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error.filled-state
  div.ginput_complex.ginput_container
  > .address_state
  label {
  border-color: transparent;
  background: white;
  color: #0a0a0a;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error.filled-state
  div.ginput_complex.ginput_container
  > .address_state
  select {
  border-color: #cacaca;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error.filled-state
  div.ginput_complex.ginput_container
  > .address_state:before {
  display: none;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error.filled-state
  div.ginput_complex.ginput_container
  > .address_state:after {
  display: none;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error.filled-zip
  div.ginput_complex.ginput_container
  > .address_zip
  label {
  border-color: transparent;
  background: white;
  color: #0a0a0a;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error.filled-zip
  div.ginput_complex.ginput_container
  > .address_zip
  input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not(
    [type="button"]
  ):not([type="image"]):not([type="file"]) {
  border-color: #cacaca;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error.filled-zip
  div.ginput_complex.ginput_container
  > .address_zip:before {
  display: none;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error.filled-zip
  div.ginput_complex.ginput_container
  > .address_zip:after {
  display: none;
}
.gform_wrapper
  li.gfield.nasaa-custom-address-error.gfield_error
  .gfield_description.validation_message {
  display: none;
}
body .gform_wrapper .top_label .gfield .gfield_label {
  font-weight: bold !important;
}
body .gform_wrapper .top_label .gfield.hidden_label {
  margin-top: -32px;
}
body .gform_wrapper .top_label .gfield .gfield_label_before_complex {
  display: block;
  width: 100%;
}
.input_submit_wrapper {
  display: inline-block;
  position: relative;
}
.input_submit_wrapper:after {
  content: "\e80c";
  font-family: fontello;
  position: absolute;
  right: 11px;
  top: -webkit-calc(50% - 10px);
  top: -webkit-calc(50% - 8px);
  top: calc(50% - 8px);
  color: #f7a400;
  border: 1px solid #f7a400;
  width: 20px;
  height: 20px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  border-radius: 100%;
  text-indent: 2px;
}
.input_submit_wrapper.white:after {
  color: #fff;
  border-color: #fff;
}
.input_submit_wrapper.nasaa-gray-shade:after {
  color: #ebebeb;
  border-color: #ebebeb;
}
.input_submit_wrapper.nasaa-dark-gray:after {
  color: #333;
  border-color: #333;
}
.input_submit_wrapper.nasaa-light-gray:after {
  color: #acacac;
  border-color: #acacac;
}
.input_submit_wrapper.nasaa-medium-gray:after {
  color: #424242;
  border-color: #424242;
}
.input_submit_wrapper.nasaa-gray-shade-dark:after {
  color: #d2d2d2;
  border-color: #d2d2d2;
}
.input_submit_wrapper.dark-red:after {
  color: #2e0206;
  border-color: #2e0206;
}
.input_submit_wrapper.red:after {
  color: #450007;
  border-color: #450007;
}
.input_submit_wrapper.bright-red:after {
  color: #880a17;
  border-color: #880a17;
}
.input_submit_wrapper.medium-gray-to-red:after {
  color: #acacac;
  border-color: #acacac;
}
.input_submit_wrapper.dark-blue:after {
  color: #0b0838;
  border-color: #0b0838;
}
.input_submit_wrapper.blue:after {
  color: #262262;
  border-color: #262262;
}
.input_submit_wrapper.cyan:after {
  color: #00afd4;
  border-color: #00afd4;
}
.input_submit_wrapper.orange:after {
  color: #f7a400;
  border-color: #f7a400;
}
.input_submit_wrapper.green:after {
  color: #099;
  border-color: #099;
}
.input_submit_wrapper.teal-green:after {
  color: #0fa79a;
  border-color: #0fa79a;
}
.input_submit_wrapper.purple:after {
  color: #609;
  border-color: #609;
}
.input_submit_wrapper.white-to-orange:after {
  color: #fff;
  border-color: #fff;
}
.input_submit_wrapper.gray-to-red:after {
  color: #424242;
  border-color: #424242;
}
.input_submit_wrapper.cyan-to-red:after {
  color: #00afd4;
  border-color: #00afd4;
}
.input_submit_wrapper.orange:after {
  color: #f7a400;
  border-color: #f7a400;
}
.input_submit_wrapper.med-light-gray:after {
  color: #acacac;
  border-color: #acacac;
}
.input_submit_wrapper.blue-to-red:after {
  color: #262262;
  border-color: #262262;
}
.input_submit_wrapper input {
  margin: 0 !important;
  min-height: 40px;
  padding: 0px 38px 0 20px !important;
}
.input_submit_wrapper .gform_ajax_spinner {
  position: absolute;
  left: -webkit-calc(100% + 10px);
  left: calc(100% + 10px);
  top: -webkit-calc(50% - 6px);
  top: calc(50% - 6px);
  padding: 0;
}
#gform_1 #field_1_1,
#gform_1 #field_1_2 {
  width: 50%;
  float: left;
  clear: none;
}
#gform_1 label {
  margin-bottom: 10px !important;
  width: 100% !important;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
  color: #424242;
}
#gform_1 input[type="submit"] {
  background: #262262;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
}
#gform_1 select#input_1_2.large.gfield_select {
  color: #424242;
}
#gform_1 #field_1_4 input[type="file"] {
  width: 97.5%;
  margin: 0 0 10px;
  font-family: "Lora", sans-serif;
  font-weight: 100;
  letter-spacing: 0.25px;
  height: auto;
}
#gform_1 #field_1_4 #extensions_message {
  display: block;
  font-family: "Lora", sans-serif;
  font-style: italic;
  color: #333;
}
#gform_1 #field_1_4 label,
#gform_1 #field_1_4 .ginput_container {
  display: block;
  width: 100%;
  float: left;
  clear: left;
}
#gform_1 #field_1_4 .gform_drop_instructions {
  color: #424242;
}
#gform_wrapper_3 {
  width: 100%;
}
#gform_wrapper_3 li#field_3_1 {
  width: 49%;
  margin-top: 0;
  margin-right: 1%;
  display: inline-block;
  float: left;
}
#gform_wrapper_3 li#field_3_2 {
  width: 49%;
  margin-left: 1%;
  display: inline-block;
  float: right;
  margin-top: -64px;
}
#gform_wrapper_3 li#field_3_3 {
  margin-top: 0;
}
#gform_wrapper_3 li#field_3_4 {
  margin: 0 auto;
  text-align: center;
}
#gform_wrapper_3 div#input_3_4 {
  margin: 0 auto;
  display: inline-block;
}
#gform_wrapper_3 input {
  margin: 0 !important;
  color: white;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
}
#gform_wrapper_3 input[type="text"] {
  background: rgba(0, 0, 0, 0.65);
  text-indent: 20px;
}
#gform_wrapper_3 .gform_footer {
  text-align: center;
}
#gform_wrapper_3 .input_submit_wrapper:after {
  color: white;
  border-color: white;
  font-size: 9px;
  height: 11px;
  width: 11px;
  text-indent: 1px;
  top: -webkit-calc(50% - 6px);
  top: calc(50% - 6px);
}
#gform_wrapper_3 .input_submit_wrapper input {
  padding-right: 31px;
}
#gform_wrapper_4 span.nasaa-light-gray {
  color: #acacac;
}
#gform_wrapper_4 .gfield.LI-form-boxes li.gchoice_4_21_1 {
  float: right;
}
#gform_wrapper_4 .gfield.LI-form-boxes li.gchoice_4_22_1 {
  float: right;
}
#gform_wrapper_4 .gfield.LI-form-boxes li.gchoice_4_23_1 {
  float: right;
}
#gform_wrapper_4 #input_4_7_1_label {
  clear: left;
}
#gform_wrapper_4 label span {
  color: #880a17;
  margin-left: 2px;
}
#gform_wrapper_4 .ginput_container_radio,
#gform_wrapper_4 .ginput_container_checkbox {
  width: 100%;
}
#gform_wrapper_4 .ginput_container_radio li,
#gform_wrapper_4 .ginput_container_checkbox li {
  width: 100%;
}
#gform_wrapper_4 #field_4_25 legend,
#gform_wrapper_4 #field_4_26 legend {
  display: none;
}
#gform_wrapper_4 .gfield_description {
  margin: 0;
}
#gform_wrapper_4 .input_submit_wrapper:after {
  color: white;
  border-color: white;
}
#gform_5 input[type="text"],
#gform_5 input[type="email"] {
  margin-bottom: 0;
}
#gform_5 #input_5_2 input[type="radio"] {
  margin-right: 8px;
}
#gform_5 label {
  margin: 7px 0 25px;
}
#gform_5 input[type="radio"],
#gform_5 input[type="checkbox"] {
  height: auto;
}
#gform_5 .ginput_container {
  clear: both;
}
#gform_5 #input_5_5 li,
#gform_5 #input_5_14 li {
  width: 50%;
  display: inline-block;
}
#gform_5 #input_5_11 li {
  display: inline-block;
  margin-right: 30px;
}
.nasaa-seminar-search {
  padding: 10px;
  background: #262262;
}
.nasaa-seminar-search .title {
  text-align: center;
  color: white;
}
.nasaa-seminar-search .input_section {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
.nasaa-seminar-search label {
  color: white;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  padding-right: 7px;
}
.nasaa-seminar-search input,
.nasaa-seminar-search .select-wrapper,
.nasaa-seminar-search select {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  margin: 0;
}
.nasaa-seminar-search input[type="submit"] {
  margin: auto;
  display: block;
}
.nasaa-research-archive-search {
  width: 100%;
}
.nasaa-research-archive-search .title {
  text-align: center;
  font-size: 22px;
  margin-bottom: 15px;
  color: white;
}
.nasaa-research-archive-search select,
.nasaa-research-archive-search input[type="text"] {
  box-shadow: none;
  margin: 0;
  border-radius: 25px;
  background: rgba(255, 255, 255, 0.5);
  border: 1px solid white;
  color: white;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
}
.nasaa-research-archive-search select::-webkit-input-placeholder,
.nasaa-research-archive-search input[type="text"]::-webkit-input-placeholder {
  color: #fefefe;
}
.nasaa-research-archive-search select:-ms-input-placeholder,
.nasaa-research-archive-search input[type="text"]:-ms-input-placeholder {
  color: #fefefe;
}
.nasaa-research-archive-search select::placeholder,
.nasaa-research-archive-search input[type="text"]::placeholder {
  color: #fefefe;
}
.nasaa-research-archive-search option {
  color: #0b0838;
}
.nasaa-research-archive-search label {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
  color: white;
}
.nasaa-research-archive-search input[type="submit"] {
  display: block;
  margin: auto;
}
.nasaa-search-submit-combo {
  border: 1px solid #262262;
  border-radius: 20px;
  background: white;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-search-submit-combo.white {
  border-color: #fff;
}
.nasaa-search-submit-combo.white input[type="submit"] {
  color: #fff;
}
.nasaa-search-submit-combo.white:hover,
.nasaa-search-submit-combo.white:focus,
.nasaa-search-submit-combo.white:active {
  border-color: #e6e6e6;
}
.nasaa-search-submit-combo.white:hover input[type="submit"],
.nasaa-search-submit-combo.white:focus input[type="submit"],
.nasaa-search-submit-combo.white:active input[type="submit"] {
  color: #e6e6e6;
}
.nasaa-search-submit-combo.nasaa-gray-shade {
  border-color: #ebebeb;
}
.nasaa-search-submit-combo.nasaa-gray-shade input[type="submit"] {
  color: #ebebeb;
}
.nasaa-search-submit-combo.nasaa-gray-shade:hover,
.nasaa-search-submit-combo.nasaa-gray-shade:focus,
.nasaa-search-submit-combo.nasaa-gray-shade:active {
  border-color: #d2d2d2;
}
.nasaa-search-submit-combo.nasaa-gray-shade:hover input[type="submit"],
.nasaa-search-submit-combo.nasaa-gray-shade:focus input[type="submit"],
.nasaa-search-submit-combo.nasaa-gray-shade:active input[type="submit"] {
  color: #d2d2d2;
}
.nasaa-search-submit-combo.nasaa-dark-gray {
  border-color: #333;
}
.nasaa-search-submit-combo.nasaa-dark-gray input[type="submit"] {
  color: #333;
}
.nasaa-search-submit-combo.nasaa-dark-gray:hover,
.nasaa-search-submit-combo.nasaa-dark-gray:focus,
.nasaa-search-submit-combo.nasaa-dark-gray:active {
  border-color: #1a1a1a;
}
.nasaa-search-submit-combo.nasaa-dark-gray:hover input[type="submit"],
.nasaa-search-submit-combo.nasaa-dark-gray:focus input[type="submit"],
.nasaa-search-submit-combo.nasaa-dark-gray:active input[type="submit"] {
  color: #1a1a1a;
}
.nasaa-search-submit-combo.nasaa-light-gray {
  border-color: #acacac;
}
.nasaa-search-submit-combo.nasaa-light-gray input[type="submit"] {
  color: #acacac;
}
.nasaa-search-submit-combo.nasaa-light-gray:hover,
.nasaa-search-submit-combo.nasaa-light-gray:focus,
.nasaa-search-submit-combo.nasaa-light-gray:active {
  border-color: #939393;
}
.nasaa-search-submit-combo.nasaa-light-gray:hover input[type="submit"],
.nasaa-search-submit-combo.nasaa-light-gray:focus input[type="submit"],
.nasaa-search-submit-combo.nasaa-light-gray:active input[type="submit"] {
  color: #939393;
}
.nasaa-search-submit-combo.nasaa-medium-gray {
  border-color: #424242;
}
.nasaa-search-submit-combo.nasaa-medium-gray input[type="submit"] {
  color: #424242;
}
.nasaa-search-submit-combo.nasaa-medium-gray:hover,
.nasaa-search-submit-combo.nasaa-medium-gray:focus,
.nasaa-search-submit-combo.nasaa-medium-gray:active {
  border-color: #292929;
}
.nasaa-search-submit-combo.nasaa-medium-gray:hover input[type="submit"],
.nasaa-search-submit-combo.nasaa-medium-gray:focus input[type="submit"],
.nasaa-search-submit-combo.nasaa-medium-gray:active input[type="submit"] {
  color: #292929;
}
.nasaa-search-submit-combo.nasaa-gray-shade-dark {
  border-color: #d2d2d2;
}
.nasaa-search-submit-combo.nasaa-gray-shade-dark input[type="submit"] {
  color: #d2d2d2;
}
.nasaa-search-submit-combo.nasaa-gray-shade-dark:hover,
.nasaa-search-submit-combo.nasaa-gray-shade-dark:focus,
.nasaa-search-submit-combo.nasaa-gray-shade-dark:active {
  border-color: #b9b9b9;
}
.nasaa-search-submit-combo.nasaa-gray-shade-dark:hover input[type="submit"],
.nasaa-search-submit-combo.nasaa-gray-shade-dark:focus input[type="submit"],
.nasaa-search-submit-combo.nasaa-gray-shade-dark:active input[type="submit"] {
  color: #b9b9b9;
}
.nasaa-search-submit-combo.dark-red {
  border-color: #2e0206;
}
.nasaa-search-submit-combo.dark-red input[type="submit"] {
  color: #2e0206;
}
.nasaa-search-submit-combo.dark-red:hover,
.nasaa-search-submit-combo.dark-red:focus,
.nasaa-search-submit-combo.dark-red:active {
  border-color: #000;
}
.nasaa-search-submit-combo.dark-red:hover input[type="submit"],
.nasaa-search-submit-combo.dark-red:focus input[type="submit"],
.nasaa-search-submit-combo.dark-red:active input[type="submit"] {
  color: #000;
}
.nasaa-search-submit-combo.red {
  border-color: #450007;
}
.nasaa-search-submit-combo.red input[type="submit"] {
  color: #450007;
}
.nasaa-search-submit-combo.red:hover,
.nasaa-search-submit-combo.red:focus,
.nasaa-search-submit-combo.red:active {
  border-color: #120002;
}
.nasaa-search-submit-combo.red:hover input[type="submit"],
.nasaa-search-submit-combo.red:focus input[type="submit"],
.nasaa-search-submit-combo.red:active input[type="submit"] {
  color: #120002;
}
.nasaa-search-submit-combo.bright-red {
  border-color: #880a17;
}
.nasaa-search-submit-combo.bright-red input[type="submit"] {
  color: #880a17;
}
.nasaa-search-submit-combo.bright-red:hover,
.nasaa-search-submit-combo.bright-red:focus,
.nasaa-search-submit-combo.bright-red:active {
  border-color: #58070f;
}
.nasaa-search-submit-combo.bright-red:hover input[type="submit"],
.nasaa-search-submit-combo.bright-red:focus input[type="submit"],
.nasaa-search-submit-combo.bright-red:active input[type="submit"] {
  color: #58070f;
}
.nasaa-search-submit-combo.medium-gray-to-red {
  border-color: #acacac;
}
.nasaa-search-submit-combo.medium-gray-to-red input[type="submit"] {
  color: #acacac;
}
.nasaa-search-submit-combo.medium-gray-to-red:hover,
.nasaa-search-submit-combo.medium-gray-to-red:focus,
.nasaa-search-submit-combo.medium-gray-to-red:active {
  border-color: #450007;
}
.nasaa-search-submit-combo.medium-gray-to-red:hover input[type="submit"],
.nasaa-search-submit-combo.medium-gray-to-red:focus input[type="submit"],
.nasaa-search-submit-combo.medium-gray-to-red:active input[type="submit"] {
  color: #450007;
}
.nasaa-search-submit-combo.dark-blue {
  border-color: #0b0838;
}
.nasaa-search-submit-combo.dark-blue input[type="submit"] {
  color: #0b0838;
}
.nasaa-search-submit-combo.dark-blue:hover,
.nasaa-search-submit-combo.dark-blue:focus,
.nasaa-search-submit-combo.dark-blue:active {
  border-color: #02020b;
}
.nasaa-search-submit-combo.dark-blue:hover input[type="submit"],
.nasaa-search-submit-combo.dark-blue:focus input[type="submit"],
.nasaa-search-submit-combo.dark-blue:active input[type="submit"] {
  color: #02020b;
}
.nasaa-search-submit-combo.blue {
  border-color: #262262;
}
.nasaa-search-submit-combo.blue input[type="submit"] {
  color: #262262;
}
.nasaa-search-submit-combo.blue:hover,
.nasaa-search-submit-combo.blue:focus,
.nasaa-search-submit-combo.blue:active {
  border-color: #17153c;
}
.nasaa-search-submit-combo.blue:hover input[type="submit"],
.nasaa-search-submit-combo.blue:focus input[type="submit"],
.nasaa-search-submit-combo.blue:active input[type="submit"] {
  color: #17153c;
}
.nasaa-search-submit-combo.cyan {
  border-color: #00afd4;
}
.nasaa-search-submit-combo.cyan input[type="submit"] {
  color: #00afd4;
}
.nasaa-search-submit-combo.cyan:hover,
.nasaa-search-submit-combo.cyan:focus,
.nasaa-search-submit-combo.cyan:active {
  border-color: #0085a1;
}
.nasaa-search-submit-combo.cyan:hover input[type="submit"],
.nasaa-search-submit-combo.cyan:focus input[type="submit"],
.nasaa-search-submit-combo.cyan:active input[type="submit"] {
  color: #0085a1;
}
.nasaa-search-submit-combo.orange {
  border-color: #f7a400;
}
.nasaa-search-submit-combo.orange input[type="submit"] {
  color: #f7a400;
}
.nasaa-search-submit-combo.orange:hover,
.nasaa-search-submit-combo.orange:focus,
.nasaa-search-submit-combo.orange:active {
  border-color: #c48200;
}
.nasaa-search-submit-combo.orange:hover input[type="submit"],
.nasaa-search-submit-combo.orange:focus input[type="submit"],
.nasaa-search-submit-combo.orange:active input[type="submit"] {
  color: #c48200;
}
.nasaa-search-submit-combo.green {
  border-color: #099;
}
.nasaa-search-submit-combo.green input[type="submit"] {
  color: #099;
}
.nasaa-search-submit-combo.green:hover,
.nasaa-search-submit-combo.green:focus,
.nasaa-search-submit-combo.green:active {
  border-color: #066;
}
.nasaa-search-submit-combo.green:hover input[type="submit"],
.nasaa-search-submit-combo.green:focus input[type="submit"],
.nasaa-search-submit-combo.green:active input[type="submit"] {
  color: #066;
}
.nasaa-search-submit-combo.teal-green {
  border-color: #0fa79a;
}
.nasaa-search-submit-combo.teal-green input[type="submit"] {
  color: #0fa79a;
}
.nasaa-search-submit-combo.teal-green:hover,
.nasaa-search-submit-combo.teal-green:focus,
.nasaa-search-submit-combo.teal-green:active {
  border-color: #0b786f;
}
.nasaa-search-submit-combo.teal-green:hover input[type="submit"],
.nasaa-search-submit-combo.teal-green:focus input[type="submit"],
.nasaa-search-submit-combo.teal-green:active input[type="submit"] {
  color: #0b786f;
}
.nasaa-search-submit-combo.purple {
  border-color: #609;
}
.nasaa-search-submit-combo.purple input[type="submit"] {
  color: #609;
}
.nasaa-search-submit-combo.purple:hover,
.nasaa-search-submit-combo.purple:focus,
.nasaa-search-submit-combo.purple:active {
  border-color: #406;
}
.nasaa-search-submit-combo.purple:hover input[type="submit"],
.nasaa-search-submit-combo.purple:focus input[type="submit"],
.nasaa-search-submit-combo.purple:active input[type="submit"] {
  color: #406;
}
.nasaa-search-submit-combo.white-to-orange {
  border-color: #fff;
}
.nasaa-search-submit-combo.white-to-orange input[type="submit"] {
  color: #fff;
}
.nasaa-search-submit-combo.white-to-orange:hover,
.nasaa-search-submit-combo.white-to-orange:focus,
.nasaa-search-submit-combo.white-to-orange:active {
  border-color: #f7a400;
}
.nasaa-search-submit-combo.white-to-orange:hover input[type="submit"],
.nasaa-search-submit-combo.white-to-orange:focus input[type="submit"],
.nasaa-search-submit-combo.white-to-orange:active input[type="submit"] {
  color: #f7a400;
}
.nasaa-search-submit-combo.gray-to-red {
  border-color: #424242;
}
.nasaa-search-submit-combo.gray-to-red input[type="submit"] {
  color: #424242;
}
.nasaa-search-submit-combo.gray-to-red:hover,
.nasaa-search-submit-combo.gray-to-red:focus,
.nasaa-search-submit-combo.gray-to-red:active {
  border-color: #880a17;
}
.nasaa-search-submit-combo.gray-to-red:hover input[type="submit"],
.nasaa-search-submit-combo.gray-to-red:focus input[type="submit"],
.nasaa-search-submit-combo.gray-to-red:active input[type="submit"] {
  color: #880a17;
}
.nasaa-search-submit-combo.cyan-to-red {
  border-color: #00afd4;
}
.nasaa-search-submit-combo.cyan-to-red input[type="submit"] {
  color: #00afd4;
}
.nasaa-search-submit-combo.cyan-to-red:hover,
.nasaa-search-submit-combo.cyan-to-red:focus,
.nasaa-search-submit-combo.cyan-to-red:active {
  border-color: #450007;
}
.nasaa-search-submit-combo.cyan-to-red:hover input[type="submit"],
.nasaa-search-submit-combo.cyan-to-red:focus input[type="submit"],
.nasaa-search-submit-combo.cyan-to-red:active input[type="submit"] {
  color: #450007;
}
.nasaa-search-submit-combo.orange {
  border-color: #f7a400;
}
.nasaa-search-submit-combo.orange input[type="submit"] {
  color: #f7a400;
}
.nasaa-search-submit-combo.orange:hover,
.nasaa-search-submit-combo.orange:focus,
.nasaa-search-submit-combo.orange:active {
  border-color: #c48200;
}
.nasaa-search-submit-combo.orange:hover input[type="submit"],
.nasaa-search-submit-combo.orange:focus input[type="submit"],
.nasaa-search-submit-combo.orange:active input[type="submit"] {
  color: #c48200;
}
.nasaa-search-submit-combo.med-light-gray {
  border-color: #acacac;
}
.nasaa-search-submit-combo.med-light-gray input[type="submit"] {
  color: #acacac;
}
.nasaa-search-submit-combo.blue-to-red {
  border-color: #262262;
}
.nasaa-search-submit-combo.blue-to-red input[type="submit"] {
  color: #262262;
}
.nasaa-search-submit-combo.blue-to-red:hover,
.nasaa-search-submit-combo.blue-to-red:focus,
.nasaa-search-submit-combo.blue-to-red:active {
  border-color: #880a17;
}
.nasaa-search-submit-combo.blue-to-red:hover input[type="submit"],
.nasaa-search-submit-combo.blue-to-red:focus input[type="submit"],
.nasaa-search-submit-combo.blue-to-red:active input[type="submit"] {
  color: #880a17;
}
.nasaa-search-submit-combo input[type="text"] {
  border: none;
  box-shadow: none;
  outline: none;
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  margin: 0;
  background: transparent;
  border-radius: 0;
}
.nasaa-search-submit-combo input[type="submit"] {
  font-family: fontello;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 30px;
  -ms-flex: 0 0 30px;
  flex: 0 0 30px;
  background: transparent;
  border: none;
  margin: 0 !important;
}
.nasaa-event-search-container {
  background-color: rgba(11, 8, 56, 0.5);
  background-blend-mode: multiply;
  background-position: center;
  background-size: cover;
  padding: 25px 20px 15px 20px;
}
.nasaa-event-search {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}
.nasaa-event-search label {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
  color: white;
}
.nasaa-event-search .inputs {
  margin: 15px 0 35px;
}
.nasaa-event-search select,
.nasaa-event-search input[type="text"] {
  border: 1px solid #ebebeb;
  color: #acacac;
  border-radius: 30px;
  font-weight: 600;
  font-size: 12px;
  text-transform: none;
  margin: 0;
}
.nasaa-event-search input[type="text"] {
  color: #333;
  font-family: "Lora", sans-serif;
  font-weight: 300;
  text-indent: 11px;
}
.nasaa-event-search input[type="text"]::-webkit-input-placeholder {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
}
.nasaa-event-search input[type="text"]:-ms-input-placeholder {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
}
.nasaa-event-search input[type="text"]::placeholder {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
}
.nasaa-event-search h2 {
  margin: 0 20px 0 0;
  color: white;
  padding: 13px 0;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-event-search {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }
}
.nasaa-search-newsletter {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
  -ms-flex-align: end;
  align-items: flex-end;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  margin-bottom: 20px;
  padding: 0 0 20px 0;
  position: relative;
}
.nasaa-search-newsletter:before {
  content: "";
  position: absolute;
  left: -15px;
  right: -15px;
  height: 1px;
  bottom: 0;
  background: #ebebeb;
}
.nasaa-search-newsletter h2 {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  padding-right: 15px;
  margin: 0;
}
.nasaa-search-newsletter label {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
  color: #acacac;
}
.nasaa-search-newsletter label select {
  margin: 0;
}
.nasaa-search-newsletter input[type="submit"] {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  margin: 0;
  padding-right: 0;
}
.nasaa-subscription-form-background {
  background: rgba(0, 0, 0, 0.8);
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  display: none;
}
.nasaa-subscription-form-background .nasaa-subscription-form {
  width: -webkit-calc(100% - 30px);
  width: calc(100% - 30px);
  max-width: 600px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}
.nasaa-subscription-form-background .header {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
.nasaa-subscription-form-background .header h2 {
  margin: 0;
}
.nasaa-subscription-form-background .header .close {
  font-size: 36px;
  font-weight: 800;
  margin: 0 0 0 auto;
  cursor: pointer;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #fff;
}
.nasaa-subscription-form-background .header .close:hover {
  color: #f7a400;
}
#gform_6 label {
  margin: 0 0 15px 0;
  width: 100%;
  text-align: left;
  color: #424242;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
  font-style: italic;
  font-weight: 100;
}
#gform_6 label.gfield_label {
  font-weight: 800 !important;
  font-style: normal;
}
#gform_6 li {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  margin-bottom: 30px;
}
#gform_6 li input[type="text"],
#gform_6 li select {
  width: 100%;
  margin: 0;
}
#gform_6 textarea {
  width: 100%;
}
#gform_6 .gform_drop_instructions {
  color: #424242;
}
#gform_6 input[type="file"] {
  font-family: "Lora", sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: #424242;
  letter-spacing: 0.4px;
  display: block;
  line-height: 1;
  margin: 0;
}
#gform_6 .input_submit_wrapper:after {
  color: white;
  border-color: white;
}
#gform_wrapper_9 .input_submit_wrapper:after {
  color: white;
  border-color: white;
}
#gform_wrapper_10 #input_10_3_2_container {
  margin-left: 50%;
  padding-right: 8px;
}
#gform_wrapper_10 #input_10_4 {
  padding-right: 16px;
}
#gform_wrapper_10 #input_10_4_6_container {
  padding-right: 8px;
}
#gform_wrapper_10 .input_submit_wrapper:after {
  color: white;
  border-color: white;
}
#gform_wrapper_10 input {
  text-transform: none;
}
.post-password-form p {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
}
.post-password-form input[type="password"] {
  margin-bottom: 0;
}
.post-password-form .input_submit_wrapper {
  -webkit-align-self: flex-end;
  -ms-flex-item-align: end;
  align-self: flex-end;
  margin-left: 15px;
}
.post-password-form input[type="submit"] {
  display: inline-block;
  text-align: center;
  line-height: 1;
  cursor: pointer;
  -webkit-appearance: none;
  -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  vertical-align: middle;
  border: 1px solid transparent;
  border-radius: 0;
  padding: 0.85em 1em;
  margin: 0 0 1rem 0;
  font-size: 0.9rem;
  background-color: #f7a400;
  color: #fefefe;
  -webkit-align-self: flex-end;
  -ms-flex-item-align: end;
  align-self: flex-end;
  padding-right: 35px;
}
[data-whatinput="mouse"] .post-password-form input[type="submit"] {
  outline: 0;
}
.post-password-form input[type="submit"]:hover,
.post-password-form input[type="submit"]:focus {
  background-color: #d28b00;
  color: #fefefe;
}
.post-password-form .input_submit_wrapper:after {
  color: white;
  border-color: white;
}
.nasaa-login-modal {
  position: absolute;
  background: white;
  padding: 10px 20px 0 20px;
  right: 10px;
  width: 262px;
}
.nasaa-login-modal input {
  text-transform: none;
}
.nasaa-close-login-modal-link {
  margin: -20px 0 10px;
  display: block;
}
body,
html {
  height: 100%;
  min-height: 100%;
}
body > div.container,
body > div.content {
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}
body {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}
body > div,
body > header,
body > footer {
  width: 100%;
}
body > .content .row {
  width: 100%;
}
body.admin-bar {
  padding-top: 32px !important;
}
@media screen and (max-width: 782px) {
  body.admin-bar {
    padding-top: 46px !important;
  }
}
footer {
  margin-top: auto;
}
footer {
  background-image: url("../img/site-footer.jpg");
  background-size: cover;
  background-position: top center;
}
footer .top {
  padding: 0 15px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
footer .top * {
  color: white;
}
footer .top a {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #fff;
}
footer .top a:hover {
  color: #f7a400;
}
footer .top .footer-menu-container {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 50%;
  -ms-flex: 0 0 50%;
  flex: 0 0 50%;
}
footer .top .footer-menu-container ul {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
  -ms-flex-align: start;
  align-items: flex-start;
}
footer .top .footer-menu-container ul li {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 50%;
  -ms-flex: 0 0 50%;
  flex: 0 0 50%;
}
footer .top .footer-menu-container ul li a {
  font-family: "Lora", sans-serif;
  padding: 0 0 16px;
  font-size: 14px;
  font-weight: 800;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #fff;
}
footer .top .footer-menu-container ul li a:hover {
  color: #f7a400;
}
footer .top .logo {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 25%;
  -ms-flex: 0 0 25%;
  flex: 0 0 25%;
}
footer .top .logo img {
  max-width: 66%;
}
footer .top .logo .social {
  margin-top: 7px;
}
footer .top .logo .social a,
footer .top .logo .social i {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #fff;
}
footer .top .logo .social a:hover,
footer .top .logo .social i:hover {
  color: #f7a400;
}
footer .top .logo .social i {
  font-size: 25px;
}
footer .top .contact {
  margin-left: auto;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 25%;
  -ms-flex: 0 0 25%;
  flex: 0 0 25%;
}
footer .top .contact h6 {
  padding-bottom: 9px;
  font-weight: 800;
  font-size: 14px;
  font-family: "Lora", sans-serif;
}
footer .bottom {
  border-top: 1px dotted white;
  padding: 35px 0;
}
footer .bottom h6 {
  text-align: center;
  width: 100%;
  color: white;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  font-size: 12px;
  font-weight: 600;
}
footer .bottom a {
  color: white;
}
@media screen and (max-width: 56.1875em) {
  footer .top .logo {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
  }
  footer .top .logo .social {
    margin-top: 15px;
  }
  footer .top .contact {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
    -ms-flex-order: 3;
    order: 3;
    margin: 0;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    text-align: center;
  }
  footer .top .footer-menu-container {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
    -ms-flex-order: 2;
    order: 2;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    padding: 35px 0;
  }
  footer .top .footer-menu-container li {
    -webkit-box-flex: 0 !important;
    -webkit-flex: 0 0 100% !important;
    -ms-flex: 0 0 100% !important;
    flex: 0 0 100% !important;
  }
  footer .top .footer-menu-container li a {
    text-align: center;
    display: block;
  }
  footer .bottom {
    padding-left: 20%;
    padding-right: 20%;
  }
  footer .bottom a {
    color: white;
  }
}
header {
  padding: 20px 0;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  position: relative;
  z-index: 10;
}
header .nasaa-top-menu-container .menu,
header .nasaa-header-menu-container .menu {
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
  -ms-flex-pack: end;
  justify-content: flex-end;
}
@media screen and (min-width: 56.25em) {
  header .nasaa-top-menu-container .menu ul,
  header .nasaa-header-menu-container .menu ul {
    display: none;
  }
}
header .nasaa-top-menu-container .menu li,
header .nasaa-header-menu-container .menu li {
  list-style-position: inside;
}
header .nasaa-top-menu-container .menu li.current_page_item a,
header .nasaa-header-menu-container .menu li.current_page_item a {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #f7a400;
}
header .nasaa-top-menu-container .menu li.current_page_item a:hover,
header .nasaa-header-menu-container .menu li.current_page_item a:hover {
  color: #c48200;
}
header .nasaa-top-menu-container .menu li a,
header .nasaa-header-menu-container .menu li a {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1px;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #acacac;
  text-transform: uppercase;
}
header .nasaa-top-menu-container .menu li a:hover,
header .nasaa-header-menu-container .menu li a:hover {
  color: #939393;
}
header .nasaa-top-menu-container .menu li a:after,
header .nasaa-header-menu-container .menu li a:after {
  border-color: #acacac transparent transparent !important;
}
header .nasaa-top-menu-container .menu li li a:after,
header .nasaa-header-menu-container .menu li li a:after {
  border-color: transparent #acacac transparent !important;
}
header .nasaa-header-menu-container {
  padding-top: 5px;
}
header .nasaa-header-menu-container > ul > li {
  padding-top: 5px;
  border-top: 1px solid #acacac;
}
header .nasaa-site-logo {
  width: 400px;
}
@media screen and (max-width: 56.1875em) {
  header .nasaa-site-logo {
    width: 90%;
    max-width: 300px;
  }
}
header .nasaa-top-menu-container {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin-left: auto;
}
header .nasaa-top-menu-container .menu .button {
  border-radius: 17px;
  margin-left: 10px;
  margin-bottom: 0;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  padding: 0;
  transition: 250ms all ease-out;
  background-color: #f7a400;
}
@media screen and (max-width: 56.1875em) {
  header .nasaa-top-menu-container .menu .button {
    border-radius: 0;
    margin-left: 0;
  }
}
header .nasaa-top-menu-container .menu .button a {
  color: white;
  padding: 10px 22px;
}
header .nasaa-top-menu-container .menu .button:hover a {
  color: white;
}
header .nasaa-top-menu-container .menu .button:hover {
  background-color: #c48200;
}
header .nasaa-top-menu-container .menu .button.white {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #fff;
}
header .nasaa-top-menu-container .menu .button.white:hover {
  background-color: #e6e6e6;
}
header .nasaa-top-menu-container .menu .button.nasaa-gray-shade {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #ebebeb;
}
header .nasaa-top-menu-container .menu .button.nasaa-gray-shade:hover {
  background-color: #d2d2d2;
}
header .nasaa-top-menu-container .menu .button.nasaa-dark-gray {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #333;
}
header .nasaa-top-menu-container .menu .button.nasaa-dark-gray:hover {
  background-color: #1a1a1a;
}
header .nasaa-top-menu-container .menu .button.nasaa-light-gray {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #acacac;
}
header .nasaa-top-menu-container .menu .button.nasaa-light-gray:hover {
  background-color: #939393;
}
header .nasaa-top-menu-container .menu .button.nasaa-medium-gray {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #424242;
}
header .nasaa-top-menu-container .menu .button.nasaa-medium-gray:hover {
  background-color: #292929;
}
header .nasaa-top-menu-container .menu .button.nasaa-gray-shade-dark {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #d2d2d2;
}
header .nasaa-top-menu-container .menu .button.nasaa-gray-shade-dark:hover {
  background-color: #b9b9b9;
}
header .nasaa-top-menu-container .menu .button.dark-red {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #2e0206;
}
header .nasaa-top-menu-container .menu .button.dark-red:hover {
  background-color: #000;
}
header .nasaa-top-menu-container .menu .button.red {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #450007;
}
header .nasaa-top-menu-container .menu .button.red:hover {
  background-color: #120002;
}
header .nasaa-top-menu-container .menu .button.bright-red {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #880a17;
}
header .nasaa-top-menu-container .menu .button.bright-red:hover {
  background-color: #58070f;
}
header .nasaa-top-menu-container .menu .button.medium-gray-to-red {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #acacac;
}
header .nasaa-top-menu-container .menu .button.medium-gray-to-red:hover {
  background-color: #450007;
}
header .nasaa-top-menu-container .menu .button.dark-blue {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #0b0838;
}
header .nasaa-top-menu-container .menu .button.dark-blue:hover {
  background-color: #02020b;
}
header .nasaa-top-menu-container .menu .button.blue {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #262262;
}
header .nasaa-top-menu-container .menu .button.blue:hover {
  background-color: #17153c;
}
header .nasaa-top-menu-container .menu .button.cyan {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #00afd4;
}
header .nasaa-top-menu-container .menu .button.cyan:hover {
  background-color: #0085a1;
}
header .nasaa-top-menu-container .menu .button.orange {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #f7a400;
}
header .nasaa-top-menu-container .menu .button.orange:hover {
  background-color: #c48200;
}
header .nasaa-top-menu-container .menu .button.green {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #099;
}
header .nasaa-top-menu-container .menu .button.green:hover {
  background-color: #066;
}
header .nasaa-top-menu-container .menu .button.teal-green {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #0fa79a;
}
header .nasaa-top-menu-container .menu .button.teal-green:hover {
  background-color: #0b786f;
}
header .nasaa-top-menu-container .menu .button.purple {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #609;
}
header .nasaa-top-menu-container .menu .button.purple:hover {
  background-color: #406;
}
header .nasaa-top-menu-container .menu .button.white-to-orange {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #fff;
}
header .nasaa-top-menu-container .menu .button.white-to-orange:hover {
  background-color: #f7a400;
}
header .nasaa-top-menu-container .menu .button.gray-to-red {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #424242;
}
header .nasaa-top-menu-container .menu .button.gray-to-red:hover {
  background-color: #880a17;
}
header .nasaa-top-menu-container .menu .button.cyan-to-red {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #00afd4;
}
header .nasaa-top-menu-container .menu .button.cyan-to-red:hover {
  background-color: #450007;
}
header .nasaa-top-menu-container .menu .button.orange {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #f7a400;
}
header .nasaa-top-menu-container .menu .button.orange:hover {
  background-color: #c48200;
}
header .nasaa-top-menu-container .menu .button.med-light-gray {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #acacac;
}
header .nasaa-top-menu-container .menu .button.blue-to-red {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #262262;
}
header .nasaa-top-menu-container .menu .button.blue-to-red:hover {
  background-color: #880a17;
}
header .nasaa-top-menu-container .menu a {
  font-size: 90%;
}
header .nasaa-top-menu-container .nasaa-search {
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 250px;
  -ms-flex: 0 1 250px;
  flex: 0 1 250px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin-left: 15px;
  border-bottom: 1px solid #acacac;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
header .nasaa-top-menu-container .nasaa-search.closed {
  -webkit-box-flex: 0;
  -webkit-flex: 0;
  -ms-flex: 0;
  flex: 0;
  border-bottom: 1px solid white;
}
header .nasaa-top-menu-container .nasaa-search.closed input[type="text"] {
  display: none;
  width: 0;
  -webkit-box-flex: 0;
  -webkit-flex: 0;
  -ms-flex: 0;
  flex: 0;
  padding-left: 0;
  padding-right: 0;
}
header .nasaa-top-menu-container .nasaa-search input[type="text"] {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 -webkit-calc(100% - 20px);
  -ms-flex: 1 1 calc(100% - 20px);
  flex: 1 1 calc(100% - 20px);
  max-width: -webkit-calc(100% - 20px);
  max-width: calc(100% - 20px);
  margin: 0;
  border: none;
  box-shadow: none;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background: rgba(255, 255, 255, 0.7);
  padding: 0;
  height: 36px;
}
header .nasaa-top-menu-container .nasaa-search input[type="text"]:focus {
  outline: none;
}
header .nasaa-top-menu-container .nasaa-search input[type="submit"] {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 20px;
  -ms-flex: 0 0 20px;
  flex: 0 0 20px;
  -webkit-align-self: flex-end;
  -ms-flex-item-align: end;
  align-self: flex-end;
  margin-left: auto;
  height: 36px;
  font-family: fontello;
  background: white;
  border: none;
  color: #acacac;
  font-size: 16px;
  padding: 0;
}
header .nasaa-header-menu-container .menu > li {
  padding: 0;
}
header .nasaa-header-menu-container .menu > li > a {
  padding: 10px;
  font-weight: 600;
}
header .nasaa-header-menu-container .primary-menu-container .menu li a {
  padding: 10px 10px 10px 30px;
}
@media screen and (max-width: 56.1875em) {
  header .nasaa-header-menu-container .primary-menu-container .menu li a {
    padding: 10px;
  }
}
@media screen and (max-width: 56.1875em) {
  header {
    padding: 35px 0 15px;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
  }
  .admin-bar header .header-menu {
    padding-top: 10px;
  }
  .admin-bar header .header-menu .close-menu {
    top: 45px;
  }
  header .close-menu {
    position: absolute;
    top: 0;
    right: 100%;
    width: 10vw;
    height: -webkit-calc(100vh - 45px);
    height: calc(100vh - 45px);
    background: rgba(69, 0, 7, 0.85);
  }
  header .close-menu i {
    color: white;
    width: 100%;
    display: block;
    text-align: center;
    line-height: 2;
    font-size: 25px;
  }
  header .header-menu-trigger {
    margin-left: auto;
  }
  header .header-menu-trigger i {
    font-size: 45px;
    color: #f7a400;
  }
  header .header-menu {
    position: absolute;
    top: 100%;
    right: 0;
    width: 90vw;
    padding: 0;
    height: auto;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: column-reverse;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse;
    -webkit-transition: 250ms all ease-out;
    transition: 250ms all ease-out;
    background: #f7a400;
  }
  header .header-menu.mobile-closed {
    height: 0;
    padding-top: 0;
    overflow: hidden;
  }
  header .header-menu .nasaa-top-menu-container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }
  header .header-menu #menu-top-menu {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    position: relative;
    background: #450007;
    padding-top: 12px;
  }
  header .header-menu #menu-top-menu:before {
    height: 1px;
    background: black;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
  }
  header .header-menu #menu-top-menu li {
    border-bottom: 1px solid #78000c;
  }
  header .header-menu #menu-top-menu li.nasaa-menu-login {
    background: white;
  }
  header .header-menu #menu-top-menu li.nasaa-menu-login a {
    color: #2199e8;
  }
  header .header-menu .nasaa-header-menu-container {
    overflow-y: auto;
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
    -ms-flex-order: 2;
    order: 2;
    border: none;
    margin: 0;
    padding: 0;
  }
  header .header-menu .nasaa-top-menu-container {
    margin: 0;
    width: 100%;
    padding: 0;
  }
  header .header-menu .stars {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1;
    text-align: center;
    padding-bottom: 7px;
  }
  header .header-menu .stars i {
    color: white;
  }
  header .header-menu .nasaa-top-menu {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
    -ms-flex-order: 3;
    order: 3;
  }
  header .header-menu .row {
    width: 100%;
    margin: auto;
  }
  header .header-menu a {
    text-align: center;
    font-size: 13px !important;
    letter-spacing: 1px !important;
    color: white !important;
    display: block;
  }
  header .nasaa-header-menus-container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
  header .nasaa-header-menus-container .nasaa-mobile-search {
    margin-top: auto;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 15px;
    border: 1px solid #333;
    border-radius: 25px;
    padding: 0 10px;
  }
  header .nasaa-header-menus-container .nasaa-mobile-search input[type="text"] {
    margin: 0;
    border: none;
    box-shadow: none;
    background: transparent;
  }
  header
    .nasaa-header-menus-container
    .nasaa-mobile-search
    input[type="submit"] {
    background: transparent;
    border: none;
    font-family: fontello;
  }
  header .nasaa-header-menus-container .nasaa-mobile-social {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    padding-bottom: 15px;
  }
  header #menu-top-menu li {
    width: 100%;
    border-bottom: 1px solid #333;
  }
  header #menu-top-menu li > :nth-last-child(2) {
    border-bottom: none;
    margin-bottom: 10px;
  }
  header #menu-top-menu a {
    font-size: 22px;
    padding: 10px;
    font-weight: 600;
  }
  header #menu-top-menu li.nasaa-menu-login {
    background: #0b0838 !important;
    border: none;
    padding: 0;
    border-radius: 0;
    margin: 15px 0 0 0;
  }
  header #menu-top-menu li.nasaa-menu-login a {
    color: white !important;
    text-align: center;
    letter-spacing: 2px;
    font-size: 14px;
    font-weight: 800;
    display: block;
  }
  header #menu-nasaa-menu {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    overflow-y: auto;
    padding-bottom: 15px;
  }
}
@media screen and (max-width: 56.1875em) and (max-width: 56.1875em) {
  header #menu-nasaa-menu {
    padding-bottom: 0;
  }
}
@media screen and (max-width: 56.1875em) {
  header #menu-nasaa-menu > li {
    width: 100%;
    border-top: none;
    border-bottom: 1px solid #c48200;
  }
  header #menu-nasaa-menu > li:last-of-type {
    border: none;
  }
  header #menu-nasaa-menu > li > a {
    display: block;
    font-size: 22px;
  }
  header #menu-nasaa-menu > li > .sub-menu {
    position: relative;
    left: 0;
    background-color: #e48800;
    font-family: "Lora", sans-serif;
  }
  header #menu-nasaa-menu > li > .sub-menu a {
    text-transform: inherit;
  }
  header #menu-top-menu .nasaa-mobile-submenu-trigger,
  header #menu-nasaa-menu .nasaa-mobile-submenu-trigger {
    -webkit-transition: 250ms all ease-out;
    transition: 250ms all ease-out;
    position: absolute;
    right: 6px;
    border-width: 1.5px;
  }
  header #menu-top-menu .nasaa-mobile-submenu-trigger:before,
  header #menu-nasaa-menu .nasaa-mobile-submenu-trigger:before {
    position: relative;
    left: 0.5px;
    top: 0.8px;
  }
  header #menu-top-menu .nasaa-mobile-submenu-trigger.open,
  header #menu-nasaa-menu .nasaa-mobile-submenu-trigger.open {
    -webkit-transform: rotate(180deg);
    -ms-transform: rotate(180deg);
    transform: rotate(180deg);
  }
  header #menu-top-menu ul,
  header #menu-nasaa-menu ul {
    display: none;
  }
}
header .header-menu {
  width: 100%;
}
header .nasaa-header-menu-container {
  border-top: 1px solid #e6e6e6;
  padding-top: 17px;
  margin-top: 11px;
  padding-bottom: 11px;
}
header .nasaa-header-menu-container .menu li a {
  font-size: 12px;
}
header .nasaa-header-menu-container .nasaa-member-buttons {
  position: relative;
}
@media screen and (min-width: 56.25em) and (max-width: 63.9375em) {
  header .nasaa-header-menu-container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }
  header .nasaa-header-menu-container #menu-nasaa-menu {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: end;
    -webkit-justify-content: flex-end;
    -ms-flex-pack: end;
    justify-content: flex-end;
  }
  header .nasaa-header-menu-container .nasaa-member-buttons {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
  header .nasaa-header-menu-container .nasaa-member-buttons .button {
    margin: 0 auto 10px 0;
  }
}
@media screen and (max-width: 56.1875em) {
  header .nasaa-header-menu-container .row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    display: block;
  }
}
header .menu .sub-menu {
  list-style: none;
  margin: 0;
}
header .menu .sub-menu a {
  padding: 3px 10px;
  display: block;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
header .menu .sub-menu a:hover {
  background: #ccc;
}
@media screen and (min-width: 56.25em) and (max-width: 63.9375em) {
  header .header-menu {
    padding: 0;
  }
  header .nasaa-header-menus-container {
    padding: 0;
  }
  header .nasaa-header-menu-container {
    border-top: 1px solid #acacac;
    padding-top: 10px;
    margin-top: 10px;
  }
  header .nasaa-header-menu-container .menu,
  header .nasaa-top-menu-container .menu {
    -webkit-justify-content: space-around;
    -ms-flex-pack: distribute;
    justify-content: space-around;
  }
  header .nasaa-header-menu-container .menu li,
  header .nasaa-top-menu-container .menu li {
    border-top: none;
  }
  header .logo-container {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    padding-top: 15px;
    padding-bottom: 30px;
  }
}
.nasaa-menu-dd {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: rgba(247, 164, 0, 0.8);
}
.nasaa-interior-header-text.header-menu-dd {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  display: none;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-interior-header-text.header-menu-dd {
    display: none !important;
  }
}
.nasaa-interior-header-text.header-menu-dd .title .bold-subheader {
  border-bottom: 2px solid white;
  padding-bottom: 2px;
  margin-top: 2px;
  float: right;
}
.nasaa-interior-header-text.header-menu-dd .title .bold-subheader:hover {
  color: #880a17;
  border-bottom-color: #880a17;
}
.nasaa-interior-header-text.header-menu-dd .content .menu-header {
  font-family: "Lora", sans-serif;
  font-style: italic;
  margin: 32px 0 22px;
  line-height: 1;
}
.nasaa-interior-header-text.header-menu-dd .content ul {
  list-style-type: none;
  margin: 0;
}
.nasaa-interior-header-text.header-menu-dd .content ul a {
  font-family: "Lora", sans-serif;
}
.nasaa-interior-header-text.header-menu-dd .content ul a:hover {
  color: #880a17;
}
.nasaa-home-hero .slide {
  overflow-y: hidden;
  position: relative;
  background-position: top right;
}
.nasaa-home-hero .slide .text {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 30%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  padding: 0 15px;
  background: rgba(46, 2, 6, 0.85);
  background-blend-mode: multiply;
  background-position-x: 100%;
  background-position-y: 0;
  padding-left: 40px;
}
.nasaa-home-hero .slide .text h1 {
  color: white;
  font-size: 24px;
}
.nasaa-home-hero .slide .text p {
  color: white;
  font-siz: 18px;
}
.nasaa-home-hero .slide .text a.button {
  font-size: 15px;
  padding: 12px 25px;
}
.nasaa-home-hero .slide .text a.button i {
  font-size: 11px;
  top: -1px;
  position: relative;
  margin-left: 6px;
}
.nasaa-home-hero .slide .text a.button i:before {
  left: 8%;
}
.nasaa-home-hero .slide .cta i {
  margin-left: 15px;
}
.nasaa-home-hero .slide .slide-meta {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
}
.nasaa-home-hero .slide .slide-meta .pagination {
  margin-left: auto;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
.nasaa-home-hero .slide .slide-meta .pagination .prev,
.nasaa-home-hero .slide .slide-meta .pagination .next {
  background: #880a17;
  padding: 10px;
  text-align: center;
  line-height: 0;
}
.nasaa-home-hero .slide .slide-meta .pagination .next {
  margin-left: 7px;
}
.nasaa-home-hero .slide .slide-meta .pagination i {
  border-width: 2px;
  color: white;
}
.nasaa-home-hero .slide .slide-meta .pagination i:before {
  left: 0;
}
.nasaa-home-hero .slide .slide-meta .position {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
.nasaa-home-hero .slide .slide-meta .position p {
  font-family: "Lora", sans-serif;
  margin: 0;
}
.nasaa-home-hero .slide .slide-meta .position p span {
  font-size: 175%;
}
.nasaa-home-hero .news {
  margin-left: auto;
}
@media screen and (min-width: 1024px) and (max-width: 1200px) {
  .nasaa-home-hero .slide .text {
    width: 40%;
  }
  .nasaa-home-hero .slide .text h1 {
    font-size: 20px;
  }
  .nasaa-home-hero .slide .text p {
    font-size: 16px;
  }
  .nasaa-home-hero .slide .text h3 span {
    font-size: 16px;
    line-height: 20px;
    display: inline-block;
  }
}
@media screen and (min-width: 56.25em) and (max-width: 63.9375em) {
  .nasaa-home-hero .slide .text {
    width: 40%;
  }
  .nasaa-home-hero .slide .text h1 {
    font-size: 20px;
  }
  .nasaa-home-hero .slide .text p {
    font-size: 16px;
  }
}
@media screen and (max-width: 56.1875em) {
  .nasaa-home-hero .slide {
    background-image: none !important;
  }
  .nasaa-home-hero .slide .text {
    width: 100%;
    position: relative;
    padding: 15px;
    background-color: #450007;
    border-bottom: 1px solid white;
  }
  .nasaa-home-hero .slide .text h1 {
    font-size: 16px;
    line-height: 1.2;
    margin-bottom: 15px;
  }
  .nasaa-home-hero .slide .text p {
    line-height: 1.2em;
    font-size: 16px;
  }
  .nasaa-home-hero .slide .text p:last-of-type {
    margin-bottom: 0;
  }
  .nasaa-home-hero .slide .text .button {
    padding: 8px 18px;
    font-size: 14px;
    margin: 0 auto;
  }
}
.nasaa-home-news-slider-container {
  padding: 5px 25px 25px;
  background: #450007;
  position: relative;
  z-index: 2;
}
.nasaa-home-news-slider-container h5 {
  color: white;
  font-size: 13px;
  line-height: 1.1;
}
.nasaa-home-news-slider-container h5.type {
  font-weight: bold;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.nasaa-home-news-slider-container .news-title-for-slider h5 {
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
  line-height: 3;
  padding-left: 10px;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-home-news-slider-container .news-title-for-slider h5 {
    padding-left: 3em;
  }
}
.nasaa-home-news-slider-container .owl-item.active {
  border-right: 1px dashed #880a17;
}
.nasaa-home-news-slider-container .owl-item.active:last-of-type {
  border-right: none;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-home-news-slider-container .owl-item.active {
    border: none;
  }
}
.nasaa-home-news-slider-container .slide {
  padding: 3px 10px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-home-news-slider-container .slide {
    display: inherit;
  }
}
.nasaa-home-news-slider-container .slide h5,
.nasaa-home-news-slider-container .slide h6,
.nasaa-home-news-slider-container .slide p {
  color: white;
  font-size: 13px;
  line-height: 1.1;
}
.nasaa-home-news-slider-container .slide .img {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 100px;
  -ms-flex: 0 0 100px;
  flex: 0 0 100px;
  padding-right: 10px;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-home-news-slider-container .slide .img {
    padding-right: 0;
    padding-bottom: 1em;
  }
}
.nasaa-home-news-slider-container .slide .meta {
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 -webkit-calc(100% - 100px);
  -ms-flex: 1 0 calc(100% - 100px);
  flex: 1 0 calc(100% - 100px);
}
.nasaa-home-news-slider-container .slide .meta a {
  font-family: "Lora", sans-serif;
  color: #f7a400;
}
.nasaa-home-news-slider-container .pagination {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  cursor: pointer;
}
.nasaa-home-news-slider-container .pagination i {
  color: #ef2338;
  border-color: #cf0f23;
  padding: 2px;
  border-width: 2px;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-home-news-slider-container .pagination {
    padding: 0;
  }
}
.nasaa-home-content .nasaa-research .section-title {
  border-bottom-color: #262262;
}
.nasaa-home-content .nasaa-research .section-title h3,
.nasaa-home-content .nasaa-research .section-title i {
  color: #262262;
}
.nasaa-home-content .nasaa-research .view_more {
  color: #262262;
}
.nasaa-home-content .section-title {
  padding-bottom: 5px;
}
.nasaa-home-content .section-title h3 {
  color: #262262;
  margin: 0;
}
@media screen and (min-width: 56.25em) and (max-width: 63.9375em) {
  .nasaa-home-content .nasaa-connect {
    margin-top: 30px;
  }
}
.nasaa-home-membership {
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}
.nasaa-home-membership .text-on-bg-img {
  position: relative;
}
.nasaa-home-membership .text-on-bg-img img {
  width: 100%;
}
.nasaa-home-membership .text-on-bg-img .text {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  padding: 0 12%;
}
.nasaa-home-membership .text-on-bg-img .text > * {
  width: 100%;
  text-align: center;
}
.nasaa-home-membership .text-on-bg-img .text * {
  color: white;
}
.nasaa-home-membership .text-on-bg-img .text h2 {
  font-size: 32px;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-home-membership .text-on-bg-img .text h2 {
    font-size: 25px;
    line-height: 1.3;
  }
}
.nasaa-home-membership .text-on-bg-img .text .icons {
  padding: 0 0 10px;
}
.nasaa-home-membership .text {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}
.nasaa-home-membership .text > * {
  width: 100%;
}
.nasaa-home-membership .text ul {
  list-style-type: none;
  margin-left: 0;
}
.nasaa-home-membership .text ul li {
  font-family: "Lora", sans-serif;
}
.nasaa-home-membership .text ul li i {
  color: #450007;
}
@media screen and (max-width: 63.9375em) {
  .nasaa-home-membership .text-on-bg-img {
    background-position: center;
    background-size: cover;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    height: 100%;
    margin-bottom: 15px;
  }
  .nasaa-home-membership .text-on-bg-img .text {
    position: relative;
    padding: 5px 5px 0;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    height: 100%;
  }
  .nasaa-home-membership .text ul {
    margin-left: 0;
  }
}
@media screen and (min-width: 31.25em) and (max-width: 56.1875em) {
  .nasaa-home-membership .text {
    padding-top: 30px;
  }
}
.nasaa-member-only-content {
  text-align: center;
  background: #f7a400;
  padding: 20px 0;
}
.nasaa-member-only-content h2 {
  font-size: 35px;
  color: white;
}
.nasaa-member-only-content .button {
  background: white;
  border-radius: 25px;
  color: #f7a400;
  margin: 0;
  font-size: 11px;
}
.nasaa-member-only-content .button i {
  color: #f7a400 !important;
}
.nasaa-member-only-content .button:hover {
  color: #880a17;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-home-hero.owl-carousel .owl-item img {
    max-width: inherit;
  }
}
.nasaa-blog-home-header > .row {
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
  -ms-flex-align: end;
  align-items: flex-end;
}
.nasaa-blog-home-header .filters {
  margin-left: auto;
}
.nasaa-blog-filters form {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  width: 100%;
  padding: 35px 15px 45px;
}
.nasaa-blog-filters form h4 {
  color: #acacac;
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 25%;
  -ms-flex: 0 1 25%;
  flex: 0 1 25%;
  margin: 0;
}
.nasaa-blog-filters form .filter {
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
  -ms-flex: 0 1 auto;
  flex: 0 1 auto;
  padding-right: 30px;
}
.nasaa-blog-filters form .filter h6 {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
  color: #acacac;
  margin-bottom: 7px;
}
.nasaa-blog-filters form .filter select {
  width: 300px;
  margin: 0;
  border-radius: 25px;
}
.nasaa-blog-excerpt {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.nasaa-blog-excerpt .image {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  padding-right: 20px;
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 25%;
  -ms-flex: 1 0 25%;
  flex: 1 0 25%;
}
.nasaa-blog-excerpt .content_container {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 75%;
  -ms-flex: 1 1 75%;
  flex: 1 1 75%;
}
.nasaa-blog-excerpt .meta {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
  padding-bottom: 15px;
  color: #acacac;
}
.nasaa-blog-excerpt .meta a {
  color: #acacac;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-blog-excerpt {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }
  .nasaa-blog-excerpt .image,
  .nasaa-blog-excerpt .content {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
  }
}
.nasaa-post-container {
  margin: auto;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-post-container .columns {
    -webkit-box-flex: 0 !important;
    -webkit-flex: 0 1 auto !important;
    -ms-flex: 0 1 auto !important;
    flex: 0 1 auto !important;
  }
}
.nasaa-post-container .post-tags span {
  font-weight: 600;
}
.nasaa-related-posts {
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
}
.nasaa-related-posts .nasaa-related-post {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 30%;
  -ms-flex: 0 0 30%;
  flex: 0 0 30%;
}
.nasaa-related-posts .nasaa-related-post .title {
  font-weight: 600;
}
.nasaa-front-page-excerpt,
.nasaa-front-page-excerpt-with-icon {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  padding-bottom: 10px;
  margin-bottom: 10px;
  border-bottom: 1px solid #acacac;
}
.nasaa-front-page-excerpt:last-of-type,
.nasaa-front-page-excerpt-with-icon:last-of-type {
  border-bottom: none;
}
.nasaa-front-page-excerpt i,
.nasaa-front-page-excerpt-with-icon i {
  font-size: 40px;
  margin-right: 15px;
}
.nasaa-front-page-excerpt i:before,
.nasaa-front-page-excerpt-with-icon i:before {
  margin: 0;
}
.nasaa-front-page-excerpt .title,
.nasaa-front-page-excerpt-with-icon .title {
  margin: 0;
}
.nasaa-front-page-excerpt .title a,
.nasaa-front-page-excerpt-with-icon .title a {
  color: #333;
}
.nasaa-front-page-excerpt .info,
.nasaa-front-page-excerpt-with-icon .info {
  margin: 0;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  color: #acacac;
  font-size: 10px;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  font-weight: 700;
}
.nasaa-simple-content h1 {
  color: #880a17;
}
.nasaa-research-filter-container {
  background: #0b0838;
  height: 100%;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  padding: 30px 55px;
  margin: 0 45px;
}
.nasaa-research-filter-container .title {
  font-family: "Lora", sans-serif;
  text-transform: none;
  font-weight: 100;
  letter-spacing: 0.6px;
  font-size: 25px;
}
.nasaa-research-filter-container p {
  color: white;
}
.nasaa-research-filter-container .select-wrapper i {
  color: white;
}
.nasaa-research-filter-container .select-wrapper i:before {
  left: 0;
  top: 0.5px;
}
.nasaa-research-filter-container label {
  margin-bottom: 5px;
}
.nasaa-research-filter-container input[type="submit"] {
  margin-top: 15px;
}
@media screen and (min-width: 56.25em) and (max-width: 63.9375em) {
  .nasaa-research-filter-container {
    margin: 15px 30px;
  }
}
@media screen and (max-width: 56.1875em) {
  .nasaa-research-filter-container {
    margin: 0;
  }
}
.nasaa-cta {
  background: #f7a400;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  padding: 20px 0;
}
.nasaa-cta.footer-cta {
  display: block;
}
.nasaa-cta .row {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}
.nasaa-cta .row .gform_wrapper {
  width: 50%;
  margin: auto;
}
@media screen and (max-width: 63.9375em) {
  .nasaa-cta .row .gform_wrapper {
    max-width: 75%;
  }
}
@media screen and (max-width: 56.1875em) {
  .nasaa-cta .row .gform_wrapper {
    max-width: none;
  }
}
.nasaa-cta form .input_submit_wrapper:after {
  color: #f7a400 !important;
  border-color: #f7a400 !important;
  top: -webkit-calc(50% - 10px);
  top: calc(50% - 10px);
}
.nasaa-cta a.button.with-icon::after {
  border-color: #f7a400;
  color: #f7a400;
}
.nasaa-cta a.button.with-icon::after:hover {
  color: #450007 !important;
  border-color: #450007 !important;
}
.nasaa-cta a.button.with-icon::after {
  border-color: #f7a400;
  color: #f7a400;
}
.nasaa-cta a.button.with-icon::after:after:hover {
  color: #450007 !important;
  border-color: #450007 !important;
}
.nasaa-cta .content {
  max-width: 550px;
  width: 80%;
  margin: auto;
}
.nasaa-cta * {
  text-align: center;
}
.nasaa-cta h2 {
  color: white;
  text-align: center;
  font-size: 36px;
  margin-bottom: 15px;
}
.nasaa-cta p {
  color: white;
  line-height: 0;
  margin-bottom: 0;
}
.nasaa-cta .button {
  color: #f7a400 !important;
  background: white;
  border-radius: 25px;
  margin: 0;
}
.nasaa-cta .button:after {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-cta .button:hover {
  color: #450007 !important;
}
.nasaa-cta .button:hover:after {
  color: #450007 !important;
  border-color: #450007 !important;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-cta {
    padding: 15px;
  }
  .nasaa-cta h2 {
    font-size: 26px;
  }
}
.nasaa-advocacy-archive-header .signup-container {
  margin-left: auto;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  padding: 3% 7%;
  background-position: center;
  background-size: cover;
  position: relative;
  background-color: rgba(138, 138, 138, 0.9);
  background-blend-mode: multiply;
}
.nasaa-advocacy-archive-header .signup-container h4 {
  color: white;
  text-align: center;
}
.nasaa-advocacy-archive-header .signup-container p {
  color: white;
}
.nasaa-advocacy-archive-header .signup-container input[type="text"],
.nasaa-advocacy-archive-header .signup-container input[type="email"] {
  background-color: rgba(255, 255, 255, 0.4);
  border: 1px solid white;
  border-radius: 25px;
  box-shadow: none;
  margin-bottom: 25px !important;
}
.nasaa-advocacy-archive-header
  .signup-container
  input[type="text"]::-webkit-input-placeholder,
.nasaa-advocacy-archive-header
  .signup-container
  input[type="email"]::-webkit-input-placeholder {
  color: white;
}
.nasaa-advocacy-archive-header
  .signup-container
  input[type="text"]:-ms-input-placeholder,
.nasaa-advocacy-archive-header
  .signup-container
  input[type="email"]:-ms-input-placeholder {
  color: white;
}
.nasaa-advocacy-archive-header
  .signup-container
  input[type="text"]::placeholder,
.nasaa-advocacy-archive-header
  .signup-container
  input[type="email"]::placeholder {
  color: white;
}
.nasaa-advocacy-archive-header .signup-container input[type="submit"] {
  margin: auto;
  display: block;
}
.nasaa-advocacy-archive-header .signup {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.nasaa-advocacy-archive-header .signup input.first_name,
.nasaa-advocacy-archive-header .signup input.last_name {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 50%;
  -ms-flex: 0 0 50%;
  flex: 0 0 50%;
  margin-bottom: 5px;
}
.nasaa-advocacy-archive-header .signup input.email_address {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 100%;
  -ms-flex: 0 0 100%;
  flex: 0 0 100%;
}
.nasaa-advocacy-archive-header .signup input[type="submit"] {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}
.nasaa-advocacy-helpers {
  height: auto;
}
.nasaa-advocacy-helpers .content {
  width: 100%;
  max-width: none;
}
.nasaa-advocacy-helpers .content .title {
  text-align: center;
}
.nasaa-advocacy-helpers .content * {
  color: white;
  text-align: left;
}
.nasaa-advocacy-helpers .content h3 {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 15px;
  line-height: 1.2;
}
.nasaa-advocacy-helpers .content h6 {
  margin-bottom: 10px;
}
.nasaa-advocacy-helpers .content p {
  font-size: 14px;
  line-height: 1.3;
}
.nasaa-advocacy-helpers .helper {
  height: 140px;
  width: 140px;
  background-position: center;
  border-radius: 100%;
}
.nasaa-excerpt-with-icon {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  border-bottom: 1px solid #d2d2d2;
  padding: 10px 0;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-excerpt-with-icon * {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-excerpt-with-icon i {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 45px;
  -ms-flex: 0 0 45px;
  flex: 0 0 45px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  color: #333;
  font-size: 20px;
}
.nasaa-excerpt-with-icon h5 {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  font-size: 18px;
  margin: 0;
  padding: 0 3px;
}
.nasaa-excerpt-with-icon a {
  color: #333;
}
.nasaa-excerpt-with-icon:hover {
  background: #333;
}
.nasaa-excerpt-with-icon:hover a,
.nasaa-excerpt-with-icon:hover i {
  color: white;
}
.nasaa-excerpt-with-icon:last-child {
  border-bottom: none;
}
.nasaa-content-with-multiple-file-sections .nasaa-file-section-container {
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.nasaa-content-with-multiple-file-sections
  .nasaa-file-section-container
  .nasaa-file-section {
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 33%;
  -ms-flex: 1 0 33%;
  flex: 1 0 33%;
}
.nasaa-member-login {
  width: 50%;
  margin: auto;
}
@media screen and (min-width: 56.25em) and (max-width: 63.9375em) {
  .nasaa-member-login {
    width: 75%;
  }
}
@media screen and (max-width: 56.1875em) {
  .nasaa-member-login {
    width: 100%;
  }
}
.nasaa-post-excerpt {
  border-bottom: 1px solid #e6e6e6;
  margin-bottom: 15px;
}
.nasaa-post-excerpt:last-of-type {
  border-bottom: none;
  margin-bottom: 0;
}
.nasaa-post-excerpt h6 {
  margin: 0 0 5px;
  color: #acacac;
  font-size: 10px;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  font-weight: 700;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
}
.nasaa-post-excerpt h4 {
  font-size: 18px;
}
.nasaa-post-excerpt a {
  color: #333;
}
.nasaa-interior-hero {
  position: relative;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.nasaa-interior-hero img {
  width: 100%;
}
.nasaa-interior-hero .text-container {
  position: absolute;
  bottom: -3px;
  left: 0;
  right: 0;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-interior-hero .text-container {
    bottom: -25px;
  }
}
.nasaa-interior-hero.white-text h1 {
  color: #fff;
}
.nasaa-interior-hero.nasaa-gray-shade-text h1 {
  color: #ebebeb;
}
.nasaa-interior-hero.nasaa-dark-gray-text h1 {
  color: #333;
}
.nasaa-interior-hero.nasaa-light-gray-text h1 {
  color: #acacac;
}
.nasaa-interior-hero.nasaa-medium-gray-text h1 {
  color: #424242;
}
.nasaa-interior-hero.nasaa-gray-shade-dark-text h1 {
  color: #d2d2d2;
}
.nasaa-interior-hero.dark-red-text h1 {
  color: #2e0206;
}
.nasaa-interior-hero.red-text h1 {
  color: #450007;
}
.nasaa-interior-hero.bright-red-text h1 {
  color: #880a17;
}
.nasaa-interior-hero.medium-gray-to-red-text h1 {
  color: #acacac;
}
.nasaa-interior-hero.dark-blue-text h1 {
  color: #0b0838;
}
.nasaa-interior-hero.blue-text h1 {
  color: #262262;
}
.nasaa-interior-hero.cyan-text h1 {
  color: #00afd4;
}
.nasaa-interior-hero.orange-text h1 {
  color: #f7a400;
}
.nasaa-interior-hero.green-text h1 {
  color: #099;
}
.nasaa-interior-hero.teal-green-text h1 {
  color: #0fa79a;
}
.nasaa-interior-hero.purple-text h1 {
  color: #609;
}
.nasaa-interior-hero.white-to-orange-text h1 {
  color: #fff;
}
.nasaa-interior-hero.gray-to-red-text h1 {
  color: #424242;
}
.nasaa-interior-hero.cyan-to-red-text h1 {
  color: #00afd4;
}
.nasaa-interior-hero.orange-text h1 {
  color: #f7a400;
}
.nasaa-interior-hero.med-light-gray-text h1 {
  color: #acacac;
}
.nasaa-interior-hero.blue-to-red-text h1 {
  color: #262262;
}
.nasaa-interior-hero h1 {
  background: white;
  margin: 0;
  color: #f7a400;
  float: left;
  line-height: 1;
  padding: 15px 50px 0;
  font-size: 50px;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-interior-hero h1 {
    padding: 15px 25px 0;
    font-size: 36px;
  }
}
.nasaa-interior-hero h1.red {
  color: #880a17;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-interior-hero {
    height: 160px;
    background-size: cover;
    background-position: center;
  }
  .nasaa-interior-hero img {
    max-width: 100% !important;
    width: 100% !important;
    opacity: 0;
  }
  .nasaa-interior-hero .text-container {
    bottom: -35px;
  }
}
.nasaa-excerpt-with-excerpt {
  border-bottom: 1px solid #acacac;
  margin-bottom: 20px;
}
.nasaa-excerpt-with-excerpt h6 {
  color: #acacac;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
}
.nasaa-excerpt-with-excerpt a {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #333;
}
.nasaa-excerpt-with-excerpt a:hover {
  color: #1a1a1a;
}
.section-title {
  margin-bottom: 20px;
  border-bottom: 8px solid;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.section-title h3 {
  font-family: "Lora", sans-serif;
  line-height: 1.2;
  color: #262262;
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  font-size: 36px;
  letter-spacing: 1px;
  display: block;
  font-weight: 400;
  text-transform: none;
  max-width: 100%;
}
.section-title h3.small {
  font-size: 22px;
}
.section-title h3 small {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
  color: inherit;
  line-height: 1;
  display: block;
  padding-bottom: 5px;
}
.section-title p {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 100%;
  -ms-flex: 0 0 100%;
  flex: 0 0 100%;
}
.section-title i {
  font-size: 43px;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}
.section-title i:before {
  margin-left: 0;
  position: relative;
  top: -5px;
  display: block;
  line-height: 1;
}
.section-title > a {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
.section-title.white {
  border-bottom-color: #fff;
}
.section-title.white h3,
.section-title.white i {
  color: #fff;
}
.section-title.nasaa-gray-shade {
  border-bottom-color: #ebebeb;
}
.section-title.nasaa-gray-shade h3,
.section-title.nasaa-gray-shade i {
  color: #ebebeb;
}
.section-title.nasaa-dark-gray {
  border-bottom-color: #333;
}
.section-title.nasaa-dark-gray h3,
.section-title.nasaa-dark-gray i {
  color: #333;
}
.section-title.nasaa-light-gray {
  border-bottom-color: #acacac;
}
.section-title.nasaa-light-gray h3,
.section-title.nasaa-light-gray i {
  color: #acacac;
}
.section-title.nasaa-medium-gray {
  border-bottom-color: #424242;
}
.section-title.nasaa-medium-gray h3,
.section-title.nasaa-medium-gray i {
  color: #424242;
}
.section-title.nasaa-gray-shade-dark {
  border-bottom-color: #d2d2d2;
}
.section-title.nasaa-gray-shade-dark h3,
.section-title.nasaa-gray-shade-dark i {
  color: #d2d2d2;
}
.section-title.dark-red {
  border-bottom-color: #2e0206;
}
.section-title.dark-red h3,
.section-title.dark-red i {
  color: #2e0206;
}
.section-title.red {
  border-bottom-color: #450007;
}
.section-title.red h3,
.section-title.red i {
  color: #450007;
}
.section-title.bright-red {
  border-bottom-color: #880a17;
}
.section-title.bright-red h3,
.section-title.bright-red i {
  color: #880a17;
}
.section-title.medium-gray-to-red {
  border-bottom-color: #acacac;
}
.section-title.medium-gray-to-red h3,
.section-title.medium-gray-to-red i {
  color: #acacac;
}
.section-title.dark-blue {
  border-bottom-color: #0b0838;
}
.section-title.dark-blue h3,
.section-title.dark-blue i {
  color: #0b0838;
}
.section-title.blue {
  border-bottom-color: #262262;
}
.section-title.blue h3,
.section-title.blue i {
  color: #262262;
}
.section-title.cyan {
  border-bottom-color: #00afd4;
}
.section-title.cyan h3,
.section-title.cyan i {
  color: #00afd4;
}
.section-title.orange {
  border-bottom-color: #f7a400;
}
.section-title.orange h3,
.section-title.orange i {
  color: #f7a400;
}
.section-title.green {
  border-bottom-color: #099;
}
.section-title.green h3,
.section-title.green i {
  color: #099;
}
.section-title.teal-green {
  border-bottom-color: #0fa79a;
}
.section-title.teal-green h3,
.section-title.teal-green i {
  color: #0fa79a;
}
.section-title.purple {
  border-bottom-color: #609;
}
.section-title.purple h3,
.section-title.purple i {
  color: #609;
}
.section-title.white-to-orange {
  border-bottom-color: #fff;
}
.section-title.white-to-orange h3,
.section-title.white-to-orange i {
  color: #fff;
}
.section-title.gray-to-red {
  border-bottom-color: #424242;
}
.section-title.gray-to-red h3,
.section-title.gray-to-red i {
  color: #424242;
}
.section-title.cyan-to-red {
  border-bottom-color: #00afd4;
}
.section-title.cyan-to-red h3,
.section-title.cyan-to-red i {
  color: #00afd4;
}
.section-title.orange {
  border-bottom-color: #f7a400;
}
.section-title.orange h3,
.section-title.orange i {
  color: #f7a400;
}
.section-title.med-light-gray {
  border-bottom-color: #acacac;
}
.section-title.med-light-gray h3,
.section-title.med-light-gray i {
  color: #acacac;
}
.section-title.blue-to-red {
  border-bottom-color: #262262;
}
.section-title.blue-to-red h3,
.section-title.blue-to-red i {
  color: #262262;
}
.nasaa-image-with-text-overlay {
  position: relative;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  width: 100%;
}
.nasaa-image-with-text-overlay > a:hover h2 {
  color: #f7a400;
}
.nasaa-image-with-text-overlay h2 {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-image-with-text-overlay a {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #fff;
}
.nasaa-image-with-text-overlay a:hover {
  color: #f7a400;
}
.nasaa-image-with-text-overlay .credit {
  position: absolute;
  bottom: 15px;
  right: 15px;
  font-family: "Lora", sans-serif;
  color: rgba(255, 255, 255, 0.8);
  font-weight: 600;
  font-style: italic;
  margin: 0;
  font-size: 11px;
  letter-spacing: 0.5px;
}
.nasaa-image-with-text-overlay img {
  width: 100%;
  height: 100%;
  display: block;
}
.nasaa-image-with-text-overlay .text {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 15%;
  right: 15%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  z-index: 2;
}
.nasaa-image-with-text-overlay .text * {
  max-width: 100%;
}
.nasaa-image-with-text-overlay .text *:last-child {
  margin-bottom: 0 !important;
}
.nasaa-image-with-text-overlay h2 {
  color: white;
  font-size: 32px;
  line-height: 1.2;
  text-align: center;
}
.nasaa-image-with-text-overlay p {
  color: white;
}
.nasaa-image-with-text-overlay .nasaa-ask-a-question-form input[type="text"] {
  border: none;
  border-bottom: 1px solid white;
  width: 400px;
  color: white;
  background: transparent;
  box-shadow: none;
  text-align: center;
}
.nasaa-image-with-text-overlay
  .nasaa-ask-a-question-form
  input[type="text"]::-webkit-input-placeholder {
  font-style: italic;
  color: white;
}
.nasaa-image-with-text-overlay
  .nasaa-ask-a-question-form
  input[type="text"]:-ms-input-placeholder {
  font-style: italic;
  color: white;
}
.nasaa-image-with-text-overlay
  .nasaa-ask-a-question-form
  input[type="text"]::placeholder {
  font-style: italic;
  color: white;
}
.nasaa-image-with-text-overlay .nasaa-ask-a-question-form input[type="submit"] {
  display: block;
  margin: 15px auto 0;
}
.nasaa-image-with-text-overlay.shade {
  background-blend-mode: multiply;
  background-size: cover;
}
.nasaa-image-with-text-overlay.shade.white {
  background-color: rgba(255, 255, 255, 0.5);
}
.nasaa-image-with-text-overlay.shade.nasaa-gray-shade {
  background-color: rgba(235, 235, 235, 0.5);
}
.nasaa-image-with-text-overlay.shade.nasaa-dark-gray {
  background-color: rgba(51, 51, 51, 0.5);
}
.nasaa-image-with-text-overlay.shade.nasaa-light-gray {
  background-color: rgba(172, 172, 172, 0.5);
}
.nasaa-image-with-text-overlay.shade.nasaa-medium-gray {
  background-color: rgba(66, 66, 66, 0.5);
}
.nasaa-image-with-text-overlay.shade.nasaa-gray-shade-dark {
  background-color: rgba(210, 210, 210, 0.5);
}
.nasaa-image-with-text-overlay.shade.dark-red {
  background-color: rgba(46, 2, 6, 0.5);
}
.nasaa-image-with-text-overlay.shade.red {
  background-color: rgba(69, 0, 7, 0.5);
}
.nasaa-image-with-text-overlay.shade.bright-red {
  background-color: rgba(136, 10, 23, 0.5);
}
.nasaa-image-with-text-overlay.shade.medium-gray-to-red {
  background-color: rgba(172, 172, 172, 0.5);
}
.nasaa-image-with-text-overlay.shade.dark-blue {
  background-color: rgba(11, 8, 56, 0.5);
}
.nasaa-image-with-text-overlay.shade.blue {
  background-color: rgba(38, 34, 98, 0.5);
}
.nasaa-image-with-text-overlay.shade.cyan {
  background-color: rgba(0, 175, 212, 0.5);
}
.nasaa-image-with-text-overlay.shade.orange {
  background-color: rgba(247, 164, 0, 0.5);
}
.nasaa-image-with-text-overlay.shade.green {
  background-color: rgba(0, 153, 153, 0.5);
}
.nasaa-image-with-text-overlay.shade.teal-green {
  background-color: rgba(15, 167, 154, 0.5);
}
.nasaa-image-with-text-overlay.shade.purple {
  background-color: rgba(102, 0, 153, 0.5);
}
.nasaa-image-with-text-overlay.shade.white-to-orange {
  background-color: rgba(255, 255, 255, 0.5);
}
.nasaa-image-with-text-overlay.shade.gray-to-red {
  background-color: rgba(66, 66, 66, 0.5);
}
.nasaa-image-with-text-overlay.shade.cyan-to-red {
  background-color: rgba(0, 175, 212, 0.5);
}
.nasaa-image-with-text-overlay.shade.orange {
  background-color: rgba(247, 164, 0, 0.5);
}
.nasaa-image-with-text-overlay.shade.med-light-gray {
  background-color: rgba(172, 172, 172, 0.5);
}
.nasaa-image-with-text-overlay.shade.blue-to-red {
  background-color: rgba(38, 34, 98, 0.5);
}
.nasaa-image-with-text-overlay.shade img {
  opacity: 0;
}
.nasaa-image-with-text-overlay.shade a {
  color: white;
}
.nasaa-image-with-text-overlay.shade.false {
  background-image: none !important;
}
.nasaa-image-with-text-overlay.shade.false img {
  width: auto;
  height: auto;
  display: block;
  margin: auto;
  opacity: 1;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-image-with-text-overlay.shade img {
    display: none;
  }
}
@media screen and (max-width: 56.1875em) {
  .nasaa-image-with-text-overlay {
    width: 100%;
    background-position: center;
    background-size: cover;
    padding: 0;
  }
  .nasaa-image-with-text-overlay .text {
    position: relative;
    padding: 17vw 3vw;
    left: 0;
  }
  .nasaa-image-with-text-overlay .text br {
    display: none;
  }
}
.nasaa-advocacy-updates .nasaa-excerpt-with-excerpt a {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #333;
}
.nasaa-advocacy-updates .nasaa-excerpt-with-excerpt a:hover {
  color: #000;
}
@media screen and (min-width: 31.25em) and (max-width: 56.1875em) {
  .nasaa-advocacy-updates .row.collapse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }
  .nasaa-advocacy-updates h1 {
    text-align: center;
  }
}
.nasaa-tools-container {
  padding: 0 30px 30px;
}
.nasaa-tools-container .nasaa-tools-img {
  display: block;
  margin: 25px auto;
}
.nasaa-featured-research .text h4 {
  font-size: 38px;
  font-family: "Lora", sans-serif;
  line-height: 1.2;
  color: #333;
}
.nasaa-featured-research .view-more {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
  text-align: right;
}
.nasaa-featured-research .view-more.orange {
  color: #f7a400;
}
.nasaa-featured-research .view-more.orange i {
  color: #f7a400;
  border-color: #f7a400;
}
.nasaa-featured-research .view-more.blue {
  color: #262262;
}
.nasaa-featured-research .section-title {
  border-bottom-width: 8px;
}
.nasaa-featured-research-container {
  margin-left: auto;
}
.nasaa-view-more-link a {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
}
.nasaa-view-more-link br {
  display: none;
}
.nasaa-view-more-link.white a,
.nasaa-view-more-link.white i {
  color: #fff !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.white i {
  border-color: #fff !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.white:hover a,
.nasaa-view-more-link.white:hover i {
  color: #e6e6e6 !important;
}
.nasaa-view-more-link.white:hover i {
  border-color: #e6e6e6 !important;
}
.nasaa-view-more-link.nasaa-gray-shade a,
.nasaa-view-more-link.nasaa-gray-shade i {
  color: #ebebeb !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.nasaa-gray-shade i {
  border-color: #ebebeb !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.nasaa-gray-shade:hover a,
.nasaa-view-more-link.nasaa-gray-shade:hover i {
  color: #d2d2d2 !important;
}
.nasaa-view-more-link.nasaa-gray-shade:hover i {
  border-color: #d2d2d2 !important;
}
.nasaa-view-more-link.nasaa-dark-gray a,
.nasaa-view-more-link.nasaa-dark-gray i {
  color: #333 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.nasaa-dark-gray i {
  border-color: #333 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.nasaa-dark-gray:hover a,
.nasaa-view-more-link.nasaa-dark-gray:hover i {
  color: #1a1a1a !important;
}
.nasaa-view-more-link.nasaa-dark-gray:hover i {
  border-color: #1a1a1a !important;
}
.nasaa-view-more-link.nasaa-light-gray a,
.nasaa-view-more-link.nasaa-light-gray i {
  color: #acacac !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.nasaa-light-gray i {
  border-color: #acacac !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.nasaa-light-gray:hover a,
.nasaa-view-more-link.nasaa-light-gray:hover i {
  color: #939393 !important;
}
.nasaa-view-more-link.nasaa-light-gray:hover i {
  border-color: #939393 !important;
}
.nasaa-view-more-link.nasaa-medium-gray a,
.nasaa-view-more-link.nasaa-medium-gray i {
  color: #424242 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.nasaa-medium-gray i {
  border-color: #424242 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.nasaa-medium-gray:hover a,
.nasaa-view-more-link.nasaa-medium-gray:hover i {
  color: #292929 !important;
}
.nasaa-view-more-link.nasaa-medium-gray:hover i {
  border-color: #292929 !important;
}
.nasaa-view-more-link.nasaa-gray-shade-dark a,
.nasaa-view-more-link.nasaa-gray-shade-dark i {
  color: #d2d2d2 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.nasaa-gray-shade-dark i {
  border-color: #d2d2d2 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.nasaa-gray-shade-dark:hover a,
.nasaa-view-more-link.nasaa-gray-shade-dark:hover i {
  color: #b9b9b9 !important;
}
.nasaa-view-more-link.nasaa-gray-shade-dark:hover i {
  border-color: #b9b9b9 !important;
}
.nasaa-view-more-link.dark-red a,
.nasaa-view-more-link.dark-red i {
  color: #2e0206 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.dark-red i {
  border-color: #2e0206 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.dark-red:hover a,
.nasaa-view-more-link.dark-red:hover i {
  color: #000 !important;
}
.nasaa-view-more-link.dark-red:hover i {
  border-color: #000 !important;
}
.nasaa-view-more-link.red a,
.nasaa-view-more-link.red i {
  color: #450007 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.red i {
  border-color: #450007 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.red:hover a,
.nasaa-view-more-link.red:hover i {
  color: #120002 !important;
}
.nasaa-view-more-link.red:hover i {
  border-color: #120002 !important;
}
.nasaa-view-more-link.bright-red a,
.nasaa-view-more-link.bright-red i {
  color: #880a17 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.bright-red i {
  border-color: #880a17 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.bright-red:hover a,
.nasaa-view-more-link.bright-red:hover i {
  color: #58070f !important;
}
.nasaa-view-more-link.bright-red:hover i {
  border-color: #58070f !important;
}
.nasaa-view-more-link.medium-gray-to-red a,
.nasaa-view-more-link.medium-gray-to-red i {
  color: #acacac !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.medium-gray-to-red i {
  border-color: #acacac !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.medium-gray-to-red:hover a,
.nasaa-view-more-link.medium-gray-to-red:hover i {
  color: #450007 !important;
}
.nasaa-view-more-link.medium-gray-to-red:hover i {
  border-color: #450007 !important;
}
.nasaa-view-more-link.dark-blue a,
.nasaa-view-more-link.dark-blue i {
  color: #0b0838 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.dark-blue i {
  border-color: #0b0838 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.dark-blue:hover a,
.nasaa-view-more-link.dark-blue:hover i {
  color: #02020b !important;
}
.nasaa-view-more-link.dark-blue:hover i {
  border-color: #02020b !important;
}
.nasaa-view-more-link.blue a,
.nasaa-view-more-link.blue i {
  color: #262262 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.blue i {
  border-color: #262262 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.blue:hover a,
.nasaa-view-more-link.blue:hover i {
  color: #17153c !important;
}
.nasaa-view-more-link.blue:hover i {
  border-color: #17153c !important;
}
.nasaa-view-more-link.cyan a,
.nasaa-view-more-link.cyan i {
  color: #00afd4 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.cyan i {
  border-color: #00afd4 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.cyan:hover a,
.nasaa-view-more-link.cyan:hover i {
  color: #0085a1 !important;
}
.nasaa-view-more-link.cyan:hover i {
  border-color: #0085a1 !important;
}
.nasaa-view-more-link.orange a,
.nasaa-view-more-link.orange i {
  color: #f7a400 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.orange i {
  border-color: #f7a400 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.orange:hover a,
.nasaa-view-more-link.orange:hover i {
  color: #c48200 !important;
}
.nasaa-view-more-link.orange:hover i {
  border-color: #c48200 !important;
}
.nasaa-view-more-link.green a,
.nasaa-view-more-link.green i {
  color: #099 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.green i {
  border-color: #099 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.green:hover a,
.nasaa-view-more-link.green:hover i {
  color: #066 !important;
}
.nasaa-view-more-link.green:hover i {
  border-color: #066 !important;
}
.nasaa-view-more-link.teal-green a,
.nasaa-view-more-link.teal-green i {
  color: #0fa79a !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.teal-green i {
  border-color: #0fa79a !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.teal-green:hover a,
.nasaa-view-more-link.teal-green:hover i {
  color: #0b786f !important;
}
.nasaa-view-more-link.teal-green:hover i {
  border-color: #0b786f !important;
}
.nasaa-view-more-link.purple a,
.nasaa-view-more-link.purple i {
  color: #609 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.purple i {
  border-color: #609 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.purple:hover a,
.nasaa-view-more-link.purple:hover i {
  color: #406 !important;
}
.nasaa-view-more-link.purple:hover i {
  border-color: #406 !important;
}
.nasaa-view-more-link.white-to-orange a,
.nasaa-view-more-link.white-to-orange i {
  color: #fff !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.white-to-orange i {
  border-color: #fff !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.white-to-orange:hover a,
.nasaa-view-more-link.white-to-orange:hover i {
  color: #f7a400 !important;
}
.nasaa-view-more-link.white-to-orange:hover i {
  border-color: #f7a400 !important;
}
.nasaa-view-more-link.gray-to-red a,
.nasaa-view-more-link.gray-to-red i {
  color: #424242 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.gray-to-red i {
  border-color: #424242 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.gray-to-red:hover a,
.nasaa-view-more-link.gray-to-red:hover i {
  color: #880a17 !important;
}
.nasaa-view-more-link.gray-to-red:hover i {
  border-color: #880a17 !important;
}
.nasaa-view-more-link.cyan-to-red a,
.nasaa-view-more-link.cyan-to-red i {
  color: #00afd4 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.cyan-to-red i {
  border-color: #00afd4 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.cyan-to-red:hover a,
.nasaa-view-more-link.cyan-to-red:hover i {
  color: #450007 !important;
}
.nasaa-view-more-link.cyan-to-red:hover i {
  border-color: #450007 !important;
}
.nasaa-view-more-link.orange a,
.nasaa-view-more-link.orange i {
  color: #f7a400 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.orange i {
  border-color: #f7a400 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.orange:hover a,
.nasaa-view-more-link.orange:hover i {
  color: #c48200 !important;
}
.nasaa-view-more-link.orange:hover i {
  border-color: #c48200 !important;
}
.nasaa-view-more-link.med-light-gray a,
.nasaa-view-more-link.med-light-gray i {
  color: #acacac !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.med-light-gray i {
  border-color: #acacac !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.med-light-gray:hover a,
.nasaa-view-more-link.med-light-gray:hover i {
  color: !important;
}
.nasaa-view-more-link.med-light-gray:hover i {
  border-color: !important;
}
.nasaa-view-more-link.blue-to-red a,
.nasaa-view-more-link.blue-to-red i {
  color: #262262 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.blue-to-red i {
  border-color: #262262 !important;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-view-more-link.blue-to-red:hover a,
.nasaa-view-more-link.blue-to-red:hover i {
  color: #880a17 !important;
}
.nasaa-view-more-link.blue-to-red:hover i {
  border-color: #880a17 !important;
}
.nasaa-ask-research-team {
  position: relative;
}
.nasaa-research-topics .divider.dashed:before {
  border-top-width: 2px;
}
.nasaa-research-topics .nasaa-view-more-link a:hover {
  color: #262262;
}
.nasaa-research-topics .nasaa-view-more-link a:hover i {
  color: #262262;
  border-color: #262262;
}
@media screen and (min-width: 56.25em) {
  .nasaa-research-topics .column:nth-child(3n-1),
  .nasaa-research-topics .columns:nth-child(3n-1) {
    background: #ebebeb;
  }
  .nasaa-research-topics .column:nth-child(3n-1):last-of-type,
  .nasaa-research-topics .columns:nth-child(3n-1):last-of-type {
    padding-bottom: 60px;
  }
  .nasaa-research-topics .column:nth-of-type(1),
  .nasaa-research-topics .columns:nth-of-type(1),
  .nasaa-research-topics .column:nth-of-type(2),
  .nasaa-research-topics .columns:nth-of-type(2),
  .nasaa-research-topics .column:nth-of-type(3),
  .nasaa-research-topics .columns:nth-of-type(3) {
    padding-top: 60px;
  }
}
.nasaa-interior-header-text {
  background: #f7a400;
}
.nasaa-interior-header-text * {
  color: white;
}
.nasaa-interior-header-text .title {
  padding-right: 20px;
}
.nasaa-interior-header-text .title h2 {
  font-size: 50px;
  margin: 0;
  line-height: 1.1;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-interior-header-text .title h2 {
    font-size: 30px;
  }
}
.nasaa-interior-header-text .content {
  padding-left: 20px;
}
.nasaa-interior-header-text .image {
  max-height: 400px;
  background-position: center;
  background-size: cover;
  overflow: hidden;
  position: relative;
}
.nasaa-interior-header-text .image .caption {
  position: absolute;
  bottom: 15px;
  right: 15px;
  font-family: "Lora", sans-serif;
  color: rgba(255, 255, 255, 0.8);
  font-weight: 600;
  font-style: italic;
  margin: 0;
  font-size: 11px;
  letter-spacing: 0.5px;
  display: none;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-interior-header-text .image {
    min-height: 300px;
  }
}
.nasaa-interior-header-text .image img {
  opacity: 0;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-interior-header-text .title h2 {
    text-align: left;
  }
}
.nasaa-accordion {
  width: 100%;
}
.nasaa-full-width-image .row {
  max-width: 80rem;
}
.filteringTax {
  width: 100%;
  margin-bottom: 15px;
}
.filteringTax > .row {
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  width: 100%;
}
.filteringTax > .row > * {
  margin: 0 3px;
}
.filteringTax select {
  margin-bottom: 0;
}
.filteringTax label {
  color: #880a17;
  font-family: "Lora", sans-serif;
  font-size: 25px;
  margin: 0;
}
.video-container {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  max-width: 100%;
  height: auto;
}
.video-container iframe,
.video-container object,
.video-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.nasaa-video .column,
.nasaa-video .columns {
  margin: auto;
}
.nasaa-about-links .text-container {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  overflow: hidden;
}
.nasaa-about-links .text-container {
  position: relative;
  padding-left: 4%;
}
.nasaa-about-links .text-container:before {
  content: "";
  top: 0;
  bottom: 0;
  left: 0;
  width: 1000000px;
  background: #ebebeb;
  z-index: -1;
  position: absolute;
}
.nasaa-about-links .img {
  margin: auto;
}
.nasaa-about-text-info .about-nasaa-links-container {
  margin-left: auto;
}
.nasaa-about-text-info .about-nasaa-links {
  background: #0b0838;
  padding: 35px 40px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.nasaa-about-text-info .about-nasaa-links .section {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 50%;
  -ms-flex: 0 0 50%;
  flex: 0 0 50%;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  padding: 0;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-about-text-info .about-nasaa-links .section {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
  }
}
.nasaa-about-text-info .about-nasaa-links img {
  margin-top: auto;
}
.nasaa-about-text-info .about-nasaa-links .text {
  margin-top: auto;
  padding-top: 15px;
}
.nasaa-about-text-info .about-nasaa-links .text p {
  color: white;
  font-family: "Lora", sans-serif;
  font-size: 18px;
  padding: 0;
}
.nasaa-about-text-info .about-nasaa-links p {
  padding: 0 15px;
}
.nasaa-about-text-info .about-nasaa-links p:last-of-type {
  margin-bottom: 0;
}
.nasaa-about-text-info .about-nasaa-links .divider {
  -webkit-box-flex: 0;
  -webkit-flex: 0;
  -ms-flex: 0;
  flex: 0;
}
.nasaa-about-text-info .about-nasaa-links .divider:before {
  border-top-color: #262262;
}
.nasaa-google-map {
  height: 500px;
}
.nasaa-cta.nasaa-advocacy-helpers > .content > .ask-nasaa-helpers {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
}
.nasaa-cta.nasaa-advocacy-helpers > .content > .ask-nasaa-helpers .column,
.nasaa-cta.nasaa-advocacy-helpers > .content > .ask-nasaa-helpers .columns {
  max-width: 100%;
}
.nasaa-cta.nasaa-advocacy-helpers > .content > .ask-nasaa-helpers .row {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-cta.nasaa-advocacy-helpers .ask-nasaa-helpers {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }
  .nasaa-cta.nasaa-advocacy-helpers .ask-nasaa-helpers .column,
  .nasaa-cta.nasaa-advocacy-helpers .ask-nasaa-helpers .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
  }
  .nasaa-cta.nasaa-advocacy-helpers .ask-nasaa-helpers .column .row,
  .nasaa-cta.nasaa-advocacy-helpers .ask-nasaa-helpers .columns .row {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    padding-bottom: 50px;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    margin: 0;
  }
  .nasaa-cta.nasaa-advocacy-helpers .ask-nasaa-helpers .column .row .grow,
  .nasaa-cta.nasaa-advocacy-helpers .ask-nasaa-helpers .columns .row .grow {
    width: 40%;
  }
}
.nasaa-cta.nasaa-advocacy-helpers a:hover {
  color: #880a17;
}
.nasaa-past-event {
  margin-bottom: 10px;
}
.nasaa-future-excerpt {
  padding: 10px 25px;
}
.nasaa-future-excerpt .row {
  margin: 0;
}
.nasaa-future-excerpt:nth-of-type(even) {
  background: #ebebeb;
}
.nasaa-future-excerpt .info {
  position: relative;
}
.nasaa-future-excerpt .info:before {
  content: "";
  position: absolute;
  top: -10px;
  right: 0;
  bottom: -10px;
  border-right: 1px solid #acacac;
}
.nasaa-future-excerpt h2 {
  font-size: 18px;
}
.nasaa-future-excerpt .register {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
.nasaa-future-excerpt .register a {
  margin: 3px 0;
}
.nasaa-future-excerpt .button {
  padding: 15px 0;
  width: 100%;
  margin: 0;
}
.nasaa-future-excerpt .resources {
  margin: 0;
}
.nasaa-future-excerpt .resources li {
  display: inline-block;
  font-size: 14px;
}
.nasaa-future-excerpt .resources li a {
  font-size: 14px;
}
.nasaa-future-excerpt .resources li:after {
  content: " | ";
}
.nasaa-future-excerpt .resources li:last-of-type:after {
  display: none;
}
.nasaa-seminar-past-excerpt {
  margin-bottom: 10px;
}
.nasaa-seminar-past-excerpt:last-of-type {
  margin: 0;
}
.nasaa-seminar-past-excerpt h6 {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
}
.nasaa-seminar-past-excerpt .resources {
  list-stype-type: none;
  margin: 0;
}
.nasaa-seminar-past-excerpt .resources li {
  display: inline-block;
}
.nasaa-seminar-past-excerpt .resources li:after {
  content: "|";
  color: #450007;
}
.nasaa-seminar-past-excerpt .resources li:last-child:after {
  display: none;
}
.nasaa-seminar-past-excerpt .resources li a {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #00afd4;
  font-weight: 100;
  font-size: 14px;
}
.nasaa-seminar-past-excerpt .resources li a:hover {
  color: #0085a1;
}
.nasaa-squeeze-page {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.85);
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  z-index: 999;
}
.nasaa-squeeze-page .content {
  background: white;
  padding: 20px;
  text-align: center;
}
.nasaa-squeeze-page a {
  margin: 0;
}
.nasaa-research-team i {
  font-size: 130px;
  line-height: 1;
}
.nasaa-next-upcoming-meeting .upcoming-meeting-img {
  width: 100%;
}
.nasaa-next-upcoming-meeting .meta-links {
  margin-bottom: 20px;
}
.nasaa-next-upcoming-meeting .meta-links a {
  margin-right: 15px;
  font-size: 14px;
}
.nasaa-research-excerpt .title a {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #333;
}
.nasaa-research-excerpt .title a:hover {
  color: #880a17;
}
.nasaa-board-member-pagination a {
  font-family: "Lora", sans-serif;
  font-style: italic;
}
.nasaa-research_type-container .column > div:first-child,
.nasaa-research_type-container .columns > div:first-child {
  border-top: none;
  padding-top: 30px;
}
.nasaa-research_type-container .column > div:last-child,
.nasaa-research_type-container .columns > div:last-child {
  border-bottom: none;
  padding-bottom: 20px;
}
.nasaa-donate-testimonial > .row {
  padding: 45px;
  background: #f7a400;
}
.nasaa-donate-testimonial .headshot {
  border-radius: 100%;
  margin-bottom: 15px;
}
.nasaa-donate-testimonial h1,
.nasaa-donate-testimonial h2,
.nasaa-donate-testimonial h3,
.nasaa-donate-testimonial h4,
.nasaa-donate-testimonial h5,
.nasaa-donate-testimonial h6,
.nasaa-donate-testimonial p,
.nasaa-donate-testimonial a,
.nasaa-donate-testimonial i {
  color: white;
}
.nasaa-donate-testimonial h6 {
  font-size: 14px;
}
.nasaa-donate-testimonial .title {
  font-size: 28px;
  line-height: 1.15;
}
.nasaa-donate-testimonial .position {
  padding-left: 24px;
  padding-top: 6px;
}
.nasaa-donate-testimonial .position p {
  font-size: 14px;
  line-height: 1.3;
  font-family: "Lora", sans-serif;
}
.nasaa-donate-testimonial .testimonial-content:before,
.nasaa-donate-testimonial .testimonial-content:after {
  display: block;
  color: white;
  font-weight: 800;
  font-style: italic;
  font-size: 92px;
  line-height: 0.6;
  padding-top: 7px;
}
.nasaa-donate-testimonial .testimonial-content:before {
  content: "â€œ";
}
.nasaa-donate-testimonial .testimonial-content:after {
  content: "â€";
  margin-bottom: -35px;
}
.nasaa-donate-testimonial .testimonial-content p {
  font-size: 26px;
  font-family: "Lora", sans-serif;
  font-style: italic;
  line-height: 1.3;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-module-image-text-two-columns .text_container {
    padding: 6vw;
  }
}
.nasaa-event-excerpt {
  width: 100%;
  border-bottom: 1px solid #ebebeb;
  padding-bottom: 15px;
  margin-bottom: 15px;
}
.nasaa-event-excerpt .title a {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #333;
}
.nasaa-event-excerpt .title a:hover {
  color: #450007;
}
.nasaa-event-excerpt .event-children > li {
  font-weight: 800;
  color: #424242;
}
.nasaa-event-excerpt .event-children ul {
  list-style-type: none;
  margin: 0;
}
.nasaa-event-excerpt .event-children ul li {
  position: relative;
  padding-left: 20px;
}
.nasaa-event-excerpt .event-children ul li:before {
  content: "Â»";
  position: absolute;
  top: 0;
  left: 5px;
}
.nasaa-event-excerpt .event-children a {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #880a17;
}
.nasaa-event-excerpt .event-children a:hover {
  color: #58070f;
}
.nasaa-event-excerpt:last-of-type {
  margin-bottom: 0;
  border-bottom: none;
}
.nasaa-board-of-directors h2:hover {
  color: #333;
}
.nasaa-board-of-directors img {
  max-width: 115px;
}
.nasaa-image-row-module {
  min-height: 312px;
}
.nasaa-image-row-module .container {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-justify-content: space-around;
  -ms-flex-pack: distribute;
  justify-content: space-around;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-bottom: 50px;
}
.nasaa-image-row-module .container .image-container {
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
  -ms-flex: 0 1 auto;
  flex: 0 1 auto;
}
.nasaa-image-row-module .container .divider {
  background: #d2d2d2;
  width: 1px;
  height: 60%;
}
.owl-item .nasaa-image-row-module .row {
  display: block;
}
.owl-item .nasaa-image-row-module .container {
  display: block;
  -webkit-flex-wrap: nowrap;
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
  text-align: center;
}
.owl-item .nasaa-image-row-module .container .image-container {
  display: inline-block;
  vertical-align: middle;
}
.owl-item .nasaa-image-row-module .container .divider {
  display: inline-block;
  vertical-align: middle;
  min-height: 300px;
}
@media screen and (max-width: 56.1875em) {
  .owl-item .nasaa-image-row-module .container .image-container {
    display: block;
    margin: 1em 0;
    text-align: center;
  }
  .owl-item .nasaa-image-row-module .container .image-container a {
    text-align: center;
  }
  .owl-item .nasaa-image-row-module .container .image-container a img {
    margin: 0 auto;
  }
  .owl-item .nasaa-image-row-module .container .divider {
    display: none;
  }
}
.nasaa-image-slideshow {
  width: 90%;
  margin: 0 auto;
}
.nasaa-image-slideshow .slides li {
  position: relative;
}
.nasaa-image-slideshow #carousel li {
  opacity: 0.5;
}
.nasaa-image-slideshow #carousel li.flex-active-slide {
  opacity: 1;
}
.nasaa-image-slideshow #slider .slides li {
  background: black;
  height: 100vh;
  vertical-align: middle;
}
.nasaa-image-slideshow #slider .slides li img {
  vertical-align: middle;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
}
.nasaa-image-slideshow #slider .slides div.flexslider-background {
  height: 100%;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.nasaa-image-slideshow .flex-direction-nav a {
  height: 60px;
}
.nasaa-image-slideshow .flex-direction-nav a:hover {
  background: rgba(255, 255, 255, 0.25);
}
.nasaa-image-slideshow .flex-caption {
  position: absolute;
  bottom: 0;
  background: rgba(255, 255, 255, 0.75);
  padding: 0.5em;
}
.nasaa-contact {
  color: #424242;
}
.nasaa-contact ul li a {
  color: #750f1a;
  text-decoration: none;
}
.nasaa-notes-year-selector .accordion-title {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
.nasaa-notes-year-selector .accordion-title h2 {
  margin: 0;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #333;
}
.nasaa-notes-year-selector .accordion-title i {
  margin-left: auto;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-notes-year-selector .accordion-title:before {
  display: none;
}
.nasaa-notes-year-selector .is-active h2,
.nasaa-notes-year-selector .is-active i {
  color: #880a17;
  border-color: #880a17 !important;
}
.nasaa-notes-year-selector .accordion-content {
  padding: 5px;
}
.nasaa-notes-year-selector .accordion-content a {
  display: block;
  padding: 5px;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: rgba(0, 0, 0, 0);
  transition: 250ms all ease-out;
  color: #424242;
}
.nasaa-notes-year-selector .accordion-content a:hover {
  background-color: #424242;
}
.nasaa-notes-year-selector .accordion-content a:hover {
  color: #fff;
}
.nasaa-yearly-newsletter-content {
  position: relative;
}
.nasaa-yearly-newsletter-content:before {
  position: absolute;
  content: "";
  top: 0;
  right: 0;
  bottom: 0;
  width: 1px;
  background: #ebebeb;
}
.nasaa-tabbed-content {
  width: 100%;
}
.nasaa-tabbed-content .content-tabs.color-white p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #fff;
}
.nasaa-tabbed-content .content-tabs.color-white p:hover {
  background-color: #e6e6e6;
}
.nasaa-tabbed-content .content-tabs.color-nasaa-gray-shade p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #ebebeb;
}
.nasaa-tabbed-content .content-tabs.color-nasaa-gray-shade p:hover {
  background-color: #d2d2d2;
}
.nasaa-tabbed-content .content-tabs.color-nasaa-dark-gray p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #333;
}
.nasaa-tabbed-content .content-tabs.color-nasaa-dark-gray p:hover {
  background-color: #1a1a1a;
}
.nasaa-tabbed-content .content-tabs.color-nasaa-light-gray p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #acacac;
}
.nasaa-tabbed-content .content-tabs.color-nasaa-light-gray p:hover {
  background-color: #939393;
}
.nasaa-tabbed-content .content-tabs.color-nasaa-medium-gray p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #424242;
}
.nasaa-tabbed-content .content-tabs.color-nasaa-medium-gray p:hover {
  background-color: #292929;
}
.nasaa-tabbed-content .content-tabs.color-nasaa-gray-shade-dark p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #d2d2d2;
}
.nasaa-tabbed-content .content-tabs.color-nasaa-gray-shade-dark p:hover {
  background-color: #b9b9b9;
}
.nasaa-tabbed-content .content-tabs.color-dark-red p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #2e0206;
}
.nasaa-tabbed-content .content-tabs.color-dark-red p:hover {
  background-color: #000;
}
.nasaa-tabbed-content .content-tabs.color-red p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #450007;
}
.nasaa-tabbed-content .content-tabs.color-red p:hover {
  background-color: #120002;
}
.nasaa-tabbed-content .content-tabs.color-bright-red p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #880a17;
}
.nasaa-tabbed-content .content-tabs.color-bright-red p:hover {
  background-color: #58070f;
}
.nasaa-tabbed-content .content-tabs.color-medium-gray-to-red p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #acacac;
}
.nasaa-tabbed-content .content-tabs.color-medium-gray-to-red p:hover {
  background-color: #450007;
}
.nasaa-tabbed-content .content-tabs.color-dark-blue p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #0b0838;
}
.nasaa-tabbed-content .content-tabs.color-dark-blue p:hover {
  background-color: #02020b;
}
.nasaa-tabbed-content .content-tabs.color-blue p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #262262;
}
.nasaa-tabbed-content .content-tabs.color-blue p:hover {
  background-color: #17153c;
}
.nasaa-tabbed-content .content-tabs.color-cyan p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #00afd4;
}
.nasaa-tabbed-content .content-tabs.color-cyan p:hover {
  background-color: #0085a1;
}
.nasaa-tabbed-content .content-tabs.color-orange p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #f7a400;
}
.nasaa-tabbed-content .content-tabs.color-orange p:hover {
  background-color: #c48200;
}
.nasaa-tabbed-content .content-tabs.color-green p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #099;
}
.nasaa-tabbed-content .content-tabs.color-green p:hover {
  background-color: #066;
}
.nasaa-tabbed-content .content-tabs.color-teal-green p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #0fa79a;
}
.nasaa-tabbed-content .content-tabs.color-teal-green p:hover {
  background-color: #0b786f;
}
.nasaa-tabbed-content .content-tabs.color-purple p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #609;
}
.nasaa-tabbed-content .content-tabs.color-purple p:hover {
  background-color: #406;
}
.nasaa-tabbed-content .content-tabs.color-white-to-orange p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #fff;
}
.nasaa-tabbed-content .content-tabs.color-white-to-orange p:hover {
  background-color: #f7a400;
}
.nasaa-tabbed-content .content-tabs.color-gray-to-red p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #424242;
}
.nasaa-tabbed-content .content-tabs.color-gray-to-red p:hover {
  background-color: #880a17;
}
.nasaa-tabbed-content .content-tabs.color-cyan-to-red p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #00afd4;
}
.nasaa-tabbed-content .content-tabs.color-cyan-to-red p:hover {
  background-color: #450007;
}
.nasaa-tabbed-content .content-tabs.color-orange p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #f7a400;
}
.nasaa-tabbed-content .content-tabs.color-orange p:hover {
  background-color: #c48200;
}
.nasaa-tabbed-content .content-tabs.color-med-light-gray p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #acacac;
}
.nasaa-tabbed-content .content-tabs.color-blue-to-red p {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #262262;
}
.nasaa-tabbed-content .content-tabs.color-blue-to-red p:hover {
  background-color: #880a17;
}
.nasaa-tabbed-content .content-tabs p {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  margin: 0;
  color: white;
  width: 100%;
  margin-bottom: 10px;
  cursor: pointer;
  padding: 15px;
  float: left;
}
.nasaa-tabbed-content .tab-content .gform_wrapper {
  display: block !important;
}
.nasaa-tabbed-content .tab-content img {
  width: auto !important;
}
.nasaa-newsletter-month-sidebar .articles {
  margin-left: 40px;
}
.nasaa-newsletter-month-sidebar .articles li:before {
  top: -5px;
}
.nasaa-newsletter-month-sidebar .articles a {
  line-height: 1.4;
  display: block;
}
.nasaa-share {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
.nasaa-share .content {
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  z-index: 100;
  margin-left: 15px;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  opacity: 0;
}
.nasaa-share .content a {
  height: 32px;
  margin-bottom: 0;
}
.nasaa-share .content.visible {
  opacity: 1;
}
.nasaa-share .icon i {
  font-size: 27px;
  cursor: pointer;
}
_:-moz-tree-row(hover),
.nasaa-image-grid .gallery .column img,
.nasaa-image-grid .gallery .columns img {
  box-sizing: content-box;
}
.nasaa-image-grid .gallery .column,
.nasaa-image-grid .gallery .columns {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  position: relative;
  padding: 15px;
}
.nasaa-image-grid .gallery .column a,
.nasaa-image-grid .gallery .columns a {
  display: block;
  max-width: 100%;
  width: 100%;
}
.nasaa-image-grid .gallery .column:before,
.nasaa-image-grid .gallery .columns:before,
.nasaa-image-grid .gallery .column:after,
.nasaa-image-grid .gallery .columns:after {
  position: absolute;
  background: #ebebeb;
  content: "";
}
.nasaa-image-grid .gallery .column:before,
.nasaa-image-grid .gallery .columns:before {
  bottom: 0;
  left: 15px;
  right: 15px;
  height: 1px;
}
.nasaa-image-grid .gallery .column:after,
.nasaa-image-grid .gallery .columns:after {
  right: 0;
  bottom: 15px;
  top: 15px;
  width: 1px;
}
.nasaa-image-grid .gallery .column:last-of-type:after,
.nasaa-image-grid .gallery .columns:last-of-type:after {
  display: none;
}
@media screen and (min-width: 56.25em) and (max-width: 63.9375em) {
  .nasaa-image-grid .gallery .column:nth-of-type(4n):after,
  .nasaa-image-grid .gallery .columns:nth-of-type(4n):after {
    display: none;
  }
}
@media screen and (min-width: 64em) {
  .nasaa-image-grid .gallery .column:nth-of-type(5n):after,
  .nasaa-image-grid .gallery .columns:nth-of-type(5n):after {
    display: none;
  }
}
.nasaa-donor-accordion .trigger {
  position: relative;
}
.nasaa-donor-accordion .trigger:before {
  content: "+";
  position: absolute;
  top: 0;
  right: 0;
  color: #f7a400;
  font-size: 34px;
  bottom: 8px;
  line-height: 50px;
  font-weight: 800;
}
.nasaa-donor-accordion .trigger.active:before {
  content: "â€“";
}
.nasaa-donor-accordion .content {
  display: none;
}
.nasaa-large-accordion-container h1 {
  color: #880a17;
}
.nasaa-large-accordion .item {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  border-left: 5px solid transparent;
  padding: 0 15px 10px;
  border-bottom: 2px dotted #333;
}
.nasaa-large-accordion .item.open {
  background: #ebebeb;
  border-left-color: #f7a400;
  border-bottom-color: transparent;
}
.nasaa-large-accordion .item.open > .trigger:before {
  content: "â€“";
}
.nasaa-large-accordion .trigger {
  cursor: pointer;
  position: relative;
  padding-top: 30px;
}
.nasaa-large-accordion .trigger:before {
  content: "+";
  position: absolute;
  right: 0;
  color: #f7a400;
  font-size: 34px;
  bottom: 0;
  font-weight: 800;
  line-height: 1;
  display: block;
}
.nasaa-large-accordion .content {
  display: none;
}
.nasaa-large-accordion .content .resources a:not(:last-child):after {
  content: "|";
  margin-left: 4px;
}
.nasaa-large-accordion .nasaa-blog-excerpt {
  background: white;
  padding: 15px;
}
.nasaa-image-grid-with-caption-overlays .column,
.nasaa-image-grid-with-caption-overlays .columns {
  position: relative;
  padding: 0 4px 8px 4px;
}
.nasaa-image-grid-with-caption-overlays .column img,
.nasaa-image-grid-with-caption-overlays .columns img {
  width: 100%;
}
.nasaa-image-grid-with-caption-overlays .column .text,
.nasaa-image-grid-with-caption-overlays .columns .text {
  position: absolute;
  bottom: 30px;
  left: 4px;
  padding: 7px;
  background: white;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-image-grid-with-caption-overlays .column .text:hover,
.nasaa-image-grid-with-caption-overlays .columns .text:hover {
  padding-right: 14px;
}
.nasaa-image-grid-with-caption-overlays .column .text h6,
.nasaa-image-grid-with-caption-overlays .columns .text h6 {
  text-transform: uppercase;
}
.nasaa-image-grid-with-caption-overlays .column .photo-caption,
.nasaa-image-grid-with-caption-overlays .columns .photo-caption {
  right: 20px;
}
.nasaa-starred-list .item {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.nasaa-starred-list .item i {
  margin-right: 10px;
}
.nasaa-section-header-acf .row {
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.nasaa-section-header-acf .row .column,
.nasaa-section-header-acf .row .columns {
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 33%;
  -ms-flex: 1 0 33%;
  flex: 1 0 33%;
}
.nasaa-section-header-acf .row .column p,
.nasaa-section-header-acf .row .columns p {
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-section-header-acf .row .column,
  .nasaa-section-header-acf .row .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    padding-bottom: 70px;
  }
}
a.for-hover.nasaa-medium-gray-text.small {
  color: inherit;
}
a.for-hover.nasaa-medium-gray-text.small:hover {
  color: #450007 !important;
}
.nasaa-pager-rebuild {
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
  -ms-flex-align: end;
  align-items: flex-end;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
}
.nasaa-pager-rebuild p,
.nasaa-pager-rebuild a,
.nasaa-pager-rebuild span {
  margin: 0;
  display: inline-block;
  line-height: 1;
  font-family: "Lora", sans-serif;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #333;
  font-style: italic;
}
.nasaa-pager-rebuild p:hover,
.nasaa-pager-rebuild a:hover,
.nasaa-pager-rebuild span:hover {
  color: #f7a400;
}
.nasaa-pager-rebuild p.current,
.nasaa-pager-rebuild a.current,
.nasaa-pager-rebuild span.current {
  color: #f7a400;
}
.nasaa-pager-rebuild p.large,
.nasaa-pager-rebuild a.large,
.nasaa-pager-rebuild span.large {
  font-size: 32px;
  margin: 0;
}
.nasaa-pager-rebuild .first,
.nasaa-pager-rebuild .extend,
.nasaa-pager-rebuild .page,
.nasaa-pager-rebuild .current {
  margin-right: 7px;
}
.nasaa-pager-rebuild .prev_and_next {
  margin: 0 10px;
}
.nasaa-pager-rebuild .arrows {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-justify-content: space-around;
  -ms-flex-pack: distribute;
  justify-content: space-around;
}
.nasaa-pager-rebuild .arrows .prev,
.nasaa-pager-rebuild .arrows .next {
  background: #d2d2d2;
  width: 30px;
  height: 30px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
}
.nasaa-pager-rebuild .arrows a {
  color: white;
  border: 1px solid white;
  border-radius: 100%;
  width: 20px;
  height: 20px;
  margin: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
}
.nasaa-pager-rebuild .numbers {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  margin-bottom: 10px;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-research-topics {
    margin-top: 45px;
  }
}
.woocommerce .nasaa-shop .products .product img {
  width: auto;
  margin: 0 auto 1em;
}
.woocommerce .nasaa-shop .products .product .add_to_cart_button {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  background-color: #f7a400;
  transition: 250ms all ease-out;
  color: #fff;
}
.woocommerce .nasaa-shop .products .product .add_to_cart_button:hover {
  background-color: #c48200;
}
.woocommerce .nasaa-shop .products .product .add_to_cart_button:hover {
  color: #fff;
}
.woocommerce .nasaa-shop .products .product a {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #424242;
}
.woocommerce .nasaa-shop .products .product a:hover {
  color: #880a17;
}
.woocommerce .shop_table .actions {
  font-size: 12px;
}
.woocommerce .shop_table #coupon_code {
  font-size: 12px;
  width: 150px;
}
.woocommerce .shop_table .button {
  top: 5px;
}
.nasaa-post-links .posts {
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
.nasaa-post-links .posts .column,
.nasaa-post-links .posts .columns {
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
.nasaa-post-links .posts img {
  width: 100px;
}
form[action="/meetings/nasaa-2017-leadership-institute/"] #field_4_15 legend {
  font-size: inherit;
  line-height: 1.6;
  margin-top: 0;
  margin-bottom: 1rem;
  text-rendering: optimizeLegibility;
}
.postid-3060 #main-wrap div {
  height: auto !important;
}
.postid-3060 #main-wrap div.row {
  width: 100%;
}
.postid-3060 #main-wrap div#container {
  height: 8vw !important;
}
.postid-3060 #main-wrap #tabs-nav {
  margin-top: 120px;
}
.postid-3060 #main-wrap #horiz-barchart-content {
  float: left;
  clear: left;
}
.nasaa-section-title-with-list ul.items {
  margin: 0;
}
.nasaa-section-title-with-list ul.items li {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  margin-bottom: 30px;
}
.nasaa-section-title-with-list ul.items li .icon {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  padding-right: 15px;
}
.nasaa-section-title-with-list ul.items li .text {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
}
.nasaa-section-title-with-list ul.items li .text p:last-of-type {
  margin-bottom: 0;
}
.nasaa-seminar-archive h1 img {
  max-width: 120px;
}
.nasaa-seminar-archive .nasaa-large-accordion {
  display: none;
}
.nasaa-seminar-archive .category-title {
  position: relative;
  cursor: pointer;
}
.nasaa-seminar-archive .category-title:after {
  content: "+";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  color: #f7a400;
  font-weight: 800;
  font-size: 48px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
.nasaa-seminar-archive .category-title.open:after {
  content: "-";
}
.nasaa-donor-accordion .section-title > h3 {
  padding-right: 20px;
}
.nasaa-file-container {
  background-image: url(../img/nasaa-loading-spinner.gif);
  background-position: center;
  background-repeat: no-repeat;
}
.shop_table.order_details a {
  font-family: "Lora", sans-serif;
  color: #880a17;
}
.nasaa-user-management-button,
.nasaa-logout-button,
.nasaa-login-button {
  white-space: nowrap;
  margin: auto 0 auto 12px;
}
.woocommerce .nasaa-user-management-button,
.woocommerce .nasaa-logout-button,
.woocommerce .nasaa-login-button {
  white-space: nowrap;
  margin: auto 0 auto 12px;
}
@media screen and (max-width: 56.1875em) {
  .woocommerce header a.button.nasaa-user-management-button,
  .woocommerce header a.button.nasaa-logout-button,
  .woocommerce header a.button.nasaa-login-button {
    display: block;
  }
}
.woocommerce-MyAccount-navigation ul {
  margin: 0;
  list-style-type: none;
}
.woocommerce-MyAccount-navigation a {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #424242;
  font-family: "Lora", sans-serif;
  display: block;
  padding: 7px 0;
}
.woocommerce-MyAccount-navigation a:hover {
  color: #880a17;
}
.type-product .wc-tabs-wrapper {
  float: right;
  clear: none !important;
  width: 48%;
}
.type-product .wc-tabs-wrapper ul.tabs {
  border-top: none;
  border-right: none;
  border-left: none;
  margin: 0 !important;
}
.type-product .wc-tabs-wrapper .woocommerce-Tabs-panel {
  border: 1px solid #e6e6e6;
  border-top: none;
  padding: 25px !important;
}
.vcs-image-carousel-container {
  float: left;
  width: 100%;
  position: relative;
}
.vcs-image-carousel-container.display-1 .previous,
.vcs-image-carousel-container.display-1 .next {
  width: 15%;
}
.vcs-image-carousel-container.display-1 .owl-carousel {
  width: 70%;
}
.vcs-image-carousel-container .previous,
.vcs-image-carousel-container .next {
  float: left;
  width: 5%;
  height: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.vcs-image-carousel-container .prev-pager,
.vcs-image-carousel-container .next-pager {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 5%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.vcs-image-carousel-container .prev-pager i,
.vcs-image-carousel-container .next-pager i {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  color: #acacac;
}
.vcs-image-carousel-container .prev-pager:hover i,
.vcs-image-carousel-container .next-pager:hover i {
  color: #333;
}
.vcs-image-carousel-container .prev-pager {
  left: 0;
}
.vcs-image-carousel-container .next-pager {
  right: 0;
}
.vcs-image-carousel-container .owl-carousel {
  width: 90%;
  float: left;
}
.vcs-image-carousel-container i {
  font-size: 70px;
  color: #333;
}
.nasaa-image-slider .owl-thumbs {
  text-align: center;
}
.nasaa-image-slider .owl-thumbs button {
  opacity: 0.4;
}
.nasaa-image-slider .owl-thumbs button.active {
  opacity: 1;
}
.nasaa-dropquote {
  padding: 15px;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
.nasaa-dropquote.white {
  background: #fff;
}
.nasaa-dropquote.nasaa-gray-shade {
  background: #ebebeb;
}
.nasaa-dropquote.nasaa-dark-gray {
  background: #333;
}
.nasaa-dropquote.nasaa-light-gray {
  background: #acacac;
}
.nasaa-dropquote.nasaa-medium-gray {
  background: #424242;
}
.nasaa-dropquote.nasaa-gray-shade-dark {
  background: #d2d2d2;
}
.nasaa-dropquote.dark-red {
  background: #2e0206;
}
.nasaa-dropquote.red {
  background: #450007;
}
.nasaa-dropquote.bright-red {
  background: #880a17;
}
.nasaa-dropquote.medium-gray-to-red {
  background: #acacac;
}
.nasaa-dropquote.dark-blue {
  background: #0b0838;
}
.nasaa-dropquote.blue {
  background: #262262;
}
.nasaa-dropquote.cyan {
  background: #00afd4;
}
.nasaa-dropquote.orange {
  background: #f7a400;
}
.nasaa-dropquote.green {
  background: #099;
}
.nasaa-dropquote.teal-green {
  background: #0fa79a;
}
.nasaa-dropquote.purple {
  background: #609;
}
.nasaa-dropquote.white-to-orange {
  background: #fff;
}
.nasaa-dropquote.gray-to-red {
  background: #424242;
}
.nasaa-dropquote.cyan-to-red {
  background: #00afd4;
}
.nasaa-dropquote.orange {
  background: #f7a400;
}
.nasaa-dropquote.med-light-gray {
  background: #acacac;
}
.nasaa-dropquote.blue-to-red {
  background: #262262;
}
.nasaa-dropquote * {
  color: white;
}
.nasaa-dropquote.no-image {
  padding-top: 45px;
  padding-bottom: 15px;
}
.nasaa-dropquote .quotation {
  padding: 0;
}
.nasaa-dropquote .quotation p {
  font-size: 92px;
  margin: 0;
  line-height: 1;
  display: block;
}
.nasaa-dropquote .quote-body {
  padding: 0 15px;
}
.nasaa-dropquote.large .content p {
  font-size: 32px;
}
@media screen and (max-width: 63.9375em) {
  .nasaa-dropquote.large .content p {
    font-size: 24px;
  }
  .nasaa-dropquote.large .quotation p {
    font-size: 48px;
  }
}
.nasaa-dropquote.x-large .content p {
  font-size: 48px;
}
@media screen and (max-width: 63.9375em) {
  .nasaa-dropquote.x-large .content p {
    font-size: 28px;
  }
  .nasaa-dropquote.x-large .quotation p {
    font-size: 48px;
  }
}
.nasaa-dropquote.shortcode.center {
  margin-bottom: 45px;
  margin-top: 45px;
}
.nasaa-dropquote.shortcode.left,
.nasaa-dropquote.shortcode.right {
  width: 65%;
}
.nasaa-dropquote.shortcode.left {
  margin: 0 30px 30px -30px;
  float: left;
}
.nasaa-dropquote.shortcode.right {
  float: right;
  margin: 0 -30px 30px 30px;
}
@media screen and (min-width: 56.25em) {
  .nasaa-dropquote {
    width: 90%;
    position: relative;
  }
  .nasaa-dropquote .image {
    padding-left: 0;
  }
  .nasaa-dropquote.left {
    margin-right: auto;
  }
  .nasaa-dropquote.right {
    margin-left: auto;
  }
}
@media screen and (min-width: 90em) {
  .nasaa-dropquote.left {
    right: 10%;
  }
  .nasaa-dropquote.left {
    right: 10%;
  }
}
@media screen and (max-width: 31.1875em) {
  .nasaa-dropquote {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }
  .nasaa-dropquote .image {
    margin-bottom: 15px;
  }
  .nasaa-dropquote.shortcode.left {
    margin-left: 0 !important;
  }
  .nasaa-dropquote.shortcode.right {
    margin-right: 0 !important;
  }
}
.nasaa-post-filter-notifications span {
  font-size: 0.8em;
}
.page-id-9128 > .content > .spacer:first-of-type {
  height: 35px;
}
.page-id-9128 .vcs-image-carousel-container {
  max-width: 888px;
}
.page-id-9128 .vcs-image-carousel-container img {
  width: inherit;
}
table.fifty_ways {
  max-width: 800px;
  margin: 0 auto 50px;
}
table.fifty_ways p {
  margin: 0;
}
table.fifty_ways tbody {
  border: none;
}
table.fifty_ways tr {
  background: white !important;
}
table.fifty_ways tr td {
  border-bottom: 2px solid #8a8a8a;
}
table.fifty_ways tr td:nth-of-type(1) {
  font-size: 42px;
  font-weight: 800;
  letter-spacing: -0.5px;
  position: relative;
  padding-right: 25px;
  padding-left: 15px;
}
table.fifty_ways tr td:nth-of-type(1):before {
  content: "";
  position: absolute;
  bottom: 5px;
  top: 5px;
  right: 0;
  width: 2px;
  background: #8a8a8a;
}
table.fifty_ways tr td:nth-of-type(2) {
  text-align: center;
  color: lightgray;
}
.page-id-76 .nasaa-section-header-acf .column,
.page-id-76 .nasaa-section-header-acf .columns {
  padding-bottom: 30px;
}
#dafdirectdiv {
  width: 172px !important;
}
.nasaa-view-resource .nasaa-filter {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  padding: 0 15px;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
.nasaa-view-resource .nasaa-filter select {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 310px;
  -ms-flex: 0 0 310px;
  flex: 0 0 310px;
  margin-bottom: 0;
}
.nasaa-view-resource .nasaa-filter h6 {
  margin: 0;
  font-weight: 600;
}
.nasaa-view-resource .active-filters {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin: 0 10px;
}
.nasaa-view-resource .active-filters .filter {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  background: #eee;
  border-radius: 5px;
  padding: 4px 9px 4px 8px;
  margin-right: 10px;
}
.nasaa-view-resource .active-filters .filter:last-of-type {
  margin-right: 0;
}
.nasaa-view-resource .active-filters .filter i:before {
  margin-left: 0;
}
.nasaa-view-resource .nasaa-resource-view-header {
  border-bottom: 2px solid black;
}
.nasaa-view-resource .nasaa-resource-view-header p {
  margin: 0;
}
.nasaa-view-resource .nasaa-resource {
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.nasaa-view-resource .nasaa-resource > .row {
  width: 100%;
}
.nasaa-view-resource .nasaa-resource:hover {
  background: #efefef;
}
.nasaa-view-resource .nasaa-resource:nth-child(odd) {
  background: #f4f4f4;
}
.nasaa-view-resource .post-title,
.nasaa-view-resource .post-description,
.nasaa-view-resource .post-term {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  height: 100%;
  padding-top: 10px;
  padding-bottom: 10px;
}
.nasaa-view-resource .post-title,
.nasaa-view-resource .post-description {
  border-right: 1px solid black;
}
.nasaa-view-resource .post-description,
.nasaa-view-resource .post-term {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}
.nasaa-view-resource .post-description p:last-of-type,
.nasaa-view-resource .post-term p:last-of-type {
  margin-bottom: 0;
}
.nasaa-view-resource .post-description > * {
  width: 100%;
}
.nasaa-view-resource .post-title h6 {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  margin: 0;
}
.nasaa-view-resource .post-title h6 i {
  margin-right: 10px;
  -webkit-box-flex: 0;
  -webkit-flex: 0;
  -ms-flex: 0;
  flex: 0;
  -webkit-align-self: center;
  -ms-flex-item-align: center;
  -ms-grid-row-align: center;
  align-self: center;
}
.nasaa-view-resource .post-title h6 a {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
@media screen and (min-width: 56.25em) {
  .nasaa-member-dashboard .member-dashboard-top-row .member-alerts {
    padding-right: 30px;
  }
  .nasaa-member-dashboard .member-dashboard-top-row .sidebar {
    padding-left: 30px;
  }
}
.nasaa-member-dashboard .nasaa-member-connect-info {
  background: #321547;
  color: white;
  padding: 20px 20px 10px;
  text-align: center;
  max-width: 500px;
}
.nasaa-member-dashboard .nasaa-member-connect-info h2:before {
  content: "";
  display: inline-block;
  width: 30px;
  height: 30px;
  margin-right: 10px;
  background-image: url(../img/chain.png);
  background-size: 30px 30px;
  background-repeat: no-repeat;
}
.nasaa-member-dashboard .nasaa-member-connect-info .nasaa-member-connect-link {
  color: white;
  text-transform: uppercase;
  background: #f7a400;
  padding: 5px;
  margin: 20px 0;
  display: inline-block;
}
.nasaa-member-dashboard .nasaa-member-connect-info h6 {
  font-size: 80%;
}
.nasaa-member-dashboard .nasaa-member-alerts .icon-img {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
}
.nasaa-member-dashboard .nasaa-member-alerts .icon-img .icon-alert {
  font-size: 72px;
  color: #f7a400;
}
.nasaa-member-dashboard .nasaa-member-alerts .nasaa-member-alert {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  padding-left: 0;
}
.nasaa-member-dashboard .nasaa-member-alerts .nasaa-member-alert p:last-child {
  margin-bottom: 0;
}
.nasaa-member-dashboard .nasaa-member-alerts .slide-meta .position {
  text-align: center;
  font-family: "Lora", sans-serif;
  color: #acacac;
}
.nasaa-member-dashboard .nasaa-member-alerts .slide-meta .position span {
  font-size: 200%;
}
.nasaa-member-dashboard .nasaa-member-alerts .slide-meta .pagination {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  margin: 0;
}
.nasaa-member-dashboard .nasaa-member-alerts .slide-meta .pagination .prev,
.nasaa-member-dashboard .nasaa-member-alerts .slide-meta .pagination .next {
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 50%;
  -ms-flex: 0 1 50%;
  flex: 0 1 50%;
  background: #acacac;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  height: 40px;
}
.nasaa-member-dashboard .nasaa-member-alerts .slide-meta .pagination .prev {
  border-right: 2.5px solid white;
}
.nasaa-member-dashboard .nasaa-member-alerts .slide-meta .pagination .next {
  border-left: 2.5px solid white;
}
.nasaa-member-dashboard .nasaa-member-alerts .slide-meta .pagination i {
  color: white;
  line-height: 1;
}
.nasaa-member-dashboard .nasaa-member-alerts .slide-meta .pagination i:before {
  margin: 0;
}
@media screen and (max-width: 56.1875em) {
  .nasaa-member-dashboard .nasaa-member-alerts .owl-item > .row {
    margin: 0;
  }
}
.nasaa-member-dashboard .nasaa-benefits-and-governance {
  position: relative;
  margin: 0;
}
.nasaa-member-dashboard .nasaa-benefits-and-governance:before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: -webkit-calc(100% - 15px);
  right: calc(100% - 15px);
  width: 1000000px;
  background: #e6e6e6;
}
.nasaa-member-dashboard
  .nasaa-benefits-and-governance
  .section-title
  h3
  strong {
  font-size: 32px;
}
.nasaa-member-dashboard .sidebar h4 {
  color: #880a17;
  font-family: "Lora", sans-serif;
  font-size: 25px;
  margin: 0;
}
.nasaa-member-dashboard .sidebar .nasaa-member-recent-news .post-date {
  color: #acacac;
  margin-bottom: 10px;
}
.nasaa-newsletter-toc-container ul {
  margin: 0;
  list-style-type: none;
}
.nasaa-newsletter-toc-container ul ul {
  display: none;
  margin-left: 5px;
}
.nasaa-newsletter-toc-container .trigger {
  border-color: #acacac;
  color: #acacac;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
}
.nasaa-newsletter-toc-container .trigger.open {
  -webkit-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  transform: rotate(-90deg);
}
.reveal-overlay {
  background-color: rgba(255, 255, 255, 0.7);
}
.reveal {
  outline: none;
  border: none;
  border-left: 5px solid #00afd4;
  padding: 25px 20px 25px 25px;
}
.reveal p {
  font-size: 13px;
  font-weight: 100;
}
.reveal p a {
  color: #750f1a;
}
.reveal .close-button {
  border-radius: 100%;
  font-size: 18px;
  width: 22px;
  height: 22px;
  line-height: 25px;
  text-align: center;
  right: 20px;
  top: 25px;
}
.reveal .close-button span {
  color: white;
  position: relative;
  left: 0.5px;
  bottom: 0.5px;
}
.reveal .close-button i.icon-cancel-circled {
  font-size: 22px;
}
.reveal h4 a {
  color: #1a1a1a;
}
#vmap {
  width: 800px;
  height: 533px;
  margin: auto;
}
#stateInfoModal ul {
  margin: 0;
}
#stateInfoModal ul li {
  display: inline-block;
  margin-right: 0.5em;
}
#stateInfoModal .logo {
  float: right;
  position: relative;
  text-align: right;
}
#stateInfoModal .image img {
  max-width: 150px;
}
.map-regions-bottom {
  width: 800px;
  margin: auto;
}
.map-regions-bottom > li {
  display: inline-block;
  width: 32.9%;
  font-size: small;
  text-align: center;
}
.map-regions-bottom > li > a {
  display: block;
  color: white;
  padding: 0.3em 0;
  margin-bottom: 0.3em;
}
#WESTAF {
  background-color: #262262;
}
#MW {
  background-color: #00afd4;
}
#NEFA {
  background-color: #750f1a;
}
#MIDAM {
  background-color: #00a799;
}
#SAF {
  background-color: #600083;
}
#MIDAT {
  background-color: #f99f1b;
}
.map-regions-left {
  margin: 0;
  position: relative;
  right: -120px;
  top: 80px;
  float: right;
}
.map-regions-left a {
  background-color: #d34f00;
  color: white;
  width: 40px;
  height: 30px;
  line-height: 30px;
  display: block;
  text-align: center;
  font-size: small;
}
.map-regions-left li,
.map-regions-right li {
  margin-bottom: 0.2em;
  list-style: none;
}
.map-regions-right {
  margin: 0;
  position: relative;
  left: -120px;
  top: 80px;
}
.map-regions-right a {
  color: white;
  width: 40px;
  height: 30px;
  line-height: 30px;
  display: block;
  text-align: center;
  font-size: small;
}
.map-regions-right #NH,
.map-regions-right #VT,
.map-regions-right #MA,
.map-regions-right #RI,
.map-regions-right #CT {
  background-color: #750f1a;
}
.map-regions-right #NJ,
.map-regions-right #DE,
.map-regions-right #MD,
.map-regions-right #DC,
.map-regions-right #VI {
  background-color: #f99f1b;
}
.map-regions-right #PR {
  background-color: #d34f00;
}
.map-regions-dropdown {
  display: none;
}
@media (min-width: 900px) and (max-width: 1199px) {
  .map-regions-left {
    right: 0;
  }
  .map-regions-right {
    left: 0;
  }
  .map-regions-bottom {
    width: 100%;
  }
}
@media (min-width: 1064px) and (max-width: 1100px) {
  #vmap {
    width: 700px;
    height: 466px;
  }
}
@media screen and (max-width: 1063px) {
  #vmap {
    width: 600px;
    height: 400px;
  }
}
@media screen and (max-width: 899px) {
  #vmap,
  .map-regions-left,
  .map-regions-right,
  .map-regions-bottom,
  .hide-for-900-down {
    display: none;
  }
  .map-regions-dropdown {
    display: block;
  }
}
@media screen and (max-width: 1279px) {
  .container.hide-for-1279-down #vmap,
  .container.hide-for-1279-down .map-regions-left,
  .container.hide-for-1279-down .map-regions-right,
  .container.hide-for-1279-down .map-regions-bottom,
  .container.hide-for-1279-down .hide-for-900-down {
    display: none;
  }
  .container.hide-for-1279-down .map-regions-dropdown {
    display: block;
  }
}
i.circled,
i.circle {
  border: 1px solid white;
  border-radius: 100%;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  text-align: center;
}
i.circled:before,
i.circle:before {
  margin: 0;
  position: relative;
  left: -1px;
}
i.circled.icon-left-open:before,
i.circle.icon-left-open:before {
  left: -3.8%;
}
i.circled.icon-right-open:before,
i.circle.icon-right-open:before {
  left: 8.5%;
}
i.white {
  color: #fff;
}
i.white.circled {
  border-color: #fff;
}
i.nasaa-gray-shade {
  color: #ebebeb;
}
i.nasaa-gray-shade.circled {
  border-color: #ebebeb;
}
i.nasaa-dark-gray {
  color: #333;
}
i.nasaa-dark-gray.circled {
  border-color: #333;
}
i.nasaa-light-gray {
  color: #acacac;
}
i.nasaa-light-gray.circled {
  border-color: #acacac;
}
i.nasaa-medium-gray {
  color: #424242;
}
i.nasaa-medium-gray.circled {
  border-color: #424242;
}
i.nasaa-gray-shade-dark {
  color: #d2d2d2;
}
i.nasaa-gray-shade-dark.circled {
  border-color: #d2d2d2;
}
i.dark-red {
  color: #2e0206;
}
i.dark-red.circled {
  border-color: #2e0206;
}
i.red {
  color: #450007;
}
i.red.circled {
  border-color: #450007;
}
i.bright-red {
  color: #880a17;
}
i.bright-red.circled {
  border-color: #880a17;
}
i.medium-gray-to-red {
  color: #acacac;
}
i.medium-gray-to-red.circled {
  border-color: #acacac;
}
i.dark-blue {
  color: #0b0838;
}
i.dark-blue.circled {
  border-color: #0b0838;
}
i.blue {
  color: #262262;
}
i.blue.circled {
  border-color: #262262;
}
i.cyan {
  color: #00afd4;
}
i.cyan.circled {
  border-color: #00afd4;
}
i.orange {
  color: #f7a400;
}
i.orange.circled {
  border-color: #f7a400;
}
i.green {
  color: #099;
}
i.green.circled {
  border-color: #099;
}
i.teal-green {
  color: #0fa79a;
}
i.teal-green.circled {
  border-color: #0fa79a;
}
i.purple {
  color: #609;
}
i.purple.circled {
  border-color: #609;
}
i.white-to-orange {
  color: #fff;
}
i.white-to-orange.circled {
  border-color: #fff;
}
i.gray-to-red {
  color: #424242;
}
i.gray-to-red.circled {
  border-color: #424242;
}
i.cyan-to-red {
  color: #00afd4;
}
i.cyan-to-red.circled {
  border-color: #00afd4;
}
i.orange {
  color: #f7a400;
}
i.orange.circled {
  border-color: #f7a400;
}
i.med-light-gray {
  color: #acacac;
}
i.med-light-gray.circled {
  border-color: #acacac;
}
i.blue-to-red {
  color: #262262;
}
i.blue-to-red.circled {
  border-color: #262262;
}
i.space-left {
  margin-left: 7px;
}
i.space-right {
  margin-right: 7px;
}
i.size-xlarge {
  font-size: 98px;
  line-height: 1;
}
i.size-large {
  font-size: 48px;
  line-height: 1;
}
i.size-large-72 {
  font-size: 72px;
  line-height: 1;
}
.button {
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 15px 30px;
  font-family: "Open Sans", Helvetica, Roboto, Arial, sans-serif;
  color: white;
  -webkit-transition: 250ms all ease-out;
  transition: 250ms all ease-out;
  text-decoration: none !important;
}
.button i {
  color: white;
}
.button i.icon-facebook-circled {
  font-size: 20px;
}
.button.white {
  background-color: #fff;
}
.button.white:hover {
  background: #e6e6e6;
}
.button.nasaa-gray-shade {
  background-color: #ebebeb;
}
.button.nasaa-gray-shade:hover {
  background: #d2d2d2;
}
.button.nasaa-dark-gray {
  background-color: #333;
}
.button.nasaa-dark-gray:hover {
  background: #1a1a1a;
}
.button.nasaa-light-gray {
  background-color: #acacac;
}
.button.nasaa-light-gray:hover {
  background: #939393;
}
.button.nasaa-medium-gray {
  background-color: #424242;
}
.button.nasaa-medium-gray:hover {
  background: #292929;
}
.button.nasaa-gray-shade-dark {
  background-color: #d2d2d2;
}
.button.nasaa-gray-shade-dark:hover {
  background: #b9b9b9;
}
.button.dark-red {
  background-color: #2e0206;
}
.button.dark-red:hover {
  background: #000;
}
.button.red {
  background-color: #450007;
}
.button.red:hover {
  background: #120002;
}
.button.bright-red {
  background-color: #880a17;
}
.button.bright-red:hover {
  background: #58070f;
}
.button.medium-gray-to-red {
  background-color: #acacac;
}
.button.medium-gray-to-red:hover {
  background: #450007;
}
.button.dark-blue {
  background-color: #0b0838;
}
.button.dark-blue:hover {
  background: #02020b;
}
.button.blue {
  background-color: #262262;
}
.button.blue:hover {
  background: #17153c;
}
.button.cyan {
  background-color: #00afd4;
}
.button.cyan:hover {
  background: #0085a1;
}
.button.orange {
  background-color: #f7a400;
}
.button.orange:hover {
  background: #c48200;
}
.button.green {
  background-color: #099;
}
.button.green:hover {
  background: #066;
}
.button.teal-green {
  background-color: #0fa79a;
}
.button.teal-green:hover {
  background: #0b786f;
}
.button.purple {
  background-color: #609;
}
.button.purple:hover {
  background: #406;
}
.button.white-to-orange {
  background-color: #fff;
}
.button.white-to-orange:hover {
  background: #f7a400;
}
.button.gray-to-red {
  background-color: #424242;
}
.button.gray-to-red:hover {
  background: #880a17;
}
.button.cyan-to-red {
  background-color: #00afd4;
}
.button.cyan-to-red:hover {
  background: #450007;
}
.button.orange {
  background-color: #f7a400;
}
.button.orange:hover {
  background: #c48200;
}
.button.med-light-gray {
  background-color: #acacac;
}
.button.blue-to-red {
  background-color: #262262;
}
.button.blue-to-red:hover {
  background: #880a17;
}
.button.white {
  background: white;
  color: #333;
}
.button.extended,
.button.expand {
  width: 100%;
}
.button.center,
.button.centered {
  margin: auto;
}
.button.with-icon {
  position: relative;
  padding-right: 45px;
}
.button.with-icon:after {
  content: "\e80c";
  font-family: fontello;
  position: absolute;
  top: -webkit-calc(50% - 9px);
  top: calc(50% - 9px);
  right: 15px;
  color: white;
  border: 1px solid white;
  border-radius: 100%;
  width: 16px;
  height: 16px;
  text-indent: 2px;
}
.button.with-icon.back {
  padding-left: 45px;
  padding-right: 15px;
}
.button.with-icon.back:after {
  content: "\e80b";
  right: auto;
  left: 18px;
}
.button.round {
  border-radius: 30px;
}
.button.small {
  padding: 15px;
  font-size: 10px;
}
.button.small.round {
  padding: 10px 22px;
}
.button.small.with-icon {
  padding-right: 30px;
}
.button.small.with-icon:after {
  top: -webkit-calc(50% - 8px);
  top: calc(50% - 8px);
  right: 9px;
  line-height: 1.5;
}
.nasaa-login-modal #wp-submit {
  text-transform: uppercase;
}
body.woocommerce header .nasaa-member-buttons .button {
  color: white !important;
  font-size: 10px;
  padding: 10px 22px;
  border-radius: 100px;
  margin-left: 12px;
}
body.woocommerce header .nasaa-member-buttons .button.blue {
  background: #262262 !important;
}
body.woocommerce header .nasaa-member-buttons .button.orange {
  background: #f7a400 !important;
}
body.woocommerce header .nasaa-member-buttons .nasaa-login-modal #wp-submit {
  border-radius: 0;
  padding: 15px 30px;
  margin: 0 0 1rem 0;
  font-size: 13px;
  background: #f7a400;
}
@media screen and (max-width: 56.1875em) {
  body.woocommerce header .button {
    font-size: 13px;
  }
}
.spacer {
  height: 50px;
  width: 100%;
}
.spacer.xlarge {
  height: 100px;
}
.spacer.large {
  height: 75px;
}
.spacer.small {
  height: 25px;
}
.spacer.xsmall {
  height: 15px;
}
.spacer.xxsmall {
  height: 7px;
}
.spacer.divider {
  position: relative;
}
.spacer.divider:before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  display: block;
  border-top: 1px solid #acacac;
}
.spacer.divider.dashed:before {
  border-top-style: dotted;
}
.spacer.divider.light:before {
  border-top-color: #acacac;
}
.spacer.divider.top:before {
  top: 0;
}
.spacer.divider.bottom:before {
  bottom: 0;
}
.spacer.divider.thick:before {
  border-top-width: 2px;
}
.spacer.divider.white:before {
  border-top-color: #fff;
}
.spacer.divider.nasaa-gray-shade:before {
  border-top-color: #ebebeb;
}
.spacer.divider.nasaa-dark-gray:before {
  border-top-color: #333;
}
.spacer.divider.nasaa-light-gray:before {
  border-top-color: #acacac;
}
.spacer.divider.nasaa-medium-gray:before {
  border-top-color: #424242;
}
.spacer.divider.nasaa-gray-shade-dark:before {
  border-top-color: #d2d2d2;
}
.spacer.divider.dark-red:before {
  border-top-color: #2e0206;
}
.spacer.divider.red:before {
  border-top-color: #450007;
}
.spacer.divider.bright-red:before {
  border-top-color: #880a17;
}
.spacer.divider.medium-gray-to-red:before {
  border-top-color: #acacac;
}
.spacer.divider.dark-blue:before {
  border-top-color: #0b0838;
}
.spacer.divider.blue:before {
  border-top-color: #262262;
}
.spacer.divider.cyan:before {
  border-top-color: #00afd4;
}
.spacer.divider.orange:before {
  border-top-color: #f7a400;
}
.spacer.divider.green:before {
  border-top-color: #099;
}
.spacer.divider.teal-green:before {
  border-top-color: #0fa79a;
}
.spacer.divider.purple:before {
  border-top-color: #609;
}
.spacer.divider.white-to-orange:before {
  border-top-color: #fff;
}
.spacer.divider.gray-to-red:before {
  border-top-color: #424242;
}
.spacer.divider.cyan-to-red:before {
  border-top-color: #00afd4;
}
.spacer.divider.orange:before {
  border-top-color: #f7a400;
}
.spacer.divider.med-light-gray:before {
  border-top-color: #acacac;
}
.spacer.divider.blue-to-red:before {
  border-top-color: #262262;
}
@media screen and (max-width: 56.1875em) {
  .spacer {
    height: 30px;
  }
  .spacer.large {
    height: 60px;
  }
  .spacer.xlarge {
    height: 75px;
  }
  .spacer.small {
    height: 15px;
  }
  .spacer.xxsmall {
    height: 7px;
  }
}
.light-gray-bg {
  background-color: #ebebeb;
}
.light-gray-bg-top-half {
  position: relative;
}
.light-gray-bg-top-half:before {
  content: "";
  top: 0;
  left: 0;
  right: 0;
  bottom: 50%;
  position: absolute;
  background: #ebebeb;
}
.light-gray-bg-bottom-half {
  position: relative;
}
.light-gray-bg-bottom-half:before {
  content: "";
  bottom: 0;
  left: 0;
  right: 0;
  top: 50%;
  position: absolute;
  background: #ebebeb;
  z-index: -1;
}
.nasaa-divider {
  height: 8px;
  width: 100%;
  background: #333;
  margin-bottom: 10px;
}
.nasaa-divider.blue {
  background: #262262;
}
.nasaa-divider.dark-blue {
  background: #0b0838;
}
.nasaa-divider.red {
  background: #450007;
}
.nasaa-divider.orange {
  background: #f7a400;
}
.nasaa-divider.yellow {
  background: #f9ff1b;
}
img.full-width {
  width: 100%;
}
.question {
  border: 1px solid #2e0206;
  color: #880a17;
  padding: 10px;
  margin: 15px 0;
}
.row.expand {
  max-width: none;
  width: 100%;
}
.row.flat {
  margin: 0 !important;
}
.row.flat .row {
  margin: 0 auto;
}
.row > .row {
  margin: 0 15px;
}
.row.center {
  margin-left: auto !important;
  margin-right: auto !important;
}
img.alignleft,
div.alignleft {
  float: left;
  margin: 0 15px 15px 0;
}
img.alignright,
div.alignright {
  float: right;
  margin: 0 0 30px 30px !important;
}
img.aligncenter,
div.aligncenter {
  display: block;
  margin: 15px auto;
}
img .wp-caption-text,
div .wp-caption-text {
  font-size: 12px;
  color: #424242;
  font-style: italic;
}
.remove-last-margin *:last-child {
  margin-bottom: 0;
}
ul.icon {
  list-style-type: none;
  margin-left: 0;
}
ul.icon li:before {
  font-family: "fontello";
  font-style: normal;
  font-weight: normal;
  speak: none;
  display: inline-block;
  text-decoration: inherit;
  width: 1em;
  margin-right: 10px;
  text-align: center;
  font-variant: normal;
  text-transform: none;
  line-height: 1em;
  margin-left: 0.2em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
ul.icon.stars li:before {
  content: "\e806";
}
ul.icon.stars.red li:before {
  color: #750f1a;
}
ul.icon.stars.yellow li:before {
  color: #f99f1b;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.flex-fix-grow {
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}
.gform_wrapper .percentbar_gray {
  background-color: #7c7c7c;
  color: #fff;
}
.gform_wrapper .percentbar_green {
  background-color: #415817;
  color: #fff;
}
.gform_wrapper .percentbar_orange {
  background-color: #833000;
  color: #fff;
}
.gform_wrapper .percentbar_red {
  background-color: #9d0a00;
  color: #fff;
}
.woocommerce-store-notice,
p.demo_store {
  background-color: #6c4063;
}
.woocommerce span.onsale {
  background-color: #445e37;
}
.woocommerce nav.woocommerce-pagination ul li a:focus,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
  background-color: #544e54;
}
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
  background-color: #6c4063;
}
.woocommerce #respond input#submit.alt.disabled,
.woocommerce #respond input#submit.alt.disabled:hover,
.woocommerce #respond input#submit.alt:disabled,
.woocommerce #respond input#submit.alt:disabled:hover,
.woocommerce #respond input#submit.alt:disabled[disabled],
.woocommerce #respond input#submit.alt:disabled[disabled]:hover,
.woocommerce a.button.alt.disabled,
.woocommerce a.button.alt.disabled:hover,
.woocommerce a.button.alt:disabled,
.woocommerce a.button.alt:disabled:hover,
.woocommerce a.button.alt:disabled[disabled],
.woocommerce a.button.alt:disabled[disabled]:hover,
.woocommerce button.button.alt.disabled,
.woocommerce button.button.alt.disabled:hover,
.woocommerce button.button.alt:disabled,
.woocommerce button.button.alt:disabled:hover,
.woocommerce button.button.alt:disabled[disabled],
.woocommerce button.button.alt:disabled[disabled]:hover,
.woocommerce input.button.alt.disabled,
.woocommerce input.button.alt.disabled:hover,
.woocommerce input.button.alt:disabled,
.woocommerce input.button.alt:disabled:hover,
.woocommerce input.button.alt:disabled[disabled],
.woocommerce input.button.alt:disabled[disabled]:hover {
  background-color: #6e4168;
  color: #fff;
}
#fiveApproachesCaseStudyTable thead th {
  padding: 6px 26px;
}
#fiveApproachesCaseStudyTable thead th.col-even {
  background-color: #fc9;
}
#fiveApproachesCaseStudyTable tbody th {
  text-align: left;
  padding: 6px 26px;
}
#fiveApproachesCaseStudyTable tbody td {
  padding: 6px 26px;
}
#fiveApproachesCaseStudyTable tbody td.col-even {
  background-color: #fc9;
}
div.space-gif {
  display: inline-block;
  width: 1px;
  height: 1px;
}
.woocommerce .added_to_cart {
  display: inline-block;
  font-family: "Lora", sans-serif;
  font-size: 20px;
  background: #f7a400;
  color: white !important;
  clear: left;
  padding: 5px 15px;
  border-radius: 2px;
  margin-top: 20px;
}
@media screen and (min-width: 56.25em) {
  .woocommerce form.checkout #customer_details {
    width: 50%;
    float: left;
  }
  .woocommerce form.checkout #customer_details .col-1,
  .woocommerce form.checkout #customer_details .col-2 {
    width: 100%;
    float: left;
    clear: left;
  }
  .woocommerce form.checkout #customer_details .col-1 {
    padding-bottom: 40px;
  }
  .woocommerce form.checkout #order_review_heading {
    text-indent: 2%;
  }
  .woocommerce form.checkout #order_review {
    float: right;
    width: 48%;
  }
}
.woocommerce .woocommerce-table--order-details a {
  color: #880a17;
  font-family: "Lora", sans-serif;
}
.woocommerce .woocommerce-breadcrumb {
  display: none;
}
@media screen and (max-width: 31.25em) {
  .small-1 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 8.33333%;
    -ms-flex: 0 0 8.33333%;
    flex: 0 0 8.33333%;
    max-width: 8.33333%;
  }
  .small-offset-0 {
    margin-left: 0%;
  }
  .small-2 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 16.66667%;
    -ms-flex: 0 0 16.66667%;
    flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .small-offset-1 {
    margin-left: 8.33333%;
  }
  .small-3 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 25%;
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
    max-width: 25%;
  }
  .small-offset-2 {
    margin-left: 16.66667%;
  }
  .small-4 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 33.33333%;
    -ms-flex: 0 0 33.33333%;
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .small-offset-3 {
    margin-left: 25%;
  }
  .small-5 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 41.66667%;
    -ms-flex: 0 0 41.66667%;
    flex: 0 0 41.66667%;
    max-width: 41.66667%;
  }
  .small-offset-4 {
    margin-left: 33.33333%;
  }
  .small-6 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 50%;
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
  }
  .small-offset-5 {
    margin-left: 41.66667%;
  }
  .small-7 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 58.33333%;
    -ms-flex: 0 0 58.33333%;
    flex: 0 0 58.33333%;
    max-width: 58.33333%;
  }
  .small-offset-6 {
    margin-left: 50%;
  }
  .small-8 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 66.66667%;
    -ms-flex: 0 0 66.66667%;
    flex: 0 0 66.66667%;
    max-width: 66.66667%;
  }
  .small-offset-7 {
    margin-left: 58.33333%;
  }
  .small-9 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 75%;
    -ms-flex: 0 0 75%;
    flex: 0 0 75%;
    max-width: 75%;
  }
  .small-offset-8 {
    margin-left: 66.66667%;
  }
  .small-10 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 83.33333%;
    -ms-flex: 0 0 83.33333%;
    flex: 0 0 83.33333%;
    max-width: 83.33333%;
  }
  .small-offset-9 {
    margin-left: 75%;
  }
  .small-11 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 91.66667%;
    -ms-flex: 0 0 91.66667%;
    flex: 0 0 91.66667%;
    max-width: 91.66667%;
  }
  .small-offset-10 {
    margin-left: 83.33333%;
  }
  .small-12 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
  .small-offset-11 {
    margin-left: 91.66667%;
  }
  .small-order-1 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1;
  }
  .small-order-2 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
    -ms-flex-order: 2;
    order: 2;
  }
  .small-order-3 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
    -ms-flex-order: 3;
    order: 3;
  }
  .small-order-4 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
    -ms-flex-order: 4;
    order: 4;
  }
  .small-order-5 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 5;
    -ms-flex-order: 5;
    order: 5;
  }
  .small-order-6 {
    -webkit-box-ordinal-group: 7;
    -webkit-order: 6;
    -ms-flex-order: 6;
    order: 6;
  }
  .small-up-1 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .small-up-1 > .column,
  .small-up-1 > .columns,
  .small-up-1 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
  .small-up-2 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .small-up-2 > .column,
  .small-up-2 > .columns,
  .small-up-2 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 50%;
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
  }
  .small-up-3 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .small-up-3 > .column,
  .small-up-3 > .columns,
  .small-up-3 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 33.33333%;
    -ms-flex: 0 0 33.33333%;
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .small-up-4 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .small-up-4 > .column,
  .small-up-4 > .columns,
  .small-up-4 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 25%;
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
    max-width: 25%;
  }
  .small-up-5 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .small-up-5 > .column,
  .small-up-5 > .columns,
  .small-up-5 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 20%;
    -ms-flex: 0 0 20%;
    flex: 0 0 20%;
    max-width: 20%;
  }
  .small-up-6 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .small-up-6 > .column,
  .small-up-6 > .columns,
  .small-up-6 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 16.66667%;
    -ms-flex: 0 0 16.66667%;
    flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .small-up-7 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .small-up-7 > .column,
  .small-up-7 > .columns,
  .small-up-7 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 14.28571%;
    -ms-flex: 0 0 14.28571%;
    flex: 0 0 14.28571%;
    max-width: 14.28571%;
  }
  .small-up-8 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .small-up-8 > .column,
  .small-up-8 > .columns,
  .small-up-8 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 12.5%;
    -ms-flex: 0 0 12.5%;
    flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzIiwiX3NldHRpbmdzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcm93LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19ndXR0ZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NvbHVtbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcG9zaXRpb24uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2ZsZXguc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3VuaXQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL190ZXh0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fY2hlY2tib3guc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19sYWJlbC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2hlbHAtdGV4dC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2lucHV0LWdyb3VwLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZmllbGRzZXQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19zZWxlY3Quc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19lcnJvci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi1tZW51LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19iYWRnZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi1ncm91cC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2FsbG91dC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2xvc2UtYnV0dG9uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LWljb24uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Ryb3Bkb3duLW1lbnUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXgtdmlkZW8uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2xhYmVsLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZWRpYS1vYmplY3Quc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29mZi1jYW52YXMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29yYml0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wcm9ncmVzcy1iYXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3NsaWRlci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc3RpY2t5LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N3aXRjaC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFibGUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2NvbG9yLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aHVtYm5haWwuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RpdGxlLWJhci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9vbHRpcC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9wLWJhci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxvYXQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsImNvbXBvbmVudHMvX3R5cG9ncmFwaHkuc2NzcyIsIl92YXJpYWJsZXMuc2NzcyIsImNvbXBvbmVudHMvX21peGlucy5zY3NzIiwiY29tcG9uZW50cy9fZm9ybS5zY3NzIiwiY29tcG9uZW50cy9fYm9keS5zY3NzIiwiY29tcG9uZW50cy9fZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19oZWFkZXIuc2NzcyIsImNvbXBvbmVudHMvX21lbnUuc2NzcyIsImNvbXBvbmVudHMvX2hvbWUuc2NzcyIsImNvbXBvbmVudHMvX2Jsb2cuc2NzcyIsImNvbXBvbmVudHMvX21vZHVsZXMuc2NzcyIsImNvbXBvbmVudHMvX3Jlc291cmNlcy5zY3NzIiwiY29tcG9uZW50cy9fbWVtYmVyLnNjc3MiLCJjb21wb25lbnRzL19uZXdzbGV0dGVyLnNjc3MiLCJjb21wb25lbnRzL19kaXJlY3RvcnlfbWFwLnNjc3MiLCJjb21wb25lbnRzL19pY29uLnNjc3MiLCJjb21wb25lbnRzL19idXR0b24uc2NzcyIsImNvbXBvbmVudHMvX21pc2Muc2NzcyIsImNvbXBvbmVudHMvX3Nob3Auc2NzcyIsImNvbXBvbmVudHMvX3Nt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LGMrQ0NGLHdCQUFBLEEvQ0FMLCtCK0NBSyxBL0NBTCxxQitDQUssQS9DQUwsc0JBQUEsQ0FBTSxlK0NBQSx5QkFBQSxBL0NDTCxzQytDREssQS9DQ0wsc0IrQ0RLLEEvQ0NMLDZCQUFBLENBQWEsYytDRFQscUNBQUEsQS9DRUwseUIrQ0ZLLEEvQ0VMLDRCQUFBLENBQVksVytDS1Ysd0JBQUEsQS9DREwsK0IrQ0NLLEEvQ0RMLHFCK0NDSyxBL0NETCxzQkFBQSxDQUFVLGdCK0NLQSw4QkFBQSxBL0NMViwwQitDS1UsQS9DTFYscUJBQUEsQ0FBVSxjK0NDRixzQkFBQSxBL0NBTCw2QitDQUssQS9DQUwsbUIrQ0FLLEEvQ0FMLG9CQUFBLENBQVEsbUIrQ0lFLDRCQUFBLEEvQ0pWLHdCK0NJVSxBL0NKVixtQkFBQSxDQUFRLGMrQ0FILHlCQUFBLEEvQ0NMLDJCK0NESyxBL0NDTCxzQitDREssQS9DQ0wsa0JBQUEsQ0FBTSxtQitDR0ksMEJBQUEsQS9DSFYsMkIrQ0dVLEEvQ0hWLDBCK0NHVSxBL0NIVixpQkFBQSxDQUFNLGUrQ0RBLDBCQUFBLEEvQ0VMLDRCK0NGSyxBL0NFTCx1QitDRkssQS9DRUwsbUJBQUEsQ0FBTyxvQitDRUcsMkJBQUEsQS9DRlYsNEIrQ0VVLEEvQ0ZWLDJCK0NFVSxBL0NGVixrQkFBQSxDQUFPLHVDTHVJcUIsZUR3RXJCLDRCQUFBLEFxRHRNSCxnQnJEc01HLEFxRHRNSCxpQnJEc01HLEFxRHRNSCxPQUFBLENBQUMsZXJEc01FLDRCQUFBLEFxRHRNSCxnQnJEc01HLEFxRHRNSCxpQnJEc01HLEFxRHRNSCxPQUFBLENBQUMsZXJEc01FLDRCQUFBLEFxRHRNSCxnQnJEc01HLEFxRHRNSCxpQnJEc01HLEFxRHRNSCxPQUFBLENBQUMsZXJEc01FLDRCQUFBLEFxRHRNSCxnQnJEc01HLEFxRHRNSCxpQnJEc01HLEFxRHRNSCxPQUFBLENBQUMsZXJEc01FLDRCQUFBLEFxRHRNSCxnQnJEc01HLEFxRHRNSCxpQnJEc01HLEFxRHRNSCxPQUFBLENBQUMsZXJEc01FLDRCQUFBLEFxRHRNSCxnQnJEc01HLEFxRHRNSCxpQnJEc01HLEFxRHRNSCxPQUFBLENBQUMsQ0FHWCx1Q3BEMkhrQyxnQkR3RXBCLDRCQUFBLEFxRHRNSixnQnJEc01JLEFxRHRNSixpQnJEc01JLEFxRHRNSixPQUFBLENBQUMsZ0JyRHNNRyw0QkFBQSxBcUR0TUosZ0JyRHNNSSxBcUR0TUosaUJyRHNNSSxBcUR0TUosT0FBQSxDQUFDLGdCckRzTUcsNEJBQUEsQXFEdE1KLGdCckRzTUksQXFEdE1KLGlCckRzTUksQXFEdE1KLE9BQUEsQ0FBQyxnQnJEc01HLDRCQUFBLEFxRHRNSixnQnJEc01JLEFxRHRNSixpQnJEc01JLEFxRHRNSixPQUFBLENBQUMsZ0JyRHNNRyw0QkFBQSxBcUR0TUosZ0JyRHNNSSxBcUR0TUosaUJyRHNNSSxBcUR0TUosT0FBQSxDQUFDLGdCckRzTUcsNEJBQUEsQXFEdE1KLGdCckRzTUksQXFEdE1KLGlCckRzTUksQXFEdE1KLE9BQUEsQ0FBQyxDQUdYLG9DcEQySCtCLGVEd0VsQiw0QkFBQSxBcUR0TUgsZ0JyRHNNRyxBcUR0TUgsaUJyRHNNRyxBcUR0TUgsT0FBQSxDQUFDLGVyRHNNRSw0QkFBQSxBcUR0TUgsZ0JyRHNNRyxBcUR0TUgsaUJyRHNNRyxBcUR0TUgsT0FBQSxDQUFDLGVyRHNNRSw0QkFBQSxBcUR0TUgsZ0JyRHNNRyxBcUR0TUgsaUJyRHNNRyxBcUR0TUgsT0FBQSxDQUFDLGVyRHNNRSw0QkFBQSxBcUR0TUgsZ0JyRHNNRyxBcUR0TUgsaUJyRHNNRyxBcUR0TUgsT0FBQSxDQUFDLGVyRHNNRSw0QkFBQSxBcUR0TUgsZ0JyRHNNRyxBcUR0TUgsaUJyRHNNRyxBcUR0TUgsT0FBQSxDQUFDLGVyRHNNRSw0QkFBQSxBcUR0TUgsZ0JyRHNNRyxBcUR0TUgsaUJyRHNNRyxBcUR0TUgsT0FBQSxDQUFDLENBR1gsd0JDdEJNLHFCQUNRLENBQVUsMEJBSWpCLHNDQUFBLEFBQ0UsNkJBQUEsQ0FBa0Isc0NBQ3ZCLHdCQUNZLENBQVUsOENBUmYsd0JBQ0csQ0FBVSxnREFJWixzQ0FBQSxBQUNILDZC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UkUsV0FDQSxpQkFDRSxrQkFDSSxlQUNILENBQUUsdUN2RXlJa0IsNkN1RW5JNUIsVUFDTyxVQUNBLENBQUUsd0dBRUMsV0FDQyxXQUNBLFVBQ0YsQ0FBRSxvREFHVCxtQkFDZ0IsQ0FBRSxpREFLcEIsY0FDRSxDQUFBLHlDQUdGLFlBQ1MsU0FDUCxDQUFLLENBQUUsaURBTWIsY2pCbkNXLDZCekRnR2dCLENBQUEscUMwRXREM0IsWUFDUyxDQUFFLHVDQ3BEaUIsU3pFNE14QixtQkFBQSxBeUUxTUcsMEJ6RTBNSCxBeUUxTUcsc0J6RTBNSCxBeUUxTUcsa0JBQUEsa0JBQ00sQ0FBQSxnQnpFaU5ULGN5RTdNRixDQUFBLFN6RXFNRSxtQkFBQSxBeUVqTUksMkJ6RWlNSixBeUVqTUksdUJ6RWlNSixBeUVqTUksbUJBQUEsbUJBQ0ssQ0FBQSxnQnpFd01ULG9CeUVwTVcsQ0FBQSxTekU0TFgsbUJBQUEsQXlFeExJLHFCekV3TEosQXlFeExJLGlCekV3TEosQXlFeExJLGFBQUEsYUFDTixDQUFTLGdCekUrTFAscUJ5RTNMVyxDQUFBLFN6RW1MWCxtQkFBQSxBeUUvS0ksMkJ6RStLSixBeUUvS0ksdUJ6RStLSixBeUUvS0ksbUJBQUEsbUJBQ0ssQ0FBQSxnQnpFc0xULGV5RWxMRixDQUFXLFN6RTBLVCxtQkFBQSxBeUV0S0ksMkJ6RXNLSixBeUV0S0ksdUJ6RXNLSixBeUV0S0ksbUJBQUEsbUJBQ0ssQ0FBQSxnQnpFNktULHFCeUV6S1csQ0FBQSxTekVpS1gsbUJBQUEsQXlFN0pJLHFCekU2SkosQXlFN0pJLGlCekU2SkosQXlFN0pJLGFBQUEsYUFDTixDQUFTLGdCekVvS1AscUJ5RWhLVyxDQUFBLFN6RXdKWCxtQkFBQSxBeUVwSkksMkJ6RW9KSixBeUVwSkksdUJ6RW9KSixBeUVwSkksbUJBQUEsbUJBQ0ssQ0FBQSxnQnpFMkpULGV5RXZKRixDQUFXLFN6RStJVCxtQkFBQSxBeUUzSUksMkJ6RTJJSixBeUUzSUksdUJ6RTJJSixBeUUzSUksbUJBQUEsbUJBQ0ssQ0FBQSxnQnpFa0pULHFCeUU5SVcsQ0FBQSxTekVzSVgsbUJBQUEsQXlFbElJLHFCekVrSUosQXlFbElJLGlCekVrSUosQXlFbElJLGFBQUEsYUFDTixDQUFTLGdCekV5SVAscUJ5RXJJVyxDQUFBLFV6RTZIWCxtQkFBQSxBeUV6SEksMkJ6RXlISixBeUV6SEksdUJ6RXlISixBeUV6SEksbUJBQUEsbUJBQ0ssQ0FBQSxnQnpFZ0lULGV5RTVIRixDQUFXLFV6RW9IVCxtQkFBQSxBeUVoSEksMkJ6RWdISixBeUVoSEksdUJ6RWdISixBeUVoSEksbUJBQUEsbUJBQ0ssQ0FBQSxpQnpFdUhULHFCeUVuSFcsQ0FBQSxVekUyR1gsbUJBQUEsQXlFdkdJLHNCekV1R0osQXlFdkdJLGtCekV1R0osQXlFdkdJLGNBQUEsY0FDRyxDQUFFLGlCekU4R1QscUJ5RTFHVyxDQUFBLGV6RWlIWCw0QkFBQSxBeUU3R0YsZ0J6RTZHRSxBeUU3R0YsaUJ6RTZHRSxBeUU3R0YsT0FBQSxDQUFBLGV6RTZHRSw0QkFBQSxBeUV6R0YsZ0J6RXlHRSxBeUV6R0YsaUJ6RXlHRSxBeUV6R0YsT0FBQSxDQUFBLGV6RXlHRSw0QkFBQSxBeUVyR0YsZ0J6RXFHRSxBeUVyR0YsaUJ6RXFHRSxBeUVyR0YsT0FBQSxDQUFBLGV6RXFHRSw0QkFBQSxBeUVqR0YsZ0J6RWlHRSxBeUVqR0YsaUJ6RWlHRSxBeUVqR0YsT0FBQSxDQUFBLGV6RWlHRSw0QkFBQSxBeUU3RkYsZ0J6RTZGRSxBeUU3RkYsaUJ6RTZGRSxBeUU3RkYsT0FBQSxDQUFBLGV6RTZGRSw0QkFBQSxBeUV6RkYsZ0J6RXlGRSxBeUV6RkYsaUJ6RXlGRSxBeUV6RkYsT0FBQSxDQUFBLFl6RWdHRSx1QkFBQSxBeUU1Rk8sbUJ6RTRGUCxBeUU1Rk8sY0FBQSxDQUFFLDhEQUdtQixtQkFBQSxBQUN4QixzQkFEd0IsQUFDeEIsa0JBRHdCLEFBQ3hCLGNBQUEsY0FDRyxDQUFFLFl6RXVGVCx1QkFBQSxBeUVuRk8sbUJ6RW1GUCxBeUVuRk8sY0FBQSxDQUFFLDhEQUdtQixtQkFBQSxBQUN4QixxQkFEd0IsQUFDeEIsaUJBRHdCLEFBQ3hCLGFBQUEsYUFDTixDQUFTLFl6RThFUCx1QkFBQSxBeUUxRU8sbUJ6RTBFUCxBeUUxRU8sY0FBQSxDQUFFLDhEQUdtQixtQkFBQSxBQUN4QiwyQkFEd0IsQUFDeEIsdUJBRHdCLEFBQ3hCLG1CQUFBLG1CQUNLLENBQUEsWXpFcUVULHVCQUFBLEF5RWpFTyxtQnpFaUVQLEF5RWpFTyxjQUFBLENBQUUsOERBR21CLG1CQUFBLEFBQ3hCLHFCQUR3QixBQUN4QixpQkFEd0IsQUFDeEIsYUFBQSxhQUNOLENBQVMsWXpFNERQLHVCQUFBLEF5RXhETyxtQnpFd0RQLEF5RXhETyxjQUFBLENBQUUsOERBR21CLG1CQUFBLEFBQ3hCLHFCQUR3QixBQUN4QixpQkFEd0IsQUFDeEIsYUFBQSxhQUNOLENBQVMsWXpFbURQLHVCQUFBLEF5RS9DTyxtQnpFK0NQLEF5RS9DTyxjQUFBLENBQUUsOERBR21CLG1CQUFBLEFBQ3hCLDJCQUR3QixBQUN4Qix1QkFEd0IsQUFDeEIsbUJBQUEsbUJBQ0ssQ0FBQSxZekUwQ1QsdUJBQUEsQXlFdENPLG1CekVzQ1AsQXlFdENPLGNBQUEsQ0FBRSw4REFHbUIsbUJBQUEsQUFDeEIsMkJBRHdCLEFBQ3hCLHVCQUR3QixBQUN4QixtQkFBQSxtQkFDSyxDQUFBLFl6RWlDVCx1QkFBQSxBeUU3Qk8sbUJ6RTZCUCxBeUU3Qk8sY0FBQSxDQUFFLDhEQUdtQixtQkFBQSxBQUN4Qix1QkFEd0IsQUFDeEIsbUJBRHdCLEFBQ3hCLGVBQUEsZUFDSyxDQUFBLENBQUEiLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9TG9yYTo0MDAsNDAwaSw3MDB8T3BlbitTYW5zOjQwMCw2MDAsNzAwJyk7XG5cbkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdzZXR0aW5ncyc7XG5AaW1wb3J0ICcuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3VuZGF0aW9uJztcblxuQGluY2x1ZGUgZm91bmRhdGlvbi1ldmVyeXRoaW5nKHRydWUpO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL21peGlucyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHknO1xuQGltcG9ydCAnY29tcG9uZW50cy9mb3JtJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYm9keSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zvb3Rlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2hlYWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9ob21lJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmxvZyc7XG4vL0BpbXBvcnQgJ2NvbXBvbmVudHMvbWVtYmVycyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21vZHVsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXNvdXJjZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW1iZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9uZXdzbGV0dGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZGlyZWN0b3J5X21hcCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ljb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9taXNjJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2hvcCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NtYWxsX2ZsZXhfZml4JztcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBDb2xvclZhcmlhYmxlLCBRdWFsaWZ5aW5nRWxlbWVudCwgVmVuZG9yUHJlZml4XG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4vLy8vXG5cbi8vLyBGb250IHNpemUgYXR0cmlidXRlIGFwcGxpZWQgdG8gYDxodG1sPmAgYW5kIGA8Ym9keT5gLiBXZSB1c2UgMTAwJSBieSBkZWZhdWx0IHNvIHRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgdXNlcidzIGJyb3dzZXIgc2V0dGluZ3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB3aWR0aCBvZiB5b3VyIHNpdGUuIFVzZWQgYnkgdGhlIGdyaWQgdG8gZGV0ZXJtaW5lIHJvdyB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDEyMDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgYWxsIHR5cGUuIGAkZ2xvYmFsLWxpbmVoZWlnaHRgIGlzIDI0cHggd2hpbGUgYCRnbG9iYWwtZm9udC1zaXplYCBpcyAxNnB4XG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNSAhZGVmYXVsdDtcblxuLy8vIENvbG9ycyB1c2VkIGZvciBidXR0b25zLCBjYWxsb3V0cywgbGlua3MsIGV0Yy4gVGhlcmUgbXVzdCBhbHdheXMgYmUgYSBjb2xvciBjYWxsZWQgYHByaW1hcnlgLlxuLy8vIEB0eXBlIE1hcFxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICBwcmltYXJ5OiAjMjE5OWU4LFxuICBzZWNvbmRhcnk6ICM3NzcsXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gIHdhcm5pbmc6ICNmZmFlMDAsXG4gIGFsZXJ0OiAjZWM1ODQwLFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGxpZ2h0IGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsaWdodC1ncmF5OiAjZTZlNmU2ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbWVkaXVtIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZWRpdW0tZ3JheTogI2NhY2FjYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGRhcmsgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRhcmstZ3JheTogIzhhOGE4YSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGJsYWNrIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxhY2s6ICMwYTBhMGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciB3aGl0ZSB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHdoaXRlOiAjZmVmZWZlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBMaXN0XG4kYm9keS1mb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgYW50aWFsaWFzZWQgdHlwZSwgdXNpbmcgdGhlIGAtd2Via2l0LWZvbnQtc21vb3RoaW5nYCBhbmQgYC1tb3otb3N4LWZvbnQtc21vb3RoaW5nYCBDU1MgcHJvcGVydGllcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBtYXJnaW4gb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBhZGRpbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBub3JtYWwgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBib2xkIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIGEgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIENTUy4gQ2FuIGJlIGVpdGhlciBgbHRyYCBvciBgcnRsYC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggZm9yIGNvbXBvbmVudHMgdGhhdCBzdXBwb3J0IGl0LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtZmxleGJveDogZmFsc2UgIWRlZmF1bHQ7XG5cbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICBAZXJyb3IgJ0luICRmb3VuZGF0aW9uLXBhbGV0dGUsIHlvdSBtdXN0IGhhdmUgYSBjb2xvciBuYW1lZCBcInByaW1hcnlcIi4nO1xufVxuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgdGV4dCBkaXJlY3Rpb25cbiRnbG9iYWwtbGVmdDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIHJpZ2h0LCBsZWZ0KTtcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciBjb2xvcnNcbiRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuJHNlY29uZGFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpO1xuJHN1Y2Nlc3MtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2Vzcyk7XG4kd2FybmluZy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKTtcbiRhbGVydC1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCk7XG5cbi8vIFJlbW92ZSB0aGlzIGluIDYuM1xuJC16Zi1tZW51LWljb24taW1wb3J0ZWQ6IGZhbHNlO1xuJC16Zi1mbGV4LWNsYXNzZXMtaW1wb3J0ZWQ6IGZhbHNlO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzIHtcbiAgQGluY2x1ZGUgLXpmLW5vcm1hbGl6ZTtcblxuICAvLyBUaGVzZSBzdHlsZXMgYXJlIGFwcGxpZWQgdG8gYSA8bWV0YT4gdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHRcbiAgLmZvdW5kYXRpb24tbXEge1xuICAgIGZvbnQtZmFtaWx5OiAnI3stemYtYnAtc2VyaWFsaXplKCRicmVha3BvaW50cyl9JztcbiAgfVxuXG4gIGh0bWwge1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG4gICosXG4gICo6OmJlZm9yZSxcbiAgKjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXG4gIGJvZHkge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG5cbiAgICAvLyBHZXQgcmlkIG9mIGdhcCB1bmRlciBpbWFnZXMgYnkgbWFraW5nIHRoZW0gZGlzcGxheTogaW5saW5lLWJsb2NrOyBieSBkZWZhdWx0XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gU3R5bGVzIEdvb2dsZSBNYXBzIGFuZCBNYXBRdWVzdCBlbWJlZHMgcHJvcGVybHlcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgSWRTZWxlY3RvclxuICAjbWFwX2NhbnZhcyxcbiAgLm1hcF9jYW52YXMsXG4gIC5tcWEtZGlzcGxheSB7XG4gICAgaW1nLFxuICAgIGVtYmVkLFxuICAgIG9iamVjdCB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCA8YnV0dG9uPiBzdHlsZXMgY3JlYXRlZCBieSBtb3N0IGJyb3dzZXJzXG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAvLyBJbnRlcm5hbCBjbGFzc2VzIHRvIHNob3cvaGlkZSBlbGVtZW50cyBpbiBKYXZhU2NyaXB0XG4gIC5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmlzLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBMb2FkcyBub3JtYWxpemUuY3NzLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIC16Zi1ub3JtYWxpemUge1xuICAvKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbiAgLyoqXG4gICAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gICAqIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXG4gICAqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbiAgICovXG5cbiAgaHRtbCB7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAgICovXG5cbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICAgKiBhbmQgRmlyZWZveC5cbiAgICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAgICovXG5cbiAgYXJ0aWNsZSxcbiAgYXNpZGUsXG4gIGRldGFpbHMsXG4gIGZpZ2NhcHRpb24sXG4gIGZpZ3VyZSxcbiAgZm9vdGVyLFxuICBoZWFkZXIsXG4gIGhncm91cCxcbiAgbWFpbixcbiAgbWVudSxcbiAgbmF2LFxuICBzZWN0aW9uLFxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICAgKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAqL1xuXG4gIGF1ZGlvLFxuICBjYW52YXMsXG4gIHByb2dyZXNzLFxuICB2aWRlbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAgICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAgICovXG5cbiAgYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGhlaWdodDogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gICAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAgICovXG5cbiAgW2hpZGRlbl0sXG4gIHRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLyogTGlua3NcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAqL1xuXG4gIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cbiAgICogYWN0aXZlL2hvdmVyIHN0YXRlLlxuICAgKi9cblxuICBhOmFjdGl2ZSxcbiAgYTpob3ZlciB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gIC8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAgICovXG5cbiAgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICAgKi9cblxuICBiLFxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAgICovXG5cbiAgZGZuIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICAgKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gICAqL1xuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gICAqL1xuXG4gIG1hcmsge1xuICAgIGJhY2tncm91bmQ6ICNmZjA7XG4gICAgY29sb3I6ICMwMDA7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIHN1YixcbiAgc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbiAgfVxuXG4gIHN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xuICB9XG5cbiAgLyogRW1iZWRkZWQgY29udGVudFxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAgICovXG5cbiAgaW1nIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICAvKipcbiAgICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gICAqL1xuXG4gIHN2Zzpub3QoOnJvb3QpIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLyogR3JvdXBpbmcgY29udGVudFxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAgICovXG5cbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDFlbSA0MHB4O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAgICovXG5cbiAgaHIge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIGhlaWdodDogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuXG4gIGNvZGUsXG4gIGtiZCxcbiAgcHJlLFxuICBzYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gICAgZm9udC1zaXplOiAxZW07XG4gIH1cblxuICAvKiBGb3Jtc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICAgKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gICAqL1xuXG4gIC8qKlxuICAgKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gICAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICAgKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICAgKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAgICovXG5cbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gICAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICAgIG1hcmdpbjogMDsgLyogMyAqL1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICAgKi9cblxuICBidXR0b24ge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAgICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAgICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAgICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICAgKi9cblxuICBidXR0b24sXG4gIHNlbGVjdCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAvKipcbiAgICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAgICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gICAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAgICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAgICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICAgKi9cblxuICBidXR0b24sXG4gIGh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuICBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gICAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG4gIH1cblxuICAvKipcbiAgICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAgICovXG5cbiAgYnV0dG9uW2Rpc2FibGVkXSxcbiAgaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICAgKi9cblxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIGlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gICAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICAgKi9cblxuICBpbnB1dCB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gICAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gICAqXG4gICAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gICAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gICAqL1xuXG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gICAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gICAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAgICovXG5cbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLyoqXG4gICAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICAgKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICAgKi9cblxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gICAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAgICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICAgKi9cblxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICAgKiBbTk9URV0gV2UgZG9uJ3QgZW5hYmxlIHRoaXMgcnVsZXNldCBpbiBGb3VuZGF0aW9uLCBiZWNhdXNlIHdlIHdhbnQgdGhlIDxmaWVsZHNldD4gZWxlbWVudCB0byBoYXZlIHBsYWluIHN0eWxpbmcuXG4gICAqL1xuXG4gIC8qIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgIG1hcmdpbjogMCAycHg7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xuICB9ICovXG5cbiAgLyoqXG4gICAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAgICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICAgKi9cblxuICBsZWdlbmQge1xuICAgIGJvcmRlcjogMDsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICAgKi9cblxuICB0ZXh0YXJlYSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAvKipcbiAgICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICAgKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAgICovXG5cbiAgb3B0Z3JvdXAge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgLyogVGFibGVzXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAgICovXG5cbiAgdGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIH1cblxuICB0ZCxcbiAgdGgge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cbiIsIi8vICBGb3VuZGF0aW9uIGZvciBTaXRlcyBTZXR0aW5nc1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gIFRhYmxlIG9mIENvbnRlbnRzOlxuLy9cbi8vICAgMS4gR2xvYmFsXG4vLyAgIDIuIEJyZWFrcG9pbnRzXG4vLyAgIDMuIFRoZSBHcmlkXG4vLyAgIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gICA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcbi8vICAgNi4gQWJpZGVcbi8vICAgNy4gQWNjb3JkaW9uXG4vLyAgIDguIEFjY29yZGlvbiBNZW51XG4vLyAgIDkuIEJhZGdlXG4vLyAgMTAuIEJyZWFkY3J1bWJzXG4vLyAgMTEuIEJ1dHRvblxuLy8gIDEyLiBCdXR0b24gR3JvdXBcbi8vICAxMy4gQ2FsbG91dFxuLy8gIDE0LiBDbG9zZSBCdXR0b25cbi8vICAxNS4gRHJpbGxkb3duXG4vLyAgMTYuIERyb3Bkb3duXG4vLyAgMTcuIERyb3Bkb3duIE1lbnVcbi8vICAxOC4gRmxleCBWaWRlb1xuLy8gIDE5LiBGb3Jtc1xuLy8gIDIwLiBMYWJlbFxuLy8gIDIxLiBNZWRpYSBPYmplY3Rcbi8vICAyMi4gTWVudVxuLy8gIDIzLiBNZXRlclxuLy8gIDI0LiBPZmYtY2FudmFzXG4vLyAgMjUuIE9yYml0XG4vLyAgMjYuIFBhZ2luYXRpb25cbi8vICAyNy4gUHJvZ3Jlc3MgQmFyXG4vLyAgMjguIFJldmVhbFxuLy8gIDI5LiBTbGlkZXJcbi8vICAzMC4gU3dpdGNoXG4vLyAgMzEuIFRhYmxlXG4vLyAgMzIuIFRhYnNcbi8vICAzMy4gVGh1bWJuYWlsXG4vLyAgMzQuIFRpdGxlIEJhclxuLy8gIDM1LiBUb29sdGlwXG4vLyAgMzYuIFRvcCBCYXJcblxuQGltcG9ydCAnLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC91dGlsJztcblxuLy8gMS4gR2xvYmFsXG4vLyAtLS0tLS0tLS1cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCU7XG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKTtcbiRnbG9iYWwtbGluZWhlaWdodDogMS41O1xuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICAgICAgICBwcmltYXJ5OiAjMjE5OWU4LFxuICAgICAgICBzZWNvbmRhcnk6ICM3NzcsXG4gICAgICAgIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gICAgICAgIHdhcm5pbmc6ICNmZmFlMDAsXG4gICAgICAgIGFsZXJ0OiAjZWM1ODQwLFxuKTtcbiRsaWdodC1ncmF5OiAjZTZlNmU2O1xuJG1lZGl1bS1ncmF5OiAjY2FjYWNhO1xuJGRhcmstZ3JheTogIzhhOGE4YTtcbiRibGFjazogIzBhMGEwYTtcbiR3aGl0ZTogI2ZlZmVmZTtcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjaztcbiRib2R5LWZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGJvZHktYW50aWFsaWFzZWQ6IHRydWU7XG4kZ2xvYmFsLW1hcmdpbjogMXJlbTtcbiRnbG9iYWwtcGFkZGluZzogMXJlbTtcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsO1xuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZDtcbiRnbG9iYWwtcmFkaXVzOiAwO1xuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyO1xuJGdsb2JhbC1mbGV4Ym94OiBmYWxzZTtcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZTtcblxuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xuXG4vLyAyLiBCcmVha3BvaW50c1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFrcG9pbnRzOiAoXG4gICAgICAgIHhzbWFsbDogMCxcbiAgICAgICAgc21hbGw6IDUwMHB4LFxuICAgICAgICBtZWRpdW06IDkwMHB4LFxuICAgICAgICBsYXJnZTogMTAyNHB4LFxuICAgICAgICB4bGFyZ2U6IDEyMDBweCxcbiAgICAgICAgeHhsYXJnZTogMTQ0MHB4LFxuKTtcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpO1xuXG4vLyAzLiBUaGUgR3JpZFxuLy8gLS0tLS0tLS0tLS1cblxuJGdyaWQtcm93LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGdyaWQtY29sdW1uLWNvdW50OiAxMjtcbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcbiAgICAgICAgc21hbGw6IDIwcHgsXG4gICAgICAgIG1lZGl1bTogMzBweCxcbik7XG4kZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZTogdHJ1ZTtcbiRibG9jay1ncmlkLW1heDogODtcblxuLy8gNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cblxuJGhlYWRlci1mb250LWZhbWlseTogJ0xvcmEnLCBzYW5zLXNlcmlmO1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWw7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiRoZWFkZXItc2l6ZXM6IChcbiAgICAgICAgc21hbGw6IChcbiAgICAgICAgICAgICAgICAnaDEnOiAyNCxcbiAgICAgICAgICAgICAgICAnaDInOiAyMCxcbiAgICAgICAgICAgICAgICAnaDMnOiAxOSxcbiAgICAgICAgICAgICAgICAnaDQnOiAxOCxcbiAgICAgICAgICAgICAgICAnaDUnOiAxNyxcbiAgICAgICAgICAgICAgICAnaDYnOiAxNixcbiAgICAgICAgKSxcbiAgICAgICAgbWVkaXVtOiAoXG4gICAgICAgICAgICAgICAgJ2gxJzogNDgsXG4gICAgICAgICAgICAgICAgJ2gyJzogNDAsXG4gICAgICAgICAgICAgICAgJ2gzJzogMzEsXG4gICAgICAgICAgICAgICAgJ2g0JzogMjUsXG4gICAgICAgICAgICAgICAgJ2g1JzogMjAsXG4gICAgICAgICAgICAgICAgJ2g2JzogMTYsXG4gICAgICAgICksXG4pO1xuJGhlYWRlci1jb2xvcjogaW5oZXJpdDtcbiRoZWFkZXItbGluZWhlaWdodDogMS40O1xuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW07XG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kc21hbGwtZm9udC1zaXplOiA4MCU7XG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheTtcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42O1xuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtO1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuJGNvZGUtY29sb3I6ICRibGFjaztcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpO1xuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmU7XG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG87XG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbTtcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbTtcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtO1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpO1xuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheTtcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjaztcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKTtcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2s7XG5cbi8vIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1O1xuJGxlYWQtbGluZWhlaWdodDogMS42O1xuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5O1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW07XG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtO1xuXG4vLyA2LiBBYmlkZVxuLy8gLS0tLS0tLS1cblxuJGFiaWRlLWlucHV0czogdHJ1ZTtcbiRhYmlkZS1sYWJlbHM6IHRydWU7XG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KTtcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpO1xuJGlucHV0LWVycm9yLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gNy4gQWNjb3JkaW9uXG4vLyAtLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlO1xuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpO1xuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6IHRyYW5zcGFyZW50O1xuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEwcHg7XG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiBub25lO1xuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kLCAkYm9keS1mb250LWNvbG9yKTtcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyA4LiBBY2NvcmRpb24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbm1lbnUtYXJyb3dzOiB0cnVlO1xuJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXG4vLyA5LiBCYWRnZVxuLy8gLS0tLS0tLS1cblxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJhZGdlLWNvbG9yOiBmb3JlZ3JvdW5kKCRiYWRnZS1iYWNrZ3JvdW5kKTtcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbTtcbiRiYWRnZS1taW53aWR0aDogMi4xZW07XG4kYmFkZ2UtZm9udC1zaXplOiAwLjZyZW07XG5cbi8vIDEwLiBCcmVhZGNydW1ic1xuLy8gLS0tLS0tLS0tLS0tLS0tXG5cbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwO1xuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSk7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2s7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtO1xuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2g6IHRydWU7XG5cbi8vIDExLiBCdXR0b25cbi8vIC0tLS0tLS0tLS1cblxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtO1xuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwO1xuJGJ1dHRvbi1maWxsOiBzb2xpZDtcbiRidXR0b24tYmFja2dyb3VuZDogJG9yYW5nZTtcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiRidXR0b24tY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2s7XG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kYnV0dG9uLXNpemVzOiAoXG4gICAgICAgIHRpbnk6IDAuNnJlbSxcbiAgICAgICAgc21hbGw6IDAuNzVyZW0sXG4gICAgICAgIGRlZmF1bHQ6IDAuOXJlbSxcbiAgICAgICAgbGFyZ2U6IDEuMjVyZW0sXG4pO1xuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJTtcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJTtcblxuLy8gMTIuIEJ1dHRvbiBHcm91cFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtO1xuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweDtcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nO1xuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDY7XG5cbi8vIDEzLiBDYWxsb3V0XG4vLyAtLS0tLS0tLS0tLVxuXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JTtcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KTtcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMDtcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW07XG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQ7XG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGNhbGxvdXQtbGluay10aW50OiAzMCU7XG5cbi8vIDE0LiBDbG9zZSBCdXR0b25cbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3A7XG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IDFyZW07XG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAwLjVyZW07XG4kY2xvc2VidXR0b24tc2l6ZTogMmVtO1xuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDE7XG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXk7XG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjaztcblxuLy8gMTUuIERyaWxsZG93blxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXI7XG4kZHJpbGxkb3duLWFycm93czogdHJ1ZTtcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG5cbi8vIDE2LiBEcm9wZG93blxuLy8gLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtO1xuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW07XG4kZHJvcGRvd24td2lkdGg6IDMwMHB4O1xuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgICAgICAgdGlueTogMTAwcHgsXG4gICAgICAgIHNtYWxsOiAyMDBweCxcbiAgICAgICAgbGFyZ2U6IDQwMHB4LFxuKTtcblxuLy8gMTcuIERyb3Bkb3duIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlO1xuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvcjtcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweDtcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG5cbi8vIDE4LiBGbGV4IFZpZGVvXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kZmxleHZpZGVvLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcbiRmbGV4dmlkZW8tcmF0aW86IDQgYnkgMztcbiRmbGV4dmlkZW8tcmF0aW8td2lkZXNjcmVlbjogMTYgYnkgOTtcblxuLy8gMTkuIEZvcm1zXG4vLyAtLS0tLS0tLS1cblxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCk7XG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKTtcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKTtcbiRmb3JtLXNwYWNpbmc6IHJlbS1jYWxjKDE2KTtcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrO1xuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYztcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjaztcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbTtcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2s7XG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZS1sYXJnZTogcmVtLWNhbGMoMjApO1xuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjg7XG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kaW5wdXQtY29sb3I6ICRibGFjaztcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0O1xuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSk7XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkO1xuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZTtcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMC4gTGFiZWxcbi8vIC0tLS0tLS0tLVxuXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kbGFiZWwtY29sb3I6IGZvcmVncm91bmQoJGxhYmVsLWJhY2tncm91bmQpO1xuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtO1xuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIxLiBNZWRpYSBPYmplY3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCU7XG5cbi8vIDIyLiBNZW51XG4vLyAtLS0tLS0tLVxuXG4kbWVudS1tYXJnaW46IDA7XG4kbWVudS1tYXJnaW4tbmVzdGVkOiAxcmVtO1xuJG1lbnUtaXRlbS1wYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGU7XG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xuXG4vLyAyMy4gTWV0ZXJcbi8vIC0tLS0tLS0tLVxuXG4kbWV0ZXItaGVpZ2h0OiAxcmVtO1xuJG1ldGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kbWV0ZXItYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJG1ldGVyLWZpbGwtZ29vZDogJHN1Y2Nlc3MtY29sb3I7XG4kbWV0ZXItZmlsbC1tZWRpdW06ICR3YXJuaW5nLWNvbG9yO1xuJG1ldGVyLWZpbGwtYmFkOiAkYWxlcnQtY29sb3I7XG5cbi8vIDI0LiBPZmYtY2FudmFzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kb2ZmY2FudmFzLXNpemU6IDI1MHB4O1xuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRvZmZjYW52YXMtemluZGV4OiAtMTtcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXM7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlO1xuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWU7XG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpO1xuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JztcbiRtYWluY29udGVudC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjUpO1xuXG4vLyAyNS4gT3JiaXRcbi8vIC0tLS0tLS0tLVxuXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTA7XG5cbi8vIDI2LiBQYWdpbmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKTtcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSk7XG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvcjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogZm9yZWdyb3VuZCgkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudCk7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZTtcbiRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW06IGZhbHNlO1xuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlO1xuXG4vLyAyNy4gUHJvZ3Jlc3MgQmFyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm9ncmVzcy1oZWlnaHQ6IDFyZW07XG4kcHJvZ3Jlc3MtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHByb2dyZXNzLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHByb2dyZXNzLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDI4LiBSZXZlYWxcbi8vIC0tLS0tLS0tLS1cblxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kcmV2ZWFsLXdpZHRoOiA2MDBweDtcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRyZXZlYWwtemluZGV4OiAxMDA1O1xuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KTtcblxuLy8gMjkuIFNsaWRlclxuLy8gLS0tLS0tLS0tLVxuXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW07XG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuJHNsaWRlci1oZWlnaHQ6IDAuNXJlbTtcbiRzbGlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kc2xpZGVyLWZpbGwtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHNsaWRlci1oYW5kbGUtaGVpZ2h0OiAxLjRyZW07XG4kc2xpZGVyLWhhbmRsZS13aWR0aDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG4kc2xpZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDMwLiBTd2l0Y2hcbi8vIC0tLS0tLS0tLS1cblxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvcjtcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtO1xuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtO1xuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW07XG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtO1xuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHN3aXRjaC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luO1xuJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDogJHdoaXRlO1xuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtO1xuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcblxuLy8gMzEuIFRhYmxlXG4vLyAtLS0tLS0tLS1cblxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWJsZS1jb2xvci1zY2FsZTogNSU7XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCk7XG4kdGFibGUtaG92ZXItc2NhbGU6IDIlO1xuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXN0cmlwZTogZXZlbjtcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKTtcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2U7XG5cbi8vIDMyLiBUYWJzXG4vLyAtLS0tLS0tLVxuXG4kdGFiLW1hcmdpbjogMDtcbiR0YWItYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXk7XG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlO1xuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuJHRhYi1leHBhbmQtbWF4OiA2O1xuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5O1xuJHRhYi1jb250ZW50LWNvbG9yOiBmb3JlZ3JvdW5kKCR0YWItYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpO1xuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDMzLiBUaHVtYm5haWxcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGU7XG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKTtcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpO1xuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAzNC4gVGl0bGUgQmFyXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2s7XG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW07XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZDtcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5O1xuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbTtcblxuLy8gMzUuIFRvb2x0aXBcbi8vIC0tLS0tLS0tLS0tXG5cbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5O1xuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZTtcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW07XG4kdG9vbHRpcC1mb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW07XG4kdG9vbHRpcC1waXAtaGVpZ2h0OiAkdG9vbHRpcC1waXAtd2lkdGggKiAwLjg2NjtcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDM2LiBUb3AgQmFyXG4vLyAtLS0tLS0tLS0tLVxuXG4kdG9wYmFyLXBhZGRpbmc6IDAuNXJlbTtcbiR0b3BiYXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kO1xuJHRvcGJhci10aXRsZS1zcGFjaW5nOiAxcmVtO1xuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHg7XG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBDU1MgdHJpYW5nbGUsIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBkcm9wZG93biBhcnJvd3MsIGRyb3Bkb3duIHBpcHMsIGFuZCBtb3JlLiBVc2UgdGhpcyBtaXhpbiBpbnNpZGUgYSBgJjo6YmVmb3JlYCBvciBgJjo6YWZ0ZXJgIHNlbGVjdG9yLCB0byBhdHRhY2ggdGhlIHRyaWFuZ2xlIHRvIGFuIGV4aXN0aW5nIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRyaWFuZ2xlLXNpemUgLSBXaWR0aCBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHRyaWFuZ2xlLWNvbG9yIC0gQ29sb3Igb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIERpcmVjdGlvbiB0aGUgdHJpYW5nbGUgcG9pbnRzLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG5AbWl4aW4gY3NzLXRyaWFuZ2xlKFxuICAkdHJpYW5nbGUtc2l6ZSxcbiAgJHRyaWFuZ2xlLWNvbG9yLFxuICAkdHJpYW5nbGUtZGlyZWN0aW9uXG4pIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0ICR0cmlhbmdsZS1zaXplO1xuXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBkb3duKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdXApIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgbWVudSBpY29uIHdpdGggYSBzZXQgd2lkdGgsIGhlaWdodCwgbnVtYmVyIG9mIGJhcnMsIGFuZCBjb2xvcnMuIFRoZSBtaXhpbiB1c2VzIHRoZSBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgdGhlIGJhcnMgdG8gZGV0ZXJtaW5lIHNwYWNpbmcuIDxkaXYgY2xhc3M9XCJkb2NzLWV4YW1wbGUtYnVyZ2VyXCI+PC9kaXY+XG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvci1ob3ZlciBbJGRhcmstZ3JheV0gLSBDb2xvciB0byB1c2Ugd2hlbiB0aGUgaWNvbiBpcyBob3ZlcmVkIG92ZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMjBweF0gLSBXaWR0aCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMTZweF0gLSBIZWlnaHQgb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWzJweF0gLSBIZWlnaHQgb2YgaW5kaXZpZHVhbCBiYXJzIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFycyBbM10gLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cbkBtaXhpbiBoYW1idXJnZXIoXG4gICRjb2xvcjogJGJsYWNrLFxuICAkY29sb3ItaG92ZXI6ICRkYXJrLWdyYXksXG4gICR3aWR0aDogMjBweCxcbiAgJGhlaWdodDogMTZweCxcbiAgJHdlaWdodDogMnB4LFxuICAkYmFyczogM1xuKSB7XG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxuICAkc2hhZG93OiAoKTtcbiAgJGhvdmVyLXNoYWRvdzogKCk7XG5cbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXG4gICRzcGFjaW5nOiAoJGhlaWdodCAtICgkd2VpZ2h0ICogJGJhcnMpKSAvICgkYmFycyAtIDEpO1xuXG4gIEBpZiB1bml0KCRzcGFjaW5nKSA9PSAncHgnIHtcbiAgICAkc3BhY2luZzogZmxvb3IoJHNwYWNpbmcpO1xuICB9XG5cbiAgLy8gSWNvbiBjb250YWluZXJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuXG4gIC8vIEljb24gYmFyc1xuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLCBjb21tYSk7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gIEBpZiAkY29sb3ItaG92ZXIge1xuICAgIC8vIEdlbmVyYXRlIENTU1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRob3Zlci1zaGFkb3c6IGFwcGVuZCgkaG92ZXItc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3ItaG92ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaG92ZXI7XG4gICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRvd253YXJkLWZhY2luZyB0cmlhbmdsZSBhcyBhIGJhY2tncm91bmQgaW1hZ2UgdG8gYW4gZWxlbWVudC4gVGhlIGltYWdlIGlzIGZvcm1hdHRlZCBhcyBhbiBTVkcsIG1ha2luZyBpdCBlYXN5IHRvIGNoYW5nZSB0aGUgY29sb3IuIEJlY2F1c2UgSW50ZXJuZXQgRXhwbG9yZXIgZG9lc24ndCBzdXBwb3J0IGVuY29kZWQgU1ZHcyBhcyBiYWNrZ3JvdW5kIGltYWdlcywgYSBQTkcgZmFsbGJhY2sgaXMgYWxzbyBpbmNsdWRlZC5cbi8vLyBUaGVyZSBhcmUgdHdvIFBORyBmYWxsYmFja3M6IGEgYmxhY2sgdHJpYW5nbGUgYW5kIGEgd2hpdGUgdHJpYW5nbGUuIFRoZSBvbmUgdXNlZCBkZXBlbmRzIG9uIHRoZSBsaWdodG5lc3Mgb2YgdGhlIGlucHV0IGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgdHJpYW5nbGUuXG5AbWl4aW4gYmFja2dyb3VuZC10cmlhbmdsZSgkY29sb3I6ICRibGFjaykge1xuICAkcmdiOiAncmdiJTI4I3tyb3VuZChyZWQoJGNvbG9yKSl9LCAje3JvdW5kKGdyZWVuKCRjb2xvcikpfSwgI3tyb3VuZChibHVlKCRjb2xvcikpfSUyOSc7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiAjeyRyZ2J9Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MFxcMCkge1xuICAgIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA8IDYwJSB7XG4gICAgICAvLyBXaGl0ZSB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEJsYWNrIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTUJKUkVGVWVOckVsbHNPaENBTVJWc3pDOUlselU3S0NtVkhUSnNvTVdZTVV0cHl2OUJnYnVYUUI1WlNkZ0JZWVk0eWNnQml2azhLWUZzUU1mTWlUVEJQNG8zblV6Q0t6T2FiTEpiTHkyL2czMWV2R2tBZ2luUjQvWmVnS0g1cVgzYkpDc2NBM3QweDNrZ081dFFGeWhoRmY1MHhScUZMYnlNVU5KUXpneWpHUy93Z0Nwdktxa1JCcHVXckU0VjlkKzFFNGRQVVhxSWcxMDdTUU9FLzJEUlF4TXdURHlnSUluVkRFVDlUM2xDb2ovNmovVkNtR2paT2wybEtwWjhBQXdEUVA3eklpbURHRlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgdGhlIG1pY3JvIGNsZWFyZml4IGhhY2sgcG9wdWxhcml6ZWQgYnkgTmljb2xhcyBHYWxsYWdoZXIuIEluY2x1ZGUgdGhpcyBtaXhpbiBvbiBhIGNvbnRhaW5lciBpZiBpdHMgY2hpbGRyZW4gYXJlIGFsbCBmbG9hdGVkLCB0byBnaXZlIHRoZSBjb250YWluZXIgYSBwcm9wZXIgaGVpZ2h0LlxuLy8vIFRoZSBjbGVhcmZpeCBpcyBhdWdtZW50ZWQgd2l0aCBzcGVjaWZpYyBzdHlsZXMgdG8gcHJldmVudCBib3JkZXJzIGluIGZsZXhib3ggZW52aXJvbm1lbnRzXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcbi8vLyBAbGluayBodHRwOi8vZGFuaXNhZGVzaWduZXIuY29tL2Jsb2cvZmxleGJveC1jbGVhci1maXgtcHNldWRvLWVsZW1lbnRzLyBGbGV4Ym94IGZpeFxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgxIC8gJGkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xufVxuXG4vLy8gVmVydGljYWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gaG9yaXpvbnRhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4vLy8gQWJzb2x1dGVseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBhYnNvbHV0ZS1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4vLy8gSXRlcmF0ZXMgdGhyb3VnaCBicmVha3BvaW50cyBkZWZpbmVkIGluIGAkYnJlYWtwb2ludC1jbGFzc2VzYCBhbmQgcHJpbnRzIHRoZSBDU1MgaW5zaWRlIHRoZSBtaXhpbiBhdCBlYWNoIGJyZWFrcG9pbnQncyBtZWRpYSBxdWVyeS4gVXNlIHRoaXMgd2l0aCB0aGUgZ3JpZCwgb3IgYW55IG90aGVyIGNvbXBvbmVudCB0aGF0IGhhcyByZXNwb25zaXZlIGNsYXNzZXMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRzbWFsbCBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBza2lwIHRoZSBgc21hbGxgIGJyZWFrcG9pbnQuIFVzZSB0aGlzIHdpdGggY29tcG9uZW50cyB0aGF0IGRvbid0IHByZWZpeCBjbGFzc2VzIHdpdGggYHNtYWxsLWAsIG9ubHkgYG1lZGl1bS1gIGFuZCB1cC5cbkBtaXhpbiAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogdHJ1ZSkge1xuICAkbWFwOiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuXG4gIEBpZiBub3QgJHNtYWxsIHtcbiAgICAkbWFwOiBtYXAtcmVtb3ZlKCRtYXAsICQtemYtemVyby1icmVha3BvaW50KTtcbiAgfVxuXG4gIEBlYWNoICRzaXplIGluICRtYXAge1xuICAgICQtemYtc2l6ZTogJHNpemUgIWdsb2JhbDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxleC1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgY29udGFpbmVyIGZvciBhIGZsZXggZ3JpZCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TGlzdH0gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbJGdyaWQtcm93LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIHJvdy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGZvciB0aGlzIHJvdy4gSWYgc2V0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpLCB0aGUgZ2xvYmFsIGNvbHVtbiBjb3VudCB3aWxsIGJlIHVzZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IGJhc2ljIHN0eWxlcyBmcm9tIGJlaW5nIG91dHB1dC4gVXNlZnVsIGlmIHlvdSdyZSBjYWxsaW5nIHRoaXMgbWl4aW4gb24gdGhlIHNhbWUgZWxlbWVudCB0d2ljZSwgYXMgaXQgcHJldmVudHMgZHVwbGljYXRlIENTUyBvdXRwdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLCBpbiBjYXNlIHRoZSByb3cgaXMgbmVzdGVkLlxuQG1peGluIGZsZXgtZ3JpZC1yb3coXG4gICRiZWhhdmlvcjogbnVsbCxcbiAgJHdpZHRoOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmFzZTogdHJ1ZSxcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG5cbiAgQGlmIGluZGV4KCRiZWhhdmlvciwgbmVzdCkgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRiYXNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zLCAkYmFzZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBgZmxleGAgcHJvcGVydHkgZm9yIGEgZmxleCBncmlkIGNvbHVtbi4gSXQgYWNjZXB0cyBhbGwgb2YgdGhlIHNhbWUgdmFsdWVzIGFzIHRoZSBiYXNpYyBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIGFsb25nIHdpdGggdHdvIGV4dHJhczpcbi8vLyAgIC0gYG51bGxgICh0aGUgZGVmYXVsdCkgd2lsbCBtYWtlIHRoZSBjb2x1bW4gZXhwYW5kIHRvIGZpbGwgc3BhY2UuXG4vLy8gICAtIGBzaHJpbmtgIHdpbGwgbWFrZSB0aGUgY29sdW1uIGNvbnRyYWN0LCBzbyBpdCBvbmx5IHRha2VzIHVwIHRoZSBob3Jpem9udGFsIHNwYWNlIGl0IG5lZWRzLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW251bGxdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi5cbkBmdW5jdGlvbiBmbGV4LWdyaWQtY29sdW1uKCRjb2x1bW5zOiBudWxsKSB7XG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4gICRmbGV4OiAxIDEgMHB4O1xuXG4gIEBpZiAkY29sdW1ucyA9PSBzaHJpbmsge1xuICAgICRmbGV4OiAwIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICAkZmxleDogMCAwIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxuXG4gIEByZXR1cm4gJGZsZXg7XG59XG5cbi8vLyBDcmVhdGVzIGEgY29sdW1uIGZvciBhIGZsZXggZ3JpZC4gQnkgZGVmYXVsdCwgdGhlIGNvbHVtbiB3aWxsIHN0cmV0Y2ggdG8gdGhlIGZ1bGwgd2lkdGggb2YgaXRzIGNvbnRhaW5lciwgYnV0IHRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCBzaXppbmcgY2xhc3Nlcywgb3IgYnkgdXNpbmcgdGhlIGB1bnN0YWNrYCBjbGFzcyBvbiB0aGUgcGFyZW50IGZsZXggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW251bGxdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBmbGV4LWdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2UgYmV0d2VlbiBjb2x1bW5zLCBhZGRlZCBhcyBhIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcuXG5AbWl4aW4gZmxleC1ncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAvLyBCYXNlIHByb3BlcnRpZXNcbiAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkY29sdW1ucyk7XG5cbiAgLy8gR3V0dGVyc1xuICBAaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbWFwJyB7XG4gICAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YWx1ZSBpbiAkZ3V0dGVyIHtcbiAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkdmFsdWUpIC8gMjtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbnVtYmVyJyBhbmQgc3RyaXAtdW5pdCgkZ3V0dGVyKSA+IDAge1xuICAgICRwYWRkaW5nOiByZW0tY2FsYygkZ3V0dGVyKSAvIDI7XG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgfVxuXG4gIC8vIGZpeGVzIHJlY2VudCBDaHJvbWUgdmVyc2lvbiBub3QgbGltaXRpbmcgY2hpbGQgd2lkdGhcbiAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzQ5MzQ1ODYvd2hpdGUtc3BhY2Utbm93cmFwLWFuZC1mbGV4Ym94LWRpZC1ub3Qtd29yay1pbi1jaHJvbWVcbiAgQGlmICRjb2x1bW5zID09IG51bGwge1xuICAgIG1pbi13aWR0aDogaW5pdGlhbDtcbiAgfVxuICAvLyBtYXgtd2lkdGggZml4ZXMgSUUgMTAvMTEgbm90IHJlc3BlY3RpbmcgdGhlIGZsZXgtYmFzaXMgcHJvcGVydHlcbiAgQGlmICRjb2x1bW5zICE9IG51bGwgYW5kICRjb2x1bW5zICE9IHNocmluayB7XG4gICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBibG9jayBncmlkIGZvciBhIGZsZXggZ3JpZCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgY29sdW1ucyB0byBkaXNwbGF5IG9uIGVhY2ggcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgLSBTZWxlY3RvciB0byB1c2UgdG8gdGFyZ2V0IGNvbHVtbnMgd2l0aGluIHRoZSByb3cuXG5AbWl4aW4gZmxleC1ncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jb2x1bW4nXG4pIHtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gID4gI3skc2VsZWN0b3J9IHtcbiAgICAkcGN0OiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICAgZmxleDogMCAwICRwY3Q7XG4gICAgbWF4LXdpZHRoOiAkcGN0O1xuICB9XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGdyaWQgY29sdW1uLiBDb2x1bW5zIHdpdGggbG93ZXIgbnVtYmVycyBhcHBlYXIgZmlyc3QgaW4gdGhlIGxheW91dC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9yZGVyIFswXSAtIE9yZGVyIG51bWJlciB0byBhcHBseS5cbkBtaXhpbiBmbGV4LWdyaWQtb3JkZXIoJG9yZGVyOiAwKSB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IGZsZXgtb3JkZXIoKS4gZmxleC1ncmlkLW9yZGVyKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi4zLic7XG4gIEBpbmNsdWRlIGZsZXgtb3JkZXIoJG9yZGVyKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGFsaWducyB0aGUgY29sdW1ucyB3aXRoaW4gYSBmbGV4IHJvdy4gQXBwbHkgdGhpcyBtaXhpbiB0byBhIGZsZXggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtZ3JpZC1yb3ctYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IGZsZXgtYWxpZ24oKS4gZmxleC1ncmlkLXJvdy1hbGlnbigpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuMy4nO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4LCAkeSk7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGFsaWduIGEgc2luZ2xlIGNvbHVtbiB3aXRoaW4gYSBmbGV4IHJvdy4gQXBwbHkgdGhpcyBtaXhpbiB0byBhIGZsZXggY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtZ3JpZC1jb2x1bW4tYWxpZ24oJHk6IG51bGwpIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZmxleC1hbGlnbi1zZWxmKCkuIGZsZXgtZ3JpZC1jb2x1bW4tYWxpZ24oKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjMuJztcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKCR5KTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC1ncmlkIHtcbiAgLy8gUm93XG4gIC5yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3c7XG5cbiAgICAvLyBOZXN0aW5nIGJlaGF2aW9yXG4gICAgJiAucm93IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3cobmVzdCwgJGJhc2U6IGZhbHNlKTtcbiAgICB9XG5cbiAgICAvLyBFeHBhbmRlZCByb3dcbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgID4gLmNvbHVtbiB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVuZG8gbmVnYXRpdmUgbWFyZ2luc1xuICAgIC8vIEZyb20gY29sbGFwc2VkIGNoaWxkXG4gICAgJi5pcy1jb2xsYXBzZS1jaGlsZCxcbiAgICAmLmNvbGxhcHNlID4gLmNvbHVtbiA+IC5yb3cge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29sdW1uXG4gIC5jb2x1bW4ge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW47XG4gIH1cblxuICAvLyBDb2x1bW4gcm93XG4gIC8vIFRoZSBkb3VibGUgLnJvdyBjbGFzcyBpcyBuZWVkZWQgdG8gYnVtcCB1cCB0aGUgc3BlY2lmaWNpdHlcbiAgLmNvbHVtbi5yb3cucm93IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIFRvIHByb3Blcmx5IG5lc3QgYSBjb2x1bW4gcm93LCBwYWRkaW5nIGFuZCBtYXJnaW4gaXMgcmVtb3ZlZFxuICAucm93IC5jb2x1bW4ucm93LnJvdyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW4tY291bnQge1xuICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICAgLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oJGkpO1xuICAgICAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRpKTtcbiAgICAgIH1cblxuICAgICAgLy8gT2Zmc2V0c1xuICAgICAgJG86ICRpIC0gMTtcblxuICAgICAgLiN7JC16Zi1zaXplfS1vZmZzZXQtI3skb30ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG8pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNvdXJjZSBvcmRlcmluZ1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNiB7XG4gICAgICAuI3skLXpmLXNpemV9LW9yZGVyLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1vcmRlcigkaSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQmxvY2sgZ3JpZFxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtbWF4IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtbGF5b3V0KCRpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJC16Zi1zaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC8vIFNpemluZyAoZXhwYW5kKVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXNpemUpIHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS1leHBhbmQge1xuICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBBdXRvLXN0YWNraW5nL3Vuc3RhY2tpbmdcbiAgICAgIEBhdC1yb290ICh3aXRob3V0OiBtZWRpYSkge1xuICAgICAgICAucm93LiN7JC16Zi1zaXplfS11bnN0YWNrIHtcbiAgICAgICAgICA+IC5jb2x1bW4ge1xuICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigxMDAlKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXNpemUpIHtcbiAgICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xuICAgIC4jeyQtemYtc2l6ZX0tY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LXVuY29sbGFwc2Uge1xuICAgICAgJGd1dHRlcjogLXpmLWdldC1icC12YWwoJGdyaWQtY29sdW1uLWd1dHRlciwgJC16Zi1zaXplKTtcblxuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtdW5jb2xsYXBzZSgkZ3V0dGVyKTsgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNpemluZyAoc2hyaW5rKVxuICAuc2hyaW5rIHtcbiAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKHNocmluayk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gVmVydGljYWwgYWxpZ25tZW50IHVzaW5nIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmXG4gIC8vIFJlbW92ZSB0aGVzZSBpbiA2LjNcbiAgQGVhY2ggJHZkaXIsICRwcm9wIGluICQtemYtZmxleC1hbGlnbiB7XG4gICAgLmNvbHVtbi5hbGlnbi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoJHZkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC5jb2x1bW5zIHtcbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBQbGFjZWhvbGRlckluRXh0ZW5kXG4gICAgQGV4dGVuZCAuY29sdW1uO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG5AaWYgbnRoKG1hcC12YWx1ZXMoJGJyZWFrcG9pbnRzKSwgMSkgIT0gMCB7XG4gIEBlcnJvciAnWW91ciBzbWFsbGVzdCBicmVha3BvaW50IChkZWZpbmVkIGluICRicmVha3BvaW50cykgbXVzdCBiZSBzZXQgdG8gXCIwXCIuJztcbn1cbkBlbHNlIHtcbiAgJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IG50aChtYXAta2V5cygkYnJlYWtwb2ludHMpLCAxKTtcbn1cblxuLy8vIEFsbCBvZiB0aGUgbmFtZXMgaW4gdGhpcyBsaXN0IHdpbGwgYmUgb3V0cHV0IGFzIGNsYXNzZXMgaW4geW91ciBDU1MsIGxpa2UgYC5zbWFsbC0xMmAsIGAubWVkaXVtLTZgLCBhbmQgc28gb24uIEVhY2ggdmFsdWUgaW4gdGhpcyBsaXN0IG11c3QgYWxzbyBiZSBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLlxuLy8vIEB0eXBlIExpc3RcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgc3RyaW5nIG1hdGNoaW5nIHRoZSBpbnB1dCB2YWx1ZS4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBzZWUgd2hhdCB0aGUgcG9zc2libGUgaW5wdXRzIGFyZS5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWwgW3NtYWxsXSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gIC8vIFNpemUgb3Iga2V5d29yZFxuICAkYnA6IG50aCgkdmFsLCAxKTtcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1tYXg6IDA7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBFdmVudHVhbCBvdXRwdXRcbiAgJHN0cjogJyc7XG4gIC8vIElzIGl0IGEgbmFtZWQgbWVkaWEgcXVlcnk/XG4gICRuYW1lZDogZmFsc2U7XG5cbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxuICBAaWYgJGJwID09ICdsYW5kc2NhcGUnIG9yICRicCA9PSAncG9ydHJhaXQnIHtcbiAgICBAcmV0dXJuICcob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG4gIEBlbHNlIGlmICRicCA9PSAncmV0aW5hJyB7XG4gICAgQHJldHVybiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSc7XG4gIH1cblxuICAvLyBUcnkgdG8gcHVsbCBhIG5hbWVkIGJyZWFrcG9pbnQgb3V0IG9mIHRoZSAkYnJlYWtwb2ludHMgbWFwXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICAgJGJwLW1heDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJGJwKTtcbiAgICAgIH1cblxuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJwKTtcbiAgICAgICRuYW1lZDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJwOiAwO1xuICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogXCIjeyR2YWx9XCIgaXMgbm90IGRlZmluZWQgaW4geW91ciAkYnJlYWtwb2ludHMgc2V0dGluZy4nO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbnZlcnQgYW55IHBpeGVsLCByZW0sIG9yIHVuaXRsZXNzIHZhbHVlIHRvIGVtXG4gICRicDogLXpmLWJwLXRvLWVtKCRicCk7XG4gIEBpZiAkYnAtbWF4IHtcbiAgICAkYnAtbWF4OiAtemYtYnAtdG8tZW0oJGJwLW1heCkgLSAoMS8xNik7XG4gIH1cblxuICAvLyBDb25kaXRpb25zIHRvIHNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb25cbiAgLy8gLSBJdCdzIGEgbmFtZWQgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBkb3duXCIgb3IgXCIwIHVwXCJcbiAgLy8gLSBJdCdzIGEgbnVtZXJpYyBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIFwiICsgYW55dGhpbmdcbiAgQGlmICRicCA+IDBlbSBvciAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgLy8gYG9ubHlgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbikgYW5kIChtYXgtd2lkdGg6IG4pYFxuICAgIEBpZiAkZGlyID09ICdvbmx5JyB7XG4gICAgICAvLyBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gXCJvbmx5XCIgcmFuZ2VcbiAgICAgIEBpZiAkbmFtZWQgPT0gdHJ1ZSB7XG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWluLXdpZHRoXCIgaWYgdGhlIGZsb29yIGlzIGdyZWF0ZXIgdGhhbiAwXG4gICAgICAgIEBpZiAkYnAgPiAwZW0ge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG5cbiAgICAgICAgICAvLyBPbmx5IGFkZCBcImFuZFwiIHRvIHRoZSBtZWRpYSBxdWVyeSBpZiB0aGVyZSdzIGEgY2VpbGluZ1xuICAgICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICAgJHN0cjogJHN0ciArICcgYW5kICc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25seSB1c2UgXCJtYXgtd2lkdGhcIiBpZiB0aGVyZSdzIGEgY2VpbGluZ1xuICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JGJwLW1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gYG9ubHlgIHJhbmdlLic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYGRvd25gIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1heC13aWR0aDogbilgXG4gICAgQGVsc2UgaWYgJGRpciA9PSAnZG93bicge1xuICAgICAgJG1heDogaWYoJG5hbWVkLCAkYnAtbWF4LCAkYnApO1xuXG4gICAgICAvLyBTa2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uIGlmIGlucHV0IHZhbHVlIGlzIGV4YWN0bHkgXCIwIGRvd25cIixcbiAgICAgIC8vIHVubGVzcyB0aGUgZnVuY3Rpb24gd2FzIGNhbGxlZCBhcyBcInNtYWxsIGRvd25cIiwgaW4gd2hpY2ggY2FzZSBpdCdzIGp1c3QgXCJzbWFsbCBvbmx5XCJcbiAgICAgIEBpZiAkbmFtZWQgb3IgJGJwID4gMGVtIHtcbiAgICAgICAgQGlmICRtYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRtYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgdXBgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbilgXG4gICAgQGVsc2UgaWYgJGJwID4gMGVtIHtcbiAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gV3JhcHMgYSBtZWRpYSBxdWVyeSBhcm91bmQgdGhlIGNvbnRlbnQgeW91IHB1dCBpbnNpZGUgdGhlIG1peGluLiBUaGlzIG1peGluIGFjY2VwdHMgYSBudW1iZXIgb2YgdmFsdWVzOlxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcCwgYW5kIHVzZSBhIG1lZGlhIHF1ZXJ5IHRoZXJlLlxuLy8vICAtIElmIGEgcGl4ZWwgdmFsdWUgaXMgcGFzc2VkLCBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBlbSB2YWx1ZSB1c2luZyBgJGdsb2JhbC1mb250LXNpemVgIGFzIHRoZSBiYXNlLlxuLy8vICAtIElmIGEgcmVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHVuaXQgd2lsbCBiZSBjaGFuZ2VkIHRvIGVtLlxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vL1xuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlKSB7XG4gICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcblxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gIEBpZiAkc3RyID09ICcnIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gIEBlbHNlIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ29udmVycyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcblxuICAvLyBTdG9yZSB0aGUga2V5cyBvZiB0aGUgbWFwIGFzIGEgbGlzdFxuICAkdmFsdWVzOiBtYXAta2V5cygkbWFwKTtcblxuICAkaTogMDtcblxuICAvLyBJZiB0aGUgS2V5IEV4aXN0cywgR2V0IHRoZSBpbmRleCBvZiB0aGUga2V5IHdpdGhpbiB0aGUgbWFwIGFuZCBhZGQgMSB0byBpdCBmb3IgdGhlIG5leHQgYnJlYWtwb2ludCBpbiB0aGUgbWFwXG4gIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAkaTogaW5kZXgoJHZhbHVlcywgJGtleSkgKyAxO1xuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgKCRpID4gbGVuZ3RoKCRtYXApIG9yICRpID09IDApIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgbnRoKCR2YWx1ZXMsICRpKSk7XG4gIH1cblxufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwLiBJZiB0aGUgY29uZmlnIG1hcCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuIElmIHRoZSBjb25maWcgbWFwIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBJbnB1dCBjb25maWcgbWFwLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbi8vIExlZ2FjeSBicmVha3BvaW50IHZhcmlhYmxlc1xuLy8gVGhlc2Ugd2lsbCBiZSByZW1vdmVkIGluIDYuM1xuJHNtYWxsLXVwOiBudWxsO1xuJHNtYWxsLW9ubHk6IG51bGw7XG4kbWVkaXVtLXVwOiBudWxsO1xuJG1lZGl1bS1vbmx5OiBudWxsO1xuJGxhcmdlLXVwOiBudWxsO1xuJGxhcmdlLW9ubHk6IG51bGw7XG4keGxhcmdlLXVwOiBudWxsO1xuJHhsYXJnZS1vbmx5OiBudWxsO1xuJHh4bGFyZ2UtdXA6IG51bGw7XG4keHhsYXJnZS1vbmx5OiBudWxsO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBzbWFsbCkge1xuICAkc21hbGwtdXA6IHNjcmVlbjtcbiAgJHNtYWxsLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHNtYWxsIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcbiAgJG1lZGl1bS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0gb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIGxhcmdlKSB7XG4gICRsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2UpfScpO1xuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xuICAkeGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2UpfScpO1xuICAkeGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeHhsYXJnZSkge1xuICAkeHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeHhsYXJnZSl9Jyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGNvbHVtbnMgZGVmaW5lZCBpbnNpZGUgdGhpcyBtaXhpbiB0byB1c2UgYSBkaWZmZXJlbnQgY29sdW1uIGNvdW50LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcm9vdCBbZmFsc2VdXG4vLy8gICBJZiBgZmFsc2VgLCBzZWxlY3RvcnMgaW5zaWRlIHRoaXMgbWl4aW4gd2lsbCBuZXN0IGluc2lkZSB0aGUgcGFyZW50IHNlbGVjdG9yLlxuLy8vICAgSWYgYHRydWVgLCBzZWxlY3RvcnMgd2lsbCBub3QgbmVzdC5cbkBtaXhpbiBncmlkLWNvbnRleHQoXG4gICRjb2x1bW5zLFxuICAkcm9vdDogZmFsc2Vcbikge1xuICAvLyBTdG9yZSB0aGUgY3VycmVudCBjb2x1bW4gY291bnQgc28gaXQgY2FuIGJlIHJlLXNldCBsYXRlclxuICAkb2xkLWdyaWQtY29sdW1uLWNvdW50OiAkZ3JpZC1jb2x1bW4tY291bnQ7XG4gICRncmlkLWNvbHVtbi1jb3VudDogJGNvbHVtbnMgIWdsb2JhbDtcblxuICBAaWYgJHJvb3Qge1xuICAgIEBhdC1yb290IHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBvbGQgY29sdW1uIGNvdW50XG4gICRncmlkLWNvbHVtbi1jb3VudDogJG9sZC1ncmlkLWNvbHVtbi1jb3VudCAhZ2xvYmFsO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgcm93LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gQ29sdW1uIGNvdW50IGZvciB0aGlzIHJvdy4gYG51bGxgIHdpbGwgdXNlIHRoZSBkZWZhdWx0IGNvbHVtbiBjb3VudC5cbi8vLyBAcGFyYW0ge0tleXdvcmRzfSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskZ3JpZC1yb3ctd2lkdGhdIC0gTWF4aW11bSB3aWR0aCBvZiB0aGUgcm93LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGNmIFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgYSBjbGVhcmZpeC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMsIGluIGNhc2UgdGhlIHJvdyBpcyBuZXN0ZWQuXG5AbWl4aW4gZ3JpZC1yb3coXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICR3aWR0aDogJGdyaWQtcm93LXdpZHRoLFxuICAkY2Y6IHRydWUsXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAkbWFyZ2luOiBhdXRvO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcik7XG5cbiAgICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBjb2xsYXBzZSkgIT0gbnVsbCB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIG1heC13aWR0aDogJHdpZHRoO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuXG4gIEBpZiAkY2Yge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBJbnZlcnRzIHRoZSBtYXJnaW5zIG9mIGEgcm93IHRvIG5lc3QgaXQgaW5zaWRlIG9mIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtNYXB8bnVsbH0gJGd1dHRlciBbbnVsbF0gLSBHdXR0ZXIgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIHRoZSBtYXJnaW5zLiBTZXQgdG8gYG51bGxgIHRvIHJlZmVyIHRvIHRoZSByZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncy5cbkBtaXhpbiBncmlkLXJvdy1uZXN0KCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ251bWJlcicge1xuICAgICRndXR0ZXI6ICgkLXpmLXplcm8tYnJlYWtwb2ludDogJGd1dHRlcik7XG4gIH1cblxuICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRndXR0ZXIge1xuICAgICRtYXJnaW46IHJlbS1jYWxjKCR2YWx1ZSkgLyAyICogLTE7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgICBtYXJnaW4tbGVmdDogJG1hcmdpbjtcbiAgICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbjtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlbW92aW5nIHRoZSBwYWRkaW5nLiAqKk5vdGU6Kiogb25seSB1c2UgdGhpcyBtaXhpbiB3aXRoaW4gYSBicmVha3BvaW50LiBUbyBjb2xsYXBzZSBhIGNvbHVtbidzIGd1dHRlcnMgb24gYWxsIHNjcmVlbiBzaXplcywgdXNlIHRoZSBgJGd1dHRlcmAgcGFyYW1ldGVyIG9mIHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4gaW5zdGVhZC5cbkBtaXhpbiBncmlkLWNvbHVtbi1jb2xsYXBzZSB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuLy8vIFVuLWNvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlLWFkZGluZyB0aGUgcGFkZGluZy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLlxuQG1peGluIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVyKSAvIDI7XG4gIHBhZGRpbmctbGVmdDogJGd1dHRlcjtcbiAgcGFkZGluZy1yaWdodDogJGd1dHRlcjtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tY29sbGFwc2U7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi11bmNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi11bmNvbGxhcHNlXG5AbWl4aW4gZ3JpZC1jb2wtdW5jb2xsYXBzZSgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoJGd1dHRlcik7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiBhIGNvbHVtbiBiYXNlZCBvbiBhIG51bWJlciBvZiBmYWN0b3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGNvbHVtbnNcbi8vLyAgIFdpZHRoIG9mIHRoZSBjb2x1bW4uIEFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHBlcmNlbnRhZ2UgdmFsdWUgd2lsbCBtYWtlIHRoZSBjb2x1bW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIHNpbmdsZSBkaWdpdCB3aWxsIG1ha2UgdGhlIGNvbHVtbiBzcGFuIHRoYXQgbnVtYmVyIG9mIGNvbHVtbnMgd2lkZSwgdGFraW5nIGludG8gYWNjb3VudCB0aGUgY29sdW1uIGNvdW50IG9mIHRoZSBwYXJlbnQgcm93LlxuLy8vICAgLSBBIHN0cmluZyBvZiB0aGUgZm9ybWF0IFwieCBvZiB5XCIgd2lsbCBtYWtlIGEgY29sdW1uIHRoYXQgaXMgKngqIGNvbHVtbnMgd2lkZSwgYXNzdW1pbmcgKnkqIHRvdGFsIGNvbHVtbnMgZm9yIHRoZSBwYXJlbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIGNhbGN1bGF0ZWQgcGVyY2VudGFnZSB2YWx1ZS5cbkBmdW5jdGlvbiBncmlkLWNvbHVtbigkY29sdW1ucykge1xuICAkd2lkdGg6IDAlO1xuXG4gIC8vIFBhcnNpbmcgcGVyY2VudHMsIGRlY2ltYWxzLCBhbmQgY29sdW1uIGNvdW50c1xuICBAaWYgdHlwZS1vZigkY29sdW1ucykgPT0gJ251bWJlcicge1xuICAgIEBpZiB1bml0KCRjb2x1bW5zKSA9PSAnJScge1xuICAgICAgJHdpZHRoOiAkY29sdW1ucztcbiAgICB9XG4gICAgQGVsc2UgaWYgJGNvbHVtbnMgPCAxIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyAvICRncmlkLWNvbHVtbi1jb3VudCk7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyc2luZyBcIm4gb2YgblwiIGV4cHJlc3Npb25zXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdsaXN0JyB7XG4gICAgQGlmIGxlbmd0aCgkY29sdW1ucykgIT0gMyB7XG4gICAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIHRoZSBmb3JtYXQgXCJuIG9mIG5cIi4nO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UobnRoKCRjb2x1bW5zLCAxKSAvIG50aCgkY29sdW1ucywgMykpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFueXRoaW5nIGVsc2UgaXMgaW5jb3JyZWN0XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiLic7XG4gIH1cblxuICBAcmV0dXJuICR3aWR0aDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFskZ3JpZC1jb2x1bW4tY291bnRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLlxuQG1peGluIGdyaWQtY29sdW1uKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XG4gIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG5cbiAgLy8gR3V0dGVyc1xuICBAaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbWFwJyB7XG4gICAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YWx1ZSBpbiAkZ3V0dGVyIHtcbiAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkdmFsdWUpIC8gMjtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbnVtYmVyJyBhbmQgc3RyaXAtdW5pdCgkZ3V0dGVyKSA+IDAge1xuICAgICRwYWRkaW5nOiByZW0tY2FsYygkZ3V0dGVyKSAvIDI7XG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgfVxuXG4gIC8vIExhc3QgY29sdW1uIGFsaWdubWVudFxuICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbiByb3cuIFRoaXMgaXMgdGhlIGVxdWl2YWxlbnQgb2YgYWRkaW5nIGAucm93YCBhbmQgYC5jb2x1bW5gIHRvIHRoZSBzYW1lIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBXaWR0aCBvZiB0aGUgZ3V0dGVycyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgY29sdW1uIHJvdy5cbkBtaXhpbiBncmlkLWNvbHVtbi1yb3coXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLXJvdztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGd1dHRlcjogJGd1dHRlcik7XG5cbiAgJixcbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AZnVuY3Rpb24gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcbikge1xuICBAcmV0dXJuIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQG1peGluIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnMsICRndXR0ZXIpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcm93KClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1yb3dcbkBtaXhpbiBncmlkLWNvbC1yb3coXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1yb3coJGd1dHRlcik7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBSZXBvc2l0aW9uIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJHBvc2l0aW9uIC0gRGlyZWN0aW9uIGFuZCBhbW91bnQgdG8gbW92ZS4gVGhlIGNvbHVtbiB3aWxsIG1vdmUgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gY291bnQgc3BlY2lmaWVkLiBBIHBvc2l0aXZlIG51bWJlciB3aWxsIHB1c2ggdGhlIGNvbHVtbiB0byB0aGUgcmlnaHQsIHdoaWxlIGEgbmVnYXRpdmUgbnVtYmVyIHdpbGwgcHVsbCBpdCB0byB0aGUgbGVmdC4gU2V0IHRvIGNlbnRlciB0byBjZW50ZXIgdGhlIGNvbHVtbi5cbkBtaXhpbiBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSAnbnVtYmVyJyB7XG4gICAgJG9mZnNldDogcGVyY2VudGFnZSgkcG9zaXRpb24gLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gY2VudGVyIHtcbiAgICAmLCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbi1wb3NpdGlvbigpLiBFbnRlciBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIG51bWJlciwgb3IgY2VudGVyLic7XG4gIH1cbn1cblxuLy8vIFJlc2V0IGEgcG9zaXRpb24gZGVmaW5pdGlvbi5cbkBtaXhpbiBncmlkLWNvbHVtbi11bnBvc2l0aW9uIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodCBieSBgJG5gIGNvbHVtbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBXaWR0aCB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ3JpZC1jb2x1bW4oJG4pO1xufVxuXG4vLy8gRGlzYWJsZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgYWxpZ25pbmcgdG8gdGhlIG9wcG9zaXRlIGVkZ2UuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZW5kIHtcbiAgLy8gVGhpcyBleHRyYSBzcGVjaWZpY2l0eSBpcyByZXF1aXJlZCBmb3IgdGhlIHByb3BlcnR5IHRvIGJlIGFwcGxpZWRcbiAgJjpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXBvcygkcG9zaXRpb24pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVucG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC11bnBvcyB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVucG9zaXRpb247XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1vZmZzZXQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLW9mZnNldFxuQG1peGluIGdyaWQtY29sLW9mZigkbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG4pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZW5kKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1lbmRcbkBtaXhpbiBncmlkLWNvbC1lbmQge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1lbmQ7XG59XG4iLCIkLXpmLWZsZXgtanVzdGlmeTogKFxuICAnbGVmdCc6IGZsZXgtc3RhcnQsXG4gICdyaWdodCc6IGZsZXgtZW5kLFxuICAnY2VudGVyJzogY2VudGVyLFxuICAnanVzdGlmeSc6IHNwYWNlLWJldHdlZW4sXG4gICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4pO1xuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBieSBhZGRpbmcgYGRpc3BsYXk6IGZsZXhgIHRvIHRoZSBlbGVtZW50LlxuQG1peGluIGZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBpdGVtcyB3aXRoaW4gYSBmbGV4IGNvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHggW251bGxdIC0gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYGxlZnRgLCBgcmlnaHRgLCBgY2VudGVyYCwgYGp1c3RpZnlgLCBvciBgc3BhY2VkYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IGhvcml6b250YWwgYWxpZ25tZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduKCR4OiBudWxsLCAkeTogbnVsbCkge1xuICBAaWYgJHgge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtanVzdGlmeSwgJHgpIHtcbiAgICAgICR4OiBtYXAtZ2V0KCQtemYtZmxleC1qdXN0aWZ5LCAkeCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHh9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBob3Jpem9udGFsIGFsaWdubWVudC4gVXNlIGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnksIG9yIHNwYWNlZC4nXG4gICAgfVxuICB9XG5cbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLidcbiAgICB9XG4gIH1cblxuICBqdXN0aWZ5LWNvbnRlbnQ6ICR4O1xuICBhbGlnbi1pdGVtczogJHk7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGFsaWduIGEgc2luZ2xlIGNvbHVtbiB3aXRoaW4gYSBmbGV4IHJvdy4gQXBwbHkgdGhpcyBtaXhpbiB0byBhIGZsZXggY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkeTogbnVsbCkge1xuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1jb2x1bW4tYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJ1xuICAgIH1cbiAgfVxuXG4gIGFsaWduLXNlbGY6ICR5O1xufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc291cmNlIG9yZGVyIG9mIGEgZmxleCBjaGlsZC4gQ2hpbGRyZW4gd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgWzBdIC0gT3JkZXIgbnVtYmVyIHRvIGFwcGx5LlxuQG1peGluIGZsZXgtb3JkZXIoJG9yZGVyOiAwKSB7XG4gIG9yZGVyOiAkb3JkZXI7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWJhc2Vcbi8vLy9cblxuLy8gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuLy8gVGhlc2UgYXJlIHN0eWxlcyBhcHBsaWVkIHRvIGJhc2ljIEhUTUwgdGFncywgaW5jbHVkaW5nOlxuLy8gICAtIFBhcmFncmFwaHMgPHA+XG4vLyAgIC0gQm9sZC9pdGFsaWNzIDxiPiA8c3Ryb25nPiA8aT4gPGVtPlxuLy8gICAtIFNtYWxsIHRleHQgPHNtYWxsPlxuLy8gICAtIEhlYWRpbmdzIDxoMT7igJQ8aDY+XG4vLyAgIC0gQW5jaG9ycyA8YT5cbi8vICAgLSBEaXZpZGVycyA8aHI+XG4vLyAgIC0gTGlzdHMgPHVsPiA8b2w+IDxkbD5cbi8vICAgLSBCbG9ja3F1b3RlcyA8YmxvY2txdW90ZT5cbi8vICAgLSBDb2RlIGJsb2NrcyA8Y29kZT5cbi8vICAgLSBBYmJyZXZpYXRpb25zIDxhYmJyPlxuLy8gICAtIENpdGF0aW9ucyA8Y2l0ZT5cbi8vICAgLSBLZXlzdHJva2VzIDxrYmQ+XG5cbi8vLyBGb250IGZhbWlseSBmb3IgaGVhZGVyIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3R5bGUgKGUuZy4gaXRhbGljaXplZCkgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayB1c2VkIGZvciBlbGVtZW50cyB0aGF0IHVzZSBtb25vc3BhY2VkIHR5cGUsIHN1Y2ggYXMgY29kZSBzYW1wbGVzXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBvZiBoZWFkaW5ncyBhdCB2YXJpb3VzIHNjcmVlbiBzaXplcy4gRWFjaCBrZXkgaXMgYSBicmVha3BvaW50LCBhbmQgZWFjaCB2YWx1ZSBpcyBhIG1hcCBvZiBoZWFkaW5nIHNpemVzLlxuLy8vIEB0eXBlIE1hcFxuJGhlYWRlci1zaXplczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6IDI0LFxuICAgICdoMic6IDIwLFxuICAgICdoMyc6IDE5LFxuICAgICdoNCc6IDE4LFxuICAgICdoNSc6IDE3LFxuICAgICdoNic6IDE2LFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiA0OCxcbiAgICAnaDInOiA0MCxcbiAgICAnaDMnOiAzMSxcbiAgICAnaDQnOiAyNSxcbiAgICAnaDUnOiAyMCxcbiAgICAnaDYnOiAxNixcbiAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2Qgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBgPHNtYWxsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBgPHNtYWxsPmAgZWxlbWVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnNpZGUgYDxwPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBmb3IgcGFyYWdyYXBoIHRleHQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW4gY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIExpc3RcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZW9jcmF0aW9uIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbmluZyBmb3IgYnVsbGV0cyBvbiB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgYDxkbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcblxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIGJvcmRlciBzdHlsZSBmb3IgYDxhYmJyPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjayAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlIHtcbiAgLy8gVHlwb2dyYXBoeSByZXNldHNcbiAgZGl2LFxuICBkbCxcbiAgZHQsXG4gIGRkLFxuICB1bCxcbiAgb2wsXG4gIGxpLFxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwcmUsXG4gIGZvcm0sXG4gIHAsXG4gIGJsb2NrcXVvdGUsXG4gIHRoLFxuICB0ZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBQYXJhZ3JhcGhzXG4gIHAge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcbiAgfVxuXG4gIC8vIEVtcGhhc2l6ZWQgdGV4dFxuICBlbSxcbiAgaSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU3Ryb25nIHRleHRcbiAgc3Ryb25nLFxuICBiIHtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFNtYWxsIHRleHRcbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEhlYWRpbmdzXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlYWRlci1jb2xvcjtcbiAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206ICRoZWFkZXItbWFyZ2luLWJvdHRvbTtcbiAgICBsaW5lLWhlaWdodDogJGhlYWRlci1saW5laGVpZ2h0O1xuXG4gICAgc21hbGwge1xuICAgICAgY29sb3I6ICRoZWFkZXItc21hbGwtZm9udC1jb2xvcjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgc2l6ZXNcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc2l6ZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRoZWFkZXIsICRmb250LXNpemUgaW4gJGhlYWRlcnMge1xuICAgICAgICAjeyRoZWFkZXJ9IHtcbiAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKCRmb250LXNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGlua3NcbiAgYSB7XG4gICAgY29sb3I6ICRhbmNob3ItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRhbmNob3ItY29sb3ItaG92ZXI7XG4gICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSG9yaXpvbnRhbCBydWxlXG4gIGhyIHtcbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgICBtYXJnaW46ICRoci1tYXJnaW47XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cblxuICAvLyBMaXN0c1xuICB1bCxcbiAgb2wsXG4gIGRsIHtcbiAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtc1xuICBsaSB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gVW5vcmRlcmVkIGxpc3RzXG4gIHVsIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6ICRsaXN0LXN0eWxlLXR5cGU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBPcmRlcmVkIGxpc3RzXG4gIG9sIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgfVxuXG4gIC8vIE5lc3RlZCB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0c1xuICB1bCwgb2wge1xuICAgICYgJiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmluaXRpb24gbGlzdHNcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmbmxpc3QtdGVybS13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2txdW90ZXNcbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xuXG4gICAgJiwgcCB7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIENpdGF0aW9uc1xuICBjaXRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRjaXRlLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGNpdGUtY29sb3I7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDE0IFxcMDAyMCc7XG4gICAgfVxuICB9XG5cbiAgLy8gQWJicmV2aWF0aW9uc1xuICBhYmJyIHtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICBjdXJzb3I6IGhlbHA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xuICB9XG5cbiAgLy8gQ29kZVxuICBjb2RlIHtcbiAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xuICAgIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG4gIH1cblxuICAvLyBLZXlzdHJva2VzXG4gIGtiZCB7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka2V5c3Ryb2tlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuXG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkYmFzZS1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuICBcbiAgLy8gVXNpbmcgcmVtIGFzIGJhc2UgYWxsb3dzIGNvcnJlY3Qgc2NhbGluZ1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgJGNvdW50ID09IDEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG5cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9ICdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkgKyAnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycyB7XG4gIC8vIFVzZSB0byBjcmVhdGUgYSBzdWJoZWFkaW5nIHVuZGVyIGEgbWFpbiBoZWFkZXJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XG4gIC8vIDxoZWFkZXI+XG4gIC8vICAgPGgxPkhlYWRpbmc8L2gxPlxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cbiAgLy8gPC9oZWFkZXI+XG4gIC5zdWJoZWFkZXIge1xuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLW1hcmdpbi1ib3R0b207XG4gICAgZm9udC13ZWlnaHQ6ICRzdWJoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRzdWJoZWFkZXItbGluZWhlaWdodDtcbiAgICBjb2xvcjogJHN1YmhlYWRlci1jb2xvcjtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhbiBpbnRyb2R1Y3RvcnkgbGVhZCwgZGVjaywgYmx1cmIsIGV0Yy5cbiAgLmxlYWQge1xuICAgIGZvbnQtc2l6ZTogJGxlYWQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGVhZC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGEgbGFyZ2UgbnVtYmVyIHRvIGRpc3BsYXkgYSBzdGF0aXN0aWNcbiAgLnN0YXQge1xuICAgIGZvbnQtc2l6ZTogJHN0YXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgcCArICYge1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgfVxuICB9XG5cbiAgLy8gVXNlIHRvIHJlbW92ZSB0aGUgYnVsbGV0cyBmcm9tIGFuIHVub3JkZXJlZCBsaXN0XG4gIC5uby1idWxsZXQge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIElmIGB0cnVlYCwgYWxsIGVsZW1lbnRzIHdpbGwgaGF2ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcyB3aGVuIHByaW50ZWQsIHRvIHNhdmUgb24gaW5rLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIGFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgIC8vIERpc3BsYXkgdGhlIFVSTCBvZiBhIGxpbmsgYWZ0ZXIgdGhlIHRleHRcbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuXG4gICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgVVJMIGZvciBpbWFnZXMgb3IgSmF2YVNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgIC5pciBhOmFmdGVyLFxuICAgIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gICAgYVtocmVmXj0nIyddOmFmdGVyIHsgY29udGVudDogJyc7IH1cblxuICAgIC8vIERpc3BsYXkgd2hhdCBhbiBhYmJyZXZpYXRpb24gc3RhbmRzIGZvciBhZnRlciB0aGUgdGV4dFxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKHRpdGxlKSAnKSc7IH1cblxuICAgIC8vIFByZXZlbnQgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBhIGJsb2NrcXVvdGUgb3IgcHJlZm9ybWF0dGVkIHRleHQgYmxvY2tcbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIGg1YnAuY29tL3RcbiAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuXG4gICAgdHIsXG4gICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG5cbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgIG9ycGhhbnM6IDM7XG4gICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgLy8gQXZvaWQgcGFnZSBicmVha3MgYWZ0ZXIgYSBoZWFkaW5nXG4gICAgaDIsXG4gICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRm9udCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHBsYWNlaG9sZGVyIHRleHQgd2l0aGluIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEZvbnRcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGluc2lkZSB0ZXh0IGlucHV0cyB3aGVuIG5vdCBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBvdXRzaWRlIHRleHQgaW5wdXRzIHdoZW4gZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxuLy8vIEB0eXBlIEN1cnNvclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQgIWRlZmF1bHQ7XG5cbi8vLyBQcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb24gb24gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyB0aGUgdXAvZG93biBidXR0b25zIHRoYXQgQ2hyb21lIGFuZCBGaXJlZm94IGFkZCB0byBgPGlucHV0IHR5cGU9J251bWJlcic+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gUmFkaXVzIGZvciB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS10ZXh0IHtcbiAgLy8gVGV4dCBpbnB1dHNcbiAgI3t0ZXh0LWlucHV0cygpfSxcbiAgdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gVGV4dCBhcmVhc1xuICB0ZXh0YXJlYSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgJltyb3dzXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgaW5wdXQsXG4gIHRleHRhcmVhIHtcbiAgICAvLyBQbGFjZWhvbGRlciB0ZXh0XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZC9yZWFkb25seSBzdGF0ZVxuICAgICY6ZGlzYWJsZWQsXG4gICAgJltyZWFkb25seV0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9uIGJ1dHRvbi1saWtlIGlucHV0c1xuICBbdHlwZT0nc3VibWl0J10sXG4gIFt0eXBlPSdidXR0b24nXSB7XG4gICAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBRdWFsaWZ5aW5nRWxlbWVudFxuICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIE51bWJlciBpbnB1dCBzdHlsZXNcbiAgW3R5cGU9J251bWJlciddIHtcbiAgICBAaWYgbm90ICRpbnB1dC1udW1iZXItc3Bpbm5lcnMge1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG5cbiAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94IHtcbiAgW3R5cGU9J2ZpbGUnXSxcbiAgW3R5cGU9J2NoZWNrYm94J10sXG4gIFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dC9sYWJlbCBzaWJsaW5nc1xuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuICAgICZbZm9yXSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dHMgaW5zaWRlIGxhYmVsc1xuICBsYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxuICBsYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSBmaWxlIGlucHV0IHdpZHRoXG4gIFt0eXBlPSdmaWxlJ10ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9ybS1sYWJlbC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3I7XG59XG5cbkBtaXhpbiBmb3JtLWxhYmVsLW1pZGRsZSB7XG4gICRpbnB1dC1ib3JkZXItd2lkdGg6IGdldC1ib3JkZXItdmFsdWUoJGlucHV0LWJvcmRlciwgd2lkdGgpO1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaGVscHRleHQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc3R5bGUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0IHtcbiAgLmhlbHAtdGV4dCB7XG4gICAgJG1hcmdpbi10b3A6ICgkZm9ybS1zcGFjaW5nICogMC41KSAqIC0xO1xuXG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbi10b3A7XG4gICAgZm9udC1zaXplOiAkaGVscHRleHQtZm9udC1zaXplO1xuICAgIGZvbnQtc3R5bGU6ICRoZWxwdGV4dC1mb250LXN0eWxlO1xuICAgIGNvbG9yOiAkaGVscHRleHQtY29sb3I7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExlZnQvcmlnaHQgcGFkZGluZyBvZiBhbiBwcmUvcG9zdGZpeGVkIGlucHV0IGxhYmVsXG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgJGZvcm0tc3BhY2luZyAqIDEuNSk7XG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIHRhYmxlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cyAwLCAkZ2xvYmFsLXJhZGl1cyAwIDAgJGdsb2JhbC1yYWRpdXMpO1xuICAgIH1cblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsICRnbG9iYWwtcmFkaXVzIDAgMCAkZ2xvYmFsLXJhZGl1cywgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cyAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAlaW5wdXQtZ3JvdXAtY2hpbGQge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMCAkaW5wdXQtcHJlZml4LXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkaW5wdXQtcHJlZml4LWNvbG9yO1xuICAgIGJvcmRlcjogJGlucHV0LXByZWZpeC1ib3JkZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXByZWZpeC1ib3JkZXIpIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICB9XG5cbiAgICBhLFxuICAgIGlucHV0LFxuICAgIGJ1dHRvbiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNpdHkgYnVtcCBuZWVkZWQgdG8gcHJldmVudCBvdmVycmlkZSBieSBidXR0b25zXG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFF1YWxpZnlpbmdTZWxlY3RvclxuICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGJldHdlZW4gdGhlIGxlZ2VuZCB0ZXh0IGFuZCBmaWVsZHNldCBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMykgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmaWVsZHNldCB7XG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlcjtcbiAgcGFkZGluZzogJGZpZWxkc2V0LXBhZGRpbmc7XG4gIG1hcmdpbjogJGZpZWxkc2V0LW1hcmdpbjtcblxuICBsZWdlbmQge1xuICAgIC8vIENvdmVycyB1cCB0aGUgZmllbGRzZXQncyBib3JkZXIgdG8gY3JlYXRlIGFydGlmaWNpYWwgcGFkZGluZ1xuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG4gICAgcGFkZGluZzogJGxlZ2VuZC1wYWRkaW5nO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiByZW0tY2FsYygtMyk7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1maWVsZHNldCB7XG4gIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBsZWdlbmQge1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmZpZWxkc2V0IHtcbiAgICBAaW5jbHVkZSBmaWVsZHNldDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZHJvcGRvd24gdHJpYW5nbGUgaW5zaWRlIHNlbGVjdCBtZW51cy4gU2V0IHRvIGB0cmFuc3BhcmVudGAgdG8gcmVtb3ZlIGl0IGVudGlyZWx5LlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXRyaWFuZ2xlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1zZWxlY3Qge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMik7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcblxuICBAaWYgJHNlbGVjdC10cmlhbmdsZS1jb2xvciAhPSB0cmFuc3BhcmVudCB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC10cmlhbmdsZSgkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJGdsb2JhbC1yaWdodCAoLSRmb3JtLXNwYWNpbmcpIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIEhpZGUgdGhlIGRyb3Bkb3duIGFycm93IHNob3duIGluIG5ld2VyIElFIHZlcnNpb25zXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmW211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1zZWxlY3Qge1xuICBzZWxlY3Qge1xuICAgIEBpbmNsdWRlIGZvcm0tc2VsZWN0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhYmlkZVxuLy8vL1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGlucHV0cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtaW5wdXRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGxhYmVscy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtbGFiZWxzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciB0byB1c2UgZm9yIGludmFsaWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gdXNlIGZvciBsYWJlbHMgb2YgaW52YWxpZCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1lcnJvci1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyIG9mIGFuIGlucHV0IGZpZWxkIHRvIGhhdmUgYW4gZXJyb3Igc3RhdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGFsZXJ0LWNvbG9yXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhY2tncm91bmQtYWxwaGEgWzAuMV0gLSBUcmFuc3BhcmVuY3kgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQsXG4gICRiYWNrZ3JvdW5kLWFscGhhOiAwLjFcbikge1xuICAmOm5vdCg6Zm9jdXMpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1hbHBoYSk7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgfVxufVxuXG4vLy8gQWRkcyBlcnJvciBzdHlsZXMgdG8gYSBmb3JtIGVsZW1lbnQsIHVzaW5nIHRoZSB2YWx1ZXMgaW4gdGhlIHNldHRpbmdzIGZpbGUuXG5AbWl4aW4gZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6ICRmb3JtLXNwYWNpbmcgKiAtMC41O1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtZXJyb3ItY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZXJyb3Ige1xuICBAaWYgJGFiaWRlLWlucHV0cyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGludmFsaWQgaW5wdXRzXG4gICAgLmlzLWludmFsaWQtaW5wdXQge1xuICAgICAgQGluY2x1ZGUgZm9ybS1pbnB1dC1lcnJvcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJGFiaWRlLWxhYmVscyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGxhYmVscyBvZiBpbnZhbGlkIG91dHB1dHNcbiAgICAuaXMtaW52YWxpZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDtcbiAgICB9XG4gIH1cblxuICAvLyBGb3JtIGVycm9yIGVsZW1lbnRcbiAgLmZvcm0tZXJyb3Ige1xuICAgIEBpbmNsdWRlIGZvcm0tZXJyb3I7XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b25cbi8vLy9cblxuLy8vIFBhZGRpbmcgaW5zaWRlIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3IgZm9yIGJ1dHRvbnMsIGlmIHRoZSBiYWNrZ3JvdW5kIGlzIGxpZ2h0LlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgaG9sbG93IGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCUgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsOiBmbGlwIGZyb20gbWFyZ2luLXJpZ2h0IHRvIG1hcmdpbi1sZWZ0IGZvciBkZWZhdWx0c1xuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAkYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xufVxuXG4vLyBUT0RPOiBEb2N1bWVudCBidXR0b24tYmFzZSgpIG1peGluXG5AbWl4aW4gYnV0dG9uLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcbiAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xufVxuXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHRoZSBleHBhbmQgYmVoYXZpb3IuIFNldCB0byBgZmFsc2VgIHRvIHJldmVyc2UgdGhpcyBiZWhhdmlvci5cbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcbiAgQGlmICRleHBhbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBmb3JlZ3JvdW5kKCRiYWNrZ3JvdW5kLCAkYnV0dG9uLWNvbG9yLWFsdCwgJGJ1dHRvbi1jb2xvcik7XG4gIH1cblxuICBAaWYgJGJhY2tncm91bmQtaG92ZXIgPT0gYXV0byB7XG4gICAgJGJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3MpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyBiYWNrZ3JvdW5kIGZpbGwgb24gaG92ZXIgYW5kIGZvY3VzIGZvciBob2xsb3cgYnV0dG9ucy5cbkBtaXhpbiBidXR0b24taG9sbG93IHtcbiAgJixcbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi1ob2xsb3ctc3R5bGUoXG4gICRjb2xvcjogJHByaW1hcnktY29sb3IsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3I7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50LCByZXNldGluZyB0aGUgY3Vyc29yLCBhbmQgZGlzYWJsaW5nIHBvaW50ZXIgZXZlbnRzLlxuQG1peGluIGJ1dHRvbi1kaXNhYmxlZCgkY29sb3I6ICRwcmltYXJ5LWNvbG9yKSB7XG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgY29sb3I6ICRidXR0b24tY29sb3I7XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkcm9wZG93biBhcnJvdyB0byBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgWzAuNGVtXSAtIFNpemUgb2YgdGhlIGFycm93LiBXZSByZWNvbW1lbmQgdXNpbmcgYW4gYGVtYCB2YWx1ZSBzbyB0aGUgdHJpYW5nbGUgc2NhbGVzIHdoZW4gdXNlZCBpbnNpZGUgZGlmZmVyZW50IHNpemVzIG9mIGJ1dHRvbnMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvZmZzZXQgWyRidXR0b24tcGFkZGluZ10gLSBEaXN0YW5jZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHQgb2YgdGhlIGJ1dHRvbi4gRGVmYXVsdHMgdG8gd2hhdGV2ZXIgdGhlIHJpZ2h0IHBhZGRpbmcgb2YgYSBidXR0b24gaXMuXG5AbWl4aW4gYnV0dG9uLWRyb3Bkb3duKFxuICAkc2l6ZTogMC40ZW0sXG4gICRjb2xvcjogJHdoaXRlLFxuICAkb2Zmc2V0OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KVxuKSB7XG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHNpemUsICRjb2xvciwgZG93bik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07IC8vIEFsaWducyB0aGUgYXJyb3cgd2l0aCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uXG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1yaWdodH07XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodCk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG5cbiAgQGlmICRzdHlsZSA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkc3R5bGUgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLiN7JG5hbWV9LmRyb3Bkb3duOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSG9sbG93IHN0eWxlXG4gICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgJi5ob2xsb3cge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlO1xuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3R5bGVcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcblxuICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkKCRjb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCdXR0b24gd2l0aCBkcm9wZG93biBhcnJvdyBvbmx5XG4gICAgJi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB0b3A6IC0wLjFlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjY29yZGlvbiBncm91cC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgcGx1cyBhbmQgbWludXMgaWNvbnMgdG8gdGhlIHNpZGUgb2YgZWFjaCBhY2NvcmRpb24gdGl0bGUuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhbiBhY2NvcmRpb24gaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kLCAkYm9keS1mb250LWNvbG9yKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gYWNjb3JkaW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgc2FtZSBlbGVtZW50IHRoYXQgZ2V0cyBgZGF0YS1hY2NvcmRpb25gLlxuQG1peGluIGFjY29yZGlvbi1jb250YWluZXIge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICRhY2NvcmRpb24tYmFja2dyb3VuZDtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpc3QgaXRlbSB3aXRoaW4gYW4gYWNjb3JkaW9uIHVsLlxuQG1peGluIGFjY29yZGlvbi1pdGVtIHtcbiAgJjpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXMgMCAwO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSB0aXRsZSBvZiBhbiBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGluayB3aXRoaW4gYW4gYWNjb3JkaW9uIGl0ZW0uXG5AbWl4aW4gYWNjb3JkaW9uLXRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICRhY2NvcmRpb24taXRlbS1wYWRkaW5nO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gIGNvbG9yOiAkYWNjb3JkaW9uLWl0ZW0tY29sb3I7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuXG4gIDpsYXN0LWNoaWxkOm5vdCguaXMtYWN0aXZlKSA+ICYge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgICBib3JkZXItYm90dG9tOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI7XG4gIH1cblxuICBAaWYgJGFjY29yZGlvbi1wbHVzbWludXMge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgIH1cblxuICAgIC5pcy1hY3RpdmUgPiAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ+KAkyc7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYWNjb3JkaW9uIGNvbnRlbnQuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbnRlbnQgcGFuZSBiZWxvdyBhbiBhY2NvcmRpb24gaXRlbSdzIHRpdGxlLlxuQG1peGluIGFjY29yZGlvbi1jb250ZW50IHtcbiAgcGFkZGluZzogJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ7XG4gIGNvbG9yOiAkYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQgPiAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5hY2NvcmRpb24taXRlbSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWl0ZW07XG4gIH1cblxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XG4gIH1cblxuICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250ZW50O1xuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvbi1tZW51XG4vLy8vXG5cbi8vLyBTZXRzIGlmIGFjY29yZGlvbiBtZW51cyBoYXZlIHRoZSBkZWZhdWx0IGFycm93IHN0eWxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnUge1xuICBAaWYgJGFjY29yZGlvbm1lbnUtYXJyb3dzIHtcbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDZweCwgJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtNHB4O1xuICAgICAgICByaWdodDogMXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBiYWRnZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtY29sb3I6IGZvcmVncm91bmQoJGJhZGdlLWJhY2tncm91bmQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBiYWRnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtcGFkZGluZzogMC4zZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGEgYmFkZ2UuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgYmFkZ2UuXG5AbWl4aW4gYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6ICRiYWRnZS1wYWRkaW5nO1xuICBtaW4td2lkdGg6ICRiYWRnZS1taW53aWR0aDtcbiAgZm9udC1zaXplOiAkYmFkZ2UtZm9udC1zaXplO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tYmFkZ2Uge1xuICAuYmFkZ2Uge1xuICAgIEBpbmNsdWRlIGJhZGdlO1xuXG4gICAgYmFja2dyb3VuZDogJGJhZGdlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRiYWRnZS1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJG5hbWUgIT0gcHJpbWFyeSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgICBjb2xvcjogZm9yZWdyb3VuZCgkY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVhZGNydW1ic1xuLy8vL1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBhY3RpdmUgYnJlYWRjcnVtYiBsaW5rLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBPcGFjaXR5IG9mIGRpc2FibGVkIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnJlYWRjcnVtYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgbWFrZXMgYnJlYWRjcnVtYiBsaW5rcyB1cHBlcmNhc2UuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIGEgc2xhc2ggYmV0d2VlbiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXNsYXNoOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgYnJlYWRjcnVtYnMgY29udGFpbmVyLCBhbG9uZyB3aXRoIHRoZSBzdHlsZXMgZm9yIHRoZSBgPGxpPmAgYW5kIGA8YT5gIGVsZW1lbnRzIGluc2lkZSBvZiBpdC5cbkBtaXhpbiBicmVhZGNydW1icy1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAkYnJlYWRjcnVtYnMtbWFyZ2luO1xuXG4gIC8vIEl0ZW0gd3JhcHBlclxuICBsaSB7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDtcbiAgICBmb250LXNpemU6ICRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXNsYXNoIHtcbiAgICAgIC8vIE5lZWQgdG8gZXNjYXBlIHRoZSBiYWNrc2xhc2hcbiAgICAgICRzbGFzaDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAnbHRyJywgJy8nLCAnXFxcXCcpO1xuXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgICAgICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICAgICAgY29udGVudDogJHNsYXNoO1xuICAgICAgICBtYXJnaW46IDAgJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMXB4O1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSB7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnJlYWRjcnVtYnMge1xuICAuYnJlYWRjcnVtYnMge1xuICAgIEBpbmNsdWRlIGJyZWFkY3J1bWJzLWNvbnRhaW5lcjtcblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uLWdyb3VwXG4vLy8vXG5cbi8vLyBNYXJnaW4gZm9yIGJ1dHRvbiBncm91cHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRidXR0b25ncm91cC1zcGFjaW5nOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbicgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIG51bWJlciBvZiBidXR0b25zIHRoYXQgY2FuIGJlIGluIGFuIGV2ZW4td2lkdGggYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XG5cbi8vLyBBZGQgc3R5bGVzIGZvciBhIGJ1dHRvbiBncm91cCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRjaGlsZC1zZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwKFxuICAkY2hpbGQtc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tYm90dG9tOiAkYnV0dG9uZ3JvdXAtbWFyZ2luO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgfVxuXG4gICN7JGNoaWxkLXNlbGVjdG9yfSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYnV0dG9uZ3JvdXAtc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAkYnV0dG9uZ3JvdXAtc3BhY2luZztcbiAgICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXdpZHRoIGJ1dHRvbiBncm91cCwgbWFraW5nIGVhY2ggYnV0dG9uIGVxdWFsIHdpZHRoLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1leHBhbmQoXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkY291bnQ6IG51bGxcbikge1xuICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IC0kYnV0dG9uZ3JvdXAtc3BhY2luZztcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRidXR0b25ncm91cC1leHBhbmQtbWF4IHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICYsICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIH4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7cGVyY2VudGFnZSgxIC8gJGkpfSAtICN7JGJ1dHRvbmdyb3VwLXNwYWNpbmd9KTtcbiAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYnV0dG9uZ3JvdXAtc3BhY2luZztcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRidXR0b25ncm91cC1zcGFjaW5nICogLSRidXR0b25ncm91cC1leHBhbmQtbWF4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG5cbi8vLyBVbi1zdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtdW5zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwIHtcbiAgLmJ1dHRvbi1ncm91cCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIEdyb3VwXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQ7IH1cblxuICAgIC8vIENvbG9yc1xuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAgICYuI3skbmFtZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAmLiN7JG5hbWV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQsXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCxcbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3RhY2s7XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIE1lcmdlYWJsZVNlbGVjdG9yXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FsbG91dFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZhZGUgdmFsdWUgZm9yIGNhbGxvdXQgYmFja2dyb3VuZHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBpbm5lciBwYWRkaW5nIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cywgaWYgdGhlIGNhbGxvdXQgaGFzIGEgZGFyayBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBbW91bnQgdG8gdGludCBsaW5rcyB1c2VkIHdpdGhpbiBjb2xvcmVkIHBhbmVscy4gU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUuXG4vLy8gQHR5cGUgTnVtYmVyIHwgQm9vbGVhblxuJGNhbGxvdXQtbGluay10aW50OiAzMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYSBjYWxsb3V0LCBpbmNsdWRpbmcgcGFkZGluZyBhbmQgbWFyZ2luLlxuQG1peGluIGNhbGxvdXQtYmFzZSgpIHtcbiAgbWFyZ2luOiAkY2FsbG91dC1tYXJnaW47XG4gIHBhZGRpbmc6ICRjYWxsb3V0LXBhZGRpbmc7XG4gIGJvcmRlcjogJGNhbGxvdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkY2FsbG91dC1yYWRpdXM7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICRjYWxsb3V0LWZvbnQtY29sb3I7XG5cbiAgLy8gUmVzcGVjdCB0aGUgcGFkZGluZywgZm9vbC5cbiAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSBxdWljayBzdHlsZXMgZm9yIGEgY2FsbG91dCB1c2luZyBhIHNpbmdsZSBjb2xvciBhcyBhIGJhc2VsaW5lLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dC1zdHlsZSgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgJGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbn1cblxuQG1peGluIGNhbGxvdXQtc2l6ZSgkcGFkZGluZykge1xuICBwYWRkaW5nLXRvcDogJHBhZGRpbmc7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmc7XG4gIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhbGxvdXQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0KCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICBAaW5jbHVkZSBjYWxsb3V0LWJhc2U7XG4gIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FsbG91dCB7XG4gIC5jYWxsb3V0IHtcbiAgICBAaW5jbHVkZSBjYWxsb3V0O1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoMC41cmVtKTtcbiAgICB9XG5cbiAgICAmLmxhcmdlIHtcbiAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgzcmVtKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNsb3NlLWJ1dHRvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGByaWdodGAgb3IgYGxlZnRgLCBhbmQgdGhlIHNlY29uZCB2YWx1ZSBzaG91bGQgYmUgYHRvcGAgb3IgYGJvdHRvbWAuXG4vLy8gQHR5cGUgTGlzdFxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3AgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCAob3IgbGVmdCkgb2Zmc2V0IGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRvcCAob3IgYm90dG9tKSBvZmZzZXQgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1zaXplOiAyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGluZS1oZWlnaHQgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gSXQgYWZmZWN0cyB0aGUgc3BhY2luZyBvZiB0aGUgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24gd2hlbiBiZWluZyBob3ZlcmVkIG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNsb3NlIGJ1dHRvbiwgdXNpbmcgdGhlIHN0eWxlcyBpbiB0aGUgc2V0dGluZ3MgdmFyaWFibGVzLlxuQG1peGluIGNsb3NlLWJ1dHRvbiB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICAjeyR4fTogJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsO1xuICAjeyR5fTogJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDtcbiAgZm9udC1zaXplOiAkY2xvc2VidXR0b24tc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jbG9zZS1idXR0b24ge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBjbG9zZS1idXR0b247XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW4tbmVzdGVkOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgaXRlbXMgaW4gYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhbiBpY29uIGFuZCB0ZXh0IGluIGEgbWVudSBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBtYXJnaW46ICRtZW51LW1hcmdpbjtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXMgYXJlIHRhYmxlIGNlbGwgdG8gYWxsb3cgZm9yIHZlcnRpY2FsIGFsaWdubWVudFxuICA+IGxpIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBsaW5lIGhlaWdodCB0byBtYWtlIHRoZSBoZWlnaHQgb2YgdGhlIG92ZXJhbGwgaXRlbSBlYXNpZXIgdG8gY2FsY3VsYXRlXG4gID4gbGkgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtLXBhZGRpbmc7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb2YgaW5uZXIgZWxlbWVudHNcbiAgaW5wdXQsXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gRXhwYW5kcyB0aGUgaXRlbXMgb2YgYSBNZW51LCBzbyBlYWNoIGl0ZW0gaXMgdGhlIHNhbWUgd2lkdGguXG5AbWl4aW4gbWVudS1leHBhbmQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuICAgID4gbGkge1xuICAgICAgZmxleDogMSAxIDBweDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGRpcmVjdGlvbiBvZiBhIE1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFtob3Jpem9udGFsXSAtIERpcmVjdGlvbiBvZiB0aGUgTWVudS4gQ2FuIGJlIGBob3Jpem9udGFsYCBvciBgdmVydGljYWxgLlxuQG1peGluIG1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgICAgPiBsaSB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICA+IGxpIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgID4gbGkge1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICA+IGxpICA+IGEge1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICA+IGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBtZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2ltcGxlIE1lbnUsIHdoaWNoIGhhcyBubyBwYWRkaW5nIG9yIGhvdmVyIHN0YXRlLlxuQG1peGluIG1lbnUtc2ltcGxlIHtcbiAgbGkge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogZ2V0LXNpZGUoJG1lbnUtaXRlbS1wYWRkaW5nLCAkZ2xvYmFsLXJpZ2h0KTtcbiAgfVxuXG4gIGEge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG5lc3RlZCBNZW51LCBieSBhZGRpbmcgYG1hcmdpbi1sZWZ0YCB0byB0aGUgbWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkcGFkZGluZyBbYXV0b10gLSBMZW5ndGggb2YgdGhlIG1hcmdpbi5cbkBtaXhpbiBtZW51LW5lc3RlZCgkbWFyZ2luOiAkbWVudS1tYXJnaW4tbmVzdGVkKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRtYXJnaW47XG59XG5cbi8vLyBBZGRzIHN1cHBvcnQgZm9yIGljb25zIHRvIE1lbnUgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkcG9zaXRpb24gW3NpZGVdIC0gUG9zaXRpb25pbmcgZm9yIGljb25zLiBDYW4gYmUgYHNpZGVgIChsZWZ0LCBvciByaWdodCBvbiBSVEwpIG9yIGB0b3BgLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGJhc2UgW3RydWVdIC0gU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCB0aGUgc2hhcmVkIENTUyBiZXR3ZWVuIHNpZGUtIGFuZCB0b3AtYWxpZ25lZCBpY29ucyBmcm9tIGJlaW5nIHByaW50ZWQuIFNldCB0aGlzIHRvIGBmYWxzZWAgaWYgeW91J3JlIGNhbGxpbmcgdGhlIG1peGluIG11bHRpcGxlIHRpbWVzIG9uIHRoZSBzYW1lIGVsZW1lbnQuXG5AbWl4aW4gbWVudS1pY29ucygkcG9zaXRpb246IHNpZGUsICRiYXNlOiB0cnVlKSB7XG4gIEBpZiAkYmFzZSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICA+IGxpID4gYSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgaW1nLFxuICAgICAgICBpLFxuICAgICAgICBzdmcge1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICArIHNwYW4ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJHBvc2l0aW9uID09IHNpZGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJG1lbnUtaWNvbi1zcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvICRtZW51LWljb24tc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJG1lbnUtaWNvbi1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZW51LXRleHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHBhZGRpbmc6ICRtZW51LWl0ZW0tcGFkZGluZztcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVudSB7XG4gIC5tZW51IHtcbiAgICBAaW5jbHVkZSBtZW51LWJhc2U7XG4gICAgQGluY2x1ZGUgbWVudS1pY29ucztcblxuICAgIC8vIE9yaWVudGF0aW9uXG4gICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG5cbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LWhvcml6b250YWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi4jeyRzaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2ltcGxlXG4gICAgJi5zaW1wbGUge1xuICAgICAgQGluY2x1ZGUgbWVudS1zaW1wbGU7XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gcmlnaHRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gICAgICAgID4gbGkge1xuICAgICAgICAgIGZsb2F0OiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aFxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG5cbiAgICAgID4gbGk6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIGljb25zXG4gICAgJi5pY29uLXRvcCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb25zKHRvcCwgJGJhc2U6IGZhbHNlKTtcbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJi5uZXN0ZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQ7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmFjdGl2ZSA+IGEge1xuICAgICAgY29sb3I6ICRtZW51LWl0ZW0tY29sb3ItYWN0aXZlO1xuICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG4gIH1cblxuICAubWVudS10ZXh0IHtcbiAgICBAaW5jbHVkZSBtZW51LXRleHQ7XG4gIH1cblxuICAvLyBBbGlnbiBjZW50ZXJcbiAgLm1lbnUtY2VudGVyZWQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgID4gLm1lbnUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC8vIFByZXZlbnQgRk9VQyB3aGVuIHVzaW5nIHRoZSBSZXNwb25zaXZlIE1lbnUgcGx1Z2luXG4gIC5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCJAbWl4aW4gZm91bmRhdGlvbi1tZW51LWljb24ge1xuICAubWVudS1pY29uIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXIoJGNvbG9yOiAkdGl0bGViYXItaWNvbi1jb2xvciwgJGNvbG9yLWhvdmVyOiAkdGl0bGViYXItaWNvbi1jb2xvci1ob3Zlcik7XG4gIH1cblxuICAubWVudS1pY29uLmRhcmsge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJpbGxkb3duXG4vLy8vXG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnR5IHRvIHVzZSBmb3IgYW5pbWF0aW5nIG1lbnVzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYXJyb3dzIHRvIGRyaWxsZG93biBpdGVtcyB3aXRoIHN1Ym1lbnVzLCBhcyB3ZWxsIGFzIHRoZSBiYWNrIGJ1dHRvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJpbGxkb3duLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHN1Ym1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnUge1xuICAvLyBBcHBsaWVkIHRvIHRoZSBNZW51IGNvbnRhaW5lclxuICAuaXMtZHJpbGxkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQXBwbGllZCB0byBuZXN0ZWQgPHVsPnNcbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcbiAgICAvLyBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogJGRyaWxsZG93bi1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zaXRpb246ICRkcmlsbGRvd24tdHJhbnNpdGlvbjtcblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgLTEwMCUsIDEwMCUpKTtcbiAgICB9XG5cbiAgICAmLmlzLWNsb3Npbmcge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAxMDAlLCAtMTAwJSkpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkZHJpbGxkb3duLWFycm93cyB7XG4gICAgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg2cHgsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtcmlnaHQpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtNnB4O1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLWxlZnQpO1xuICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC43NXJlbTsgLy8gQ3JlYXRlcyBzcGFjZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHRcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi13aWR0aDogMzAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgZHJvcGRvd24gcGFuZXMuIEVhY2ggc2l6ZSBpcyBhIENTUyBjbGFzcyB5b3UgY2FuIGFwcGx5LlxuLy8vIEB0eXBlIE1hcFxuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBcHBsaWVzIHN0eWxlcyBmb3IgYSBiYXNpYyBkcm9wZG93bi5cbkBtaXhpbiBkcm9wZG93bi1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iYWNrZ3JvdW5kO1xuICBib3JkZXI6ICRkcm9wZG93bi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRkcm9wZG93bi1yYWRpdXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICRkcm9wZG93bi1mb250LXNpemU7XG4gIHBhZGRpbmc6ICRkcm9wZG93bi1wYWRkaW5nO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6ICRkcm9wZG93bi13aWR0aDtcbiAgei1pbmRleDogMTA7XG5cbiAgJi5pcy1vcGVuIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duIHtcbiAgLmRyb3Bkb3duLXBhbmUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcjtcbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkZHJvcGRvd24tc2l6ZXMge1xuICAgIC5kcm9wZG93bi1wYW5lLiN7JG5hbWV9IHtcbiAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duLW1lbnVcbi8vLy9cblxuLy8vIEVuYWJsZXMgYXJyb3dzIGZvciBpdGVtcyB3aXRoIGRyb3Bkb3duIG1lbnVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyb3Bkb3ducy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gQm9yZGVyIHdpZHRoIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLyBVc2VkIHRvIGFkanVzdCB0b3AgbWFyZ2luIG9mIGEgc3ViLW1lbnUgaWYgYSBib3JkZXIgaXMgdXNlZC5cbi8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGg6IG50aCgkZHJvcGRvd25tZW51LWJvcmRlciwgMSk7XG5cbkBtaXhpbiBsZWZ0LXJpZ2h0LWFycm93cyB7XG4gID4gYTo6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1yaWdodH06IDE0cHg7XG4gICAgbWFyZ2luLXRvcDogLTNweDtcbiAgfVxuXG4gICYub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNXB4LCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgfVxuXG4gICYub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDVweCwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG59XG5cbkBtaXhpbiBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgID4gbGkub3BlbnMtbGVmdCB7XG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpLm9wZW5zLXJpZ2h0IHtcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogMS41cmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg1cHgsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgID4gbGkge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtbGVmdCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1yaWdodCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnUge1xuICAuZHJvcGRvd24ubWVudSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICB9XG5cbiAgICAubm8tanMgJiB1bCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICAgIHdpZHRoOiAxMDBweDtcblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgIH1cblxuICAgICYub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG5cbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgJi5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICBtaW4td2lkdGg6ICRkcm9wZG93bm1lbnUtbWluLXdpZHRoO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogJGRyb3Bkb3dubWVudS1ib3JkZXI7XG5cbiAgICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICh0eXBlLW9mKCRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKSA9PSAnbnVtYmVyJykge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICBtYXJnaW4tdG9wOiAoLSRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIFtUT0RPXSBDdXQgYmFjayBzcGVjaWZpY2l0eVxuICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFNlbGVjdG9yRGVwdGhcbiAgICAvLyY6bm90KC5qcy1kcm9wZG93bi1ub2hvdmVyKSA+IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudDpob3ZlciA+ICYsIC8vIHdoeSBpcyB0aGlzIGxpbmUgbmVlZGVkPyBPcGVuaW5nIGlzIGhhbmRsZWQgYnkgSlMgYW5kIHRoaXMgY2F1c2VzIHNvbWUgdWdseSBmbGlja2VyaW5nIHdoZW4gdGhlIHN1YiBpcyByZS1wb3NpdGlvbmVkIGF1dG9tYXRpY2FsbHkuLi5cbiAgICAmLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsZXgtdmlkZW9cbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIGZsZXggdmlkZW8gY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXh2aWRlby1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIHVzZWQgdG8gY3JlYXRlIGEgNDozIGFzcGVjdCByYXRpby5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4dmlkZW8tcmF0aW86IDQgYnkgMyAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgdXNlZCB0byBjcmVhdGUgYSAxNjo5IGFzcGVjdCByYXRpby5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4dmlkZW8tcmF0aW8td2lkZXNjcmVlbjogMTYgYnkgOSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSBwZXJjZW50YWdlIGhlaWdodCB0aGF0IGNhbiBiZSB1c2VkIGFzIHBhZGRpbmcgaW4gYSBmbGV4IHZpZGVvIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYXRpbyAtIFJhdGlvIHRvIHVzZSB0byBjYWxjdWxhdGUgdGhlIGhlaWdodCwgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuLy8vIEByZXR1cm4ge051bWJlcn0gQSBwZXJjZW50YWdlIHZhbHVlIHRoYXQgY2FuIGJlIHVzZWQgYXMgdGhlIGBwYWRkaW5nLWJvdHRvbWAgcGFyYW1ldGVyIG9mIGEgZmxleCB2aWRlbyBjb250YWluZXIuXG5AZnVuY3Rpb24gZmxleC12aWRlbygkcmF0aW8pIHtcbiAgJHc6IG50aCgkcmF0aW8sIDEpO1xuICAkaDogbnRoKCRyYXRpbywgMyk7XG4gIEByZXR1cm4gJGggLyAkdyAqIDEwMCU7XG59XG5cbi8vLyBDcmVhdGVzIGEgZmxleCB2aWRlbyBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gWyRmbGV4dmlkZW8tcmF0aW9dIC0gUmF0aW8gdG8gdXNlIGZvciB0aGUgY29udGFpbmVyLCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG5AbWl4aW4gZmxleC12aWRlbygkcmF0aW86ICRmbGV4dmlkZW8tcmF0aW8pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiBmbGV4LXZpZGVvKCRyYXRpbyk7XG4gIG1hcmdpbi1ib3R0b206ICRmbGV4dmlkZW8tbWFyZ2luLWJvdHRvbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBpZnJhbWUsXG4gIG9iamVjdCxcbiAgZW1iZWQsXG4gIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC12aWRlbyB7XG4gIC5mbGV4LXZpZGVvIHtcbiAgICBAaW5jbHVkZSBmbGV4LXZpZGVvO1xuXG4gICAgJi53aWRlc2NyZWVuIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBmbGV4LXZpZGVvKCRmbGV4dmlkZW8tcmF0aW8td2lkZXNjcmVlbik7XG4gICAgfVxuXG4gICAgJi52aW1lbyB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGxhYmVsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvcjogZm9yZWdyb3VuZCgkbGFiZWwtYmFja2dyb3VuZCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBvZiBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBiYXNlIHN0eWxlcyBmb3IgYSBsYWJlbC5cbkBtaXhpbiBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogJGxhYmVsLXBhZGRpbmc7XG4gIGZvbnQtc2l6ZTogJGxhYmVsLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYm9yZGVyLXJhZGl1czogJGxhYmVsLXJhZGl1cztcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbGFiZWwge1xuICAubGFiZWwge1xuICAgIEBpbmNsdWRlIGxhYmVsO1xuXG4gICAgYmFja2dyb3VuZDogJGxhYmVsLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJG5hbWUgIT0gcHJpbWFyeSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgICBjb2xvcjogZm9yZWdyb3VuZCgkY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZWRpYS1vYmplY3Rcbi8vLy9cblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9uIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIGltYWdlcyB3aXRoaW4gYSBtZWRpYSBvYmplY3QsIHdoZW4gdGhlIG9iamVjdCBpcyBzdGFja2VkIHZlcnRpY2FsbHkuIFNldCB0byAnYXV0bycgdG8gdXNlIHRoZSBpbWFnZSdzIG5hdHVyYWwgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1lZGlhIG9iamVjdCBjb250YWluZXIuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206ICRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tO1xuICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIGJsb2NrKTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRpbmcgWyRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmddIC0gUGFkZGluZyBiZXR3ZWVuIHNlY3Rpb25zLlxuQG1peGluIG1lZGlhLW9iamVjdC1zZWN0aW9uKCRwYWRkaW5nOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRwYWRkaW5nO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtbGVmdH06ICRwYWRkaW5nO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gc3RhY2sgc2VjdGlvbnMgb2YgYSBtZWRpYSBvYmplY3QuIEFwcGx5IHRoaXMgdG8gdGhlIHNlY3Rpb24gZWxlbWVudHMsIG5vdCB0aGUgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1zdGFjayB7XG4gIHBhZGRpbmc6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6ICRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdCB7XG4gIC5tZWRpYS1vYmplY3Qge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1jb250YWluZXI7XG5cbiAgICBpbWcge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgJi5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0ge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zdGFjaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zZWN0aW9uO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuICAgICAgJi5tYWluLXNlY3Rpb24ge1xuICAgICAgICBmbGV4OiAxIDEgMHB4O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAmLm1pZGRsZSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG5cbiAgICAgICYuYm90dG9tIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG9mZi1jYW52YXNcbi8vLy9cblxuLy8vIFdpZHRoIG9mIGFuIG9mZi1jYW52YXMgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtc2l6ZTogMjUwcHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIG9mZi1jYW52YXMgbWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy16aW5kZXg6IC0xICFkZWZhdWx0O1xuXG4vLy8gTGVuZ3RoIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cyAhZGVmYXVsdDtcblxuLy8vIFRpbWluZyBmdW5jdGlvbiBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgbWVudS5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhIHJldmVhbGVkIG9mZi1jYW52YXMgd2lsbCBiZSBmaXhlZC1wb3NpdGlvbiwgYW5kIHNjcm9sbCB3aXRoIHRoZSBzY3JlZW4uXG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBvdmVybGF5IHRoYXQgYXBwZWFycyB3aGVuIGFuIG9mZi1jYW52YXMgbWVudSBpcyBvcGVuLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gQ1NTIGNsYXNzIHVzZWQgZm9yIHRoZSBtYWluIGNvbnRlbnQgYXJlYS4gVGhlIG9mZi1jYW52YXMgbWl4aW5zIHVzZSB0aGlzIHRvIHRhcmdldCB0aGUgcGFnZSBib2R5LlxuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JyAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgdG8gcGxhY2UgdW5kZXIgdGhlIG1haW4gY29udGVudCBhcmVhLiBUaGlzIHNoYWRvdyBvdmVybGFwcyB0aGUgb2ZmLWNhbnZhcyBtZW51cy5cbi8vLyBAdHlwZSBTaGFkb3dcbiRtYWluY29udGVudC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBiYXNlbGluZSBzdHlsZXMgZm9yIG9mZi1jYW52YXMuIFRoaXMgQ1NTIGlzIHJlcXVpcmVkIHRvIG1ha2UgdGhlIG90aGVyIHBpZWNlcyB3b3JrLlxuQG1peGluIG9mZi1jYW52YXMtYmFzaWNzIHtcbiAgLy8gRXh0cmEgcHJvcGVydGllcyBuZWVkZWQgb24gPGh0bWw+IGFuZCA8Ym9keT4gdG8gbWFrZSBvZmYtY2FudmFzIHdvcmtcbiAgaHRtbCxcbiAgYm9keSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IGF1dG87XG4gIH1cblxuICAub2ZmLWNhbnZhcy13cmFwcGVyLWlubmVyIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwJTsgXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcbiAgfVxuXG4gIC8vIENvbnRhaW5lciBmb3IgcGFnZSBjb250ZW50XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQsXG4gIC4jeyRtYWluY29udGVudC1jbGFzc30ge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB6LWluZGV4OiAxO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjFweDsgLy8gUHJldmVudHMgbWFyZ2luIGNvbGxhcHNpbmcsIHdoaWNoIHdvdWxkIHJldmVhbCB0aGUgYm94IHNoYWRvdyBvZiB0aGUgd3JhcHBlclxuXG4gICAgQGlmIGhhcy12YWx1ZSgkbWFpbmNvbnRlbnQtc2hhZG93KSB7XG4gICAgICBib3gtc2hhZG93OiAkbWFpbmNvbnRlbnQtc2hhZG93O1xuICAgIH1cbiAgfVxuXG4gIC8vIENsaWNrLXRvLWV4aXQgb3ZlcmxheSAoZ2VuZXJhdGVkIGJ5IEphdmFTY3JpcHQpXG4gIC5qcy1vZmYtY2FudmFzLWV4aXQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG4gIH1cbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhbiBvZmYtY2FudmFzIG1lbnUuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtYmFja2dyb3VuZDtcbiAgei1pbmRleDogJG9mZmNhbnZhcy16aW5kZXg7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuQG1peGluIG9mZi1jYW52YXMtcG9zaXRpb24oXG4gICRwb3NpdGlvbjogbGVmdCxcbiAgJHNpemU6ICRvZmZjYW52YXMtc2l6ZSxcbiAgJGZpeGVkOiBmYWxzZVxuKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgbGVmdDogLSRzaXplO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogJHNpemU7XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICByaWdodDogLSRzaXplO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogJHNpemU7XG4gIH1cblxuICAvLyBHZW5lcmF0ZXMgYW4gb3BlbiBzdGF0ZSBjbGFzcyB0aGF0IG1hdGNoZXMgdGhlIHdpZHRoIG9mIHRoZSBtZW51XG4gIEBhdC1yb290IHtcbiAgICAuaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdGhhdCByZXZlYWwgYW4gb2ZmLWNhbnZhcyBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHBvc2l0aW9uIFtsZWZ0XSAtIFBvc2l0aW9uIG9mIHRoZSBvZmYtY2FudmFzIG1lbnUgYmVpbmcgcmV2ZWFsZWQuXG5AbWl4aW4gb2ZmLWNhbnZhcy1yZXZlYWwoXG4gICRwb3NpdGlvbjogbGVmdFxuKSB7XG4gICN7JHBvc2l0aW9ufTogMDtcbiAgei1pbmRleDogYXV0bztcblxuICBAaWYgJG9mZmNhbnZhcy1maXhlZC1yZXZlYWwge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgfVxuXG4gICYgfiAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAkb2ZmY2FudmFzLXNpemU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tb2ZmLWNhbnZhcyB7XG4gIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzaWNzO1xuXG4gIC8vIE9mZi1jYW52YXMgY29udGFpbmVyXG4gIC5vZmYtY2FudmFzIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2U7XG5cbiAgICAmLnBvc2l0aW9uLWxlZnQgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24obGVmdCk7IH1cbiAgICAmLnBvc2l0aW9uLXJpZ2h0ICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24ocmlnaHQpOyB9XG4gIH1cblxuICAvLyBSZXZlYWwgb2ZmLWNhbnZhcyBtZW51IG9uIGxhcmdlciBzY3JlZW5zXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRuYW1lICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwobGVmdCk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwocmlnaHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvcmJpdFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYWN0aXZlIGNvbG9yIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpYW1ldGVyIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBiZXR3ZWVuIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpc3RhbmNlIGZyb20gc2xpZGUgcmVnaW9uIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmcm9tIE9yYml0J3MgYnVsbGV0cyB0byB3aGF0ZXZlciBjb250ZW50IG1heSBsdXJrIGJlbG93IGl0LlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY29udHJvbHMgd2hlbiBob3ZlcmVkLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjb250cm9scy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHotaW5kZXggZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBvdXRlciBPcmJpdCB3cmFwcGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXRgIGNsYXNzLlxuQG1peGluIG9yYml0LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIE9yYml0IHNsaWRlIGNvbnRhaW5lci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNvbnRhaW5lcmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluZGl2aWR1YWwgc2xpZGVzIG9mIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXNsaWRlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1zbGlkZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICYubm8tbW90aW9udWkge1xuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBvcmJpdC1maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzbGlkZSBjb250YWluaW5nIGFuIGltYWdlLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtaW1hZ2VgIGNsYXNzLlxuQG1peGluIG9yYml0LWltYWdlIHtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIG9yYml0IHNsaWRlIGNhcHRpb24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jYXB0aW9uYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAkb3JiaXQtY2FwdGlvbi1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBjb2xvcjogZm9yZWdyb3VuZCgkb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDtcbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIHRoZSBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgaW4gYW4gT3JiaXQgc2xpZGVyLiBUaGVzZSBzdHlsZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIHRoZSBgLm9yYml0LW5leHRgIGFuZCBgLm9yYml0LXByZXZpb3VzYCBjbGFzc2VzIGluIHRoZSBkZWZhdWx0IENTUy5cbkBtaXhpbiBvcmJpdC1jb250cm9sIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG4gIHotaW5kZXg6ICRvcmJpdC1jb250cm9sLXppbmRleDtcbiAgcGFkZGluZzogJG9yYml0LWNvbnRyb2wtcGFkZGluZztcbiAgY29sb3I6ICR3aGl0ZTtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3MuXG5AbWl4aW4gb3JiaXQtcHJldmlvdXMge1xuICAjeyRnbG9iYWwtbGVmdH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IG5leHQgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtbmV4dGAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtbmV4dCB7XG4gICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNvbnRhaW5lciBvZiBPcmJpdCBidWxsZXRzLiAvLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1idWxsZXRzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1idWxsZXRzIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6ICRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDtcbiAgbWFyZ2luLWJvdHRvbTogJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYnV0dG9uIHtcbiAgICB3aWR0aDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBoZWlnaHQ6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XG4gICAgbWFyZ2luOiAkb3JiaXQtYnVsbGV0LW1hcmdpbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9yYml0IHtcbiAgLm9yYml0IHtcbiAgICBAaW5jbHVkZSBvcmJpdC13cmFwcGVyO1xuICB9XG5cbiAgLm9yYml0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udGFpbmVyO1xuICB9XG5cbiAgLm9yYml0LXNsaWRlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1zbGlkZTtcbiAgfVxuXG4gIC5vcmJpdC1maWd1cmUge1xuICAgIEBpbmNsdWRlIG9yYml0LWZpZ3VyZTtcbiAgfVxuXG4gIC5vcmJpdC1pbWFnZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtaW1hZ2U7XG4gIH1cblxuICAub3JiaXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY2FwdGlvbjtcbiAgfVxuXG4gICVvcmJpdC1jb250cm9sIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250cm9sO1xuICB9XG5cbiAgLm9yYml0LXByZXZpb3VzIHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LXByZXZpb3VzO1xuICB9XG5cbiAgLm9yYml0LW5leHQge1xuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XG4gICAgQGluY2x1ZGUgb3JiaXQtbmV4dDtcbiAgfVxuXG4gIC5vcmJpdC1idWxsZXRzIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1idWxsZXRzO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwYWdpbmF0aW9uXG4vLy8vXG5cbi8vLyBGb250IHNpemUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIG9mIHRoZSBwYWdpbmF0aW9uIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKSAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IG1hcmdpbiB0byBzZXBhcmF0ZSBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBwYWdpbmF0aW9uIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogZm9yZWdyb3VuZCgkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudCkgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZWxsaXBzaXMgaW4gYSBwYWdpbmF0aW9uIG1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgZmFsc2VgLCBkb24ndCBkaXNwbGF5IHBhZ2UgbnVtYmVyIGxpbmtzIG9uIG1vYmlsZSwgb25seSBuZXh0L3ByZXZpb3VzIGxpbmtzXG4vLy8gYW5kIG9wdGlvbmFsbHkgY3VycmVudCBwYWdlIG51bWJlci5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYGZhbHNlYCwgZG9uJ3QgZGlzcGxheSBjdXJyZW50IHBhZ2UgbnVtYmVyIG9uIG1vYmlsZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYXJyb3dzIGFyZSBhZGRlZCB0byB0aGUgbmV4dCBhbmQgcHJldmlvdXMgbGlua3Mgb2YgcGFnaW5hdGlvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwYWdpbmF0aW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tO1xuXG4gIC8vIExpc3QgaXRlbVxuICBsaSB7XG4gICAgZm9udC1zaXplOiAkcGFnaW5hdGlvbi1mb250LXNpemU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZztcbiAgICBib3JkZXItcmFkaXVzOiAkcGFnaW5hdGlvbi1yYWRpdXM7XG5cbiAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cblxuICAgICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW0ge1xuICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhLFxuICBidXR0b24ge1xuICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZztcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBjdXJyZW50IHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudCB7XG4gIHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZztcbiAgYmFja2dyb3VuZDogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ7XG4gIGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQge1xuICBwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc7XG4gIGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gZWxsaXBzaXMgZm9yIHVzZSBpbiBhIHBhZ2luYXRpb24gbGlzdC5cbkBtaXhpbiBwYWdpbmF0aW9uLWVsbGlwc2lzIHtcbiAgY29udGVudDogJ1xcMjAyNic7XG4gIHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZztcbiAgY29sb3I6ICRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wYWdpbmF0aW9uIHtcbiAgLnBhZ2luYXRpb24ge1xuICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tY29udGFpbmVyO1xuXG4gICAgLmN1cnJlbnQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWN1cnJlbnQ7XG4gICAgfVxuXG4gICAgLmRpc2FibGVkIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAuZWxsaXBzaXM6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tZWxsaXBzaXM7XG4gICAgfVxuICB9XG5cbiAgQGlmICRwYWdpbmF0aW9uLWFycm93cyB7XG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMgYTo6YmVmb3JlLFxuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMDBhYic7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC41cmVtO1xuICAgIH1cblxuICAgIC5wYWdpbmF0aW9uLW5leHQgYTo6YWZ0ZXIsXG4gICAgLnBhZ2luYXRpb24tbmV4dC5kaXNhYmxlZDo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1xcMDBiYic7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwLjVyZW07XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHByb2dyZXNzIGJhciBjb250YWluZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJhY2tncm91bmQ7XG4gIGhlaWdodDogJHByb2dyZXNzLWhlaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogJHByb2dyZXNzLW1hcmdpbi1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIG1ldGVyIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuQG1peGluIHByb2dyZXNzLW1ldGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kO1xuXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGV4dCBpbiB0aGUgcHJvZ3Jlc3MgbWV0ZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm9ncmVzcy1iYXIge1xuICAvLyBQcm9ncmVzcyBiYXJcbiAgLnByb2dyZXNzIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1jb250YWluZXI7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSW5uZXIgbWV0ZXJcbiAgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlcjtcbiAgfVxuXG4gIC8vIElubmVyIG1ldGVyIHRleHRcbiAgLnByb2dyZXNzLW1ldGVyLXRleHQge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyLXRleHQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBbVE9ET10gQ2hlY2sgaG93IHBsdWdpbiBjb25maXJtcyBkaXNhYmxlZCBvciB2ZXJ0aWNhbCBzdGF0dXNcbi8vIFtUT0RPXSBDaGVjayBpZiB0cmFuc2l0aW9uOiBhbGw7IGlzIG5lY2Vzc2FyeVxuXG4vLy8vXG4vLy8gQGdyb3VwIHNsaWRlclxuLy8vL1xuXG4vLy8gRGVmYXVsdCBzbGlkZXIgd2lkdGggb2YgYSB2ZXJ0aWNhbCBzbGlkZXIuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydGllcyB0byBhcHBseSB0byB0aGUgc2xpZGVyIGhhbmRsZSBhbmQgZmlsbC4gKERvZXNuJ3QgYXBwbHkgdG8gdGhlIG5hdGl2ZSBzbGlkZXIuKVxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciBhY3RpdmUgZmlsbCBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1maWxsLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGhlIHNsaWRlciBoYW5kbGVzLlxuQG1peGluIHNsaWRlci1oYW5kbGUge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNjYWxlLWNvbG9yKCRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuICB9XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG5AbWl4aW4gc2xpZGVyLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5AbWl4aW4gc2xpZGVyLXZlcnRpY2FsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogJHNsaWRlci13aWR0aC12ZXJ0aWNhbDtcbiAgaGVpZ2h0OiAxMi41cmVtO1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG5cbiAgLnNsaWRlci1maWxsIHtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXNsaWRlciB7XG4gIC8vIENvbnRhaW5lclxuICAuc2xpZGVyIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItY29udGFpbmVyO1xuICB9XG5cbiAgLy8gRmlsbCBhcmVhXG4gIC5zbGlkZXItZmlsbCB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWZpbGw7XG4gIH1cblxuICAvLyBEcmFnZ2FibGUgaGFuZGxlXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItaGFuZGxlO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgLnNsaWRlci5kaXNhYmxlZCxcbiAgLnNsaWRlcltkaXNhYmxlZF0ge1xuICAgIEBpbmNsdWRlIHNsaWRlci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsIHNsaWRlclxuICAuc2xpZGVyLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItdmVydGljYWw7XG4gIH1cblxuICAvLyBSVEwgc3VwcG9ydFxuICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xuICAgIC5zbGlkZXI6bm90KC52ZXJ0aWNhbCkge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tc3RpY2t5IHtcbiAgLnN0aWNreS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5zdGlja3kge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAuc3RpY2t5LmlzLXN0dWNrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogNTtcblxuICAgICYuaXMtYXQtdG9wIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCByZXZlYWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2lkdGggb2YgYSBtb2RhbCwgd2l0aCBubyBjbGFzcyBhcHBsaWVkLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC13aWR0aDogNjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1heGltdW0gd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gei1pbmRleCBmb3IgbW9kYWxzLiBUaGUgb3ZlcmxheSB1c2VzIHRoaXMgdmFsdWUsIHdoaWxlIHRoZSBtb2RhbCBpdHNlbGYgdXNlcyB0aGlzIHZhbHVlIHBsdXMgb25lLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC16aW5kZXg6IDEwMDUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIG1vZGFsIG92ZXJsYXlzLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNDUpICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbW9kYWwgb3ZlcmxheS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgb3ZlcmxheS5cbkBtaXhpbiByZXZlYWwtb3ZlcmxheSgkYmFja2dyb3VuZDogJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQpIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXggKyAxO1xuICBwYWRkaW5nOiAkcmV2ZWFsLXBhZGRpbmc7XG4gIGJvcmRlcjogJHJldmVhbC1ib3JkZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRyZXZlYWwtYmFja2dyb3VuZDtcbiAgYm9yZGVyLXJhZGl1czogJHJldmVhbC1yYWRpdXM7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gIC5jb2x1bW4sXG4gIC5jb2x1bW5zIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAvLyBTdHJpcCBtYXJnaW5zIGZyb20gdGhlIGxhc3QgaXRlbSBpbiB0aGUgbW9kYWxcbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRqdXN0cyB0aGUgd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIC0gV2lkdGggb2YgdGhlIG1vZGFsLiBHZW5lcmFsbHkgYSBwZXJjZW50YWdlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4LXdpZHRoIFskcmV2ZWFsLW1heC13aWR0aF0gLSBNYXhpbXVtIHdpZHRoIG9mIHRoZSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtd2lkdGgoXG4gICR3aWR0aDogJHJldmVhbC13aWR0aCxcbiAgJG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGhcbikge1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIEBleHRlbmQgJXJldmVhbC1jZW50ZXJlZDtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGg7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXNjcmVlbiBtb2RhbCwgd2hpY2ggc3RyZXRjaGVzIHRoZSBmdWxsIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHdpbmRvdy5cbkBtaXhpbiByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbiB7XG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIER1cGxpY2F0ZVByb3BlcnR5XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmV2ZWFsIHtcbiAgLy8gW1RPRE9dIElzIHRoaXMgbmVjZXNzYXJ5P1xuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBRdWFsaWZ5aW5nRWxlbWVudFxuICBib2R5LmlzLXJldmVhbC1vcGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG4gIC8vIGh0bWwgZ2V0cyB0aGlzIGNsYXNzIG9ubHkgaW4gaU9TXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4sXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4gYm9keSB7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICB9XG5cbiAgLy8gT3ZlcmxheVxuICAucmV2ZWFsLW92ZXJsYXkge1xuICAgIEBpbmNsdWRlIHJldmVhbC1vdmVybGF5O1xuICB9XG5cbiAgLy8gTW9kYWwgY29udGFpbmVyXG4gIC5yZXZlYWwge1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlO1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgkcmV2ZWFsLXdpZHRoKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxMDBweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIFBsYWNlaG9sZGVyIHNlbGVjdG9yIGZvciBtZWRpdW0tYW5kLXVwIG1vZGFsc1xuICAgIC8vIFByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgd2hlbiBkZWZpbmluZyBtdWx0aXBsZSBSZXZlYWwgc2l6ZXNcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgJXJldmVhbC1jZW50ZXJlZCB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgcGFkZGluZ1xuICAgICYuY29sbGFwc2Uge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvLyBTaXppbmcgY2xhc3Nlc1xuICAgICYudGlueSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoMzAlKTsgfVxuICAgICYuc21hbGwgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoNTAlKTsgfVxuICAgICYubGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoOTAlKTsgfVxuXG4gICAgLy8gRnVsbC1zY3JlZW4gbW9kZVxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgICYud2l0aG91dC1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHN3aXRjaFxuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGFjdGl2ZSBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2gsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnRpbnkgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC10aW55OiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAuc21hbGwgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC5sYXJnZSBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIG9mIHRoZSBzd2l0Y2hcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBzd2l0Y2ggY29udGFpbmVyIGFuZCBwYWRkbGUuXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gYm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoIHBhZGRsZVxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHN3aXRjaCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLyBtYWtlIHRoZW0gdmFyaWFibGVzXG4vLyBhc2sgYWJvdXQgYWNjZXNzaWJpbGl0eSBvbiBsYWJlbFxuLy8gY2hhbmdlIGNsYXNzIG5hbWUgZm9yIHRleHRcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBjb250YWluZXIgY2xhc3MuXG5AbWl4aW4gc3dpdGNoLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206ICRzd2l0Y2gtbWFyZ2luO1xuICBvdXRsaW5lOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuXG4gIC8vIFRoZXNlIHByb3BlcnRpZXMgY2FzY2FkZSBkb3duIHRvIHRoZSBzd2l0Y2ggdGV4dFxuICBjb2xvcjogJHdoaXRlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggaW5wdXQuIEFwcGx5IHRoaXMgdG8gYW4gYDxpbnB1dD5gIHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtaW5wdXQge1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGJhY2tncm91bmQgYW5kIHBhZGRsZSBvZiBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byBhIGA8bGFiZWw+YCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXBhZGRsZSB7XG4gIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNHJlbTtcbiAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcbiAgdHJhbnNpdGlvbjogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjtcbiAgYm9yZGVyLXJhZGl1czogJHN3aXRjaC1yYWRpdXM7XG5cbiAgLy8gUmVzZXR0aW5nIHRoZXNlIDxsYWJlbD4gcHJlc2V0cyBzbyB0eXBlIHN0eWxlcyBjYXNjYWRlIGRvd25cbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXG4gIC8vIE5lZWRlZCB0byBvdmVycmlkZSBzcGVjaWZpY2l0eVxuICBpbnB1dCArICYge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIFRoZSBwYWRkbGUgaXRzZWxmXG4gICY6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDAuMjVyZW07XG4gICAgdG9wOiAwLjI1cmVtO1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgdHJhbnNpdGlvbjogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcGFkZGxlLXJhZGl1cztcbiAgfVxuXG4gIC8vIENoYW5nZSB0aGUgdmlzdWFsIHN0eWxlIHdoZW4gdGhlIHN3aXRjaCBpcyBhY3RpdmVcbiAgaW5wdXQ6Y2hlY2tlZCB+ICYge1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06IDIuMjVyZW07XG4gICAgfVxuICB9XG5cbiAgaW5wdXQ6Zm9jdXMgfiAmIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGFjdGl2ZS9pbmFjdGl2ZSB0ZXh0IGluc2lkZSBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byB0ZXh0IGVsZW1lbnRzIGluc2lkZSB0aGUgc3dpdGNoIGA8bGFiZWw+YC5cbkBtaXhpbiBzd2l0Y2gtdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC10ZXh0LWFjdGl2ZSB7XG4gICN7JGdsb2JhbC1sZWZ0fTogOCU7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5hY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXRleHQtaW5hY3RpdmUge1xuICAjeyRnbG9iYWwtcmlnaHR9OiAxNSU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc2l6ZSBvZiBhIHN3aXRjaCBieSBtb2RpZnlpbmcgdGhlIHNpemUgb2YgdGhlIGJvZHkgYW5kIHBhZGRsZS4gQXBwbHkgdGhpcyB0byBhIHN3aXRjaCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmb250LXNpemUgWzFyZW1dIC0gRm9udCBzaXplIG9mIGxhYmVsIHRleHQgd2l0aGluIHRoZSBzd2l0Y2guXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbNHJlbV0gLSBXaWR0aCBvZiB0aGUgc3dpdGNoIGJvZHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzJyZW1dIC0gSGVpZ2h0IG9mIHRoZSBzd2l0Y2ggYm9keS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRsZS13aWR0aCBbMS41cmVtXSAtIFdpZHRoIG9mIHRoZSBzd2l0Y2ggcGFkZGxlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGxlLW9mZnNldCBbMC4yNXJlbV0gLSBTcGFjaW5nIGJldHdlZW4gdGhlIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBzd2l0Y2ggYm9keS5cbkBtaXhpbiBzd2l0Y2gtc2l6ZShcbiAgJGZvbnQtc2l6ZTogMXJlbSxcbiAgJHdpZHRoOiA0cmVtLFxuICAkaGVpZ2h0OiAycmVtLFxuICAkcGFkZGxlLXdpZHRoOiAxLjVyZW0sXG4gICRwYWRkbGUtb2Zmc2V0OiAwLjI1cmVtXG4pIHtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRoZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1sZWZ0LWFjdGl2ZTogJHdpZHRoIC0gJHBhZGRsZS13aWR0aCAtICRwYWRkbGUtb2Zmc2V0O1xuXG4gIGhlaWdodDogJGhlaWdodDtcbiAgXG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIH1cblxuICAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG4gIH1cblxuICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtbGVmdC1hY3RpdmU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tc3dpdGNoIHtcbiAgLy8gQ29udGFpbmVyIGNsYXNzXG4gIC5zd2l0Y2gge1xuICAgIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIDxpbnB1dD4gZWxlbWVudFxuICAuc3dpdGNoLWlucHV0IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtaW5wdXQ7XG4gIH1cblxuICAvLyA8bGFiZWw+IGVsZW1lbnRcbiAgLnN3aXRjaC1wYWRkbGUge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1wYWRkbGU7XG4gIH1cblxuICAvLyBCYXNlIGxhYmVsIHRleHQgc3R5bGVzXG4gICVzd2l0Y2gtdGV4dCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQ7XG4gIH1cblxuICAvLyBBY3RpdmUgbGFiZWwgdGV4dCBzdHlsZXNcbiAgLnN3aXRjaC1hY3RpdmUge1xuICAgIEBleHRlbmQgJXN3aXRjaC10ZXh0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWFjdGl2ZTtcbiAgfVxuXG4gIC8vIEluYWN0aXZlIGxhYmVsIHRleHQgc3R5bGVzXG4gIC5zd2l0Y2gtaW5hY3RpdmUge1xuICAgIEBleHRlbmQgJXN3aXRjaC10ZXh0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWluYWN0aXZlO1xuICB9XG5cbiAgLy8gU3dpdGNoIHNpemVzXG4gIC5zd2l0Y2gudGlueSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTApLCAzcmVtLCAkc3dpdGNoLWhlaWdodC10aW55LCAxcmVtLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5zbWFsbCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTIpLCAzLjVyZW0sICRzd2l0Y2gtaGVpZ2h0LXNtYWxsLCAxLjI1cmVtLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5sYXJnZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTYpLCA1cmVtLCAkc3dpdGNoLWhlaWdodC1sYXJnZSwgMnJlbSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIE1lcmdlYWJsZVNlbGVjdG9yLCBRdWFsaWZ5aW5nRWxlbWVudFxuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYmxlXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciB0YWJsZSBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlICAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgc3RyaXBlZCB0YWJsZSByb3dzIGFuZCB0aGUgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc3R5bGUgZm9yIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYmxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RhbmRhcmQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0cmlwZWQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBzdHJpcGVkIHJvd3MuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgc3RyaXBlIG9uIHJvd3Mgb2YgdGhlIHRhYmxlcywgZXhjbHVkaW5nIHRoZSBoZWFkZXIgYW5kIGZvb3Rlci4gSWYgZXZlbiwgdGhlIGV2ZW4gcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBvZGQsIHRoZSBvZGQgcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBlbXB0eSwgb3IgYW55IG90aGVyIHZhbHVlLCB0aGUgdGFibGUgcm93cyB3aWxsIGhhdmUgbm8gc3RyaXBpbmcuXG4vLy8gQHR5cGUgS2V5d29yZFxuJHRhYmxlLXN0cmlwZTogZXZlbiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlYWRlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlIC8gMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBmb290ZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGhlYWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9vdGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgaGVhZGVyIHdoZW4gdXNpbmcgc3RhY2tlZCB0YWJsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZSAhZGVmYXVsdDtcblxuQG1peGluIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSkge1xuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRmb290IHtcbiAgICBib3JkZXI6ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDYXB0aW9uXG4gIGNhcHRpb24ge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICB9XG4gIFxuICAvLyBUYWJsZSBoZWFkXG4gIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtaGVhZC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgZm9vdFxuICB0Zm9vdCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWZvb3QtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWZvb3QtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWQgYW5kIGZvb3RcbiAgdGhlYWQsXG4gIHRmb290IHtcbiAgICAvLyBSb3dzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdHIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLy8gQ2VsbHMgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgdGV4dC1hbGlnbjogI3skZ2xvYmFsLWxlZnR9O1xuICAgIH1cbiAgfVxuXG4gIC8vIFRhYmxlIHJvd3NcbiAgdGJvZHkge1xuICAgIHRyIHtcbiAgICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gZXZlbiwgZGFya2VuIHRoZSBldmVuIHJvd3MuXG4gICAgICBAaWYgJHN0cmlwZSA9PSBldmVuIHtcbiAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBvZGQsIGRhcmtlbiB0aGUgb2RkIHJvd3MuXG4gICAgICBAZWxzZSBpZiAkc3RyaXBlID09IG9kZCB7XG4gICAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0YWJsZXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RyaXBlIFskdGFibGUtc3RyaXBlXSAtIFVzZXMga2V5d29yZHMgZXZlbiwgb2RkLCBvciBub25lIHRvIGRhcmtlbiByb3dzIG9mIHRoZSB0YWJsZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZXZlbi5cbkBtaXhpbiB0YWJsZShcbiAgJHN0cmlwZTogJHRhYmxlLXN0cmlwZSxcbiAgJG5lc3Q6IGZhbHNlXG4pIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuICBAaWYgJG5lc3Qge1xuICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBhdC1yb290IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBhYmlsaXR5IHRvIGhvcml6b250YWxseSBzY3JvbGwgdGhlIHRhYmxlIHdoZW4gdGhlIGNvbnRlbnQgb3ZlcmZsb3dzIGhvcml6b250YWxseS5cbkBtaXhpbiB0YWJsZS1zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi8vLyBTbGlnaHRseSBkYXJrZW5zIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuQG1peGluIHRhYmxlLWhvdmVyIHtcbiAgdGhlYWQgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtaGVhZC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGZvb3QgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtZm9vdC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGJvZHkgdHIge1xuICAgIC8vRGFya2VucyB0aGUgbm9uLXN0cmlwZWQgdGFibGUgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctaG92ZXI7XG4gICAgfVxuXG4gICAgLy9EYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9EYXJrZW5zIHRoZSBvZGQgc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBlbHNlaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICY6bnRoLW9mLXR5cGUob2RkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3RhY2tlZCB0YWJsZS4gVXNlZnVsIGZvciBzbWFsbC1zY3JlZW4gbGF5b3V0cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRoZWFkZXIgWyRzaG93LWhlYWRlci1mb3Itc3RhY2tlZF0gLSBTaG93IHRoZSBmaXJzdCB0aCBvZiBoZWFkZXIgd2hlbiBzdGFja2VkLlxuQG1peGluIHRhYmxlLXN0YWNrKCRoZWFkZXI6ICRzaG93LWhlYWRlci1mb3Itc3RhY2tlZCkge1xuICBAaWYgJGhlYWRlciB7XG4gICAgdGhlYWQge1xuICAgICAgdGg6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgdGgge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgdGhlYWQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICB0Zm9vdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIHRyLFxuICB0aCxcbiAgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgdGQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFibGUoJG5lc3Q6IGZhbHNlKSB7XG4gIHRhYmxlIHtcbiAgICBAaW5jbHVkZSB0YWJsZSgkbmVzdDogJG5lc3QpO1xuICB9XG5cbiAgdGFibGUuc3RhY2sge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgIEBpbmNsdWRlIHRhYmxlLXN0YWNrO1xuICAgIH1cbiAgfVxuXG4gIHRhYmxlLnNjcm9sbCB7XG4gICAgQGluY2x1ZGUgdGFibGUtc2Nyb2xsO1xuICB9XG5cbiAgdGFibGUuaG92ZXIge1xuICAgIEBpbmNsdWRlIHRhYmxlLWhvdmVyO1xuICB9XG5cbiAgLnRhYmxlLXNjcm9sbCB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIHRhYmxlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDaGVja3MgdGhlIGxpZ2h0bmVzcyBvZiBgJGNvbG9yYCwgYW5kIGlmIGl0IHBhc3NlcyB0aGUgYCR0aHJlc2hvbGRgIG9mIGxpZ2h0bmVzcywgaXQgcmV0dXJucyB0aGUgYCR5ZXNgIGNvbG9yLiBPdGhlcndpc2UsIGl0IHJldHVybnMgdGhlIGAkbm9gIGNvbG9yLiBVc2UgdGhpcyBmdW5jdGlvbiB0byBkeW5hbWljYWxseSBvdXRwdXQgYSBmb3JlZ3JvdW5kIGNvbG9yIGJhc2VkIG9uIGEgZ2l2ZW4gYmFja2dyb3VuZCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIGNoZWNrIHRoZSBsaWdodG5lc3Mgb2YuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHllcyBbJGJsYWNrXSAtIENvbG9yIHRvIHJldHVybiBpZiBgJGNvbG9yYCBpcyBsaWdodC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkbm8gWyR3aGl0ZV0gLSBDb2xvciB0byByZXR1cm4gaWYgYCRjb2xvcmAgaXMgZGFyay5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzYwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IFRoZSAkeWVzIGNvbG9yIG9yICRubyBjb2xvci5cbkBmdW5jdGlvbiBmb3JlZ3JvdW5kKCRjb2xvciwgJHllczogJGJsYWNrLCAkbm86ICR3aGl0ZSwgJHRocmVzaG9sZDogNjAlKSB7XG4gIEBpZiAkY29sb3IgPT0gdHJhbnNwYXJlbnQge1xuICAgICRjb2xvcjogJGJvZHktYmFja2dyb3VuZDtcbiAgfVxuICBAaWYgKGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCkge1xuICAgIEByZXR1cm4gJHllcztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkbm87XG4gIH1cbn1cblxuLy8vIFNjYWxlcyBhIGNvbG9yIHRvIGJlIGxpZ2h0ZXIgaWYgaXQncyBsaWdodCwgb3IgZGFya2VyIGlmIGl0J3MgZGFyay4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gdGludCBhIGNvbG9yIGFwcHJvcHJpYXRlIHRvIGl0cyBsaWdodG5lc3MuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRzY2FsZSBbNSVdIC0gQW1vdW50IHRvIHNjYWxlIHVwIG9yIGRvd24uXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkdGhyZXNob2xkIFs0MCVdIC0gVGhyZXNob2xkIG9mIGxpZ2h0bmVzcyB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBBIHNjYWxlZCBjb2xvci5cbkBmdW5jdGlvbiBzbWFydC1zY2FsZSgkY29sb3IsICRzY2FsZTogNSUsICR0aHJlc2hvbGQ6IDQwJSkge1xuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcbiAgICAkc2NhbGU6IC0kc2NhbGU7XG4gIH1cbiAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XG59XG5cbi8vLyBHZXQgY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEBwYXJhbSB7a2V5fSBjb2xvciBrZXkgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbkBmdW5jdGlvbiBnZXQtY29sb3IoJGtleSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KTtcbiAgfSBAZWxzZSB7XG4gICAgQGVycm9yICdnaXZlbiAka2V5IGlzIG5vdCBhdmFpbGFibGUgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSc7XG4gIH1cbn1cblxuLy8vIFRyYW5zZmVycyB0aGUgY29sb3JzIGluIHRoZSBgJGZvdW5kYXRpb24tcGFsZXR0ZWAgdmFyaWFibGUgaW50byB0aGUgbGVnYWN5IGNvbG9yIHZhcmlhYmxlcywgc3VjaCBhcyBgJHByaW1hcnktY29sb3JgIGFuZCBgJHNlY29uZGFyeS1jb2xvcmAuIENhbGwgdGhpcyBtaXhpbiBiZWxvdyB0aGUgR2xvYmFsIHNlY3Rpb24gb2YgeW91ciBzZXR0aW5ncyBmaWxlIHRvIHByb3Blcmx5IG1pZ3JhdGUgeW91ciBjb2RlYmFzZS5cbkBtaXhpbiBhZGQtZm91bmRhdGlvbi1jb2xvcnMoKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gICAgJHByaW1hcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSB7XG4gICAgJHNlY29uZGFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSB7XG4gICAgJHdhcm5pbmctY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpIHtcbiAgICAkYWxlcnQtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFnbG9iYWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYnNcbi8vLy9cblxuLy8vIERlZmF1bHQgbWFyZ2luIG9mIHRoZSB0YWIgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIGFjdGl2ZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGFiIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGEgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIG51bWJlciBvZiBgZXhwYW5kLW5gIGNsYXNzZXMgdG8gaW5jbHVkZSBpbiB0aGUgQ1NTLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtY29sb3I6IGZvcmVncm91bmQoJHRhYi1iYWNrZ3JvdW5kLCAkcHJpbWFyeS1jb2xvcikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46ICR0YWItbWFyZ2luO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICR0YWItYmFja2dyb3VuZDtcbiAgYm9yZGVyOiAxcHggc29saWQgJHRhYi1jb250ZW50LWJvcmRlcjtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRhaW5lciB0byBoYXZlIHZlcnRpY2FsIHRhYnMuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGFpbmVyKClgLlxuQG1peGluIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsIHtcbiAgPiBsaSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgbGlua3Mgd2l0aGluIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgYDxsaT5gIGVsZW1lbnRzIGluc2lkZSBhIHRhYiBjb250YWluZXIuXG5AbWl4aW4gdGFicy10aXRsZSB7XG4gIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkdGFiLWl0ZW0tcGFkZGluZztcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXNpemU6ICR0YWItaXRlbS1mb250LXNpemU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJlthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICAgICAgYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgd3JhcHBlciB0aGF0IHN1cnJvdW5kcyBhIHRhYiBncm91cCdzIGNvbnRlbnQgcGFuZXMuXG5AbWl4aW4gdGFicy1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogJHRhYi1jb250ZW50LWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR0YWItY29udGVudC1ib3JkZXI7XG4gIGJvcmRlci10b3A6IDA7XG59XG5cbi8vLyBBdWdtZW50cyBhIHRhYiBjb250ZW50IGNvbnRhaW5lciB0byBoYXZlIGEgdmVydGljYWwgc3R5bGUsIGJ5IHNoaWZ0aW5nIHRoZSBib3JkZXIgYXJvdW5kLiBVc2UgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGB0YWJzLWNvbnRlbnQoKWAuXG5AbWl4aW4gdGFicy1jb250ZW50LXZlcnRpY2FsIHtcbiAgYm9yZGVyOiAxcHggc29saWQgJHRhYi1jb250ZW50LWJvcmRlcjtcbiAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBpbmRpdmlkdWFsIHRhYiBjb250ZW50IHBhbmVsIHdpdGhpbiB0aGUgdGFiIGNvbnRlbnQgY29udGFpbmVyLlxuQG1peGluIHRhYnMtcGFuZWwge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkdGFiLWNvbnRlbnQtcGFkZGluZztcblxuICAmLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFicyB7XG4gIC50YWJzIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsXG4gIC50YWJzLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFNpbXBsZVxuICAudGFicy5zaW1wbGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmltYXJ5IGNvbG9yXG4gIC50YWJzLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgPiBsaSA+IGEge1xuICAgICAgY29sb3I6IGZvcmVncm91bmQoJHByaW1hcnktY29sb3IpO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCRwcmltYXJ5LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGFicy10aXRsZSB7XG4gICAgQGluY2x1ZGUgdGFicy10aXRsZTtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudDtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudC12ZXJ0aWNhbDtcbiAgfVxuXG4gIC50YWJzLXBhbmVsIHtcbiAgICBAaW5jbHVkZSB0YWJzLXBhbmVsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aHVtYm5haWxcbi8vLy9cblxuLy8vIEJvcmRlciBhcm91bmQgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBCb3JkZXJcbiR0aHVtYm5haWwtYm9yZGVyOiBzb2xpZCA0cHggJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BydGllcyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgdGh1bWJuYWlsIHN0eWxlcyB0byBhbiBlbGVtZW50LlxuQG1peGluIHRodW1ibmFpbCB7XG4gIGJvcmRlcjogJHRodW1ibmFpbC1ib3JkZXI7XG4gIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb246ICR0aHVtYm5haWwtdHJhbnNpdGlvbjtcbiAgYm9yZGVyLXJhZGl1czogJHRodW1ibmFpbC1yYWRpdXM7XG4gIG1hcmdpbi1ib3R0b206ICR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAkdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10aHVtYm5haWwge1xuICAudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRpdGxlLWJhclxuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRpdGxlYmFyLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIFdlaWdodFxuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBtZW51IGljb25zIGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWljb24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIHRoZSBtZW51IGljb24gYW5kIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdGl0bGUtYmFyIHtcbiAgLnRpdGxlLWJhciB7XG4gICAgYmFja2dyb3VuZDogJHRpdGxlYmFyLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0aXRsZWJhci1jb2xvcjtcbiAgICBwYWRkaW5nOiAkdGl0bGViYXItcGFkZGluZztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cblxuICAgIC5tZW51LWljb24ge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHRpdGxlYmFyLWljb24tc3BhY2luZztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4gICAgLnRpdGxlLWJhci1sZWZ0LFxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxleDogMSAxIDBweDtcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRpdGxlLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLnRpdGxlLWJhci10aXRsZSB7XG4gICAgZm9udC13ZWlnaHQ6ICR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b29sdGlwXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBib3R0b20gb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBMaXN0XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgZm9udC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIG9mIHRoZSB0b29sdGlwIHRleHQuIEJ5IGRlZmF1bHQsIHdlIHJlY29tbWVuZCBhIHNtYWxsZXIgZm9udCBzaXplIHRoYW4gdGhlIGJvZHkgY29weS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIHdpZHRoIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIGhlaWdodCBmb3IgdG9vbHRpcHMuIFRoaXMgaXMgaGVscGZ1bCBmb3IgY2FsY3VsYXRpbmcgdGhlIGRpc3RhbmNlIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvb2x0aXAgd29yZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGhhcy10aXAge1xuICBib3JkZXItYm90dG9tOiAkaGFzLXRpcC1ib3JkZXItYm90dG9tO1xuICBmb250LXdlaWdodDogJGhhcy10aXAtZm9udC13ZWlnaHQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjdXJzb3I6IGhlbHA7XG59XG5cbkBtaXhpbiB0b29sdGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjtcbiAgY29sb3I6ICR0b29sdGlwLWNvbG9yO1xuICBmb250LXNpemU6ICR0b29sdGlwLWZvbnQtc2l6ZTtcbiAgcGFkZGluZzogJHRvb2x0aXAtcGFkZGluZztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbiAgdG9wOiBjYWxjKDEwMCUgKyAjeyR0b29sdGlwLXBpcC1oZWlnaHR9KTtcbiAgbWF4LXdpZHRoOiAxMHJlbSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAkdG9vbHRpcC1yYWRpdXM7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCB1cCk7XG4gICAgYm90dG9tOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG5cbiAgJi50b3A6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgZG93bik7XG4gICAgdG9wOiAxMDAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgfVxuXG4gICYubGVmdDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCByaWdodCk7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG5cbiAgJi5yaWdodDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBsZWZ0KTtcbiAgICBib3R0b206IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMTAwJTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9vbHRpcCB7XG4gIC5oYXMtdGlwIHtcbiAgICBAaW5jbHVkZSBoYXMtdGlwO1xuICB9XG5cbiAgLnRvb2x0aXAge1xuICAgIEBpbmNsdWRlIHRvb2x0aXA7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRvcC1iYXJcbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdG9wIGJhci4gVGhpcyBjb2xvciBhbHNvIGNhc2NhZGVzIHRvIG1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igc3VibWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLiBVc2VmdWxsIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyB0cmFuc3BhcmVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgZm9yIHRoZSB0b3AgYmFyIHRpdGxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci10aXRsZS1zcGFjaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBgPGlucHV0PmAgZWxlbWVudHMgaW5zaWRlIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCcmVha3BvaW50IGF0IHdoaWNoIHRvcCBiYXIgc3dpdGNoZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcCB2aWV3LlxuLy8vIEB0eXBlIEJyZWFrcG9pbnRcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0b3AgYmFyIGNvbnRhaW5lci5cbkBtaXhpbiB0b3AtYmFyLWNvbnRhaW5lciB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgcGFkZGluZzogJHRvcGJhci1wYWRkaW5nO1xuXG4gICYsXG4gIHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDaGVjayBpZiAkdG9wYmFyLWJhY2tncm91bmQgaXMgZGlmZmVybnQgZnJvbSAkdG9wYmFyLWJhY2tncm91bmQtc3VibWVudVxuICBAaWYgKCR0b3BiYXItYmFja2dyb3VuZCAhPSAkdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZCkge1xuICAgIHVsIHVsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc3RyYWluIHdpZHRoIG9mIGlucHV0cyBieSBkZWZhdWx0IHRvIG1ha2UgdGhlbSBlYXNpZXIgdG8gYXJyYW5nZVxuICBpbnB1dCB7XG4gICAgbWF4LXdpZHRoOiAkdG9wYmFyLWlucHV0LXdpZHRoO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICB9XG5cbiAgLy8gVGhlIGFib3ZlIHN0eWxlcyBzaG91bGRuJ3QgYXBwbHkgdG8gaW5wdXQgZ3JvdXAgZmllbGRzXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gIH1cblxuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBRdWFsaWZ5aW5nRWxlbWVudFxuICBpbnB1dC5idXR0b24ge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbi8vLyBNYWtlcyBzZWN0aW9ucyBvZiBhIHRvcCBiYXIgc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG5AbWl4aW4gdG9wLWJhci1zdGFja2VkIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFN1Yi1zZWN0aW9uc1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBVbmRvZXMgdGhlIENTUyBhcHBsaWVkIGJ5IHRoZSBgdG9wLWJhci1zdGFja2VkKClgIG1peGluLlxuQG1peGluIHRvcC1iYXItdW5zdGFjayB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIH1cbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvcC1iYXIge1xuICAvLyBUb3AgYmFyIGNvbnRhaW5lclxuICAudG9wLWJhciB7XG4gICAgQGluY2x1ZGUgdG9wLWJhci1jb250YWluZXI7XG5cbiAgICAvLyBTdGFjayBvbiBzbWFsbCBzY3JlZW5zIGJ5IGRlZmF1bHRcbiAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0b3BiYXItdW5zdGFjay1icmVha3BvaW50KSB7XG4gICAgICBAaW5jbHVkZSB0b3AtYmFyLXVuc3RhY2s7XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhdGUgY2xhc3NlcyBmb3Igc3RhY2tpbmcgb24gZWFjaCBzY3JlZW4gc2l6ZSAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludC1jbGFzc2VzKVxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgJi5zdGFja2VkLWZvci0jeyRzaXplfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU3ViLXNlY3Rpb25zXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG5cbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHNpemU6IC16Zi1icC10by1lbSgkc2l6ZSkgLSAoMSAvIDE2KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgd2l0aGluIGEgY2VydGFpbiBicmVha3BvaW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3Itb25seSgkc2l6ZSkge1xuICAkbG93ZXItYm91bmQtc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHVwcGVyLWJvdW5kLXNpemU6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRzaXplKTtcblxuICAvLyBtb3JlIG9mdGVuIHRoYW4gbm90IHRoaXMgd2lsbCBiZSBjb3JyZWN0LCBqdXN0IG9uZSB0aW1lIHJvdW5kIHRoZSBsb29wIGl0IHdvbid0IHNvIHNldCBpbiBzY29wZSBoZXJlXG4gICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKSAtICgxIC8gMTYpO1xuICAvLyB0ZXN0IGFjdHVhbCBsb3dlci1ib3VuZC1zaXplLCBpZiAwIHNldCBpdCB0byAwZW1cbiAgQGlmIHN0cmlwLXVuaXQoJGxvd2VyLWJvdW5kLXNpemUpID09IDAge1xuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcbiAgfVxuXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxvYXRcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcyB7XG4gIC5mbG9hdC1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuXG4gIC5jbGVhcmZpeCB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcyB7XG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IHVzaW5nIGp1c3RpZnktY29udGVudFxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gbWFwLXJlbW92ZSgkLXpmLWZsZXgtanVzdGlmeSwgbGVmdCkge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWwgYWxpZ25tZW50IHVzaW5nIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmXG4gIEBlYWNoICR2ZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtYWxpZ24ge1xuICAgIC5hbGlnbi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR5OiAkdmRpcik7XG4gICAgfVxuXG4gICAgLmFsaWduLXNlbGYtI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKCR5OiAkdmRpcik7XG4gICAgfVxuICB9XG5cbiAgLy8gU291cmNlIG9yZGVyaW5nXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNiB7XG4gICAgICAuI3skLXpmLXNpemV9LW9yZGVyLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1vcmRlcigkaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAZWFjaCAkbGFiZWwsICRjb2xvciwgJGhvdmVyIGluICRjb2xvcnMge1xuICAuI3skbGFiZWx9LXRleHQsXG4gIC50ZXh0LSN7JGxhYmVsfSB7XG4gICAgY29sb3I6ICN7JGNvbG9yfSAhaW1wb3J0YW50O1xuICB9XG5cbiAgYS4jeyRsYWJlbH0tdGV4dCxcbiAgYS50ZXh0LSN7JGxhYmVsfSB7XG4gICAgdHJhbnNpdGlvbjogMjUwbXMgYWxsIGVhc2Utb3V0O1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICN7JGhvdmVyfSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG59XG5cbnAgZW0ge1xuICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbn1cblxucCwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xufVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgY29sb3I6ICRuYXNhYS1kYXJrLWdyYXk7XG5cbiAgJi5iaWcge1xuICAgIGZvbnQtc2l6ZTogMzhweDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG5cbiAgICBmb250LXNpemU6IDIycHg7XG5cbiAgICAmLmJpZyB7XG4gICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgfVxuICB9XG59XG5cbmgyIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgfVxufVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMjBweDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cblxufVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogMThweDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cblxufVxuXG4uYm9keSA+IGNvbnRhaW5lciB7XG5cbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgIH1cblxuICB9XG5cbiAgaDYge1xuICAgIEBpbmNsdWRlIGJvbGRfc3ViaGVhZGVyKCk7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgfVxuXG4gIH1cbn1cblxuaDUubmFzYWEtdG9vbHMtaGVhZGVyIHtcblxuICBzcGFuIHtcbiAgICBmb250LXNpemU6IDMycHg7XG4gIH1cbiAgZm9udC1zaXplOiAyOHB4O1xuICBjb2xvcjogJHJlZDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG59XG5cbnAge1xuXG4gICYucGhvdG8tY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgcGhvdG9fY2FwdGlvbjtcbiAgfVxuXG59XG5cbnNtYWxsIHtcbiAgJi5kYXJrIHtcbiAgICBjb2xvcjogJG5hc2FhLW1lZGl1bS1ncmF5O1xuICB9XG59XG5cbioge1xuICAmLmhlYXZ5IHtcbiAgICBmb250LXdlaWdodDogODAwO1xuICB9XG5cbiAgKi5ib2xkIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgJi5iaWcge1xuICAgIGZvbnQtc2l6ZTogMTQwJTtcbiAgfVxuXG4gICouc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgJi5zcGFjZWQge1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIH1cblxuICAmLnNhbnMtc2VyaWYge1xuICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgfVxuXG4gICYuc2VyaWYge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICB9XG5cbiAgJi51bmRlcmxpbmUge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5cbiAgJi5pdGFsaWMge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gICYuY2FwaXRhbGl6ZSxcbiAgJi51cHBlcmNhc2Uge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAmLmluZGVudCB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICB9XG5cbn1cblxuLmJpZy1oZWFkZXIge1xuICBAaW5jbHVkZSBiaWdfaGVhZGVyKCk7XG59XG5cbi5ib2xkLXN1YmhlYWRlciB7XG4gIEBpbmNsdWRlIGJvbGRfc3ViaGVhZGVyKCk7XG59XG5cbi5yZWQtc3ViaGVhZGVyIHtcbiAgQGluY2x1ZGUgcmVkX3N1YmhlYWRlcigpO1xufVxuXG51bCB7XG5cbiAgLm5hc2FhLXNpbXBsZS1jb250ZW50ICYge1xuICAgIG1hcmdpbi1sZWZ0OiAzNXB4O1xuXG4gICAgbGkge1xuICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgfVxuICB9XG5cbiAgJi5uby1idWxsZXRzIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIH1cblxuICAmLnJhcXVvLWxpc3Qge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAgIGxpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbjogMDtcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIsK7XCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtMXB4O1xuICAgICAgICBsZWZ0OiAtMThweDtcbiAgICAgIH1cblxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkYnJpZ2h0LXJlZDtcbiAgICAgIH1cblxuICAgIH1cbiAgfVxuXG4gICYuc3Rhci1saXN0IHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAyN3B4O1xuICAgIG1hcmdpbjogMDtcblxuICAgIHVsIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogN3B4O1xuICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxlODA2XCI7XG4gICAgICAgIGNvbG9yOiAkYnJpZ2h0LXJlZDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGZvbnRlbGxvO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTFweDtcbiAgICAgICAgbGVmdDogLTE5cHg7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICBAaW5jbHVkZSBob3Zlcl9jb2xvcnMoJGN5YW4sICRicmlnaHQtcmVkKTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAmLmJpZyB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICAgIGxpIHtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgdG9wOiA1cHg7XG4gICAgICAgICAgbGVmdDogLTIycHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWFjaCAkbGFiZWwsICRjb2xvciwgJGhvdmVyIGluICRjb2xvcnMge1xuICAgICAgJi4jeyRsYWJlbH0ge1xuICAgICAgICBsaTpiZWZvcmUge1xuICAgICAgICAgIGNvbG9yOiAjeyRjb2xvcn07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cblxuICB9XG5cbiAgJi5wb3N0LWxpc3Qge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBsaSB7XG4gICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oJG5hc2FhLW1lZGl1bS1ncmF5LCAxNSUpO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRuYXNhYS1ncmF5LXNoYWRlO1xuICAgICAgcGFkZGluZzogM3B4IDAgNXB4O1xuXG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIGEge1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBAaW5jbHVkZSBob3Zlcl9jb2xvcnMoJG5hc2FhLW1lZGl1bS1ncmF5LCAkYnJpZ2h0LXJlZCk7XG4gICAgfVxuICB9XG5cbn1cblxuLmZvbnRlbGxvIHtcbiAgZm9udC1mYW1pbHk6IGZvbnRlbGxvO1xufVxuXG4ubm8tbWFyZ2luIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4uY29udGFpbmVyLCAuY29udGVudCwgLndwLWVkaXRvci1jb250YWluZXIge1xuICBwIHtcblxuICAgIGEge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB0cmFuc2l0aW9uOiAyNTBtcyBhbGwgZWFzZS1vdXQ7XG4gICAgICBAaW5jbHVkZSBob3Zlcl9jb2xvcnMoJGN5YW4sIGRhcmtlbigkY3lhbiwgMTAlKSk7XG4gICAgICAmLmJ1dHRvbiB7XG4gICAgICAgIHVuZGVybGluZTogbm9uZTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubm8tbWFyZ2luIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgfVxuXG59XG5cbi5jb250YWluZXIge1xuICBsaSB7XG4gICAgbWFyZ2luOiAwIDAgMTBweCAxMHB4O1xuICB9XG59IiwiJHdoaXRlOiAjZmZmZmZmO1xuJG5hc2FhLWdyYXktc2hhZGU6ICNlYmViZWI7XG4kbmFzYWEtZ3JheS1zaGFkZS1kYXJrOiAjZDJkMmQyO1xuJG5hc2FhLWxpZ2h0LWdyYXk6ICNhY2FjYWM7XG4kbmFzYWEtZGFyay1ncmF5OiAjMzMzMzMzO1xuJG5hc2FhLW1lZGl1bS1ncmF5OiAjNDI0MjQyO1xuXG4kZGFyay1yZWQ6ICMyZTAyMDY7XG4kcmVkOiAjNDUwMDA3O1xuJGJyaWdodC1yZWQ6ICM4ODBhMTc7XG4kbWFyb29uOiAjNzUwZjFhO1xuJGN5YW46ICMwMGFmZDQ7XG4kZGFyay1ibHVlOiAjMGIwODM4O1xuJGJsdWU6ICMyNjIyNjI7XG4kb3JhbmdlOiAjZjdhNDAwO1xuJGxpZ2h0LW9yYW5nZTogI2ZmY2M5OTtcbiR5ZWxsb3c6ICNmOWZmMWI7XG4kZGFyay15ZWxsb3c6ICNmOTlmMWI7XG4kZ3JlZW46ICMwMDk5OTk7XG4kcHVycGxlOiAjNjYwMDk5O1xuJGRhcmstcHVycGxlOiAjMzIxNTQ3O1xuJHRlYWwtZ3JlZW46ICMwZmE3OWE7XG5cbiR3ZXN0ZXJuX3N0YXRlX2FydHM6ICMyNjIyNjI7XG4kYXJ0c19taWR3ZXN0OiAjMDBhZmQ0O1xuJG5ld19lbmdsYW5kX2FydHM6ICM3NTBmMWE7XG4kbWlkX2FtZXJpY2FfYXJ0czogIzAwYTc5OTtcbiRzb3V0aF9hcnRzOiAjNjAwMDgzO1xuJG1pZF9hdGxhbnRpY19hcnRzOiAjZjk5ZjFiO1xuJG90aGVyX2FydHM6ICM3RDU4QjU7XG4kcHVlcnRvX3JpY29fYXJ0czogIzYwMDA4MztcbiRvdGhlcl9hcnRzX29yYW5nZTogI2QzNGYwMDtcbiRwdWVydG9fcmljb19hcnRzX29yYW5nZTogI2QzNGYwMDtcblxuXG4kYmx1ZV9ob3ZlcjogIzBiMDgzODtcbiRvcmFuZ2VfaG92ZXI6ICNkMjhiMDA7XG4kcmVkX2hvdmVyOiAkcmVkO1xuJGRhcmtfcmVkX2hvdmVyOiAkZGFyay1yZWQ7XG5cbiRjb2xvcnM6IChcbiAgICAoXCJ3aGl0ZVwiLCAkd2hpdGUsIGRhcmtlbigkd2hpdGUsIDEwJSkpLFxuICAgIChuYXNhYS1ncmF5LXNoYWRlLCAkbmFzYWEtZ3JheS1zaGFkZSwgZGFya2VuKCRuYXNhYS1ncmF5LXNoYWRlLCAxMCUpKSxcbiAgICAobmFzYWEtZGFyay1ncmF5LCAkbmFzYWEtZGFyay1ncmF5LCBkYXJrZW4oJG5hc2FhLWRhcmstZ3JheSwgMTAlKSksXG4gICAgKG5hc2FhLWxpZ2h0LWdyYXksICRuYXNhYS1saWdodC1ncmF5LCBkYXJrZW4oJG5hc2FhLWxpZ2h0LWdyYXksIDEwJSkpLFxuICAgIChuYXNhYS1tZWRpdW0tZ3JheSwgJG5hc2FhLW1lZGl1bS1ncmF5LCBkYXJrZW4oJG5hc2FhLW1lZGl1bS1ncmF5LCAxMCUpKSxcbiAgICAobmFzYWEtZ3JheS1zaGFkZS1kYXJrLCAkbmFzYWEtZ3JheS1zaGFkZS1kYXJrLCBkYXJrZW4oJG5hc2FhLWdyYXktc2hhZGUtZGFyaywgMTAlKSksXG4gICAgKGRhcmstcmVkLCAkZGFyay1yZWQsIGRhcmtlbigkZGFyay1yZWQsIDEwJSkpLFxuICAgIChyZWQsICRyZWQsIGRhcmtlbigkcmVkLCAxMCUpKSxcbiAgICAoYnJpZ2h0LXJlZCwgJGJyaWdodC1yZWQsIGRhcmtlbigkYnJpZ2h0LXJlZCwgMTAlKSksXG4gICAgKG1lZGl1bS1ncmF5LXRvLXJlZCwgJG5hc2FhLWxpZ2h0LWdyYXksICRyZWQpLFxuICAgIChkYXJrLWJsdWUsICRkYXJrLWJsdWUsIGRhcmtlbigkZGFyay1ibHVlLCAxMCUpKSxcbiAgICAoYmx1ZSwgJGJsdWUsIGRhcmtlbigkYmx1ZSwgMTAlKSksXG4gICAgKGN5YW4sICRjeWFuLCBkYXJrZW4oJGN5YW4sIDEwJSkpLFxuICAgIChvcmFuZ2UsICRvcmFuZ2UsIGRhcmtlbigkb3JhbmdlLCAxMCUpKSxcbiAgICAoZ3JlZW4sICRncmVlbiwgZGFya2VuKCRncmVlbiwgMTAlKSksXG4gICAgKHRlYWwtZ3JlZW4sICR0ZWFsLWdyZWVuLCBkYXJrZW4oJHRlYWwtZ3JlZW4sIDEwJSkpLFxuICAgIChwdXJwbGUsICRwdXJwbGUsIGRhcmtlbigkcHVycGxlLCAxMCUpKSxcbiAgICAod2hpdGUtdG8tb3JhbmdlLCAkd2hpdGUsICRvcmFuZ2UpLFxuICAgICgnZ3JheS10by1yZWQnLCAkbmFzYWEtbWVkaXVtLWdyYXksICRicmlnaHQtcmVkKSxcbiAgICAoJ2N5YW4tdG8tcmVkJywgJGN5YW4sICRyZWQpLFxuICAgICgnb3JhbmdlJywgJG9yYW5nZSwgZGFya2VuKCRvcmFuZ2UsIDEwJSkpLFxuICAgICgnbWVkLWxpZ2h0LWdyYXknLCAkbmFzYWEtbGlnaHQtZ3JheSksXG4gICAgKCdibHVlLXRvLXJlZCcsICRibHVlLCAkYnJpZ2h0LXJlZCksXG4pO1xuXG5cblxuXG4kdGVhbDogIzAwYTc5OTtcbiRicmlnaHQtcHVycGxlOiAjNjAwMDgzO1xuIiwiQG1peGluIGJvbGRfc3ViaGVhZGVyKCkge1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGxldHRlci1zcGFjaW5nOiAxLjVweDtcbiAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW46IDA7XG59XG5cbkBtaXhpbiBiaWdfaGVhZGVyKCkge1xuICBmb250LXNpemU6IDM4cHg7XG4gIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBjb2xvcjogJG5hc2FhLWRhcmstZ3JheTtcblxufVxuXG5AbWl4aW4gcmVkX3N1YmhlYWRlcigpIHtcblxuICBjb2xvcjogJGJyaWdodC1yZWQ7XG4gIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6IDI1cHg7XG4gIG1hcmdpbjogMDtcblxufVxuXG5AbWl4aW4gbWVtYmVyX2Rhc2hib2FyZF9zaWRlYmFyX3VuZGVybGluZSgpIHtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogLTMwcHg7XG4gICAgd2lkdGg6IDEwMDAwcHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAkbGlnaHQtZ3JheTtcbiAgfVxuXG59XG5cbkBtaXhpbiBob3Zlcl9jb2xvcnMoJGNvbG9yLCAkaG92ZXIpIHtcbiAgdHJhbnNpdGlvbjogMjUwbXMgYWxsIGVhc2Utb3V0O1xuICBjb2xvcjogI3skY29sb3J9O1xuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogI3skaG92ZXJ9O1xuICB9XG59XG5cbkBtaXhpbiBob3Zlcl9iYWNrZ3JvdW5kKCRjb2xvciwgJGhvdmVyKSB7XG4gIHRyYW5zaXRpb246IDI1MG1zIGFsbCBlYXNlLW91dDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI3skY29sb3J9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjeyRob3Zlcn07XG4gIH1cbn1cblxuQG1peGluIHJhcXVvX2xpc3QoKSB7XG5cbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW46IDA7XG5cbiAgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCLCu1wiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogNXB4O1xuICAgIH1cblxuICB9XG59XG5cbkBtaXhpbiBwaG90b19jYXB0aW9uKCl7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxNXB4O1xuICByaWdodDogMTVweDtcbiAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuOCk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDExcHg7XG4gIGxldHRlci1zcGFjaW5nOiAuNXB4O1xufSIsImlucHV0Om5vdFt0eXBlPXN1Ym1pdF0sIHRleHRhcmVhLCBzZWxlY3Qge1xuICBib3JkZXI6IDFweCBzb2xpZCAkbmFzYWEtZGFyay1ncmF5O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItcmFkaXVzOiAxNXB4ICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpbmNsdWRlIGJvbGRfc3ViaGVhZGVyKCk7XG5cbn1cblxuaW5wdXQge1xuICBAaW5jbHVkZSBib2xkX3N1YmhlYWRlcigpO1xufVxuXG5zZWxlY3Qge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL3NlbGVjdC1hcnJvdy5wbmcpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDExcHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDdweCkgY2VudGVyO1xufVxuXG4uc2VsZWN0LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgc2VsZWN0IHtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgb3B0aW9uIHtcbiAgICAgIEBpbmNsdWRlIGJvbGRfc3ViaGVhZGVyKCk7XG4gICAgfVxuICB9XG5cbiAgLmFycm93IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDEwcHgpO1xuICAgIHJpZ2h0OiAxMnB4O1xuICB9XG5cbn1cblxuI3dwcmVnaXN0cmF0aW9uLW1ldGEsXG4jbG9naW5mb3JtLFxuLndvb2NvbW1lcmNlLWZvcm0tbG9naW4ge1xuICAuaW5wdXRfc3VibWl0X3dyYXBwZXIge1xuICAgIGlucHV0IHtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGJvcmRlci1jb2xvcjogd2hpdGU7XG4gICAgfVxuXG4gIH1cbiAgaW5wdXRbdHlwZT10ZXh0XXtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG5cbi5nZm9ybV9kcm9wX2FyZWEgLmJ1dHRvbiB7XG4gIG1hcmdpbjogMCAwIDAgN3B4O1xufVxuXG4uZ2Zvcm1fd3JhcHBlciB7XG5cbiAgLmdmaWVsZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgaW5wdXQge1xuICAgIGhlaWdodDogNDBweDtcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBAaW5jbHVkZSBib2xkX3N1YmhlYWRlcjtcbiAgICB9XG4gIH1cbiAgLmdmaWVsZC5maWVsZF9zdWJsYWJlbF9iZWxvdyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcblxuICAgIHRleHRhcmVhIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gIH1cblxuICAuZ2lucHV0X2NvbnRhaW5lcl9yYWRpbyB7XG4gICAgbGkge1xuICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgfVxuICB9XG5cbiAgLmdmaWVsZF9jaGVja2JveCB7XG4gICAgbGkge1xuICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgfVxuICB9XG5cbiAgLmdmaWVsZCB7XG5cbiAgICAmLmZ1bGxfd2lkdGhfZGVzY3JpcHRpb24ge1xuICAgICAgLmdmaWVsZF9kZXNjcmlwdGlvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5nZmllbGRfZGVzY3JpcHRpb24ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cblxuICAgIC5naW5wdXRfcmVjYXB0Y2hhIHtcbiAgICAgIGhlaWdodDogODBweDtcbiAgICB9XG5cbiAgICAuZ2ZpZWxkX2NhcHRjaGFfY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiAyMHB4IDA7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIGZsZXg6IDAgMCAxNTBweDtcbiAgICAgICAgaGVpZ2h0OiA3OHB4O1xuICAgICAgfVxuXG4gICAgICAuZ2ZpZWxkX2NhcHRjaGFfaW5wdXRfY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgICB9XG5cbiAgICAgIGlucHV0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgJi5nZmllbGRfZXJyb3Ige1xuXG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgICAgcGFkZGluZy1yaWdodDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjQzg5Nzk3O1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjQzg5Nzk3O1xuXG4gICAgICAudmFsaWRhdGlvbl9tZXNzYWdlIHtcblxuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuN3B4O1xuICAgICAgICBmb250LXdlaWdodDogMTAwO1xuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cblxuXG4gIC5nZm9ybV9lcnJvcl9leHRyYV9tZXNzYWdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgI2Vycm9yICsgLmdmb3JtX2JvZHkge1xuICAgIC5nZm9ybV9lcnJvcl9leHRyYV9tZXNzYWdlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29sb3I6ICM3OTAwMDA7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgZm9udC1mYW1pbHk6JGJvZHktZm9udC1mYW1pbHk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMzVweDtcbiAgICB9XG4gIH1cblxuICBsaS5nZmllbGQubmFzYWEtY3VzdG9tLWFkZHJlc3MtZXJyb3IuZ2ZpZWxkX2Vycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgZGl2LmdpbnB1dF9jb21wbGV4LmdpbnB1dF9jb250YWluZXIgPiBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAmLmdpbnB1dF9sZWZ0e1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5naW5wdXRfcmlnaHR7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiAjNzkwMDAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIHNlbGVjdCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc5MDAwMDtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICBpbnB1dCB7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGxlZnQ6IC04cHg7XG4gICAgICAgIHJpZ2h0OiAtOHB4O1xuICAgICAgICB0b3A6IC04cHg7XG4gICAgICAgIGJvdHRvbTogLTZweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjIzLDIyNCwwLjI1KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0M4OTc5NztcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgIH1cblxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiVGhpcyBmaWVsZCBpcyByZXF1aXJlZFwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29sb3I6ICM3OTAwMDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxNHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuN3B4O1xuICAgICAgICBmb250LXdlaWdodDogMTAwO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZGl2LmdpbnB1dF9jb21wbGV4LmdpbnB1dF9jb250YWluZXIge1xuICAgICAgPiAuYWRkcmVzc19saW5lXzIge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICB9XG4gICAgICAgIGlucHV0Om5vdChbdHlwZT1yYWRpb10pOm5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPWltYWdlXSk6bm90KFt0eXBlPWZpbGVdKXtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmZpbGxlZC1zdHJlZXQgZGl2LmdpbnB1dF9jb21wbGV4LmdpbnB1dF9jb250YWluZXIgPiAuYWRkcmVzc19saW5lXzEge1xuICAgICAgbGFiZWwge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgIH1cbiAgICAgIGlucHV0Om5vdChbdHlwZT1yYWRpb10pOm5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPWltYWdlXSk6bm90KFt0eXBlPWZpbGVdKSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuICAgICAgfVxuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmZpbGxlZC1jaXR5IGRpdi5naW5wdXRfY29tcGxleC5naW5wdXRfY29udGFpbmVyID4gLmFkZHJlc3NfY2l0eSB7XG4gICAgICBsYWJlbCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgfVxuICAgICAgaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9aW1hZ2VdKTpub3QoW3R5cGU9ZmlsZV0pe1xuICAgICAgICBib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICAgIH1cblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5maWxsZWQtc3RhdGUgZGl2LmdpbnB1dF9jb21wbGV4LmdpbnB1dF9jb250YWluZXIgPiAuYWRkcmVzc19zdGF0ZSB7XG4gICAgICBsYWJlbCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgfVxuICAgICAgc2VsZWN0e1xuICAgICAgICBib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICAgIH1cblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5maWxsZWQtemlwIGRpdi5naW5wdXRfY29tcGxleC5naW5wdXRfY29udGFpbmVyID4gLmFkZHJlc3NfemlwIHtcbiAgICAgIGxhYmVsIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICB9XG4gICAgICBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1pbWFnZV0pOm5vdChbdHlwZT1maWxlXSl7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuICAgICAgfVxuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZ2ZpZWxkX2Rlc2NyaXB0aW9uLnZhbGlkYXRpb25fbWVzc2FnZXtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbmJvZHkgLmdmb3JtX3dyYXBwZXIgLnRvcF9sYWJlbCAuZ2ZpZWxkIHtcblxuICAuZ2ZpZWxkX2xhYmVsIHtcbiAgICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xuICB9XG5cbiAgJi5oaWRkZW5fbGFiZWwge1xuICAgIG1hcmdpbi10b3A6IC0zMnB4O1xuICB9XG5cbiAgLmdmaWVsZF9sYWJlbF9iZWZvcmVfY29tcGxleCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLmlucHV0X3N1Ym1pdF93cmFwcGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcXGU4MGNcIjtcbiAgICBmb250LWZhbWlseTogZm9udGVsbG87XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxMXB4O1xuICAgIHRvcDogLXdlYmtpdC1jYWxjKDUwJSAtIDEwcHgpO1xuICAgIHRvcDogY2FsYyg1MCUgLSA4cHgpO1xuICAgIGNvbG9yOiAkb3JhbmdlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRvcmFuZ2U7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIHRleHQtaW5kZW50OiAycHg7XG5cbiAgfVxuXG4gIEBlYWNoICRsYWJlbCwgJGNvbG9yLCAkaG92ZXIgaW4gJGNvbG9ycyB7XG4gICAgJi4jeyRsYWJlbH0ge1xuXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29sb3I6ICN7JGNvbG9yfTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjeyRjb2xvcn07XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBpbnB1dCB7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiAwcHggMzhweCAwIDIwcHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5nZm9ybV9hamF4X3NwaW5uZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiBjYWxjKDEwMCUgKyAxMHB4KTtcbiAgICB0b3A6IGNhbGMoNTAlIC0gNnB4KTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbn1cblxuLy8gYXNrIG5hc2FhIGFueXRoaW5nIC0gbWVtYmVyIGRhc2hib2FyZFxuI2dmb3JtXzEge1xuXG4gICNmaWVsZF8xXzEsXG4gICNmaWVsZF8xXzIge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cblxuICBsYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgQGluY2x1ZGUgYm9sZF9zdWJoZWFkZXIoKTtcbiAgICBjb2xvcjogJG5hc2FhLW1lZGl1bS1ncmF5O1xuICAgIC5nZmllbGRfbGFiZWwge1xuXG4gICAgfVxuICB9XG5cbiAgaW5wdXRbdHlwZT1zdWJtaXRdIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmx1ZTtcbiAgICBAaW5jbHVkZSBib2xkX3N1YmhlYWRlcigpO1xuICB9XG5cbiAgc2VsZWN0I2lucHV0XzFfMi5sYXJnZS5nZmllbGRfc2VsZWN0IHtcbiAgICBjb2xvcjogJG5hc2FhLW1lZGl1bS1ncmF5O1xuICB9XG5cbiAgI2ZpZWxkXzFfNCB7XG5cbiAgICBpbnB1dFt0eXBlPWZpbGVdIHtcbiAgICAgIHdpZHRoOiA5Ny41JTtcbiAgICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLjI1cHg7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgI2V4dGVuc2lvbnNfbWVzc2FnZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgY29sb3I6ICRuYXNhYS1kYXJrLWdyYXk7XG4gICAgfVxuXG4gICAgbGFiZWwsIC5naW5wdXRfY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGNsZWFyOiBsZWZ0O1xuICAgIH1cblxuICAgIC5nZm9ybV9kcm9wX2luc3RydWN0aW9ucyB7XG4gICAgICBjb2xvcjogJG5hc2FhLW1lZGl1bS1ncmF5O1xuICAgIH1cbiAgfVxuXG59XG5cbi8vIGxlZ2lzbGF0aXZlIHVwZGF0ZSBzaWdudXAgLSBhZHZvY2FjeSBwYWdlXG4jZ2Zvcm1fd3JhcHBlcl8zIHtcblxuICB3aWR0aDogMTAwJTtcblxuICBsaSNmaWVsZF8zXzEge1xuICAgIHdpZHRoOiA0OSU7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDElO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuXG4gIGxpI2ZpZWxkXzNfMiB7XG4gICAgd2lkdGg6IDQ5JTtcbiAgICBtYXJnaW4tbGVmdDogMSU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tdG9wOiAtNjRweDtcbiAgfVxuXG4gIGxpI2ZpZWxkXzNfMyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gIGxpI2ZpZWxkXzNfNCB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgZGl2I2lucHV0XzNfNCB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgaW5wdXQge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBAaW5jbHVkZSBib2xkX3N1YmhlYWRlcjtcblxuICAgICZbdHlwZT10ZXh0XSB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIC42NSk7XG4gICAgICB0ZXh0LWluZGVudDogMjBweDtcbiAgICB9XG5cbiAgfVxuXG4gIC5nZm9ybV9mb290ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5pbnB1dF9zdWJtaXRfd3JhcHBlciB7XG4gICAgJjphZnRlciB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBib3JkZXItY29sb3I6IHdoaXRlO1xuICAgICAgZm9udC1zaXplOiA5cHg7XG4gICAgICBoZWlnaHQ6IDExcHg7XG4gICAgICB3aWR0aDogMTFweDtcbiAgICAgIHRleHQtaW5kZW50OiAxcHg7XG4gICAgICB0b3A6IGNhbGMoNTAlIC0gNnB4KTtcblxuICAgIH1cbiAgICBpbnB1dCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAzMXB4O1xuICAgIH1cbiAgfVxuXG59XG5cbiNnZm9ybV93cmFwcGVyXzQge1xuICBzcGFuLm5hc2FhLWxpZ2h0LWdyYXkge1xuICAgIGNvbG9yOiAkbmFzYWEtbGlnaHQtZ3JheTtcbiAgfVxuXG4gIC5nZmllbGQuTEktZm9ybS1ib3hlcyB7XG4gICAgbGkuZ2Nob2ljZV80XzIxXzEge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgICBsaS5nY2hvaWNlXzRfMjJfMSB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICAgIGxpLmdjaG9pY2VfNF8yM18xIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAjaW5wdXRfNF83XzFfbGFiZWwge1xuICAgIGNsZWFyOiBsZWZ0O1xuICB9XG5cbiAgbGFiZWwgc3BhbiB7XG4gICAgY29sb3I6ICRicmlnaHQtcmVkO1xuICAgIG1hcmdpbi1sZWZ0OiAycHg7XG5cbiAgfVxuXG4gIC5naW5wdXRfY29udGFpbmVyX3JhZGlvLFxuICAuZ2lucHV0X2NvbnRhaW5lcl9jaGVja2JveCB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBsaSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAjZmllbGRfNF8yNSxcbiAgI2ZpZWxkXzRfMjYge1xuICAgIGxlZ2VuZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5nZmllbGRfZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5pbnB1dF9zdWJtaXRfd3JhcHBlcjphZnRlciB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1jb2xvcjogd2hpdGU7XG4gIH1cblxufVxuXG4jZ2Zvcm1fNSB7XG5cbiAgaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1lbWFpbF0ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAjaW5wdXRfNV8yIHtcbiAgICBpbnB1dFt0eXBlPXJhZGlvXSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICB9XG4gIH1cblxuICBsYWJlbCB7XG4gICAgbWFyZ2luOiA3cHggMCAyNXB4O1xuICB9XG5cbiAgbGFiZWwuZ2ZpZWxkX2xhYmVsIHtcbiAgICAvL2ZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplLWxhcmdlO1xuICAgIC8vbGluZS1oZWlnaHQ6IDNlbTtcbiAgfVxuXG4gIGlucHV0W3R5cGU9cmFkaW9dLFxuICBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG5cbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAuZ2lucHV0X2NvbnRhaW5lciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cblxuICAjaW5wdXRfNV81LFxuICAjaW5wdXRfNV8xNCB7XG4gICAgbGkge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cblxuICAjaW5wdXRfNV8xMSB7XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gICAgfVxuICB9XG59XG5cbi5uYXNhYS1zZW1pbmFyLXNlYXJjaCB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJhY2tncm91bmQ6ICRibHVlO1xuXG4gIC50aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gIC5pbnB1dF9zZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICBsYWJlbCB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHBhZGRpbmctcmlnaHQ6IDdweDtcbiAgfVxuXG4gIGlucHV0LCAuc2VsZWN0LXdyYXBwZXIsIHNlbGVjdCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgaW5wdXRbdHlwZT1zdWJtaXRdIHtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLm5hc2FhLXJlc2VhcmNoLWFyY2hpdmUtc2VhcmNoIHtcblxuICB3aWR0aDogMTAwJTtcblxuICAudGl0bGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cblxuICBzZWxlY3QsXG4gIGlucHV0W3R5cGU9dGV4dF0ge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAuNSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIEBpbmNsdWRlIGJvbGRfc3ViaGVhZGVyKCk7XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbiAgfVxuXG4gIG9wdGlvbiB7XG4gICAgY29sb3I6ICRkYXJrLWJsdWUgO1xuICB9XG5cbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIGJvbGRfc3ViaGVhZGVyKCk7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG5cbiAgaW5wdXRbdHlwZT1zdWJtaXRdIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cblxufVxuXG4ubmFzYWEtc2VhcmNoLXN1Ym1pdC1jb21ibyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRibHVlO1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogMjUwbXMgYWxsIGVhc2Utb3V0O1xuXG4gIEBlYWNoICRsYWJlbCwgJGNvbG9yLCAkaG92ZXIgaW4gJGNvbG9ycyB7XG4gICAgJi4jeyRsYWJlbH0ge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjeyRjb2xvcn07XG5cbiAgICAgIGlucHV0W3R5cGU9c3VibWl0XSB7XG4gICAgICAgIGNvbG9yOiAjeyRjb2xvcn07XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIsICY6Zm9jdXMsICY6YWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjeyRob3Zlcn07XG5cbiAgICAgICAgaW5wdXRbdHlwZT1zdWJtaXRdIHtcbiAgICAgICAgICBjb2xvcjogI3skaG92ZXJ9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaW5wdXRbdHlwZT10ZXh0XSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxuICBpbnB1dFt0eXBlPXN1Ym1pdF0ge1xuICAgIGZvbnQtZmFtaWx5OiBmb250ZWxsbztcbiAgICBmbGV4OiAwIDAgMzBweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIH1cblxufVxuXG4ubmFzYWEtZXZlbnQtc2VhcmNoLWNvbnRhaW5lciB7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGRhcmstYmx1ZSwgLjUpO1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IG11bHRpcGx5O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIHBhZGRpbmc6IDI1cHggMjBweCAxNXB4IDIwcHg7XG5cbn1cblxuLm5hc2FhLWV2ZW50LXNlYXJjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIGJvbGRfc3ViaGVhZGVyO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gIC5pbnB1dHMge1xuICAgIG1hcmdpbjogMTVweCAwIDM1cHg7XG4gIH1cblxuICBzZWxlY3QsIGlucHV0W3R5cGU9dGV4dF0ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRuYXNhYS1ncmF5LXNoYWRlO1xuICAgIGNvbG9yOiAkbmFzYWEtbGlnaHQtZ3JheTtcbiAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGlucHV0W3R5cGU9dGV4dF0ge1xuICAgIGNvbG9yOiAkbmFzYWEtZGFyay1ncmF5O1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgdGV4dC1pbmRlbnQ6IDExcHg7XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgQGluY2x1ZGUgYm9sZF9zdWJoZWFkZXI7XG4gICAgfVxuICB9XG5cbiAgaDIge1xuICAgIG1hcmdpbjogMCAyMHB4IDAgMDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgcGFkZGluZzogMTNweCAwO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG5cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIH1cblxufVxuXG4ubmFzYWEtc2VhcmNoLW5ld3NsZXR0ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZzogMCAwIDIwcHggMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtMTVweDtcbiAgICByaWdodDogLTE1cHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6ICRuYXNhYS1ncmF5LXNoYWRlO1xuICB9XG5cbiAgaDIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgbGFiZWwge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIEBpbmNsdWRlIGJvbGRfc3ViaGVhZGVyO1xuICAgIGNvbG9yOiAkbmFzYWEtbGlnaHQtZ3JheTtcblxuICAgIHNlbGVjdCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgaW5wdXRbdHlwZT1zdWJtaXRdIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxufVxuXG4ubmFzYWEtc3Vic2NyaXB0aW9uLWZvcm0tYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjgpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgLm5hc2FhLXN1YnNjcmlwdGlvbi1mb3JtIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG4gICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cblxuICAuaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBoMiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmNsb3NlIHtcbiAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICBtYXJnaW46IDAgMCAwIGF1dG87XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBAaW5jbHVkZSBob3Zlcl9jb2xvcnMod2hpdGUsICRvcmFuZ2UpO1xuICAgIH1cbiAgfVxuXG59XG5cbi8vIHJlc2VhcmNoIHBhZ2UgZm9ybVxuXG4jZ2Zvcm1fNiB7XG5cbiAgbGFiZWwge1xuICAgIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGNvbG9yOiAkbmFzYWEtbWVkaXVtLWdyYXk7XG4gICAgQGluY2x1ZGUgYm9sZF9zdWJoZWFkZXI7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG5cbiAgICAmLmdmaWVsZF9sYWJlbCB7XG4gICAgICBmb250LXdlaWdodDogODAwICFpbXBvcnRhbnQ7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgfVxuICB9XG5cbiAgbGkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuXG4gICAgaW5wdXRbdHlwZT10ZXh0XSxcbiAgICBzZWxlY3Qge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgdGV4dGFyZWEge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmdmb3JtX2Ryb3BfaW5zdHJ1Y3Rpb25zIHtcbiAgICBjb2xvcjogJG5hc2FhLW1lZGl1bS1ncmF5O1xuICB9XG5cbiAgaW5wdXRbdHlwZT1maWxlXSB7XG4gICAgLy8gZ3Jhdml0eSBmb3JtcyBsYXJnZSBzaXplIGlzbid0IDEwMCUuXG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgY29sb3I6ICRuYXNhYS1tZWRpdW0tZ3JheTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLmlucHV0X3N1Ym1pdF93cmFwcGVyIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGJvcmRlci1jb2xvcjogd2hpdGU7XG4gICAgfVxuICB9XG5cbn1cblxuXG4jZ2Zvcm1fd3JhcHBlcl85e1xuICAuaW5wdXRfc3VibWl0X3dyYXBwZXI6YWZ0ZXIge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXItY29sb3I6IHdoaXRlO1xuICB9XG59XG5cbiNnZm9ybV93cmFwcGVyXzEwe1xuICAjaW5wdXRfMTBfM18yX2NvbnRhaW5lcntcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgfVxuXG4gICNpbnB1dF8xMF80IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICB9XG5cbiAgI2lucHV0XzEwXzRfNl9jb250YWluZXJ7XG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xuICB9XG5cbiAgLmlucHV0X3N1Ym1pdF93cmFwcGVyOmFmdGVyIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4ucG9zdC1wYXNzd29yZC1mb3JtIHtcbiAgcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gIGlucHV0W3R5cGU9cGFzc3dvcmRdIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmlucHV0X3N1Ym1pdF93cmFwcGVyIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgfVxuXG4gIGlucHV0W3R5cGU9c3VibWl0XSB7XG4gICAgQGluY2x1ZGUgYnV0dG9uKCk7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgcGFkZGluZy1yaWdodDogMzVweDtcbiAgfVxuXG4gIC5pbnB1dF9zdWJtaXRfd3JhcHBlcjphZnRlciB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1jb2xvcjogd2hpdGU7XG4gIH1cbn1cblxuLm5hc2FhLWxvZ2luLW1vZGFsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMTBweCAyMHB4IDAgMjBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIHdpZHRoOiAyNjJweDtcbiAgaW5wdXQge1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5uYXNhYS1jbG9zZS1sb2dpbi1tb2RhbC1saW5rIHtcbiAgbWFyZ2luOiAtMjBweCAwIDEwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xufSIsImJvZHksIGh0bWwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG5cbmJvZHkge1xuICAmID4gZGl2LmNvbnRhaW5lcixcbiAgJiA+IGRpdi5jb250ZW50IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxufVxuXG5ib2R5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAmID4gZGl2LFxuICAmID4gaGVhZGVyLFxuICAmID4gZm9vdGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG59XG5cbmJvZHkgPiAuY29udGVudCAucm93IHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmJvZHkuYWRtaW4tYmFyIHtcbiAgcGFkZGluZy10b3A6IDMycHggIWltcG9ydGFudDtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKCBtYXgtd2lkdGg6IDc4MnB4ICkge1xuICAgIHBhZGRpbmctdG9wOiA0NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogYXV0bztcbn0iLCJmb290ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlICAgIDogdXJsKCcuLi9pbWcvc2l0ZS1mb290ZXIuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZSAgICAgOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbiA6IHRvcCBjZW50ZXI7XG5cbiAgLnRvcCB7XG4gICAgcGFkZGluZyA6IDAgMTVweDtcbiAgICBkaXNwbGF5IDogZmxleDtcblxuICAgICoge1xuICAgICAgY29sb3IgOiB3aGl0ZTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGhvdmVyX2NvbG9ycyh3aGl0ZSwgJG9yYW5nZSk7XG4gICAgfVxuXG4gICAgLmZvb3Rlci1tZW51LWNvbnRhaW5lciB7XG4gICAgICBmbGV4IDogMCAwIDUwJTtcblxuICAgICAgdWwge1xuICAgICAgICBkaXNwbGF5ICAgICA6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcCAgIDogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXMgOiBmbGV4LXN0YXJ0O1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICBmbGV4IDogMCAwIDUwJTtcblxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgZm9udC1mYW1pbHkgOiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgcGFkZGluZyAgICAgOiAwIDAgMTZweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZSAgIDogMTRweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0IDogODAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXJfY29sb3JzKHdoaXRlLCAkb3JhbmdlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmxvZ28ge1xuICAgICAgZmxleCA6IDAgMCAyNSU7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIG1heC13aWR0aCA6IDY2JTtcbiAgICAgIH1cblxuICAgICAgLnNvY2lhbCB7XG4gICAgICAgIG1hcmdpbi10b3AgOiA3cHg7XG5cbiAgICAgICAgYSwgaSB7XG4gICAgICAgICAgQGluY2x1ZGUgaG92ZXJfY29sb3JzKHdoaXRlLCAkb3JhbmdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGkge1xuICAgICAgICAgIGZvbnQtc2l6ZSA6IDI1cHg7XG5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmNvbnRhY3Qge1xuICAgICAgbWFyZ2luLWxlZnQgOiBhdXRvO1xuICAgICAgZmxleCAgICAgICAgOiAwIDAgMjUlO1xuXG4gICAgICBoNiB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tIDogOXB4O1xuICAgICAgICBmb250LXdlaWdodCAgICA6IDgwMDtcbiAgICAgICAgZm9udC1zaXplICAgICAgOiAxNHB4O1xuICAgICAgICBmb250LWZhbWlseSAgICA6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICAuYm90dG9tIHtcbiAgICBib3JkZXItdG9wIDogMXB4IGRvdHRlZCB3aGl0ZTtcbiAgICBwYWRkaW5nICAgIDogMzVweCAwO1xuXG4gICAgaDYge1xuICAgICAgdGV4dC1hbGlnbiAgOiBjZW50ZXI7XG4gICAgICB3aWR0aCAgICAgICA6IDEwMCU7XG4gICAgICBjb2xvciAgICAgICA6IHdoaXRlO1xuICAgICAgZm9udC1mYW1pbHkgOiAkYm9keS1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtc2l6ZSAgIDogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0IDogNjAwO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgY29sb3IgOiB3aGl0ZTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcblxuICAgIC50b3Age1xuICAgICAgLmxvZ28ge1xuICAgICAgICBvcmRlciAgICAgICAgICA6IDE7XG4gICAgICAgIGZsZXggICAgICAgICAgIDogMCAwIDEwMCU7XG4gICAgICAgIGRpc3BsYXkgICAgICAgIDogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb24gOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zICAgIDogY2VudGVyO1xuXG4gICAgICAgIC5zb2NpYWwge1xuICAgICAgICAgIG1hcmdpbi10b3AgOiAxNXB4O1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgLmNvbnRhY3Qge1xuICAgICAgICBvcmRlciAgICAgIDogMztcbiAgICAgICAgbWFyZ2luICAgICA6IDA7XG4gICAgICAgIGZsZXggICAgICAgOiAwIDAgMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbiA6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmZvb3Rlci1tZW51LWNvbnRhaW5lciB7XG4gICAgICAgIG9yZGVyICAgOiAyO1xuICAgICAgICBmbGV4ICAgIDogMCAwIDEwMCU7XG4gICAgICAgIHBhZGRpbmcgOiAzNXB4IDA7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgIGZsZXggOiAwIDAgMTAwJSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgYSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduIDogY2VudGVyO1xuICAgICAgICAgICAgZGlzcGxheSAgICA6IGJsb2NrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5ib3R0b20ge1xuICAgICAgcGFkZGluZy1sZWZ0ICA6IDIwJTtcbiAgICAgIHBhZGRpbmctcmlnaHQgOiAyMCU7XG5cbiAgICAgIGEge1xuICAgICAgICBjb2xvciA6IHdoaXRlO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbn0iLCJoZWFkZXIge1xuXG4gIHBhZGRpbmc6IDIwcHggMDtcbiAgZmxleDogMCAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTA7XG5cbiAgLm5hc2FhLXRvcC1tZW51LWNvbnRhaW5lcixcbiAgLm5hc2FhLWhlYWRlci1tZW51LWNvbnRhaW5lciB7XG4gICAgLm1lbnUge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsaSB7XG4gICAgICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcblxuICAgICAgICAmLmN1cnJlbnRfcGFnZV9pdGVtIHtcbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyX2NvbG9ycygkb3JhbmdlLCBkYXJrZW4oJG9yYW5nZSwgMTAlKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgICAgICBAaW5jbHVkZSBob3Zlcl9jb2xvcnMoJG5hc2FhLWxpZ2h0LWdyYXksIGRhcmtlbigkbmFzYWEtbGlnaHQtZ3JheSwgMTAlKSk7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbmFzYWEtbGlnaHQtZ3JheSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICBhOmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJG5hc2FhLWxpZ2h0LWdyYXkgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cblxuICB9XG5cbiAgLm5hc2FhLWhlYWRlci1tZW51LWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy10b3A6IDVweDtcbiAgICAmID4gdWwgPiBsaSB7XG4gICAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRuYXNhYS1saWdodC1ncmF5O1xuICAgIH1cbiAgfVxuXG4gIC5uYXNhYS1zaXRlLWxvZ28ge1xuICAgIHdpZHRoOiA0MDBweDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuICAgICAgd2lkdGg6IDkwJTtcbiAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgfVxuICB9XG5cbiAgLm5hc2FhLXRvcC1tZW51LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAubWVudSB7XG5cbiAgICAgIC5idXR0b24ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxN3B4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogMjUwbXMgYWxsIGVhc2Utb3V0O1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgcGFkZGluZzogMTBweCAyMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciBhIHtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0aGlzIGNvbG9yIGlzIGZvciB0aGUgYmFzZSBjbGFzcyAtIHlvdSBjYW4gYWRkIG90aGVyIGNvbG9yc1xuICAgICAgICBAaW5jbHVkZSBob3Zlcl9iYWNrZ3JvdW5kKCRvcmFuZ2UsIGRhcmtlbigkb3JhbmdlLCAxMCUpKTtcblxuICAgICAgICBAZWFjaCAkbGFiZWwsICRjb2xvciwgJGhvdmVyIGluICRjb2xvcnMge1xuICAgICAgICAgICYuI3skbGFiZWx9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyX2JhY2tncm91bmQoJGNvbG9yLCAkaG92ZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cbiAgICAgIH1cblxuICAgICAgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogOTAlO1xuXG4gICAgICB9XG4gICAgfVxuICAgIC5uYXNhYS1zZWFyY2gge1xuICAgICAgZmxleDogMCAxIDI1MHB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRuYXNhYS1saWdodC1ncmF5O1xuICAgICAgdHJhbnNpdGlvbjogMjUwbXMgYWxsIGVhc2Utb3V0O1xuXG4gICAgICAmLmNsb3NlZCB7XG4gICAgICAgIGZsZXg6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB3aGl0ZTtcblxuICAgICAgICBpbnB1dFt0eXBlPXRleHRdIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIGZsZXg6IDA7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW5wdXRbdHlwZT10ZXh0XSB7XG4gICAgICAgIGZsZXg6IDEgMSBjYWxjKDEwMCUgLSAyMHB4KTtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IDI1MG1zIGFsbCBlYXNlLW91dDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwuNyk7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGhlaWdodDogMzZweDtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgaW5wdXRbdHlwZT1zdWJtaXRdIHtcbiAgICAgICAgZmxleDogMCAwIDIwcHg7XG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICBmb250LWZhbWlseTogZm9udGVsbG87XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkbmFzYWEtbGlnaHQtZ3JheTtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgLm5hc2FhLWhlYWRlci1tZW51LWNvbnRhaW5lciB7XG4gICAgLm1lbnUgPiBsaSB7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAmID4gYSB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnByaW1hcnktbWVudS1jb250YWluZXIgLm1lbnUgbGkgYSB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDEwcHggMTBweCAzMHB4O1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKXtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcbiAgICBwYWRkaW5nOiAzNXB4IDAgMTVweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAuYWRtaW4tYmFyICYgLmhlYWRlci1tZW51IHtcbiAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuXG4gICAgICAuY2xvc2UtbWVudSB7XG4gICAgICAgIHRvcDogNDVweDtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIC5jbG9zZS1tZW51IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwdnc7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA0NXB4KTtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50aXplKCRyZWQsIC4xNSk7XG5cbiAgICAgIGkge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogMjtcbiAgICAgICAgZm9udC1zaXplOiAyNXB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oZWFkZXItbWVudS10cmlnZ2VyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICBpIHtcbiAgICAgICAgZm9udC1zaXplOiA0NXB4O1xuICAgICAgICBjb2xvcjogJG9yYW5nZTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIC5oZWFkZXItbWVudSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDEwMCU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHdpZHRoOiA5MHZ3O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgICB0cmFuc2l0aW9uOiAyNTBtcyBhbGwgZWFzZS1vdXQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkb3JhbmdlO1xuXG4gICAgICAmLm1vYmlsZS1jbG9zZWQge1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAvLyBuYXNhYS10b3AtbWVudS1jb250YWluZXIgYW5kIG1lbnUtdG9wLW1lbnUgYXJlIHRoZSBib3R0b20gbW9iaWxlIG1lbnVcblxuICAgICAgLm5hc2FhLXRvcC1tZW51LWNvbnRhaW5lciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG5cbiAgICAgICNtZW51LXRvcC1tZW51IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcmVkO1xuICAgICAgICBwYWRkaW5nLXRvcDogMTJweDtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogYmxhY2s7XG4gICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG5cbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRlbigkcmVkLCAxMCk7XG5cbiAgICAgICAgICAmLm5hc2FhLW1lbnUtbG9naW4ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgY29sb3I6ICMyMTk5ZTg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gbmFzYWEtaGVhZGVyLW1lbnUtY29udGFpbmVyIGFuZCBtZW51LW5hc2FhLW1lbnUgYXJlIHRoZSB0b3AgbW9iaWxlIG1lbnVcblxuICAgICAgLm5hc2FhLWhlYWRlci1tZW51LWNvbnRhaW5lciB7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG9yZGVyOiAyO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgfVxuXG4gICAgICAubmFzYWEtdG9wLW1lbnUtY29udGFpbmVyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgfVxuXG4gICAgICAuc3RhcnMge1xuICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogN3B4O1xuICAgICAgICBpIHtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm5hc2FhLXRvcC1tZW51IHtcbiAgICAgICAgb3JkZXI6IDM7XG4gICAgICB9XG5cbiAgICAgIC5yb3cge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAubmFzYWEtaGVhZGVyLW1lbnVzLWNvbnRhaW5lciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgLm5hc2FhLW1vYmlsZS1zZWFyY2gge1xuICAgICAgICAvL29yZGVyOiAzO1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkbmFzYWEtZGFyay1ncmF5O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG5cbiAgICAgICAgaW5wdXRbdHlwZT10ZXh0XSB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dFt0eXBlPXN1Ym1pdF0ge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBmb250LWZhbWlseTogZm9udGVsbG87XG5cbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICAgIC5uYXNhYS1tb2JpbGUtc29jaWFsIHtcbiAgICAgICAgLy9vcmRlcjogNDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgI21lbnUtdG9wLW1lbnUge1xuXG4gICAgICBsaSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMztcblxuICAgICAgICAmID4gOm50aC1sYXN0LWNoaWxkKDIpIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgfVxuXG4gICAgICBsaS5uYXNhYS1tZW51LWxvZ2luIHtcblxuICAgICAgICBiYWNrZ3JvdW5kOiAkZGFyay1ibHVlICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgbWFyZ2luOiAxNXB4IDAgMCAwO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgIH1cblxuICAgICNtZW51LW5hc2FhLW1lbnUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bil7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICAmID4gbGkge1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZGFya2VuKCRvcmFuZ2UsIDEwKTtcblxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJiA+IGEge1xuICAgICAgICAgIC8vIHRvcCBsZXZlbCBtZW51IGl0ZW1zXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJiA+IC5zdWItbWVudSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgLy9kaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTQ4ODAwO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuXG4gICAgICAgICAgYSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gICAgI21lbnUtdG9wLW1lbnUsXG4gICAgI21lbnUtbmFzYWEtbWVudSB7XG4gICAgICAubmFzYWEtbW9iaWxlLXN1Ym1lbnUtdHJpZ2dlciB7XG4gICAgICAgIHRyYW5zaXRpb246IDI1MG1zIGFsbCBlYXNlLW91dDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogNnB4O1xuICAgICAgICBib3JkZXItd2lkdGg6IDEuNXB4O1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgbGVmdDogMC41cHg7XG4gICAgICAgICAgdG9wOiAwLjhweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYub3BlbiB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB1bCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxuXG59XG4iLCJoZWFkZXIge1xuXG4gIC5oZWFkZXItbWVudSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAubmFzYWEtaGVhZGVyLW1lbnUtY29udGFpbmVyIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4gICAgcGFkZGluZy10b3A6IDE3cHg7XG4gICAgbWFyZ2luLXRvcDogMTFweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTFweDtcblxuICAgIC5tZW51IGxpIGEge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cbiAgICAubmFzYWEtbWVtYmVyLWJ1dHRvbnMge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIG9ubHkpIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICNtZW51LW5hc2FhLW1lbnUge1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICB9XG5cbiAgICAgIC5uYXNhYS1tZW1iZXItYnV0dG9ucyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gMTBweCAwO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcbiAgICAgIC5yb3cge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIC5tZW51IHtcblxuICAgIC5zdWItbWVudSB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICBhIHtcbiAgICAgICAgcGFkZGluZzogM3B4IDEwcHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0cmFuc2l0aW9uOiAyNTBtcyBhbGwgZWFzZS1vdXQ7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2NjYztcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxuXG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIG9ubHkpIHtcblxuICBoZWFkZXIge1xuXG4gICAgLmhlYWRlci1tZW51IHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLm5hc2FhLWhlYWRlci1tZW51cy1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAubmFzYWEtaGVhZGVyLW1lbnUtY29udGFpbmVyIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbmFzYWEtbGlnaHQtZ3JheTtcbiAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB9XG5cbiAgICAubmFzYWEtaGVhZGVyLW1lbnUtY29udGFpbmVyLFxuICAgIC5uYXNhYS10b3AtbWVudS1jb250YWluZXIge1xuICAgICAgLm1lbnUge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5sb2dvLWNvbnRhaW5lciB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgIH1cblxuICB9XG5cbn1cblxuLm5hc2FhLW1lbnUtZGQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50aXplKCRvcmFuZ2UsIC4yKTtcblxufVxuXG4ubmFzYWEtaW50ZXJpb3ItaGVhZGVyLXRleHQuaGVhZGVyLW1lbnUtZGQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnJvdyB7XG4gIH1cblxuICAudGl0bGUge1xuICAgIC5ib2xkLXN1YmhlYWRlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgd2hpdGU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMnB4O1xuICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRicmlnaHQtcmVkO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkYnJpZ2h0LXJlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY29udGVudCB7XG5cbiAgICAubWVudS1oZWFkZXIge1xuICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICBtYXJnaW46IDMycHggMCAyMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICBhIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAkYnJpZ2h0LXJlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG59IiwiLm5hc2FhLWhvbWUtaGVybyB7XG5cbiAgLnNsaWRlIHtcbiAgICAvL2hlaWdodDogNDUwcHg7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgcmlnaHQ7XG5cbiAgICAudGV4dCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHdpZHRoOiAzMCU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgcGFkZGluZzogMCAxNXB4O1xuXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudGl6ZSgkZGFyay1yZWQsIC4xNSk7XG4gICAgICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IG11bHRpcGx5O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAwO1xuXG4gICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG5cbiAgICAgIGgxIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICB9XG5cbiAgICAgIHAge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGZvbnQtc2l6OiAxOHB4O1xuICAgICAgfVxuXG4gICAgICBhLmJ1dHRvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgcGFkZGluZzogMTJweCAyNXB4O1xuXG4gICAgICAgIGkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICB0b3A6IC0xcHg7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG5cbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBsZWZ0OiA4JTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cblxuICAgIC5jdGEge1xuICAgICAgaSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuXG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNsaWRlLW1ldGEge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAucGFnaW5hdGlvbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIC5wcmV2LCAubmV4dCB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGJyaWdodC1yZWQ7XG4gICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAvL2ZvbnQtc2l6ZTogMjZweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5uZXh0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogN3B4O1xuICAgICAgICB9XG5cbiAgICAgICAgaSB7XG4gICAgICAgICAgYm9yZGVyLXdpZHRoOiAycHg7XG4gICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5wb3NpdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHAge1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNzUlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cblxuICAubmV3cyB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkgYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIC5zbGlkZSB7XG4gICAgICAudGV4dCB7XG4gICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIH1cbiAgICAgICAgcCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICB9XG4gICAgICAgIGgzIHtcbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIG9ubHkpIHtcblxuICAgIC5zbGlkZSB7XG4gICAgICAudGV4dCB7XG4gICAgICAgIHdpZHRoOiA0MCU7XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG5cbiAgICAuc2xpZGUge1xuXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICAgIC50ZXh0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogMTVweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHdoaXRlO1xuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcblxuICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICBwYWRkaW5nOiA4cHggMThweDtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cblxuICB9XG5cbn1cblxuLm5hc2FhLWhvbWUtbmV3cy1zbGlkZXItY29udGFpbmVyIHtcblxuICBwYWRkaW5nOiA1cHggMjVweCAyNXB4O1xuICBiYWNrZ3JvdW5kOiAkcmVkO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG5cbiAgaDUge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcblxuICAgICYudHlwZSB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgfVxuXG4gIC5uZXdzLXRpdGxlLWZvci1zbGlkZXIge1xuICAgIC8vcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vYm90dG9tOiAxMDAlO1xuICAgIC8vbGVmdDogMDtcbiAgICAvL3JpZ2h0OiAwO1xuICAgIGg1IHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICAgIEBpbmNsdWRlIGJvbGQtc3ViaGVhZGVyKCk7XG4gICAgICBsaW5lLWhlaWdodDogMztcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogM2VtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5vd2wtaXRlbS5hY3RpdmUge1xuICAgIGJvcmRlci1yaWdodDogMXB4IGRhc2hlZCAkYnJpZ2h0LXJlZDtcblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG5cbiAgfVxuXG4gIC5zbGlkZSB7XG4gICAgcGFkZGluZzogM3B4IDEwcHg7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICB9XG5cbiAgICBoNSwgaDYsIHAge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICB9XG5cbiAgICAuaW1nIHtcbiAgICAgIGZsZXg6IDAgMCAxMDBweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZXRhIHtcbiAgICAgIGZsZXg6IDEgMCBjYWxjKDEwMCUgLSAxMDBweCk7XG5cbiAgICAgIGEge1xuICAgICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICAgICAgY29sb3I6ICRvcmFuZ2U7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxuXG4gIC5wYWdpbmF0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgaSB7XG4gICAgICBjb2xvcjogbGlnaHRlbigkYnJpZ2h0LXJlZCwgMjUlKTtcbiAgICAgIGJvcmRlci1jb2xvcjogbGlnaHRlbigkYnJpZ2h0LXJlZCwgMTUlKTtcbiAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuICAgIC5wYWdpbmF0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbn1cblxuLm5hc2FhLWhvbWUtY29udGVudCB7XG5cbiAgLm5hc2FhLXJlc2VhcmNoIHtcbiAgICAuc2VjdGlvbi10aXRsZSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkYmx1ZTtcbiAgICAgIGgzLCBpIHtcbiAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgfVxuICAgIH1cbiAgICAudmlld19tb3JlIHtcbiAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICB9XG4gIH1cblxuICAuc2VjdGlvbi10aXRsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICBoMyB7XG4gICAgICBjb2xvcjogJGJsdWU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgLm5hc2FhLWFkdm9jYXRlIHtcblxuICB9XG5cbiAgLm5hc2FhLWNvbm5lY3Qge1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICB9XG5cbiAgfVxuXG59XG5cbi5uYXNhYS1ob21lLW1lbWJlcnNoaXAge1xuXG4gIGZsZXg6IDEgMCBhdXRvO1xuXG4gIC50ZXh0LW9uLWJnLWltZyB7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLnRleHQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBwYWRkaW5nOiAwIDEyJTtcblxuICAgICAgJiA+ICoge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAqIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgfVxuXG4gICAgICBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzJweDtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcbiAgICAgICAgICBmb250LXNpemU6IDI1cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuaWNvbnMge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMTBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIC50ZXh0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAmID4gKiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcblxuICAgICAgbGkge1xuICAgICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICAgICAgaSB7XG4gICAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cbiAgICAudGV4dC1vbi1iZy1pbWcge1xuXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgLnRleHQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6IDVweCA1cHggMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICB9XG5cbiAgICAudGV4dCB7XG4gICAgICB1bCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cbiAgICAudGV4dCB7XG4gICAgICBwYWRkaW5nLXRvcDogMzBweDtcbiAgICB9XG5cbiAgfVxuXG59XG5cbi5uYXNhYS1tZW1iZXItb25seS1jb250ZW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiAkb3JhbmdlO1xuICBwYWRkaW5nOiAyMHB4IDA7XG5cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMzVweDtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cblxuICAuYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICAgIGNvbG9yOiAkb3JhbmdlO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgaSB7XG4gICAgICBjb2xvcjogJG9yYW5nZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRicmlnaHQtcmVkO1xuICAgIH1cbiAgfVxuXG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuXG4gIC5uYXNhYS1ob21lLWhlcm8ub3dsLWNhcm91c2VsIC5vd2wtaXRlbSBpbWcge1xuICAgIG1heC13aWR0aDogaW5oZXJpdDtcbiAgfVxuXG59XG4iLCIubmFzYWEtYmxvZy1ob21lLWhlYWRlciB7XG5cbiAgJiA+IC5yb3cge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgfVxuXG4gIC5maWx0ZXJzIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICB9XG5cbn1cblxuLm5hc2FhLWJsb2ctZmlsdGVycyBmb3JtIHtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMzVweCAxNXB4IDQ1cHg7XG5cbiAgaDQge1xuICAgIGNvbG9yOiAkbmFzYWEtbGlnaHQtZ3JheTtcbiAgICBmbGV4OiAwIDEgMjUlO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5maWx0ZXIge1xuXG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcblxuICAgIGg2IHtcbiAgICAgIEBpbmNsdWRlIGJvbGRfc3ViaGVhZGVyKCk7XG4gICAgICBjb2xvcjogJG5hc2FhLWxpZ2h0LWdyYXk7XG4gICAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG4gICAgfVxuXG4gICAgc2VsZWN0IHtcbiAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gICAgfVxuXG4gIH1cblxufVxuXG4ubmFzYWEtYmxvZy1leGNlcnB0IHtcblxuICBkaXNwbGF5OiBmbGV4O1xuXG4gIC5pbWFnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgZmxleDogMSAwIDI1JTtcbiAgfVxuXG4gIC5jb250ZW50X2NvbnRhaW5lciB7XG4gICAgZmxleDogMSAxIDc1JTtcbiAgfVxuXG4gIC5tZXRhIHtcbiAgICBAaW5jbHVkZSBib2xkX3N1YmhlYWRlcigpO1xuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICAgIGNvbG9yOiAkbmFzYWEtbGlnaHQtZ3JheTtcbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkbmFzYWEtbGlnaHQtZ3JheTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pe1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAuaW1hZ2UsIC5jb250ZW50IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIH1cbiAgfVxuXG59XG5cbi5uYXNhYS1wb3N0LWNvbnRhaW5lciB7XG4gIG1hcmdpbjogYXV0bztcbi5jb2x1bW5zIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG4gICAgZmxleDogMCAxIGF1dG8gIWltcG9ydGFudDtcbiAgfVxufVxuICAucG9zdC10YWdzIHtcbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuICB9XG59XG5cbi5uYXNhYS1yZWxhdGVkLXBvc3RzIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAubmFzYWEtcmVsYXRlZC1wb3N0IHtcbiAgICBmbGV4OiAwIDAgMzAlO1xuXG4gICAgLnRpdGxlIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuICB9XG59XG4iLCIubmFzYWEtZnJvbnQtcGFnZS1leGNlcnB0LFxuLm5hc2FhLWZyb250LXBhZ2UtZXhjZXJwdC13aXRoLWljb24ge1xuICBkaXNwbGF5ICAgICAgICA6IGZsZXg7XG4gIGFsaWduLWl0ZW1zICAgIDogY2VudGVyO1xuICBwYWRkaW5nLWJvdHRvbSA6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b20gIDogMTBweDtcbiAgYm9yZGVyLWJvdHRvbSAgOiAxcHggc29saWQgJG5hc2FhLWxpZ2h0LWdyYXk7XG5cbiAgJjpsYXN0LW9mLXR5cGUge1xuICAgIGJvcmRlci1ib3R0b20gOiBub25lO1xuICB9XG5cbiAgaSB7XG4gICAgZm9udC1zaXplICAgIDogNDBweDtcbiAgICBtYXJnaW4tcmlnaHQgOiAxNXB4O1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgbWFyZ2luIDogMDtcbiAgICB9XG4gIH1cblxuICAudGl0bGUge1xuICAgIG1hcmdpbiA6IDA7XG4gICAgYSB7XG4gICAgICBjb2xvciA6ICRuYXNhYS1kYXJrLWdyYXk7XG4gICAgfVxuICB9XG4gIC5pbmZvIHtcbiAgICBtYXJnaW4gICAgICAgICA6IDA7XG4gICAgZm9udC1mYW1pbHkgICAgOiAkYm9keS1mb250LWZhbWlseTtcbiAgICBjb2xvciAgICAgICAgICA6ICRuYXNhYS1saWdodC1ncmF5O1xuICAgIGZvbnQtc2l6ZSAgICAgIDogMTBweDtcbiAgICBsZXR0ZXItc3BhY2luZyA6IDEuM3B4O1xuICAgIHRleHQtdHJhbnNmb3JtIDogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0ICAgIDogNzAwO1xuICB9XG59XG5cbi5uYXNhYS1zaW1wbGUtY29udGVudCB7XG4gIGgxIHtcbiAgICBjb2xvciA6ICRicmlnaHQtcmVkO1xuICB9XG59XG5cbi5uYXNhYS1yZXNlYXJjaC1maWx0ZXItY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZCAgICAgOiAkZGFyay1ibHVlO1xuICBoZWlnaHQgICAgICAgICA6IDEwMCU7XG4gIGFsaWduLWl0ZW1zICAgIDogY2VudGVyO1xuICBkaXNwbGF5ICAgICAgICA6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uIDogY29sdW1uO1xuICBwYWRkaW5nICAgICAgICA6IDMwcHggNTVweDtcbiAgbWFyZ2luICAgICAgICAgOiAwIDQ1cHg7XG5cbiAgLnRpdGxlIHtcbiAgICBmb250LWZhbWlseSAgICA6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgdGV4dC10cmFuc2Zvcm0gOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0ICAgIDogMTAwO1xuICAgIGxldHRlci1zcGFjaW5nIDogMC42cHg7XG4gICAgZm9udC1zaXplICAgICAgOiAyNXB4O1xuICB9XG5cbiAgcCB7XG4gICAgY29sb3IgOiB3aGl0ZTtcbiAgfVxuXG4gIC5zZWxlY3Qtd3JhcHBlciB7XG4gICAgaSB7XG4gICAgICBjb2xvciA6IHdoaXRlO1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBsZWZ0IDogMDtcbiAgICAgICAgdG9wICA6IDAuNXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tIDogNXB4O1xuICB9XG5cbiAgaW5wdXRbdHlwZT1zdWJtaXRdIHtcbiAgICBtYXJnaW4tdG9wIDogMTVweDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIG9ubHkpIHtcbiAgICBtYXJnaW4gOiAxNXB4IDMwcHg7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcbiAgICBtYXJnaW4gOiAwO1xuICB9XG5cbn1cblxuLm5hc2FhLWN0YSB7XG4gIGJhY2tncm91bmQgICAgICA6ICRvcmFuZ2U7XG4gIGRpc3BsYXkgICAgICAgICA6IGZsZXg7XG4gIGFsaWduLWl0ZW1zICAgICA6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50IDogY2VudGVyO1xuICBmbGV4LWRpcmVjdGlvbiAgOiBjb2x1bW47XG4gIHBhZGRpbmcgICAgICAgICA6IDIwcHggMDtcblxuICAmLmZvb3Rlci1jdGEge1xuICAgIGRpc3BsYXkgOiBibG9jaztcbiAgfVxuICAvLyAqKiB0aGUgdGhyZWUgbmV4dCBibG9ja3MgYXJlIG5vdCBjaGFuZ2luZyB0aGUgcHNldWRvIGFmdGVyIG9uIGhvdmVyICoqIC8vXG4gIC8vLmJ1dHRvbi53aXRoLWljb24ge1xuICAvLyAgJjphZnRlciB7XG4gIC8vICAgIGJvcmRlci1jb2xvcjogJG9yYW5nZTtcbiAgLy8gICAgY29sb3I6ICRvcmFuZ2U7XG4gIC8vICAgICY6aG92ZXI6YWZ0ZXIge1xuICAvLyAgICAgIGNvbG9yOiAkcmVkO1xuICAvLyAgICB9XG4gIC8vICB9XG4gIC8vfVxuXG4gIC5yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uIDogY29sdW1uO1xuXG4gICAgLmdmb3JtX3dyYXBwZXIge1xuICAgICAgd2lkdGggIDogNTAlO1xuICAgICAgbWFyZ2luIDogYXV0bztcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICBtYXgtd2lkdGggOiA3NSU7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuICAgICAgICBtYXgtd2lkdGggOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgZm9ybSAuaW5wdXRfc3VibWl0X3dyYXBwZXI6YWZ0ZXIge1xuICAgIGNvbG9yICAgICAgICA6ICRvcmFuZ2UgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3IgOiAkb3JhbmdlICFpbXBvcnRhbnQ7XG4gICAgdG9wICAgICAgICAgIDogY2FsYyg1MCUgLSAxMHB4KTtcbiAgfVxuXG4gIGEuYnV0dG9uLndpdGgtaWNvbjo6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvciA6ICRvcmFuZ2U7XG4gICAgY29sb3IgICAgICAgIDogJG9yYW5nZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yICAgICAgICA6ICRyZWQgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlci1jb2xvciA6ICRyZWQgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICBhLmJ1dHRvbi53aXRoLWljb246OmFmdGVyIHtcbiAgICBib3JkZXItY29sb3IgOiAkb3JhbmdlO1xuICAgIGNvbG9yICAgICAgICA6ICRvcmFuZ2U7XG4gICAgJjphZnRlcjpob3ZlciB7XG4gICAgICBjb2xvciAgICAgICAgOiAkcmVkICFpbXBvcnRhbnQ7XG4gICAgICBib3JkZXItY29sb3IgOiAkcmVkICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gIH1cblxuICAuY29udGVudCB7XG4gICAgbWF4LXdpZHRoIDogNTUwcHg7XG4gICAgd2lkdGggICAgIDogODAlO1xuICAgIG1hcmdpbiAgICA6IGF1dG87XG4gIH1cblxuICAqIHtcbiAgICB0ZXh0LWFsaWduIDogY2VudGVyO1xuICB9XG5cbiAgaDIge1xuICAgIGNvbG9yICAgICAgICAgOiB3aGl0ZTtcbiAgICB0ZXh0LWFsaWduICAgIDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZSAgICAgOiAzNnB4O1xuICAgIG1hcmdpbi1ib3R0b20gOiAxNXB4O1xuICB9XG5cbiAgcCB7XG4gICAgY29sb3IgICAgICAgICA6IHdoaXRlO1xuICAgIGxpbmUtaGVpZ2h0ICAgOiAwO1xuICAgIG1hcmdpbi1ib3R0b20gOiAwO1xuICB9XG5cbiAgLmJ1dHRvbiB7XG4gICAgY29sb3IgICAgICAgICA6ICRvcmFuZ2UgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kICAgIDogd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1cyA6IDI1cHg7XG4gICAgbWFyZ2luICAgICAgICA6IDA7XG4gICAgJjphZnRlciB7XG4gICAgICB0cmFuc2l0aW9uIDogMjUwbXMgYWxsIGVhc2Utb3V0O1xuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yIDogJHJlZCAhaW1wb3J0YW50O1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIGNvbG9yICAgICAgICA6ICRyZWQgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yIDogJHJlZCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuICAgIHBhZGRpbmcgOiAxNXB4O1xuXG4gICAgaDIge1xuICAgICAgZm9udC1zaXplIDogMjZweDtcbiAgICB9XG5cbiAgfVxuXG59XG5cbi5uYXNhYS1hZHZvY2FjeS1hcmNoaXZlLWhlYWRlciB7XG5cbiAgLnNpZ251cC1jb250YWluZXIge1xuICAgIG1hcmdpbi1sZWZ0ICAgICAgICAgICA6IGF1dG87XG4gICAgZGlzcGxheSAgICAgICAgICAgICAgIDogZmxleDtcbiAgICBhbGlnbi1pdGVtcyAgICAgICAgICAgOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50ICAgICAgIDogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uICAgICAgICA6IGNvbHVtbjtcbiAgICBwYWRkaW5nICAgICAgICAgICAgICAgOiAzJSA3JTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uICAgOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplICAgICAgIDogY292ZXI7XG4gICAgcG9zaXRpb24gICAgICAgICAgICAgIDogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvciAgICAgIDogdHJhbnNwYXJlbnRpemUoJGRhcmstZ3JheSwgLjEpO1xuICAgIGJhY2tncm91bmQtYmxlbmQtbW9kZSA6IG11bHRpcGx5O1xuXG4gICAgaDQge1xuICAgICAgY29sb3IgICAgICA6IHdoaXRlO1xuICAgICAgdGV4dC1hbGlnbiA6IGNlbnRlcjtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIGNvbG9yIDogd2hpdGU7XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgJlt0eXBlPXRleHRdLFxuICAgICAgJlt0eXBlPWVtYWlsXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC40KTtcbiAgICAgICAgYm9yZGVyICAgICAgICAgICA6IDFweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1cyAgICA6IDI1cHg7XG4gICAgICAgIGJveC1zaGFkb3cgICAgICAgOiBub25lO1xuICAgICAgICBtYXJnaW4tYm90dG9tICAgIDogMjVweCAhaW1wb3J0YW50O1xuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICBjb2xvciA6IHdoaXRlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICZbdHlwZT1zdWJtaXRdIHtcbiAgICAgICAgbWFyZ2luICA6IGF1dG87XG4gICAgICAgIGRpc3BsYXkgOiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIC5zaWdudXAge1xuICAgIGRpc3BsYXkgICA6IGZsZXg7XG4gICAgZmxleC13cmFwIDogd3JhcDtcblxuICAgIGlucHV0IHtcbiAgICAgICYuZmlyc3RfbmFtZSwgJi5sYXN0X25hbWUge1xuICAgICAgICBmbGV4ICAgICAgICAgIDogMCAwIDUwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbSA6IDVweDtcbiAgICAgIH1cblxuICAgICAgJi5lbWFpbF9hZGRyZXNzIHtcbiAgICAgICAgZmxleCA6IDAgMCAxMDAlO1xuICAgICAgfVxuXG4gICAgICAmW3R5cGU9c3VibWl0XSB7XG4gICAgICAgIGZsZXggOiAwIDAgYXV0bztcbiAgICAgIH1cblxuICAgIH1cbiAgfVxufVxuXG4ubmFzYWEtYWR2b2NhY3ktaGVscGVycyB7XG4gIGhlaWdodCA6IGF1dG87XG4gIC5jb250ZW50IHtcbiAgICB3aWR0aCAgICAgOiAxMDAlO1xuICAgIG1heC13aWR0aCA6IG5vbmU7XG5cbiAgICAudGl0bGUge1xuICAgICAgdGV4dC1hbGlnbiA6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAqIHtcbiAgICAgIGNvbG9yICAgICAgOiB3aGl0ZTtcbiAgICAgIHRleHQtYWxpZ24gOiBsZWZ0O1xuICAgIH1cblxuICAgIGgzIHtcbiAgICAgIGZvbnQtc2l6ZSAgICAgOiAxOHB4O1xuICAgICAgZm9udC13ZWlnaHQgICA6IDYwMDtcbiAgICAgIG1hcmdpbi1ib3R0b20gOiAxNXB4O1xuICAgICAgbGluZS1oZWlnaHQgICA6IDEuMjtcbiAgICB9XG5cbiAgICBoNiB7XG4gICAgICBtYXJnaW4tYm90dG9tIDogMTBweDtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIGZvbnQtc2l6ZSAgIDogMTRweDtcbiAgICAgIGxpbmUtaGVpZ2h0IDogMS4zO1xuICAgIH1cbiAgfVxuXG4gIC5oZWxwZXIge1xuICAgIGhlaWdodCAgICAgICAgICAgICAgOiAxNDBweDtcbiAgICB3aWR0aCAgICAgICAgICAgICAgIDogMTQwcHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbiA6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzICAgICAgIDogMTAwJTtcbiAgfVxufVxuXG4ubmFzYWEtZXhjZXJwdC13aXRoLWljb24ge1xuICBkaXNwbGF5ICAgICAgIDogZmxleDtcbiAgYm9yZGVyLWJvdHRvbSA6IDFweCBzb2xpZCBkYXJrZW4oJG5hc2FhLWdyYXktc2hhZGUsIDEwJSk7XG4gIHBhZGRpbmcgICAgICAgOiAxMHB4IDA7XG4gIHRyYW5zaXRpb24gICAgOiAyNTBtcyBhbGwgZWFzZS1vdXQ7XG5cbiAgJiAqIHtcbiAgICB0cmFuc2l0aW9uIDogMjUwbXMgYWxsIGVhc2Utb3V0O1xuICB9XG5cbiAgaSB7XG4gICAgZmxleCAgICAgICAgICAgIDogMCAwIDQ1cHg7XG4gICAgZGlzcGxheSAgICAgICAgIDogZmxleDtcbiAgICBhbGlnbi1pdGVtcyAgICAgOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50IDogY2VudGVyO1xuICAgIGNvbG9yICAgICAgICAgICA6ICRuYXNhYS1kYXJrLWdyYXk7XG4gICAgZm9udC1zaXplICAgICAgIDogMjBweDtcbiAgfVxuXG4gIGg1IHtcbiAgICBmbGV4ICAgICAgOiAxIDEgYXV0bztcbiAgICBmb250LXNpemUgOiAxOHB4O1xuICAgIG1hcmdpbiAgICA6IDA7XG4gICAgcGFkZGluZyAgIDogMCAzcHg7XG4gIH1cblxuICBhIHtcbiAgICBjb2xvciA6ICRuYXNhYS1kYXJrLWdyYXk7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kIDogJG5hc2FhLWRhcmstZ3JheTtcblxuICAgIGEsIGkge1xuICAgICAgY29sb3IgOiB3aGl0ZTtcbiAgICB9XG5cbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbSA6IG5vbmU7XG4gIH1cblxufVxuXG4ubmFzYWEtY29udGVudC13aXRoLW11bHRpcGxlLWZpbGUtc2VjdGlvbnMge1xuXG4gIC5uYXNhYS1maWxlLXNlY3Rpb24tY29udGFpbmVyIHtcbiAgICBmbGV4LXdyYXAgOiB3cmFwO1xuXG4gICAgLm5hc2FhLWZpbGUtc2VjdGlvbiB7XG4gICAgICBmbGV4IDogMSAwIDMzJTtcbiAgICB9XG5cbiAgfVxufVxuXG4ubmFzYWEtbWVtYmVyLWxvZ2luIHtcbiAgd2lkdGggIDogNTAlO1xuICBtYXJnaW4gOiBhdXRvO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIG9ubHkpIHtcbiAgICB3aWR0aCA6IDc1JTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuICAgIHdpZHRoIDogMTAwJTtcbiAgfVxufVxuXG4ubmFzYWEtcG9zdC1leGNlcnB0IHtcbiAgYm9yZGVyLWJvdHRvbSA6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiAgbWFyZ2luLWJvdHRvbSA6IDE1cHg7XG5cbiAgJjpsYXN0LW9mLXR5cGUge1xuICAgIGJvcmRlci1ib3R0b20gOiBub25lO1xuICAgIG1hcmdpbi1ib3R0b20gOiAwO1xuICB9XG5cbiAgaDYge1xuICAgIG1hcmdpbiAgICAgICAgIDogMCAwIDVweDtcbiAgICBjb2xvciAgICAgICAgICA6ICRuYXNhYS1saWdodC1ncmF5O1xuICAgIGZvbnQtc2l6ZSAgICAgIDogMTBweDtcbiAgICBsZXR0ZXItc3BhY2luZyA6IDEuM3B4O1xuICAgIHRleHQtdHJhbnNmb3JtIDogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0ICAgIDogNzAwO1xuICAgIGZvbnQtZmFtaWx5ICAgIDogJGJvZHktZm9udC1mYW1pbHk7XG4gIH1cblxuICBoNCB7XG4gICAgZm9udC1zaXplIDogMThweDtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yIDogJG5hc2FhLWRhcmstZ3JheTtcbiAgfVxuXG59XG5cbi5uYXNhYS1pbnRlcmlvci1oZXJvIHtcbiAgcG9zaXRpb24gICAgICAgICAgICA6IHJlbGF0aXZlO1xuICBmbGV4ICAgICAgICAgICAgICAgIDogMCAwIGF1dG87XG4gIGJhY2tncm91bmQtcG9zaXRpb24gOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZSAgICAgOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQgICA6IG5vLXJlcGVhdDtcblxuICBpbWcge1xuICAgIHdpZHRoIDogMTAwJTtcbiAgfVxuXG4gIC50ZXh0LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb24gOiBhYnNvbHV0ZTtcbiAgICBib3R0b20gICA6IC0zcHg7XG4gICAgbGVmdCAgICAgOiAwO1xuICAgIHJpZ2h0ICAgIDogMDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuICAgICAgYm90dG9tIDogLTI1cHg7XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJGxhYmVsLCAkY29sb3IsICRob3ZlciBpbiAkY29sb3JzIHtcbiAgICAmLiN7JGxhYmVsfS10ZXh0IHtcbiAgICAgIGgxIHtcbiAgICAgICAgY29sb3IgOiAjeyRjb2xvcn1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoMSB7XG4gICAgYmFja2dyb3VuZCAgOiB3aGl0ZTtcbiAgICBtYXJnaW4gICAgICA6IDA7XG4gICAgY29sb3IgICAgICAgOiAkb3JhbmdlO1xuICAgIGZsb2F0ICAgICAgIDogbGVmdDtcbiAgICBsaW5lLWhlaWdodCA6IDE7XG4gICAgcGFkZGluZyAgICAgOiAxNXB4IDUwcHggMDtcbiAgICBmb250LXNpemUgICA6IDUwcHg7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG4gICAgICBwYWRkaW5nICAgOiAxNXB4IDI1cHggMDtcbiAgICAgIGZvbnQtc2l6ZSA6IDM2cHg7XG4gICAgfVxuXG4gICAgJi5yZWQge1xuICAgICAgY29sb3IgOiAkYnJpZ2h0LXJlZDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcbiAgICBoZWlnaHQgICAgICAgICAgICAgIDogMTYwcHg7XG4gICAgYmFja2dyb3VuZC1zaXplICAgICA6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb24gOiBjZW50ZXI7XG5cbiAgICBpbWcge1xuICAgICAgbWF4LXdpZHRoIDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgd2lkdGggICAgIDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgLy8gd2UgaGF2ZSB0aGUgYmFja2dvcm91bmQgaW1hZ2UgYWxzbyBpbiB0aGUgZGl2LFxuICAgICAgLy8gc28gb24gdGhpcyBzaXplIHdlJ3JlIHVzaW5nIHRoZSBpbWcgdHJpY2suXG4gICAgICBvcGFjaXR5ICAgOiAwO1xuICAgIH1cblxuICAgIC50ZXh0LWNvbnRhaW5lciB7XG4gICAgICBib3R0b20gOiAtMzVweDtcbiAgICB9XG5cbiAgfVxuXG59XG5cbi5uYXNhYS1leGNlcnB0LXdpdGgtZXhjZXJwdCB7XG5cbiAgaDYge1xuICAgIGNvbG9yIDogJG5hc2FhLWxpZ2h0LWdyYXk7XG4gICAgQGluY2x1ZGUgYm9sZC1zdWJoZWFkZXI7XG4gIH1cblxuICBhIHtcbiAgICBAaW5jbHVkZSBob3Zlcl9jb2xvcnMoJG5hc2FhLWRhcmstZ3JheSwgZGFya2VuKCRuYXNhYS1kYXJrLWdyYXksIDEwJSkpO1xuICB9XG5cbiAgYm9yZGVyLWJvdHRvbSA6IDFweCBzb2xpZCAkbmFzYWEtbGlnaHQtZ3JheTtcbiAgbWFyZ2luLWJvdHRvbSA6IDIwcHg7XG59XG5cbi5zZWN0aW9uLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbSA6IDIwcHg7XG4gIGJvcmRlci1ib3R0b20gOiA4cHggc29saWQ7XG4gIGRpc3BsYXkgICAgICAgOiBmbGV4O1xuICBhbGlnbi1pdGVtcyAgIDogY2VudGVyO1xuICBmbGV4LXdyYXAgICAgIDogd3JhcDtcblxuICBoMyB7XG4gICAgZm9udC1mYW1pbHkgICAgOiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGxpbmUtaGVpZ2h0ICAgIDogMS4yO1xuICAgIGNvbG9yICAgICAgICAgIDogJGJsdWU7XG4gICAgZmxleCAgICAgICAgICAgOiAxIDAgYXV0bztcbiAgICBmb250LXNpemUgICAgICA6IDM2cHg7XG4gICAgbGV0dGVyLXNwYWNpbmcgOiAxcHg7XG4gICAgZGlzcGxheSAgICAgICAgOiBibG9jaztcbiAgICBmb250LXdlaWdodCAgICA6IDQwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybSA6IG5vbmU7XG4gICAgbWF4LXdpZHRoICAgICAgOiAxMDAlO1xuXG4gICAgJi5zbWFsbCB7XG4gICAgICBmb250LXNpemUgOiAyMnB4O1xuICAgIH1cblxuICAgIHNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGJvbGRfc3ViaGVhZGVyO1xuICAgICAgY29sb3IgICAgICAgICAgOiBpbmhlcml0O1xuICAgICAgbGluZS1oZWlnaHQgICAgOiAxO1xuICAgICAgZGlzcGxheSAgICAgICAgOiBibG9jaztcbiAgICAgIHBhZGRpbmctYm90dG9tIDogNXB4O1xuICAgIH1cblxuICB9XG4gIHAge1xuICAgIGZsZXggOiAwIDAgMTAwJTtcbiAgfVxuXG4gIGkge1xuICAgIGZvbnQtc2l6ZSA6IDQzcHg7XG4gICAgZmxleCAgICAgIDogMCAwIGF1dG87XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBtYXJnaW4tbGVmdCA6IDA7XG4gICAgICBwb3NpdGlvbiAgICA6IHJlbGF0aXZlO1xuICAgICAgdG9wICAgICAgICAgOiAtNXB4O1xuICAgICAgZGlzcGxheSAgICAgOiBibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0IDogMTtcbiAgICB9XG4gIH1cblxuICAmID4gYSB7XG4gICAgZGlzcGxheSAgICAgOiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zIDogY2VudGVyO1xuICB9XG5cbiAgQGVhY2ggJGxhYmVsLCAkY29sb3IsICRob3ZlciBpbiAkY29sb3JzIHtcbiAgICAmLiN7JGxhYmVsfSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yIDogI3skY29sb3J9O1xuICAgICAgaDMsIGkge1xuICAgICAgICBjb2xvciA6ICN7JGNvbG9yfVxuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbn1cblxuLm5hc2FhLWltYWdlLXdpdGgtdGV4dC1vdmVybGF5IHtcbiAgcG9zaXRpb24gICAgICAgICAgICA6IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLXNpemUgICAgIDogY29udGFpbjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbiA6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQgICA6IG5vLXJlcGVhdDtcbiAgLy9taW4taGVpZ2h0OiA0MDBweDtcbiAgd2lkdGggICAgICAgICAgICAgICA6IDEwMCU7XG5cbiAgJiA+IGE6aG92ZXIgaDIge1xuICAgIGNvbG9yIDogJG9yYW5nZTtcbiAgfVxuXG4gIGgyIHtcbiAgICB0cmFuc2l0aW9uIDogMjUwbXMgYWxsIGVhc2Utb3V0O1xuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgaG92ZXJfY29sb3JzKHdoaXRlLCAkb3JhbmdlKTtcbiAgfVxuXG4gIC5jcmVkaXQge1xuICAgIEBpbmNsdWRlIHBob3RvX2NhcHRpb247XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoICAgOiAxMDAlO1xuICAgIGhlaWdodCAgOiAxMDAlO1xuICAgIGRpc3BsYXkgOiBibG9jaztcbiAgfVxuXG4gIC50ZXh0IHtcbiAgICBwb3NpdGlvbiAgICAgICAgOiBhYnNvbHV0ZTtcbiAgICB0b3AgICAgICAgICAgICAgOiAwO1xuICAgIGJvdHRvbSAgICAgICAgICA6IDA7XG4gICAgbGVmdCAgICAgICAgICAgIDogMTUlO1xuICAgIHJpZ2h0ICAgICAgICAgICA6IDE1JTtcbiAgICBkaXNwbGF5ICAgICAgICAgOiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zICAgICA6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQgOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb24gIDogY29sdW1uO1xuICAgIHotaW5kZXggICAgICAgICA6IDI7XG5cbiAgICAqIHtcbiAgICAgIG1heC13aWR0aCA6IDEwMCU7XG4gICAgfVxuXG4gICAgKjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b20gOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgaDIge1xuICAgIGNvbG9yICAgICAgIDogd2hpdGU7XG4gICAgZm9udC1zaXplICAgOiAzMnB4O1xuICAgIGxpbmUtaGVpZ2h0IDogMS4yO1xuICAgIHRleHQtYWxpZ24gIDogY2VudGVyO1xuICB9XG5cbiAgcCB7XG4gICAgY29sb3IgOiB3aGl0ZTtcbiAgfVxuXG4gIC5uYXNhYS1hc2stYS1xdWVzdGlvbi1mb3JtIHtcblxuICAgIGlucHV0W3R5cGU9dGV4dF0ge1xuICAgICAgYm9yZGVyICAgICAgICA6IG5vbmU7XG4gICAgICBib3JkZXItYm90dG9tIDogMXB4IHNvbGlkIHdoaXRlO1xuICAgICAgd2lkdGggICAgICAgICA6IDQwMHB4O1xuICAgICAgY29sb3IgICAgICAgICA6IHdoaXRlO1xuICAgICAgYmFja2dyb3VuZCAgICA6IHRyYW5zcGFyZW50O1xuICAgICAgYm94LXNoYWRvdyAgICA6IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduICAgIDogY2VudGVyO1xuXG4gICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGZvbnQtc3R5bGUgOiBpdGFsaWM7XG4gICAgICAgIGNvbG9yICAgICAgOiB3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPXN1Ym1pdF0ge1xuICAgICAgZGlzcGxheSA6IGJsb2NrO1xuICAgICAgbWFyZ2luICA6IDE1cHggYXV0byAwO1xuICAgIH1cblxuICB9XG5cbiAgJi5zaGFkZSB7XG4gICAgYmFja2dyb3VuZC1ibGVuZC1tb2RlIDogbXVsdGlwbHk7XG4gICAgYmFja2dyb3VuZC1zaXplICAgICAgIDogY292ZXI7XG5cbiAgICBAZWFjaCAkbGFiZWwsICRjb2xvciwgJGhvdmVyIGluICRjb2xvcnMge1xuICAgICAgJi4jeyRsYWJlbH0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDogdHJhbnNwYXJlbnRpemUoJGNvbG9yLCAuNSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIG9wYWNpdHkgOiAwO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgY29sb3IgOiB3aGl0ZTtcbiAgICB9XG5cbiAgICAvLyB0aGlzIGlzIGZvciB0aGUgaW1hZ2VzIHRoYXQgZG9uJ3QgaGF2ZSBvdmVybGF5IHRleHQgYW5kIHNob3VsZCBqdXN0IGRpc3BsYXkgYXMgbm9ybWFsIGltYWdlc1xuICAgICYuZmFsc2Uge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZSA6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGggICA6IGF1dG87XG4gICAgICAgIGhlaWdodCAgOiBhdXRvO1xuICAgICAgICBkaXNwbGF5IDogYmxvY2s7XG4gICAgICAgIG1hcmdpbiAgOiBhdXRvO1xuICAgICAgICBvcGFjaXR5IDogMTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuICAgICAgaW1nIHtcbiAgICAgICAgZGlzcGxheSA6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcbiAgICB3aWR0aCAgICAgICAgICAgICAgIDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uIDogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZSAgICAgOiBjb3ZlcjtcbiAgICBwYWRkaW5nICAgICAgICAgICAgIDogMDtcblxuICAgIC50ZXh0IHtcbiAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nICA6IDE3dncgM3Z3O1xuICAgICAgbGVmdCAgICAgOiAwO1xuXG4gICAgICBiciB7XG4gICAgICAgIGRpc3BsYXkgOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbn1cblxuLm5hc2FhLWFkdm9jYWN5LXVwZGF0ZXMge1xuXG4gIC5uYXNhYS1leGNlcnB0LXdpdGgtZXhjZXJwdCB7XG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBob3Zlcl9jb2xvcnMoJG5hc2FhLWRhcmstZ3JheSwgYmxhY2spO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXG4gICAgLnJvdy5jb2xsYXBzZSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbiA6IGNvbHVtbjtcbiAgICB9XG5cbiAgICBoMSB7XG4gICAgICB0ZXh0LWFsaWduIDogY2VudGVyO1xuICAgIH1cblxuICB9XG59XG5cbi5uYXNhYS10b29scy1jb250YWluZXIge1xuICBwYWRkaW5nIDogMCAzMHB4IDMwcHg7XG5cbiAgLm5hc2FhLXRvb2xzLWltZyB7XG4gICAgZGlzcGxheSA6IGJsb2NrO1xuICAgIG1hcmdpbiAgOiAyNXB4IGF1dG87XG4gIH1cblxufVxuXG4ubmFzYWEtZmVhdHVyZWQtcmVzZWFyY2gge1xuXG4gIC50ZXh0IHtcbiAgICBoNCB7XG4gICAgICBAaW5jbHVkZSBiaWdfaGVhZGVyKCk7XG4gICAgfVxuICB9XG5cbiAgLnZpZXctbW9yZSB7XG4gICAgQGluY2x1ZGUgYm9sZF9zdWJoZWFkZXIoKTtcbiAgICB0ZXh0LWFsaWduIDogcmlnaHQ7XG5cbiAgICAmLm9yYW5nZSB7XG4gICAgICBjb2xvciA6ICRvcmFuZ2U7XG4gICAgICBpIHtcbiAgICAgICAgY29sb3IgICAgICAgIDogJG9yYW5nZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yIDogJG9yYW5nZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmJsdWUge1xuICAgICAgY29sb3IgOiAkYmx1ZTtcbiAgICB9XG4gIH1cblxuICAuc2VjdGlvbi10aXRsZSB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aCA6IDhweDtcbiAgfVxuXG59XG5cbi5uYXNhYS1mZWF0dXJlZC1yZXNlYXJjaC1jb250YWluZXIge1xuICBtYXJnaW4tbGVmdCA6IGF1dG87XG59XG5cbi5uYXNhYS12aWV3LW1vcmUtbGluayB7XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgYm9sZF9zdWJoZWFkZXI7XG4gIH1cblxuICBiciB7XG4gICAgZGlzcGxheSA6IG5vbmU7XG4gIH1cblxuICBAZWFjaCAkbGFiZWwsICRjb2xvciwgJGhvdmVyIGluICRjb2xvcnMge1xuICAgICYuI3skbGFiZWx9IHtcbiAgICAgIGEsIGkge1xuICAgICAgICBjb2xvciAgICAgIDogI3skY29sb3J9ICFpbXBvcnRhbnQ7XG4gICAgICAgIHRyYW5zaXRpb24gOiAyNTBtcyBhbGwgZWFzZS1vdXQ7XG4gICAgICB9XG4gICAgICBpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yIDogI3skY29sb3J9ICFpbXBvcnRhbnQ7XG4gICAgICAgIHRyYW5zaXRpb24gICA6IDI1MG1zIGFsbCBlYXNlLW91dDtcbiAgICAgIH1cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBhLCBpIHtcbiAgICAgICAgICBjb2xvciA6ICN7JGhvdmVyfSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIGkge1xuICAgICAgICAgIGJvcmRlci1jb2xvciA6ICN7JGhvdmVyfSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuLm5hc2FhLWFzay1yZXNlYXJjaC10ZWFtIHtcbiAgcG9zaXRpb24gOiByZWxhdGl2ZTtcbn1cblxuLm5hc2FhLXJlc2VhcmNoLXRvcGljcyB7XG5cbiAgLy8gaW4gdGhlIHJlc2VhcmNoIHRvb2xzIHNlY3Rpb24sIHdlIHdhbnQgdGhlIHNlY3Rpb25cbiAgLy8gZGl2aWRlcnMgdG8gYmUgYSBsaXR0bGUgYm9sZGVyLiB3ZSBtYXkgcmVmYWN0b3IgdGhpc1xuICAvLyBsYXRlci5cblxuICAuZGl2aWRlci5kYXNoZWQ6YmVmb3JlIHtcbiAgICBib3JkZXItdG9wLXdpZHRoIDogMnB4O1xuICB9XG5cbiAgLm5hc2FhLXZpZXctbW9yZS1saW5rIHtcbiAgICBhOmhvdmVyIHtcbiAgICAgIGNvbG9yIDogJGJsdWU7XG5cbiAgICAgIGkge1xuICAgICAgICBjb2xvciAgICAgICAgOiAkYmx1ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yIDogJGJsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcblxuICAgIC5jb2x1bW4ge1xuICAgICAgJjpudGgtY2hpbGQoM24gLSAxKSB7XG4gICAgICAgIGJhY2tncm91bmQgOiAkbmFzYWEtZ3JheS1zaGFkZTtcbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tIDogNjBweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOm50aC1vZi10eXBlKDEpLFxuICAgICAgJjpudGgtb2YtdHlwZSgyKSxcbiAgICAgICY6bnRoLW9mLXR5cGUoMykge1xuICAgICAgICBwYWRkaW5nLXRvcCA6IDYwcHg7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxufVxuXG4ubmFzYWEtaW50ZXJpb3ItaGVhZGVyLXRleHQge1xuICBiYWNrZ3JvdW5kIDogJG9yYW5nZTtcblxuICAqIHtcbiAgICBjb2xvciA6IHdoaXRlO1xuICB9XG5cbiAgLnRpdGxlIHtcbiAgICBwYWRkaW5nLXJpZ2h0IDogMjBweDtcblxuICAgIGgyIHtcbiAgICAgIGZvbnQtc2l6ZSAgIDogNTBweDtcbiAgICAgIG1hcmdpbiAgICAgIDogMDtcbiAgICAgIGxpbmUtaGVpZ2h0IDogMS4xO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcbiAgICAgICAgZm9udC1zaXplIDogMzBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY29udGVudCB7XG4gICAgcGFkZGluZy1sZWZ0IDogMjBweDtcbiAgfVxuXG4gIC5pbWFnZSB7XG4gICAgbWF4LWhlaWdodCAgICAgICAgICA6IDQwMHB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb24gOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplICAgICA6IGNvdmVyO1xuICAgIG92ZXJmbG93ICAgICAgICAgICAgOiBoaWRkZW47XG4gICAgcG9zaXRpb24gICAgICAgICAgICA6IHJlbGF0aXZlO1xuXG4gICAgLmNhcHRpb24ge1xuICAgICAgQGluY2x1ZGUgcGhvdG9fY2FwdGlvbjtcbiAgICAgIGRpc3BsYXkgOiBub25lOyAvLyBzdWUgd2FudGVkIHRvIHJlbW92ZSBjcmVkaXQgbGluZXMgZm9yIGhlcm8gaW1hZ2VzXG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG4gICAgICBtaW4taGVpZ2h0IDogMzAwcHg7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIG9wYWNpdHkgOiAwO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuXG4gICAgLnRpdGxlIHtcbiAgICAgIGgyIHtcbiAgICAgICAgdGV4dC1hbGlnbiA6IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxufVxuXG4ubmFzYWEtYWNjb3JkaW9uIHtcbiAgd2lkdGggOiAxMDAlO1xufVxuXG4ubmFzYWEtcG9zdC1xdWVyeSB7XG5cbiAgLmZlYXQtaW1nIHtcbiAgfVxuXG59XG5cbi5uYXNhYS1mdWxsLXdpZHRoLWltYWdlIHtcbiAgLnJvdyB7XG4gICAgbWF4LXdpZHRoIDogODByZW07XG4gIH1cbn1cblxuLmZpbHRlcmluZ1RheCB7XG4gIHdpZHRoICAgICAgICAgOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tIDogMTVweDtcblxuICAmID4gLnJvdyB7XG4gICAgYWxpZ24taXRlbXMgICAgIDogY2VudGVyO1xuICAgIGRpc3BsYXkgICAgICAgICA6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50IDogY2VudGVyO1xuICAgIHdpZHRoICAgICAgICAgICA6IDEwMCU7XG5cbiAgICAmID4gKiB7XG4gICAgICBtYXJnaW4gOiAwIDNweDtcbiAgICB9XG5cbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgbWFyZ2luLWJvdHRvbSA6IDA7XG4gIH1cblxuICBsYWJlbCB7XG4gICAgQGluY2x1ZGUgcmVkX3N1YmhlYWRlcjtcbiAgfVxufVxuXG4udmlkZW8tY29udGFpbmVyIHtcbiAgcG9zaXRpb24gICAgICAgOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b20gOiA1Ni4yNSU7XG4gIGhlaWdodCAgICAgICAgIDogMDtcbiAgb3ZlcmZsb3cgICAgICAgOiBoaWRkZW47XG4gIG1heC13aWR0aCAgICAgIDogMTAwJTtcbiAgaGVpZ2h0ICAgICAgICAgOiBhdXRvO1xuXG4gIGlmcmFtZSwgb2JqZWN0LCBlbWJlZCB7XG4gICAgcG9zaXRpb24gOiBhYnNvbHV0ZTtcbiAgICB0b3AgICAgICA6IDA7XG4gICAgbGVmdCAgICAgOiAwO1xuICAgIHdpZHRoICAgIDogMTAwJTtcbiAgICBoZWlnaHQgICA6IDEwMCU7XG4gIH1cblxufVxuXG4ubmFzYWEtdmlkZW8ge1xuXG4gIC5jb2x1bW4ge1xuICAgIG1hcmdpbiA6IGF1dG87XG4gIH1cblxufVxuXG4ubmFzYWEtYWJvdXQtbGlua3Mge1xuXG4gIC50ZXh0LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheSAgICAgOiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zIDogY2VudGVyO1xuICAgIG92ZXJmbG93ICAgIDogaGlkZGVuO1xuICB9XG5cbiAgLnRleHQtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbiAgICAgOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQgOiA0JTtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50ICAgIDogXCJcIjtcbiAgICAgIHRvcCAgICAgICAgOiAwO1xuICAgICAgYm90dG9tICAgICA6IDA7XG4gICAgICBsZWZ0ICAgICAgIDogMDtcbiAgICAgIHdpZHRoICAgICAgOiAxMDAwMDAwcHg7XG4gICAgICBiYWNrZ3JvdW5kIDogJG5hc2FhLWdyYXktc2hhZGU7XG4gICAgICB6LWluZGV4ICAgIDogLTE7XG4gICAgICBwb3NpdGlvbiAgIDogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgLmltZyB7XG4gICAgbWFyZ2luIDogYXV0bztcbiAgfVxuXG59XG5cbi5uYXNhYS1hYm91dC10ZXh0LWluZm8ge1xuXG4gIC5hYm91dC1uYXNhYS1saW5rcy1jb250YWluZXIge1xuICAgIG1hcmdpbi1sZWZ0IDogYXV0bztcbiAgfVxuXG4gIC5hYm91dC1uYXNhYS1saW5rcyB7XG4gICAgYmFja2dyb3VuZCA6ICRkYXJrLWJsdWU7XG4gICAgcGFkZGluZyAgICA6IDM1cHggNDBweDtcbiAgICBkaXNwbGF5ICAgIDogZmxleDtcblxuICAgIC5zZWN0aW9uIHtcbiAgICAgIGRpc3BsYXkgICAgICAgICA6IGZsZXg7XG4gICAgICBmbGV4ICAgICAgICAgICAgOiAwIDAgNTAlO1xuICAgICAgZmxleC1kaXJlY3Rpb24gIDogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXMgICAgIDogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50IDogY2VudGVyO1xuICAgICAgcGFkZGluZyAgICAgICAgIDogMDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG4gICAgICAgIGZsZXggOiAwIDAgMTAwJTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBtYXJnaW4tdG9wIDogYXV0bztcbiAgICB9XG5cbiAgICAudGV4dCB7XG4gICAgICBtYXJnaW4tdG9wICA6IGF1dG87XG4gICAgICBwYWRkaW5nLXRvcCA6IDE1cHg7XG5cbiAgICAgIHAge1xuICAgICAgICBjb2xvciAgICAgICA6IHdoaXRlO1xuICAgICAgICBmb250LWZhbWlseSA6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZSAgIDogMThweDtcbiAgICAgICAgcGFkZGluZyAgICAgOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIHAge1xuICAgICAgcGFkZGluZyA6IDAgMTVweDtcblxuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tIDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZGl2aWRlciB7XG4gICAgICBmbGV4IDogMDtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvciA6ICMyNjIyNjI7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxuXG59XG5cbi5uYXNhYS1nb29nbGUtbWFwIHtcbiAgaGVpZ2h0IDogNTAwcHg7XG59XG5cbi5uYXNhYS1jdGEubmFzYWEtYWR2b2NhY3ktaGVscGVycyB7XG5cbiAgJiA+IC5jb250ZW50ID4gLmFzay1uYXNhYS1oZWxwZXJzIHtcbiAgICBmbGV4LWRpcmVjdGlvbiA6IHJvdztcblxuICAgIC5jb2x1bW4ge1xuICAgICAgbWF4LXdpZHRoIDogMTAwJTtcbiAgICB9XG5cbiAgICAucm93IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uIDogcm93O1xuICAgIH1cblxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG4gICAgLmFzay1uYXNhYS1oZWxwZXJzIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uIDogY29sdW1uO1xuXG4gICAgICAuY29sdW1uIHtcbiAgICAgICAgZmxleCA6IDAgMCBhdXRvO1xuXG4gICAgICAgIC5yb3cge1xuICAgICAgICAgIGRpc3BsYXkgICAgICAgICA6IGZsZXg7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b20gIDogNTBweDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQgOiBjZW50ZXI7XG4gICAgICAgICAgbWFyZ2luICAgICAgICAgIDogMDtcblxuICAgICAgICAgIC5ncm93IHtcbiAgICAgICAgICAgIHdpZHRoIDogNDAlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3IgOiAkYnJpZ2h0LXJlZDtcbiAgICB9XG4gIH1cblxufVxuXG4ubmFzYWEtcGFzdC1ldmVudCB7XG4gIG1hcmdpbi1ib3R0b20gOiAxMHB4O1xufVxuXG4ubmFzYWEtZnV0dXJlLWV4Y2VycHQge1xuICBwYWRkaW5nIDogMTBweCAyNXB4O1xuXG4gIC5yb3cge1xuICAgIG1hcmdpbiA6IDA7XG4gIH1cblxuICAmOm50aC1vZi10eXBlKGV2ZW4pIHtcbiAgICBiYWNrZ3JvdW5kIDogJG5hc2FhLWdyYXktc2hhZGU7XG4gIH1cblxuICAuaW5mbyB7XG4gICAgcG9zaXRpb24gOiByZWxhdGl2ZTtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50ICAgICAgOiBcIlwiO1xuICAgICAgcG9zaXRpb24gICAgIDogYWJzb2x1dGU7XG4gICAgICB0b3AgICAgICAgICAgOiAtMTBweDtcbiAgICAgIHJpZ2h0ICAgICAgICA6IDA7XG4gICAgICBib3R0b20gICAgICAgOiAtMTBweDtcbiAgICAgIGJvcmRlci1yaWdodCA6IDFweCBzb2xpZCAkbmFzYWEtbGlnaHQtZ3JheTtcbiAgICB9XG4gIH1cblxuICBoMiB7XG4gICAgZm9udC1zaXplIDogMThweDtcbiAgfVxuXG4gIC5yZWdpc3RlciB7XG4gICAgZGlzcGxheSAgICAgICAgOiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uIDogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zICAgIDogY2VudGVyO1xuICAgIGEge1xuICAgICAgbWFyZ2luIDogM3B4IDA7XG4gICAgfVxuICB9XG5cbiAgLmJ1dHRvbiB7XG4gICAgcGFkZGluZyA6IDE1cHggMDtcbiAgICB3aWR0aCAgIDogMTAwJTtcbiAgICBtYXJnaW4gIDogMDtcbiAgfVxuXG4gIC5yZXNvdXJjZXMge1xuICAgIG1hcmdpbiA6IDA7XG4gICAgbGkge1xuICAgICAgZGlzcGxheSAgIDogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplIDogMTRweDtcbiAgICAgIGEge1xuICAgICAgICBmb250LXNpemUgOiAxNHB4O1xuICAgICAgfVxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQgOiBcIiB8IFwiO1xuICAgICAgfVxuICAgICAgJjpsYXN0LW9mLXR5cGU6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5IDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4ubmFzYWEtc2VtaW5hci1wYXN0LWV4Y2VycHQge1xuICBtYXJnaW4tYm90dG9tIDogMTBweDtcblxuICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luIDogMDtcbiAgfVxuXG4gIGg2IHtcbiAgICBAaW5jbHVkZSBib2xkX3N1YmhlYWRlcjtcbiAgfVxuXG4gIC5yZXNvdXJjZXMge1xuICAgIGxpc3Qtc3R5cGUtdHlwZSA6IG5vbmU7XG4gICAgbWFyZ2luICAgICAgICAgIDogMDtcblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXkgOiBpbmxpbmUtYmxvY2s7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudCA6IFwifFwiO1xuICAgICAgICBjb2xvciAgIDogJHJlZDtcbiAgICAgIH1cbiAgICAgICY6bGFzdC1jaGlsZDphZnRlciB7XG4gICAgICAgIGRpc3BsYXkgOiBub25lO1xuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgQGluY2x1ZGUgaG92ZXJfY29sb3JzKCRjeWFuLCBkYXJrZW4oJGN5YW4sIDEwJSkpO1xuICAgICAgICBmb250LXdlaWdodCA6IDEwMDtcbiAgICAgICAgZm9udC1zaXplICAgOiAxNHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbi5uYXNhYS1zcXVlZXplLXBhZ2Uge1xuICBwb3NpdGlvbiAgICAgICAgOiBmaXhlZDtcbiAgdG9wICAgICAgICAgICAgIDogMDtcbiAgYm90dG9tICAgICAgICAgIDogMDtcbiAgbGVmdCAgICAgICAgICAgIDogMDtcbiAgcmlnaHQgICAgICAgICAgIDogMDtcbiAgYmFja2dyb3VuZCAgICAgIDogcmdiYSgwLCAwLCAwLCAuODUpO1xuICBkaXNwbGF5ICAgICAgICAgOiBmbGV4O1xuICBhbGlnbi1pdGVtcyAgICAgOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudCA6IGNlbnRlcjtcbiAgei1pbmRleCAgICAgICAgIDogOTk5O1xuXG4gIC5jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kIDogd2hpdGU7XG4gICAgcGFkZGluZyAgICA6IDIwcHg7XG4gICAgdGV4dC1hbGlnbiA6IGNlbnRlcjtcbiAgfVxuXG4gIGEge1xuICAgIG1hcmdpbiA6IDA7XG4gIH1cbn1cblxuLm5hc2FhLXJlc2VhcmNoLXRlYW0ge1xuICBpIHtcbiAgICBmb250LXNpemUgICA6IDEzMHB4O1xuICAgIGxpbmUtaGVpZ2h0IDogMTtcbiAgfVxufVxuXG4ubmFzYWEtbmV4dC11cGNvbWluZy1tZWV0aW5nIHtcbiAgLnVwY29taW5nLW1lZXRpbmctaW1nIHtcbiAgICB3aWR0aCA6IDEwMCU7XG4gIH1cbiAgLm1ldGEtbGlua3Mge1xuICAgIG1hcmdpbi1ib3R0b20gOiAyMHB4O1xuICAgIGEge1xuICAgICAgLy8gZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICBtYXJnaW4tcmlnaHQgOiAxNXB4O1xuICAgICAgZm9udC1zaXplICAgIDogMTRweDtcbiAgICB9XG4gIH1cblxufVxuXG4ubmFzYWEtcmVzZWFyY2gtZXhjZXJwdCB7XG4gIC50aXRsZSB7XG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBob3Zlcl9jb2xvcnMoJG5hc2FhLWRhcmstZ3JheSwgJGJyaWdodC1yZWQpO1xuICAgIH1cbiAgfVxufVxuXG4ubmFzYWEtYm9hcmQtbWVtYmVyLXBhZ2luYXRpb24ge1xuICBhIHtcbiAgICBmb250LWZhbWlseSA6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZSAgOiBpdGFsaWM7XG4gIH1cbn1cblxuLm5hc2FhLXJlc2VhcmNoX3R5cGUtY29udGFpbmVyIHtcblxuICAuY29sdW1uID4gZGl2IHtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcCAgOiBub25lO1xuICAgICAgcGFkZGluZy10b3AgOiAzMHB4O1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tICA6IG5vbmU7XG4gICAgICBwYWRkaW5nLWJvdHRvbSA6IDIwcHg7XG4gICAgfVxuICB9XG5cbn1cblxuLm5hc2FhLWRvbmF0ZS10ZXN0aW1vbmlhbCB7XG5cbiAgJiA+IC5yb3cge1xuICAgIHBhZGRpbmcgICAgOiA0NXB4O1xuICAgIGJhY2tncm91bmQgOiAkb3JhbmdlO1xuICB9XG5cbiAgLmhlYWRzaG90IHtcbiAgICBib3JkZXItcmFkaXVzIDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tIDogMTVweDtcbiAgfVxuXG4gIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGEsIGkge1xuICAgIGNvbG9yIDogd2hpdGU7XG4gIH1cblxuICBoNiB7XG4gICAgZm9udC1zaXplIDogMTRweDtcbiAgfVxuXG4gIC50aXRsZSB7XG4gICAgZm9udC1zaXplICAgOiAyOHB4O1xuICAgIGxpbmUtaGVpZ2h0IDogMS4xNTtcbiAgfVxuXG4gIC5wb3NpdGlvbiB7XG4gICAgcGFkZGluZy1sZWZ0IDogMjRweDtcbiAgICBwYWRkaW5nLXRvcCAgOiA2cHg7XG5cbiAgICBwIHtcbiAgICAgIGZvbnQtc2l6ZSAgIDogMTRweDtcbiAgICAgIGxpbmUtaGVpZ2h0IDogMS4zO1xuICAgICAgZm9udC1mYW1pbHkgOiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIH1cbiAgfVxuXG4gIC50ZXN0aW1vbmlhbC1jb250ZW50IHtcblxuICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICAgIGRpc3BsYXkgICAgIDogYmxvY2s7XG4gICAgICBjb2xvciAgICAgICA6IHdoaXRlO1xuICAgICAgZm9udC13ZWlnaHQgOiA4MDA7XG4gICAgICBmb250LXN0eWxlICA6IGl0YWxpYztcbiAgICAgIGZvbnQtc2l6ZSAgIDogOTJweDtcbiAgICAgIGxpbmUtaGVpZ2h0IDogMC42O1xuICAgICAgcGFkZGluZy10b3AgOiA3cHg7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudCA6IFwi4oCcXCI7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50ICAgICAgIDogXCLigJ1cIjtcbiAgICAgIG1hcmdpbi1ib3R0b20gOiAtMzVweDtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIGZvbnQtc2l6ZSAgIDogMjZweDtcbiAgICAgIGZvbnQtZmFtaWx5IDogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtc3R5bGUgIDogaXRhbGljO1xuICAgICAgbGluZS1oZWlnaHQgOiAxLjM7XG4gICAgfVxuICB9XG5cbn1cblxuLm5hc2FhLW1vZHVsZS1pbWFnZS10ZXh0LXR3by1jb2x1bW5zIHtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcbiAgICAudGV4dF9jb250YWluZXIge1xuICAgICAgcGFkZGluZyA6IDZ2dztcbiAgICB9XG4gIH1cblxufVxuXG4ubmFzYWEtZXZlbnQtZXhjZXJwdCB7XG4gIHdpZHRoICAgICAgICAgIDogMTAwJTtcbiAgYm9yZGVyLWJvdHRvbSAgOiAxcHggc29saWQgJG5hc2FhLWdyYXktc2hhZGU7XG4gIHBhZGRpbmctYm90dG9tIDogMTVweDtcbiAgbWFyZ2luLWJvdHRvbSAgOiAxNXB4O1xuXG4gIC50aXRsZSB7XG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBob3Zlcl9jb2xvcnMoJG5hc2FhLWRhcmstZ3JheSwgJHJlZCk7XG4gICAgfVxuICB9XG5cbiAgLmV2ZW50LWNoaWxkcmVuIHtcblxuICAgICYgPiBsaSB7XG4gICAgICBmb250LXdlaWdodCA6IDgwMDtcbiAgICAgIGNvbG9yICAgICAgIDogJG5hc2FhLW1lZGl1bS1ncmF5O1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIEBpbmNsdWRlIHJhcXVvX2xpc3Q7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBob3Zlcl9jb2xvcnMoJGJyaWdodC1yZWQsIGRhcmtlbigkYnJpZ2h0LXJlZCwgMTAlKSk7XG4gICAgfVxuXG4gIH1cblxuICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbSA6IDA7XG4gICAgYm9yZGVyLWJvdHRvbSA6IG5vbmU7XG4gIH1cblxufVxuXG4ubmFzYWEtYm9hcmQtb2YtZGlyZWN0b3JzIHtcblxuICBoMiB7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvciA6ICRuYXNhYS1kYXJrLWdyYXk7XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDExNXB4O1xuICB9XG5cbn1cblxuLm5hc2FhLWltYWdlLXJvdy1tb2R1bGUge1xuICBtaW4taGVpZ2h0IDogMzEycHg7XG5cbiAgLmNvbnRhaW5lciB7XG4gICAgZGlzcGxheSAgICAgICAgIDogZmxleDtcbiAgICBhbGlnbi1pdGVtcyAgICAgOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50IDogc3BhY2UtYXJvdW5kO1xuICAgIGZsZXgtd3JhcCAgICAgICA6IHdyYXA7XG4gICAgbWFyZ2luLWJvdHRvbSAgIDogNTBweDtcblxuICAgIC5pbWFnZS1jb250YWluZXIge1xuICAgICAgZmxleCA6IDAgMSBhdXRvXG4gICAgfVxuXG4gICAgLmRpdmlkZXIge1xuICAgICAgYmFja2dyb3VuZCA6ICRuYXNhYS1ncmF5LXNoYWRlLWRhcms7XG4gICAgICB3aWR0aCAgICAgIDogMXB4O1xuICAgICAgaGVpZ2h0ICAgICA6IDYwJTtcbiAgICB9XG4gIH1cbn1cblxuLm93bC1pdGVtIHtcbiAgLm5hc2FhLWltYWdlLXJvdy1tb2R1bGUge1xuICAgIC5yb3cge1xuICAgICAgZGlzcGxheSA6IGJsb2NrO1xuICAgIH1cbiAgICAuY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXkgICAgOiBibG9jaztcbiAgICAgIGZsZXgtd3JhcCAgOiBub3dyYXA7XG4gICAgICB0ZXh0LWFsaWduIDogY2VudGVyO1xuXG4gICAgICAuaW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheSAgICAgICAgOiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduIDogbWlkZGxlO1xuICAgICAgfVxuXG4gICAgICAuZGl2aWRlciB7XG4gICAgICAgIGRpc3BsYXkgICAgICAgIDogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbiA6IG1pZGRsZTtcbiAgICAgICAgbWluLWhlaWdodCAgICAgOiAzMDBweDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG4gICAgICAgIC5pbWFnZS1jb250YWluZXIge1xuICAgICAgICAgIGRpc3BsYXkgICAgOiBibG9jaztcbiAgICAgICAgICBtYXJnaW4gICAgIDogMWVtIDA7XG4gICAgICAgICAgdGV4dC1hbGlnbiA6IGNlbnRlcjtcblxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgdGV4dC1hbGlnbiA6IGNlbnRlcjtcblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgbWFyZ2luIDogMCBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuZGl2aWRlciB7XG4gICAgICAgICAgZGlzcGxheSA6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLm5hc2FhLWltYWdlLXNsaWRlc2hvdyB7XG4gIHdpZHRoICA6IDkwJTtcbiAgbWFyZ2luIDogMCBhdXRvO1xuXG4gIC5zbGlkZXMge1xuICAgIGxpIHtcbiAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7XG4gICAgfVxuICB9XG5cbiAgI2Nhcm91c2VsIHtcbiAgICBsaSB7XG4gICAgICBvcGFjaXR5IDogMC41O1xuICAgIH1cbiAgICBsaS5mbGV4LWFjdGl2ZS1zbGlkZSB7XG4gICAgICBvcGFjaXR5IDogMTtcbiAgICB9XG4gIH1cblxuICAjc2xpZGVyIC5zbGlkZXMge1xuICAgIGxpIHtcbiAgICAgIGJhY2tncm91bmQgICAgIDogYmxhY2s7XG4gICAgICBoZWlnaHQgICAgICAgICA6IDEwMHZoO1xuICAgICAgdmVydGljYWwtYWxpZ24gOiBtaWRkbGU7XG4gICAgICBpbWcge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbiA6IG1pZGRsZTtcbiAgICAgICAgcG9zaXRpb24gICAgICAgOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wICAgICAgICAgICAgOiAwO1xuICAgICAgICBib3R0b20gICAgICAgICA6IDA7XG4gICAgICAgIG1hcmdpbiAgICAgICAgIDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gICAgZGl2LmZsZXhzbGlkZXItYmFja2dyb3VuZCB7XG4gICAgICBoZWlnaHQgICAgICAgICAgICAgIDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZSAgICAgOiBjb250YWluO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQgICA6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb24gOiBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLmZsZXgtZGlyZWN0aW9uLW5hdiBhIHtcbiAgICBoZWlnaHQgOiA2MHB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kIDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgICB9XG4gIH1cblxuICAuZmxleC1jYXB0aW9uIHtcbiAgICBwb3NpdGlvbiAgIDogYWJzb2x1dGU7XG4gICAgYm90dG9tICAgICA6IDA7XG4gICAgYmFja2dyb3VuZCA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG4gICAgcGFkZGluZyAgICA6IC41ZW07XG4gIH1cbn1cblxuLm5hc2FhLWNvbnRhY3Qge1xuICBjb2xvciA6ICRuYXNhYS1tZWRpdW0tZ3JheTtcblxuICB1bCB7XG4gICAgbGkge1xuICAgICAgYSB7XG4gICAgICAgIGNvbG9yICAgICAgICAgICA6ICRtYXJvb247XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbiA6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5uYXNhYS1ub3Rlcy15ZWFyLXNlbGVjdG9yIHtcblxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBkaXNwbGF5ICAgICA6IGZsZXg7XG4gICAgYWxpZ24taXRlbXMgOiBjZW50ZXI7XG5cbiAgICBoMiB7XG4gICAgICBtYXJnaW4gICAgIDogMDtcbiAgICAgIHRyYW5zaXRpb24gOiAyNTBtcyBhbGwgZWFzZS1vdXQ7XG4gICAgICBjb2xvciAgICAgIDogJG5hc2FhLWRhcmstZ3JheTtcbiAgICB9XG5cbiAgICBpIHtcbiAgICAgIG1hcmdpbi1sZWZ0IDogYXV0bztcbiAgICAgIHRyYW5zaXRpb24gIDogMjUwbXMgYWxsIGVhc2Utb3V0O1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXkgOiBub25lO1xuICAgIH1cblxuICB9XG5cbiAgLmlzLWFjdGl2ZSB7XG4gICAgaDIsIGkge1xuICAgICAgY29sb3IgICAgICAgIDogJGJyaWdodC1yZWQ7XG4gICAgICBib3JkZXItY29sb3IgOiAkYnJpZ2h0LXJlZCAhaW1wb3J0YW50O1xuICAgIH1cblxuICB9XG5cbiAgLmFjY29yZGlvbi1jb250ZW50IHtcbiAgICBwYWRkaW5nIDogNXB4O1xuXG4gICAgYSB7XG4gICAgICBkaXNwbGF5IDogYmxvY2s7XG4gICAgICBwYWRkaW5nIDogNXB4O1xuICAgICAgQGluY2x1ZGUgaG92ZXJfYmFja2dyb3VuZCh0cmFuc3BhcmVudCwgJG5hc2FhLW1lZGl1bS1ncmF5KTtcbiAgICAgIEBpbmNsdWRlIGhvdmVyX2NvbG9ycygkbmFzYWEtbWVkaXVtLWdyYXksIHdoaXRlKTtcbiAgICB9XG5cbiAgfVxuXG59XG5cbi5uYXNhYS15ZWFybHktbmV3c2xldHRlci1jb250ZW50IHtcbiAgcG9zaXRpb24gOiByZWxhdGl2ZTtcblxuICAmOmJlZm9yZSB7XG4gICAgcG9zaXRpb24gICA6IGFic29sdXRlO1xuICAgIGNvbnRlbnQgICAgOiBcIlwiO1xuICAgIHRvcCAgICAgICAgOiAwO1xuICAgIHJpZ2h0ICAgICAgOiAwO1xuICAgIGJvdHRvbSAgICAgOiAwO1xuICAgIHdpZHRoICAgICAgOiAxcHg7XG4gICAgYmFja2dyb3VuZCA6ICRuYXNhYS1ncmF5LXNoYWRlO1xuICB9XG59XG5cbi5uYXNhYS10YWJiZWQtY29udGVudCB7XG4gIHdpZHRoIDogMTAwJTtcblxuICAuY29udGVudC10YWJzIHtcblxuICAgIEBlYWNoICRsYWJlbCwgJGNvbG9yLCAkaG92ZXIgaW4gJGNvbG9ycyB7XG4gICAgICAmLmNvbG9yLSN7JGxhYmVsfSB7XG4gICAgICAgIHAge1xuICAgICAgICAgIEBpbmNsdWRlIGhvdmVyX2JhY2tncm91bmQoI3skY29sb3J9LCAjeyRob3Zlcn0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBAaW5jbHVkZSBib2xkX3N1YmhlYWRlcjtcbiAgICAgIGNvbG9yICAgICAgICAgOiB3aGl0ZTtcbiAgICAgIHdpZHRoICAgICAgICAgOiAxMDAlO1xuICAgICAgbWFyZ2luLWJvdHRvbSA6IDEwcHg7XG4gICAgICBjdXJzb3IgICAgICAgIDogcG9pbnRlcjtcbiAgICAgIHBhZGRpbmcgICAgICAgOiAxNXB4O1xuICAgICAgZmxvYXQgICAgICAgICA6IGxlZnQ7XG4gICAgfVxuXG4gIH1cblxuICAudGFiLWNvbnRlbnQge1xuICAgIC5nZm9ybV93cmFwcGVyIHtcbiAgICAgIGRpc3BsYXkgOiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgd2lkdGggOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbn1cblxuLm5hc2FhLW5ld3NsZXR0ZXItbW9udGgtc2lkZWJhciB7XG5cbiAgLmFydGljbGVzIHtcbiAgICBtYXJnaW4tbGVmdCA6IDQwcHg7XG5cbiAgICBsaTpiZWZvcmUge1xuICAgICAgdG9wIDogLTVweDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogMS40O1xuICAgICAgZGlzcGxheSAgICAgOiBibG9jaztcbiAgICB9XG4gIH1cblxufVxuXG4ubmFzYWEtc2hhcmUge1xuICBkaXNwbGF5ICAgICA6IGZsZXg7XG4gIGFsaWduLWl0ZW1zIDogY2VudGVyO1xuXG4gIC5jb250ZW50IHtcbiAgICBhbGlnbi1pdGVtcyAgICAgOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50IDogY2VudGVyO1xuICAgIHotaW5kZXggICAgICAgICA6IDEwMDtcbiAgICBtYXJnaW4tbGVmdCAgICAgOiAxNXB4O1xuICAgIHRyYW5zaXRpb24gICAgICA6IDI1MG1zIGFsbCBlYXNlLW91dDtcbiAgICBvcGFjaXR5ICAgICAgICAgOiAwO1xuXG4gICAgYSB7XG4gICAgICBoZWlnaHQgICAgICAgIDogMzJweDtcbiAgICAgIG1hcmdpbi1ib3R0b20gOiAwO1xuICAgIH1cblxuICAgICYudmlzaWJsZSB7XG4gICAgICBvcGFjaXR5IDogMTtcbiAgICB9XG4gIH1cblxuICAuaWNvbiB7XG4gICAgaSB7XG4gICAgICBmb250LXNpemUgOiAyN3B4O1xuICAgICAgY3Vyc29yICAgIDogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxufVxuXG5fOi1tb3otdHJlZS1yb3coaG92ZXIpLCAubmFzYWEtaW1hZ2UtZ3JpZCAuZ2FsbGVyeSAuY29sdW1uIGltZyB7XG5cbiAgLy8gdGhpcyBpcyBhIEZGIGhhY2sgZm9yIHRoZSBpbWFnZSBnYWxsZXJ5LiBpIGZlZWwgc28gdmVyeSB1bmNsZWFuLiB+Z2hcblxuICBib3gtc2l6aW5nIDogY29udGVudC1ib3g7XG59XG5cbi5uYXNhYS1pbWFnZS1ncmlkIHtcblxuICAuZ2FsbGVyeSB7XG5cbiAgICAuY29sdW1uIHtcbiAgICAgIGRpc3BsYXkgICAgICAgICA6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtcyAgICAgOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQgOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbiAgICAgICAgOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmcgICAgICAgICA6IDE1cHg7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIC8vcGFkZGluZzogMTVweCAzMHB4O1xuICAgICAgICAvL3dpZHRoOiAxMDAlO1xuICAgICAgICAvL2Rpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgZGlzcGxheSAgIDogYmxvY2s7XG4gICAgICAgIG1heC13aWR0aCA6IDEwMCU7XG4gICAgICAgIHdpZHRoICAgICA6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgICRzcGFjaW5nIDogMTVweDtcblxuICAgICAgJjpiZWZvcmUsXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb24gICA6IGFic29sdXRlO1xuICAgICAgICBiYWNrZ3JvdW5kIDogJG5hc2FhLWdyYXktc2hhZGU7XG4gICAgICAgIGNvbnRlbnQgICAgOiBcIlwiO1xuICAgICAgfVxuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJvdHRvbSA6IDA7XG4gICAgICAgIGxlZnQgICA6ICRzcGFjaW5nO1xuICAgICAgICByaWdodCAgOiAkc3BhY2luZztcbiAgICAgICAgaGVpZ2h0IDogMXB4O1xuICAgICAgfVxuXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgcmlnaHQgIDogMDtcbiAgICAgICAgYm90dG9tIDogJHNwYWNpbmc7XG4gICAgICAgIHRvcCAgICA6ICRzcGFjaW5nO1xuICAgICAgICB3aWR0aCAgOiAxcHg7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgZGlzcGxheSA6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuXG4gICAgICAgICY6bnRoLW9mLXR5cGUoNG4pIHtcbiAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXkgOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblxuICAgICAgICAmOm50aC1vZi10eXBlKDVuKSB7XG4gICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5IDogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbn1cblxuLm5hc2FhLWRvbm9yLWFjY29yZGlvbiB7XG5cbiAgLnRyaWdnZXIge1xuICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50ICAgICA6IFwiK1wiO1xuICAgICAgcG9zaXRpb24gICAgOiBhYnNvbHV0ZTtcbiAgICAgIHRvcCAgICAgICAgIDogMDtcbiAgICAgIHJpZ2h0ICAgICAgIDogMDtcbiAgICAgIGNvbG9yICAgICAgIDogJG9yYW5nZTtcbiAgICAgIGZvbnQtc2l6ZSAgIDogMzRweDtcbiAgICAgIGJvdHRvbSAgICAgIDogOHB4O1xuICAgICAgbGluZS1oZWlnaHQgOiA1MHB4O1xuICAgICAgZm9udC13ZWlnaHQgOiA4MDA7XG4gICAgfVxuXG4gICAgJi5hY3RpdmU6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQgOiBcIuKAk1wiO1xuICAgIH1cbiAgfVxuXG4gIC5jb250ZW50IHtcbiAgICBkaXNwbGF5IDogbm9uZTtcbiAgfVxuXG59XG5cbi5uYXNhYS1sYXJnZS1hY2NvcmRpb24tY29udGFpbmVyIHtcbiAgaDEge1xuICAgIGNvbG9yIDogJGJyaWdodC1yZWQ7XG4gIH1cbn1cblxuLm5hc2FhLWxhcmdlLWFjY29yZGlvbiB7XG5cbiAgLml0ZW0ge1xuICAgIHRyYW5zaXRpb24gICAgOiAyNTBtcyBhbGwgZWFzZS1vdXQ7XG4gICAgYm9yZGVyLWxlZnQgICA6IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nICAgICAgIDogMCAxNXB4IDEwcHg7XG4gICAgYm9yZGVyLWJvdHRvbSA6IDJweCBkb3R0ZWQgJG5hc2FhLWRhcmstZ3JheTtcblxuICAgICYub3BlbiB7XG4gICAgICBiYWNrZ3JvdW5kICAgICAgICAgIDogJG5hc2FhLWdyYXktc2hhZGU7XG4gICAgICBib3JkZXItbGVmdC1jb2xvciAgIDogJG9yYW5nZTtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3IgOiB0cmFuc3BhcmVudDtcblxuICAgICAgPiAudHJpZ2dlcjpiZWZvcmUge1xuICAgICAgICBjb250ZW50IDogXCLigJNcIjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudHJpZ2dlciB7XG4gICAgY3Vyc29yICAgICAgOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uICAgIDogcmVsYXRpdmU7XG4gICAgcGFkZGluZy10b3AgOiAzMHB4O1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudCAgICAgOiBcIitcIjtcbiAgICAgIHBvc2l0aW9uICAgIDogYWJzb2x1dGU7XG4gICAgICByaWdodCAgICAgICA6IDA7XG4gICAgICBjb2xvciAgICAgICA6ICRvcmFuZ2U7XG4gICAgICBmb250LXNpemUgICA6IDM0cHg7XG4gICAgICBib3R0b20gICAgICA6IDA7XG4gICAgICBmb250LXdlaWdodCA6IDgwMDtcbiAgICAgIGxpbmUtaGVpZ2h0IDogMTtcbiAgICAgIGRpc3BsYXkgICAgIDogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLmNvbnRlbnQge1xuICAgIGRpc3BsYXkgOiBub25lO1xuXG4gICAgLnJlc291cmNlcyB7XG4gICAgICBhIHtcbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50ICAgICA6IFwifFwiO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0IDogNHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm5hc2FhLWJsb2ctZXhjZXJwdCB7XG4gICAgYmFja2dyb3VuZCA6IHdoaXRlO1xuICAgIHBhZGRpbmcgICAgOiAxNXB4O1xuICB9XG59XG5cbi5uYXNhYS1pbWFnZS1ncmlkLXdpdGgtY2FwdGlvbi1vdmVybGF5cyB7XG5cbiAgLmNvbHVtbiB7XG4gICAgcG9zaXRpb24gOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nICA6IDAgNHB4IDhweCA0cHg7XG4gICAgaW1nIHtcbiAgICAgIHdpZHRoIDogMTAwJTtcbiAgICB9XG5cbiAgICAudGV4dCB7XG4gICAgICBwb3NpdGlvbiAgIDogYWJzb2x1dGU7XG4gICAgICBib3R0b20gICAgIDogMzBweDtcbiAgICAgIGxlZnQgICAgICAgOiA0cHg7XG4gICAgICBwYWRkaW5nICAgIDogN3B4O1xuICAgICAgYmFja2dyb3VuZCA6IHdoaXRlO1xuICAgICAgdHJhbnNpdGlvbiA6IDI1MG1zIGFsbCBlYXNlLW91dDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQgOiAxNHB4O1xuICAgICAgfVxuXG4gICAgICBoNiB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtIDogdXBwZXJjYXNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5waG90by1jYXB0aW9uIHtcbiAgICAgIHJpZ2h0IDogMjBweDtcbiAgICB9XG4gIH1cblxufVxuXG4ubmFzYWEtc3RhcnJlZC1saXN0IHtcbiAgLml0ZW0ge1xuICAgIGRpc3BsYXkgOiBmbGV4O1xuXG4gICAgaSB7XG4gICAgICBtYXJnaW4tcmlnaHQgOiAxMHB4O1xuICAgIH1cbiAgfVxufVxuXG4ubmFzYWEtc2VjdGlvbi1oZWFkZXItYWNmIHtcbiAgLnJvdyB7XG4gICAgZmxleC13cmFwIDogd3JhcDtcblxuICAgIC5jb2x1bW4ge1xuICAgICAgZmxleCA6IDEgMCAzMyU7XG5cbiAgICAgIHAge1xuICAgICAgICBmb250LWZhbWlseSA6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuICAgICAgLmNvbHVtbiB7XG4gICAgICAgIGZsZXggICAgICAgICAgIDogMCAwIDEwMCU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tIDogNzBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG5hLmZvci1ob3Zlci5uYXNhYS1tZWRpdW0tZ3JheS10ZXh0LnNtYWxsIHtcbiAgY29sb3IgOiBpbmhlcml0O1xuICAmOmhvdmVyIHtcbiAgICBjb2xvciA6ICRyZWQgIWltcG9ydGFudDtcbiAgfVxufVxuXG4ubmFzYWEtcGFnZXItcmVidWlsZCB7XG4gIGFsaWduLWl0ZW1zICAgICA6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQgOiBjZW50ZXI7XG5cbiAgcCwgYSwgc3BhbiB7XG4gICAgbWFyZ2luICAgICAgOiAwO1xuICAgIGRpc3BsYXkgICAgIDogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0IDogMTtcbiAgICBmb250LWZhbWlseSA6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgQGluY2x1ZGUgaG92ZXJfY29sb3JzKCRuYXNhYS1kYXJrLWdyYXksICRvcmFuZ2UpO1xuICAgIGZvbnQtc3R5bGUgIDogaXRhbGljO1xuXG4gICAgJi5jdXJyZW50IHtcbiAgICAgIGNvbG9yIDogJG9yYW5nZTtcbiAgICB9XG5cbiAgICAmLmxhcmdlIHtcbiAgICAgIGZvbnQtc2l6ZSA6IDMycHg7XG4gICAgICBtYXJnaW4gICAgOiAwO1xuICAgIH1cblxuICB9XG5cbiAgLmZpcnN0LCAuZXh0ZW5kLCAucGFnZSwgLmN1cnJlbnQge1xuICAgIG1hcmdpbi1yaWdodCA6IDdweDtcbiAgfVxuXG4gIC5wcmV2X2FuZF9uZXh0IHtcbiAgICBtYXJnaW4gOiAwIDEwcHg7XG4gIH1cblxuICAuYXJyb3dzIHtcbiAgICBkaXNwbGF5ICAgICAgICAgOiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zICAgICA6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQgOiBzcGFjZS1hcm91bmQ7XG5cbiAgICAucHJldiwgLm5leHQge1xuICAgICAgYmFja2dyb3VuZCAgICAgIDogJG5hc2FhLWdyYXktc2hhZGUtZGFyaztcbiAgICAgIHdpZHRoICAgICAgICAgICA6IDMwcHg7XG4gICAgICBoZWlnaHQgICAgICAgICAgOiAzMHB4O1xuICAgICAgZGlzcGxheSAgICAgICAgIDogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zICAgICA6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudCA6IGNlbnRlcjtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yICAgICAgICAgICA6IHdoaXRlO1xuICAgICAgYm9yZGVyICAgICAgICAgIDogMXB4IHNvbGlkIHdoaXRlO1xuICAgICAgYm9yZGVyLXJhZGl1cyAgIDogMTAwJTtcbiAgICAgIHdpZHRoICAgICAgICAgICA6IDIwcHg7XG4gICAgICBoZWlnaHQgICAgICAgICAgOiAyMHB4O1xuICAgICAgbWFyZ2luICAgICAgICAgIDogMDtcbiAgICAgIGRpc3BsYXkgICAgICAgICA6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtcyAgICAgOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQgOiBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLm51bWJlcnMge1xuICAgIGRpc3BsYXkgICAgICAgOiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zICAgOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbSA6IDEwcHg7XG4gIH1cblxufVxuXG4ubmFzYWEtcmVzZWFyY2gtdG9waWNzIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG4gICAgbWFyZ2luLXRvcCA6IDQ1cHg7XG4gIH1cbn1cblxuLndvb2NvbW1lcmNlIHtcbiAgLm5hc2FhLXNob3Age1xuICAgIC5wcm9kdWN0cyB7XG4gICAgICAucHJvZHVjdCB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgd2lkdGggIDogYXV0bztcbiAgICAgICAgICBtYXJnaW4gOiAwIGF1dG8gMWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFkZF90b19jYXJ0X2J1dHRvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgaG92ZXJfYmFja2dyb3VuZCgkb3JhbmdlLCBkYXJrZW4oJG9yYW5nZSwgMTAlKSk7XG4gICAgICAgICAgQGluY2x1ZGUgaG92ZXJfY29sb3JzKHdoaXRlLCB3aGl0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICBAaW5jbHVkZSBob3Zlcl9jb2xvcnMoJG5hc2FhLW1lZGl1bS1ncmF5LCAkYnJpZ2h0LXJlZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuc2hvcF90YWJsZSB7XG4gICAgLmFjdGlvbnMge1xuICAgICAgZm9udC1zaXplIDogMTJweDtcbiAgICB9XG4gICAgI2NvdXBvbl9jb2RlIHtcbiAgICAgIGZvbnQtc2l6ZSA6IDEycHg7XG4gICAgICB3aWR0aCAgICAgOiAxNTBweDtcbiAgICB9XG4gICAgLmJ1dHRvbiB7XG4gICAgICB0b3AgOiA1cHg7XG4gICAgfVxuICB9XG5cbn1cblxuLm5hc2FhLXBvc3QtbGlua3Mge1xuICAucG9zdHMge1xuICAgIGFsaWduLWl0ZW1zIDogY2VudGVyO1xuXG4gICAgLmNvbHVtbiB7XG4gICAgICBhbGlnbi1pdGVtcyA6IGNlbnRlcjtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgd2lkdGggOiAxMDBweDtcbiAgICB9XG4gIH1cbn1cblxuZm9ybVthY3Rpb249XCIvbWVldGluZ3MvbmFzYWEtMjAxNy1sZWFkZXJzaGlwLWluc3RpdHV0ZS9cIl0ge1xuICAjZmllbGRfNF8xNSB7XG4gICAgbGVnZW5kIHtcbiAgICAgIGZvbnQtc2l6ZSAgICAgIDogaW5oZXJpdDtcbiAgICAgIGxpbmUtaGVpZ2h0ICAgIDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgICAgbWFyZ2luLXRvcCAgICAgOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbSAgOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgICB0ZXh0LXJlbmRlcmluZyA6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gICAgfVxuICB9XG59XG5cbi5wb3N0aWQtMzA2MCAjbWFpbi13cmFwIHtcblxuICBkaXYge1xuICAgIGhlaWdodCA6IGF1dG8gIWltcG9ydGFudDtcbiAgICAmLnJvdyB7XG4gICAgICB3aWR0aCA6IDEwMCU7XG4gICAgfVxuXG4gICAgJiNjb250YWluZXIge1xuICAgICAgaGVpZ2h0IDogOHZ3ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgI3RhYnMtbmF2IHtcbiAgICBtYXJnaW4tdG9wIDogMTIwcHg7XG4gIH1cblxuICAjaG9yaXotYmFyY2hhcnQtY29udGVudCB7XG4gICAgZmxvYXQgOiBsZWZ0O1xuICAgIGNsZWFyIDogbGVmdDtcbiAgfVxuXG59XG5cbi5uYXNhYS1zZWN0aW9uLXRpdGxlLXdpdGgtbGlzdCB7XG5cbiAgdWwuaXRlbXMge1xuICAgIG1hcmdpbiA6IDA7XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5ICAgICAgICA6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbiA6IHJvdztcbiAgICAgIGFsaWduLWl0ZW1zICAgIDogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbSAgOiAzMHB4O1xuXG4gICAgICAuaWNvbiB7XG4gICAgICAgIGZsZXggICAgICAgICAgOiAwIDAgYXV0bztcbiAgICAgICAgcGFkZGluZy1yaWdodCA6IDE1cHg7XG4gICAgICB9XG5cbiAgICAgIC50ZXh0IHtcbiAgICAgICAgZmxleCA6IDEgMSBhdXRvO1xuXG4gICAgICAgIHA6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tIDogMDtcbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuLm5hc2FhLXNlbWluYXItYXJjaGl2ZSB7XG5cbiAgaDEgaW1nIHtcbiAgICBtYXgtd2lkdGggOiAxMjBweDtcbiAgfVxuXG4gIC5uYXNhYS1sYXJnZS1hY2NvcmRpb24ge1xuICAgIGRpc3BsYXkgOiBub25lO1xuICB9XG5cbiAgLmNhdGVnb3J5LXRpdGxlIHtcbiAgICBwb3NpdGlvbiA6IHJlbGF0aXZlO1xuICAgIGN1cnNvciAgIDogcG9pbnRlcjtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudCAgICAgICAgIDogXCIrXCI7XG4gICAgICBwb3NpdGlvbiAgICAgICAgOiBhYnNvbHV0ZTtcbiAgICAgIHRvcCAgICAgICAgICAgICA6IDA7XG4gICAgICBib3R0b20gICAgICAgICAgOiAwO1xuICAgICAgcmlnaHQgICAgICAgICAgIDogMDtcbiAgICAgIGNvbG9yICAgICAgICAgICA6ICRvcmFuZ2U7XG4gICAgICBmb250LXdlaWdodCAgICAgOiA4MDA7XG4gICAgICBmb250LXNpemUgICAgICAgOiA0OHB4O1xuICAgICAgZGlzcGxheSAgICAgICAgIDogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudCA6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zICAgICA6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmLm9wZW46YWZ0ZXIge1xuICAgICAgY29udGVudCA6IFwiLVwiO1xuICAgIH1cblxuICB9XG5cbn1cblxuLm5hc2FhLWRvbm9yLWFjY29yZGlvbiB7XG4gIC5zZWN0aW9uLXRpdGxlID4gaDMge1xuICAgIHBhZGRpbmctcmlnaHQgOiAyMHB4O1xuICB9XG59XG5cbi5uYXNhYS1maWxlLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtaW1hZ2UgICAgOiB1cmwoLi4vaW1nL25hc2FhLWxvYWRpbmctc3Bpbm5lci5naWYpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uIDogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdCAgIDogbm8tcmVwZWF0O1xufVxuXG4uc2hvcF90YWJsZS5vcmRlcl9kZXRhaWxzIHtcbiAgYSB7XG4gICAgZm9udC1mYW1pbHkgOiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGNvbG9yICAgICAgIDogJGJyaWdodC1yZWQ7XG4gIH1cbn1cblxuLm5hc2FhLXVzZXItbWFuYWdlbWVudC1idXR0b24sXG4ubmFzYWEtbG9nb3V0LWJ1dHRvbixcbi5uYXNhYS1sb2dpbi1idXR0b24ge1xuICB3aGl0ZS1zcGFjZSA6IG5vd3JhcDtcbiAgbWFyZ2luICAgICAgOiBhdXRvIDAgYXV0byAxMnB4O1xufVxuXG4ud29vY29tbWVyY2Uge1xuXG4gIC5uYXNhYS11c2VyLW1hbmFnZW1lbnQtYnV0dG9uLFxuICAubmFzYWEtbG9nb3V0LWJ1dHRvbixcbiAgLm5hc2FhLWxvZ2luLWJ1dHRvbiB7XG4gICAgd2hpdGUtc3BhY2UgOiBub3dyYXA7XG4gICAgbWFyZ2luICAgICAgOiBhdXRvIDAgYXV0byAxMnB4O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG4gICAgaGVhZGVyIHtcbiAgICAgIGEge1xuICAgICAgICAmLmJ1dHRvbiB7XG4gICAgICAgICAgJi5uYXNhYS11c2VyLW1hbmFnZW1lbnQtYnV0dG9uLFxuICAgICAgICAgICYubmFzYWEtbG9nb3V0LWJ1dHRvbixcbiAgICAgICAgICAmLm5hc2FhLWxvZ2luLWJ1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5IDogYmxvY2s7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB7XG5cbiAgdWwge1xuICAgIG1hcmdpbiAgICAgICAgICA6IDA7XG4gICAgbGlzdC1zdHlsZS10eXBlIDogbm9uZTtcbiAgfVxuXG4gIGxpIHtcbiAgfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGhvdmVyX2NvbG9ycygkbmFzYWEtbWVkaXVtLWdyYXksICRicmlnaHQtcmVkKTtcbiAgICBmb250LWZhbWlseSA6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZGlzcGxheSAgICAgOiBibG9jaztcbiAgICBwYWRkaW5nICAgICA6IDdweCAwO1xuICB9XG5cbn1cblxuLnR5cGUtcHJvZHVjdCB7XG4gIC53Yy10YWJzLXdyYXBwZXIge1xuICAgIGZsb2F0IDogcmlnaHQ7XG4gICAgY2xlYXIgOiBub25lICFpbXBvcnRhbnQ7XG4gICAgd2lkdGggOiA0OCU7XG5cbiAgICB1bC50YWJzIHtcbiAgICAgIGJvcmRlci10b3AgICA6IG5vbmU7XG4gICAgICBib3JkZXItcmlnaHQgOiBub25lO1xuICAgICAgYm9yZGVyLWxlZnQgIDogbm9uZTtcbiAgICAgIG1hcmdpbiAgICAgICA6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAud29vY29tbWVyY2UtVGFicy1wYW5lbCB7XG4gICAgICBib3JkZXIgICAgIDogMXB4IHNvbGlkICNlNmU2ZTY7XG4gICAgICBib3JkZXItdG9wIDogbm9uZTtcbiAgICAgIHBhZGRpbmcgICAgOiAyNXB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gIH1cbn1cblxuLnZjcy1pbWFnZS1jYXJvdXNlbC1jb250YWluZXIge1xuICBmbG9hdCAgICA6IGxlZnQ7XG4gIHdpZHRoICAgIDogMTAwJTtcbiAgcG9zaXRpb24gOiByZWxhdGl2ZTtcblxuICAmLmRpc3BsYXktMSB7XG4gICAgLnByZXZpb3VzLCAubmV4dCB7XG4gICAgICB3aWR0aCA6IDE1JTtcbiAgICB9XG5cbiAgICAub3dsLWNhcm91c2VsIHtcbiAgICAgIHdpZHRoIDogNzAlO1xuICAgIH1cblxuICB9XG5cbiAgLnByZXZpb3VzLCAubmV4dCB7XG4gICAgZmxvYXQgICAgICAgICAgIDogbGVmdDtcbiAgICB3aWR0aCAgICAgICAgICAgOiA1JTtcbiAgICBoZWlnaHQgICAgICAgICAgOiAxMDAlO1xuICAgIGRpc3BsYXkgICAgICAgICA6IGZsZXg7XG4gICAgYWxpZ24taXRlbXMgICAgIDogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudCA6IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uICAgICAgOiAyNTBtcyBhbGwgZWFzZS1vdXQ7XG4gIH1cblxuICAucHJldi1wYWdlcixcbiAgLm5leHQtcGFnZXIge1xuICAgIHBvc2l0aW9uICAgICAgICA6IGFic29sdXRlO1xuICAgIHRvcCAgICAgICAgICAgICA6IDA7XG4gICAgYm90dG9tICAgICAgICAgIDogMDtcbiAgICB3aWR0aCAgICAgICAgICAgOiA1JTtcbiAgICBkaXNwbGF5ICAgICAgICAgOiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zICAgICA6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQgOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbiAgICAgIDogMjUwbXMgYWxsIGVhc2Utb3V0O1xuICAgIGkge1xuICAgICAgdHJhbnNpdGlvbiA6IDI1MG1zIGFsbCBlYXNlLW91dDtcbiAgICAgIGNvbG9yICAgICAgOiAkbmFzYWEtbGlnaHQtZ3JheTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGkge1xuICAgICAgICBjb2xvciA6ICRuYXNhYS1kYXJrLWdyYXk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnByZXYtcGFnZXIge1xuICAgIGxlZnQgOiAwO1xuICB9XG5cbiAgLm5leHQtcGFnZXIge1xuICAgIHJpZ2h0IDogMDtcbiAgfVxuXG4gIC5vd2wtY2Fyb3VzZWwge1xuICAgIHdpZHRoIDogOTAlO1xuICAgIGZsb2F0IDogbGVmdDtcbiAgfVxuXG4gIGkge1xuICAgIGZvbnQtc2l6ZSA6IDcwcHg7XG4gICAgY29sb3IgICAgIDogJG5hc2FhLWRhcmstZ3JheTtcbiAgfVxuXG59XG5cbi5uYXNhYS1pbWFnZS1zbGlkZXIge1xuXG4gIC5vd2wtdGh1bWJzIHtcbiAgICB0ZXh0LWFsaWduIDogY2VudGVyO1xuXG4gICAgYnV0dG9uIHtcbiAgICAgIG9wYWNpdHkgOiAwLjQ7XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgb3BhY2l0eSA6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5uYXNhYS1kcm9wcXVvdGUge1xuXG4gIEBlYWNoICRsYWJlbCwgJGNvbG9yLCAkaG92ZXIgaW4gJGNvbG9ycyB7XG4gICAgJi4jeyRsYWJlbH0ge1xuICAgICAgYmFja2dyb3VuZCA6ICN7JGNvbG9yfVxuICAgIH1cbiAgfVxuXG4gIHBhZGRpbmcgICAgIDogMTVweDtcbiAgYWxpZ24taXRlbXMgOiBjZW50ZXI7XG5cbiAgKiB7XG4gICAgY29sb3IgOiB3aGl0ZTtcbiAgfVxuXG4gICYubm8taW1hZ2Uge1xuICAgIHBhZGRpbmctdG9wICAgIDogNDVweDtcbiAgICBwYWRkaW5nLWJvdHRvbSA6IDE1cHg7XG4gIH1cblxuICAucXVvdGF0aW9uIHtcbiAgICBwYWRkaW5nIDogMDtcbiAgICBwIHtcbiAgICAgIGZvbnQtc2l6ZSAgIDogOTJweDtcbiAgICAgIG1hcmdpbiAgICAgIDogMDtcbiAgICAgIGxpbmUtaGVpZ2h0IDogMTtcbiAgICAgIGRpc3BsYXkgICAgIDogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLnF1b3RlLWJvZHkge1xuICAgIHBhZGRpbmcgOiAwIDE1cHg7XG4gIH1cblxuICAmLmxhcmdlIHtcbiAgICAuY29udGVudCBwIHtcbiAgICAgIGZvbnQtc2l6ZSA6IDMycHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgLmNvbnRlbnQgcCB7XG4gICAgICAgIGZvbnQtc2l6ZSA6IDI0cHg7XG4gICAgICB9XG4gICAgICAucXVvdGF0aW9uIHAge1xuICAgICAgICBmb250LXNpemUgOiA0OHB4O1xuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgJi54LWxhcmdlIHtcbiAgICAuY29udGVudCBwIHtcbiAgICAgIGZvbnQtc2l6ZSA6IDQ4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgLmNvbnRlbnQgcCB7XG4gICAgICAgIGZvbnQtc2l6ZSA6IDI4cHg7XG4gICAgICB9XG4gICAgICAucXVvdGF0aW9uIHAge1xuICAgICAgICBmb250LXNpemUgOiA0OHB4O1xuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgJi5zaG9ydGNvZGUge1xuXG4gICAgLy8gdGhpcyBzZWN0aW9uIGlzIGZvciBpbmxpbmUgb25seVxuXG4gICAgJi5jZW50ZXIge1xuICAgICAgbWFyZ2luLWJvdHRvbSA6IDQ1cHg7XG4gICAgICBtYXJnaW4tdG9wICAgIDogNDVweDtcbiAgICB9XG5cbiAgICAmLmxlZnQsXG4gICAgJi5yaWdodCB7XG4gICAgICB3aWR0aCA6IDY1JTtcbiAgICB9XG5cbiAgICAmLmxlZnQge1xuICAgICAgbWFyZ2luIDogMCAzMHB4IDMwcHggLTMwcHg7XG4gICAgICBmbG9hdCAgOiBsZWZ0O1xuICAgIH1cblxuICAgICYucmlnaHQge1xuICAgICAgZmxvYXQgIDogcmlnaHQ7XG4gICAgICBtYXJnaW4gOiAwIC0zMHB4IDMwcHggMzBweDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgIC5pbWFnZSB7XG4gICAgICBwYWRkaW5nLWxlZnQgOiAwO1xuICAgIH1cblxuICAgIHdpZHRoICAgIDogOTAlO1xuICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7XG5cbiAgICAmLmxlZnQge1xuICAgICAgbWFyZ2luLXJpZ2h0IDogYXV0bztcbiAgICB9XG5cbiAgICAmLnJpZ2h0IHtcbiAgICAgIG1hcmdpbi1sZWZ0IDogYXV0bztcbiAgICB9XG5cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSB1cCkge1xuXG4gICAgJi5sZWZ0IHtcbiAgICAgIHJpZ2h0IDogMTAlO1xuICAgIH1cblxuICAgICYubGVmdCB7XG4gICAgICByaWdodCA6IDEwJTtcbiAgICB9XG5cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHNtYWxsIGRvd24pIHtcbiAgICBmbGV4LWRpcmVjdGlvbiA6IGNvbHVtbjtcblxuICAgIC5pbWFnZSB7XG4gICAgICBtYXJnaW4tYm90dG9tIDogMTVweDtcbiAgICB9XG5cbiAgICAmLnNob3J0Y29kZSB7XG4gICAgICAmLmxlZnQge1xuICAgICAgICBtYXJnaW4tbGVmdCA6IDAgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgICYucmlnaHQge1xuICAgICAgICBtYXJnaW4tcmlnaHQgOiAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuLm5hc2FhLXBvc3QtZmlsdGVyLW5vdGlmaWNhdGlvbnMge1xuICBzcGFuIHtcbiAgICBmb250LXNpemUgOiAwLjhlbTtcbiAgfVxufVxuXG5cbi5wYWdlLWlkLTkxMjgge1xuXG4gICYgPiAuY29udGVudCA+IC5zcGFjZXI6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICB9XG5cbiAgLnZjcy1pbWFnZS1jYXJvdXNlbC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogODg4cHg7XG5cbiAgICBpbWcge1xuICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgfVxuICB9XG5cbn1cblxuXG5cbnRhYmxlLmZpZnR5X3dheXMge1xuICBtYXgtd2lkdGggOiA4MDBweDtcbiAgbWFyZ2luICAgIDogMCBhdXRvIDUwcHg7XG5cbiAgcCB7XG4gICAgbWFyZ2luIDogMDtcbiAgfVxuXG4gIHRib2R5IHtcbiAgICBib3JkZXIgOiBub25lO1xuICB9XG5cbiAgdHIge1xuICAgIGJhY2tncm91bmQgOiB3aGl0ZSAhaW1wb3J0YW50O1xuXG4gICAgdGQge1xuICAgICAgYm9yZGVyLWJvdHRvbSA6IDJweCBzb2xpZCAkZGFyay1ncmF5O1xuXG4gICAgICAmOm50aC1vZi10eXBlKDEpIHtcbiAgICAgICAgZm9udC1zaXplICAgICAgOiA0MnB4O1xuICAgICAgICBmb250LXdlaWdodCAgICA6IDgwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmcgOiAtMC41cHg7XG4gICAgICAgIHBvc2l0aW9uICAgICAgIDogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctcmlnaHQgIDogMjVweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0ICAgOiAxNXB4O1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50ICAgIDogXCJcIjtcbiAgICAgICAgICBwb3NpdGlvbiAgIDogYWJzb2x1dGU7XG4gICAgICAgICAgYm90dG9tICAgICA6IDVweDtcbiAgICAgICAgICB0b3AgICAgICAgIDogNXB4O1xuICAgICAgICAgIHJpZ2h0ICAgICAgOiAwO1xuICAgICAgICAgIHdpZHRoICAgICAgOiAycHg7XG4gICAgICAgICAgYmFja2dyb3VuZCA6ICRkYXJrLWdyYXk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgIHRleHQtYWxpZ24gOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yICAgICAgOiBsaWdodGdyYXk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuLnBhZ2UtaWQtNzYge1xuICAvLyB0aGFuayB5b3UgcGFnZSAtIGFkanVzdGluZyBzcGFjZSBiZXR3ZWVuIHJvd3NcblxuICAubmFzYWEtc2VjdGlvbi1oZWFkZXItYWNmIHtcbiAgICAuY29sdW1uIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgIH1cbiAgfVxufVxuXG4jZGFmZGlyZWN0ZGl2IHtcbiAgd2lkdGg6IDE3MnB4ICFpbXBvcnRhbnQ7XG59IiwiLm5hc2FhLXZpZXctcmVzb3VyY2Uge1xuXG4gIC5uYXNhYS1maWx0ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogMCAxNXB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBzZWxlY3Qge1xuICAgICAgZmxleDogMCAwIDMxMHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBoNiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cblxuICB9XG5cbiAgLmFjdGl2ZS1maWx0ZXJzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbjogMCAxMHB4O1xuXG5cbiAgICAuZmlsdGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kOiAjZWVlO1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgcGFkZGluZzogNHB4IDlweCA0cHggOHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuXG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgaSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgLm5hc2FhLXJlc291cmNlLXZpZXctaGVhZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgYmxhY2s7XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cblxuICAubmFzYWEtcmVzb3VyY2Uge1xuICAgIHRyYW5zaXRpb246IDI1MG1zIGFsbCBlYXNlLW91dDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgJiA+IC5yb3cge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZWZlZmVmO1xuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKG9kZCl7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjRmNGY0O1xuICAgIH1cblxuICB9XG5cblxuICAucG9zdC10aXRsZSxcbiAgLnBvc3QtZGVzY3JpcHRpb24sXG4gIC5wb3N0LXRlcm0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIH1cblxuICAucG9zdC10aXRsZSxcbiAgLnBvc3QtZGVzY3JpcHRpb24ge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGJsYWNrO1xuICB9XG5cbiAgLnBvc3QtZGVzY3JpcHRpb24sXG4gIC5wb3N0LXRlcm0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgcDpsYXN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAucG9zdC1kZXNjcmlwdGlvbiB7XG4gICAgJiA+ICoge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLnBvc3QtdGl0bGUge1xuICAgIGg2IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICBpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICBmbGV4OiAwO1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59IiwiLm5hc2FhLW1lbWJlci1kYXNoYm9hcmQge1xuXG4gIC5tZW1iZXItZGFzaGJvYXJkLXRvcC1yb3cge1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgIC5tZW1iZXItYWxlcnRzIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgICAgIH1cblxuICAgICAgLnNpZGViYXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICAubmFzYWEtbWVtYmVyLWNvbm5lY3QtaW5mbyB7XG5cbiAgICBiYWNrZ3JvdW5kOiAkZGFyay1wdXJwbGU7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDIwcHggMjBweCAxMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXgtd2lkdGg6IDUwMHB4O1xuXG4gICAgaDIge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvY2hhaW4ucG5nKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAzMHB4IDMwcHg7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hc2FhLW1lbWJlci1jb25uZWN0LWxpbmsge1xuXG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgYmFja2dyb3VuZDogJG9yYW5nZTtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIG1hcmdpbjogMjBweCAwO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIGg2IHtcbiAgICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cblxuICAubmFzYWEtbWVtYmVyLWFsZXJ0cyB7XG5cbiAgICAuaWNvbi1pbWcge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgLmljb24tYWxlcnQge1xuICAgICAgICBmb250LXNpemU6IDcycHg7XG4gICAgICAgIGNvbG9yOiAkb3JhbmdlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5uYXNhYS1tZW1iZXItYWxlcnQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgIHA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNsaWRlLW1ldGEge1xuXG4gICAgICAucG9zaXRpb24ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgICBjb2xvcjogJG5hc2FhLWxpZ2h0LWdyYXk7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgZm9udC1zaXplOiAyMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5wYWdpbmF0aW9uIHtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIC5wcmV2LCAubmV4dCB7XG4gICAgICAgICAgZmxleDogMCAxIDUwJTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkbmFzYWEtbGlnaHQtZ3JheTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnByZXYge1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMi41cHggc29saWQgd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAubmV4dCB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDIuNXB4IHNvbGlkIHdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgaSB7XG4gICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG4gICAgICAub3dsLWl0ZW0gPiAucm93IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgLm5hc2FhLWJlbmVmaXRzLWFuZC1nb3Zlcm5hbmNlIHtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcmlnaHQ6IGNhbGMoMTAwJSAtIDE1cHgpO1xuICAgICAgd2lkdGg6IDEwMDAwMDBweDtcbiAgICAgIGJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuICAgIH1cblxuICAgIC5zZWN0aW9uLXRpdGxlIHtcbiAgICAgIGgzIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIC5zaWRlYmFyIHtcblxuICAgIC8vcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8vXG4gICAgLy8mOmJlZm9yZSB7XG4gICAgLy8gIGNvbnRlbnQ6IFwiXCI7XG4gICAgLy8gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyAgdG9wOiAwO1xuICAgIC8vICBsZWZ0OiAtMTVweDtcbiAgICAvLyAgYm90dG9tOiAwO1xuICAgIC8vICB3aWR0aDogMXB4O1xuICAgIC8vICBiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiAgICAvL31cblxuICAgIGg0IHtcbiAgICAgIEBpbmNsdWRlIHJlZF9zdWJoZWFkZXIoKTtcbiAgICB9XG5cbiAgICAubmFzYWEtbWVtYmVyLXJlY2VudC1uZXdzIHtcbiAgICAgIC5wb3N0LWRhdGUge1xuICAgICAgICBjb2xvcjogJG5hc2FhLWxpZ2h0LWdyYXk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn0iLCIubmFzYWEtbmV3c2xldHRlci10b2MtY29udGFpbmVyIHtcbiAgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgICB1bCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICB9XG5cbiAgfVxuXG4gIC50cmlnZ2VyIHtcbiAgICBib3JkZXItY29sb3I6ICRuYXNhYS1saWdodC1ncmF5O1xuICAgIGNvbG9yOiAkbmFzYWEtbGlnaHQtZ3JheTtcbiAgICB0cmFuc2l0aW9uOiAyNTBtcyBhbGwgZWFzZS1vdXQ7XG5cbiAgICAmLm9wZW4ge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICB9XG4gIH1cbn0iLCIucmV2ZWFsLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC43KTtcbn1cblxuLnJldmVhbCB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAkYXJ0c19taWR3ZXN0O1xuICBwYWRkaW5nOiAyNXB4IDIwcHggMjVweCAyNXB4O1xuXG4gIHAge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogMTAwO1xuICAgIGEge1xuICAgICAgY29sb3I6ICM3NTBmMWE7XG4gICAgfVxuICB9XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIC8vYmFja2dyb3VuZDogIzhhOGE4YTtcbiAgICAvL2NvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIHRvcDogMjVweDtcbiAgICBzcGFuIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxlZnQ6IC41cHg7XG4gICAgICBib3R0b206IC41cHg7XG4gICAgfVxuICAgIGkuaWNvbi1jYW5jZWwtY2lyY2xlZCB7XG4gICAgICBmb250LXNpemU6MjJweDtcbiAgICB9XG4gIH1cblxuICBoNCBhIHtcbiAgICBjb2xvcjogIzFhMWExYTtcbiAgfVxuXG59XG5cbiN2bWFwIHtcbiAgd2lkdGg6IDgwMHB4O1xuICBoZWlnaHQ6IDUzM3B4O1xuICBtYXJnaW46IGF1dG87XG59XG5cbiNzdGF0ZUluZm9Nb2RhbCB7XG4gIHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAuNWVtO1xuICAgIH1cbiAgfVxuICAubG9nbyB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuXG4gIC5pbWFnZSB7XG4gICAgaW1nIHtcbiAgICAgIG1heC13aWR0aDogMTUwcHg7XG4gICAgfVxuICB9XG59XG5cbi5tYXAtcmVnaW9ucy1ib3R0b20ge1xuICB3aWR0aDogODAwcHg7XG4gIG1hcmdpbjogYXV0bztcblxuICAmID4gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMzIuOSU7XG4gICAgZm9udC1zaXplOiBzbWFsbDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgJiA+IGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBwYWRkaW5nOiAuM2VtIDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAuM2VtO1xuICAgIH1cbiAgfVxuXG59XG5cbiNXRVNUQUYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2VzdGVybl9zdGF0ZV9hcnRzO1xufVxuXG4jTVcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXJ0c19taWR3ZXN0O1xufVxuXG4jTkVGQSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRuZXdfZW5nbGFuZF9hcnRzO1xufVxuXG4jTUlEQU0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWlkX2FtZXJpY2FfYXJ0cztcbn1cblxuI1NBRiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzb3V0aF9hcnRzO1xufVxuXG4jTUlEQVQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWlkX2F0bGFudGljX2FydHM7XG59XG5cbi5tYXAtcmVnaW9ucy1sZWZ0IHtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHJpZ2h0OiAtMTIwcHg7XG4gIHRvcDogODBweDtcbiAgZmxvYXQ6IHJpZ2h0O1xuXG4gIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvdGhlcl9hcnRzX29yYW5nZTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IHNtYWxsO1xuICB9XG5cbn1cblxuLm1hcC1yZWdpb25zLWxlZnQsXG4ubWFwLXJlZ2lvbnMtcmlnaHQge1xuICBsaSB7XG5cbiAgICBtYXJnaW4tYm90dG9tOiAuMmVtO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cbn1cblxuLm1hcC1yZWdpb25zLXJpZ2h0IHtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC0xMjBweDtcbiAgdG9wOiA4MHB4O1xuXG4gIGEge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogc21hbGw7XG4gIH1cblxuICAjTkgsXG4gICNWVCxcbiAgI01BLFxuICAjUkksXG4gICNDVCB7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmV3X2VuZ2xhbmRfYXJ0cztcbiAgfVxuXG4gICNOSixcbiAgI0RFLFxuICAjTUQsXG4gICNEQyxcbiAgI1ZJIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWlkX2F0bGFudGljX2FydHM7XG4gIH1cblxuICAjUFIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwdWVydG9fcmljb19hcnRzX29yYW5nZTtcbiAgfVxuXG59XG5cbi5tYXAtcmVnaW9ucy1kcm9wZG93biB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5MDBweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAubWFwLXJlZ2lvbnMtbGVmdCB7XG4gICAgcmlnaHQ6IDA7XG4gIH1cblxuICAubWFwLXJlZ2lvbnMtcmlnaHQge1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICAubWFwLXJlZ2lvbnMtYm90dG9tIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTA2NHB4KSBhbmQgKG1heC13aWR0aDogMTEwMHB4KSB7XG4gICN2bWFwIHtcbiAgICB3aWR0aDogNzAwcHg7XG4gICAgaGVpZ2h0OiA0NjZweDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDYzcHgpIHtcbiAgI3ZtYXAge1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICBoZWlnaHQ6IDQwMHB4O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICN2bWFwLFxuICAubWFwLXJlZ2lvbnMtbGVmdCxcbiAgLm1hcC1yZWdpb25zLXJpZ2h0LFxuICAubWFwLXJlZ2lvbnMtYm90dG9tLFxuICAuaGlkZS1mb3ItOTAwLWRvd24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAubWFwLXJlZ2lvbnMtZHJvcGRvd24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyNzlweCkge1xuICAuY29udGFpbmVyLmhpZGUtZm9yLTEyNzktZG93bntcbiAgICAjdm1hcCxcbiAgICAubWFwLXJlZ2lvbnMtbGVmdCxcbiAgICAubWFwLXJlZ2lvbnMtcmlnaHQsXG4gICAgLm1hcC1yZWdpb25zLWJvdHRvbSxcbiAgICAuaGlkZS1mb3ItOTAwLWRvd257XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5tYXAtcmVnaW9ucy1kcm9wZG93biB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsImkge1xuXG4gICYuY2lyY2xlZCxcbiAgJi5jaXJjbGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsZWZ0OiAtMXB4O1xuICAgIH1cblxuICAgICYuaWNvbi1sZWZ0LW9wZW46YmVmb3JlIHtcbiAgICAgIGxlZnQ6IC0zLjglO1xuICAgIH1cblxuICAgICYuaWNvbi1yaWdodC1vcGVuOmJlZm9yZSB7XG4gICAgICBsZWZ0OiA4LjUlO1xuICAgIH1cblxuICB9XG5cbiAgQGVhY2ggJGxhYmVsLCAkY29sb3IsICRob3ZlciBpbiAkY29sb3JzIHtcbiAgICAmLiN7JGxhYmVsfSB7XG4gICAgICBjb2xvcjogI3skY29sb3J9O1xuICAgICAgJi5jaXJjbGVkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjeyRjb2xvcn1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLnNwYWNlLWxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiA3cHg7XG4gIH1cblxuICAmLnNwYWNlLXJpZ2h0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDdweDtcbiAgfVxuXG4gICYuaWNvbi1zdGFyIHtcbiAgICAvL2NvbG9yOiAkYnJpZ2h0LXJlZDtcbiAgfVxuXG4gICYuc2l6ZS14bGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogOThweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gICYuc2l6ZS1sYXJnZSB7XG4gICAgZm9udC1zaXplOiA0OHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgJi5zaXplLWxhcmdlLTcyIHtcbiAgICBmb250LXNpemU6IDcycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxufSIsIi5idXR0b24ge1xuXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDEuNXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBwYWRkaW5nOiAxNXB4IDMwcHg7XG4gIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgY29sb3I6IHdoaXRlO1xuICB0cmFuc2l0aW9uOiAyNTBtcyBhbGwgZWFzZS1vdXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuXG4gIGkge1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgICYuaWNvbi1mYWNlYm9vay1jaXJjbGVkIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG5cbiAgfVxuXG4gIEBlYWNoICRsYWJlbCwgJGNvbG9yLCAkaG92ZXIgaW4gJGNvbG9ycyB7XG4gICAgJi4jeyRsYWJlbH0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI3skY29sb3J9O1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICN7JGhvdmVyfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLndoaXRlIHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBjb2xvcjogJG5hc2FhLWRhcmstZ3JheTtcbiAgfVxuXG4gICYuZXh0ZW5kZWQsXG4gICYuZXhwYW5kIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICYuY2VudGVyLFxuICAmLmNlbnRlcmVkIHtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cblxuICAmLndpdGgtaWNvbiB7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLy8gc3RhbmRhcmQgcGFkZGluZywgcGx1cyBzb21lIG1vcmUgdG8gbWFrZSByb29tIGZvciB0aGUgYXJyb3dcbiAgICBwYWRkaW5nLXJpZ2h0OiA0NXB4O1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcXGU4MGNcIjtcbiAgICAgIGZvbnQtZmFtaWx5OiBmb250ZWxsbztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogY2FsYyg1MCUgLSA5cHgpO1xuICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGhlaWdodDogMTZweDtcbiAgICAgIHRleHQtaW5kZW50OiAycHg7XG4gICAgfVxuXG4gICAgJi5iYWNrIHtcblxuICAgICAgcGFkZGluZy1sZWZ0OiA0NXB4O1xuICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcblxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxlODBiXCI7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAxOHB4O1xuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cblxuICAmLnJvdW5kIHtcbiAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICB9XG5cbiAgJi5zbWFsbCB7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG5cbiAgICAmLnJvdW5kIHtcbiAgICAgIHBhZGRpbmc6IDEwcHggMjJweDtcbiAgICB9XG5cbiAgICAmLndpdGgtaWNvbiB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDhweCk7XG4gICAgICAgIHJpZ2h0OiA5cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxufVxuXG4ubmFzYWEtbG9naW4tbW9kYWwge1xuICAjd3Atc3VibWl0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG59XG5cbmJvZHkud29vY29tbWVyY2UgaGVhZGVyIHtcbiAgLm5hc2FhLW1lbWJlci1idXR0b25zIHtcbiAgICAuYnV0dG9uIHtcbiAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgcGFkZGluZzogMTBweCAyMnB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAgICYuYmx1ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRibHVlICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAmLm9yYW5nZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRvcmFuZ2UgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gICAgLm5hc2FhLWxvZ2luLW1vZGFsIHtcbiAgICAgICN3cC1zdWJtaXQge1xuICAgICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgcGFkZGluZzogMTVweCAzMHB4O1xuICAgICAgICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgYmFja2dyb3VuZDogJG9yYW5nZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuICAgIC5idXR0b257XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgfVxuICB9XG59IiwiLnNwYWNlciB7XG5cbiAgaGVpZ2h0OiA1MHB4O1xuICB3aWR0aDogMTAwJTtcblxuICAmLnhsYXJnZSB7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgfVxuXG4gICYubGFyZ2Uge1xuICAgIGhlaWdodDogNzVweDtcbiAgfVxuXG4gICYuc21hbGwge1xuICAgIGhlaWdodDogMjVweDtcbiAgfVxuXG4gICYueHNtYWxsIHtcbiAgICBoZWlnaHQ6IDE1cHg7XG4gIH1cblxuICAmLnh4c21hbGwge1xuICAgIGhlaWdodDogN3B4O1xuICB9XG5cbiAgJi5kaXZpZGVyIHtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRuYXNhYS1saWdodC1ncmF5O1xuXG4gICAgfVxuICAgICYuZGFzaGVkOmJlZm9yZSB7XG4gICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4gICAgfVxuICAgICYubGlnaHQ6YmVmb3JlIHtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICRuYXNhYS1saWdodC1ncmF5O1xuICAgIH1cblxuICAgICYudG9wOmJlZm9yZSB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgJi5ib3R0b206YmVmb3JlIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmLnRoaWNrOmJlZm9yZSB7XG4gICAgICBib3JkZXItdG9wLXdpZHRoOiAycHg7XG4gICAgfVxuXG4gICAgQGVhY2ggJGxhYmVsLCAkY29sb3IsICRob3ZlciBpbiAkY29sb3JzIHtcbiAgICAgICYuI3skbGFiZWx9OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6ICN7JGNvbG9yfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bil7XG4gICAgaGVpZ2h0OiAzMHB4O1xuXG4gICAgJi5sYXJnZSB7XG4gICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgfVxuXG4gICAgJi54bGFyZ2Uge1xuICAgICAgaGVpZ2h0OiA3NXB4O1xuICAgIH1cblxuICAgICYuc21hbGwge1xuICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgIH1cblxuICAgICYueHhzbWFsbCB7XG4gICAgICBoZWlnaHQ6IDdweDtcbiAgICB9XG4gIH1cblxufVxuXG4ubGlnaHQtZ3JheS1iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRuYXNhYS1ncmF5LXNoYWRlO1xufVxuXG4ubGlnaHQtZ3JheS1iZy10b3AtaGFsZiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDUwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogJG5hc2FhLWdyYXktc2hhZGU7XG4gIH1cbn1cblxuLmxpZ2h0LWdyYXktYmctYm90dG9tLWhhbGYge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiA1MCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6ICRuYXNhYS1ncmF5LXNoYWRlO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG59XG5cbi5uYXNhYS1kaXZpZGVyIHtcbiAgaGVpZ2h0OiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAkbmFzYWEtZGFyay1ncmF5O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG4gICYuYmx1ZSB7XG4gICAgYmFja2dyb3VuZDogJGJsdWU7XG4gIH1cblxuICAmLmRhcmstYmx1ZSB7XG4gICAgYmFja2dyb3VuZDogJGRhcmstYmx1ZTtcbiAgfVxuXG4gICYucmVkIHtcbiAgICBiYWNrZ3JvdW5kOiAkcmVkO1xuICB9XG5cbiAgJi5vcmFuZ2Uge1xuICAgIGJhY2tncm91bmQ6ICRvcmFuZ2U7XG4gIH1cblxuICAmLnllbGxvdyB7XG4gICAgYmFja2dyb3VuZDogJHllbGxvdztcbiAgfVxuXG59XG5cbmltZy5mdWxsLXdpZHRoIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5xdWVzdGlvbiB7XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstcmVkO1xuICBjb2xvcjogJGJyaWdodC1yZWQ7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbjogMTVweCAwO1xuXG59XG5cbi5yb3cge1xuXG4gICYuZXhwYW5kIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAmLmZsYXQge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXG4gICAgLnJvdyB7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG5cbiAgfVxuXG4gICYgPiAucm93IHtcbiAgICBtYXJnaW46IDAgMTVweDtcbiAgfVxuXG4gICYuY2VudGVyIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB9XG5cbn1cblxuaW1nLCBkaXYge1xuICAmLmFsaWdubGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwIDE1cHggMTVweCAwO1xuICB9XG5cbiAgJi5hbGlnbnJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luOiAwIDAgMTVweCAxNXB4O1xuICB9XG5cbiAgJi5hbGlnbmNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAxNXB4IGF1dG87XG4gIH1cblxuICAud3AtY2FwdGlvbi10ZXh0IHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICRuYXNhYS1tZWRpdW0tZ3JheTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxufVxuXG4ucmVtb3ZlLWxhc3QtbWFyZ2luIHtcbiAgKjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbnVsIHtcblxuICAmLmljb24ge1xuXG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgbGk6YmVmb3JlIHtcblxuICAgICAgZm9udC1mYW1pbHk6IFwiZm9udGVsbG9cIjtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBzcGVhazogbm9uZTtcblxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgICAgd2lkdGg6IDFlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIC8qIG9wYWNpdHk6IC44OyAqL1xuXG4gICAgICAvKiBGb3Igc2FmZXR5IC0gcmVzZXQgcGFyZW50IHN0eWxlcywgdGhhdCBjYW4gYnJlYWsgZ2x5cGggY29kZXMqL1xuICAgICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICAgLyogZml4IGJ1dHRvbnMgaGVpZ2h0LCBmb3IgdHdpdHRlciBib290c3RyYXAgKi9cbiAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG5cbiAgICAgIC8qIEFuaW1hdGlvbiBjZW50ZXIgY29tcGVuc2F0aW9uIC0gbWFyZ2lucyBzaG91bGQgYmUgc3ltbWV0cmljICovXG4gICAgICAvKiByZW1vdmUgaWYgbm90IG5lZWRlZCAqL1xuICAgICAgbWFyZ2luLWxlZnQ6IC4yZW07XG5cbiAgICAgIC8qIHlvdSBjYW4gYmUgbW9yZSBjb21mb3J0YWJsZSB3aXRoIGluY3JlYXNlZCBpY29ucyBzaXplICovXG4gICAgICAvKiBmb250LXNpemU6IDEyMCU7ICovXG5cbiAgICAgIC8qIEZvbnQgc21vb3RoaW5nLiBUaGF0IHdhcyB0YWtlbiBmcm9tIFRXQlMgKi9cbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblxuICAgICAgLyogVW5jb21tZW50IGZvciAzRCBlZmZlY3QgKi9cbiAgICAgIC8qIHRleHQtc2hhZG93OiAxcHggMXB4IDFweCByZ2JhKDEyNywgMTI3LCAxMjcsIDAuMyk7ICovXG4gICAgfVxuXG4gICAgJi5zdGFycyB7XG5cbiAgICAgIGxpOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICdcXGU4MDYnO1xuICAgICAgfVxuXG4gICAgICAmLnJlZCB7XG5cbiAgICAgICAgbGk6YmVmb3JlIHtcbiAgICAgICAgICBjb2xvcjogJG1hcm9vbjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnllbGxvdyB7XG5cbiAgICAgICAgbGk6YmVmb3JlIHtcbiAgICAgICAgICBjb2xvcjogJGRhcmsteWVsbG93O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5zci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsMCwwLDApO1xuICBib3JkZXI6IDA7XG59XG5cbi5mbGV4LWZpeC1ncm93IHtcbiAgZmxleDogMSAwIGF1dG87XG59XG5cbi8qIEZvciBhY2Nlc3NpYmlsaXR5IGNvbXBsaWFuY2UgKi9cbi5nZm9ybV93cmFwcGVye1xuICAucGVyY2VudGJhcl9ncmF5e1xuICAgIGJhY2tncm91bmQtY29sb3I6IzdDN0M3QztcbiAgICBjb2xvcjojRkZGXG4gIH1cblxuICAucGVyY2VudGJhcl9ncmVlbntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiM0MTU4MTc7XG4gICAgY29sb3I6I0ZGRlxuICB9XG5cbiAgLnBlcmNlbnRiYXJfb3Jhbmdle1xuICAgIGJhY2tncm91bmQtY29sb3I6IzgzMzAwMDtcbiAgICBjb2xvcjojRkZGXG4gIH1cblxuICAucGVyY2VudGJhcl9yZWR7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojOWQwYTAwO1xuICAgIGNvbG9yOiNGRkZcbiAgfVxufVxuXG4ud29vY29tbWVyY2Utc3RvcmUtbm90aWNlLHAuZGVtb19zdG9yZXtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZjNDA2Mztcbn1cblxuLndvb2NvbW1lcmNlIHNwYW4ub25zYWxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NWUzNztcbn1cblxuLndvb2NvbW1lcmNlIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsIGxpIGE6Zm9jdXMsLndvb2NvbW1lcmNlIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsIGxpIGE6aG92ZXIsLndvb2NvbW1lcmNlIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsIGxpIHNwYW4uY3VycmVudHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0NGU1NDtcbn1cblxuLndvb2NvbW1lcmNlICNyZXNwb25kIGlucHV0I3N1Ym1pdC5hbHQsLndvb2NvbW1lcmNlIGEuYnV0dG9uLmFsdCwud29vY29tbWVyY2UgYnV0dG9uLmJ1dHRvbi5hbHQsLndvb2NvbW1lcmNlIGlucHV0LmJ1dHRvbi5hbHR7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2YzQwNjM7XG59XG5cbi53b29jb21tZXJjZSAjcmVzcG9uZCBpbnB1dCNzdWJtaXQuYWx0LmRpc2FibGVkLFxuLndvb2NvbW1lcmNlICNyZXNwb25kIGlucHV0I3N1Ym1pdC5hbHQuZGlzYWJsZWQ6aG92ZXIsXG4ud29vY29tbWVyY2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0LmFsdDpkaXNhYmxlZCxcbi53b29jb21tZXJjZSAjcmVzcG9uZCBpbnB1dCNzdWJtaXQuYWx0OmRpc2FibGVkOmhvdmVyLFxuLndvb2NvbW1lcmNlICNyZXNwb25kIGlucHV0I3N1Ym1pdC5hbHQ6ZGlzYWJsZWRbZGlzYWJsZWRdLFxuLndvb2NvbW1lcmNlICNyZXNwb25kIGlucHV0I3N1Ym1pdC5hbHQ6ZGlzYWJsZWRbZGlzYWJsZWRdOmhvdmVyLFxuLndvb2NvbW1lcmNlIGEuYnV0dG9uLmFsdC5kaXNhYmxlZCxcbi53b29jb21tZXJjZSBhLmJ1dHRvbi5hbHQuZGlzYWJsZWQ6aG92ZXIsXG4ud29vY29tbWVyY2UgYS5idXR0b24uYWx0OmRpc2FibGVkLFxuLndvb2NvbW1lcmNlIGEuYnV0dG9uLmFsdDpkaXNhYmxlZDpob3Zlcixcbi53b29jb21tZXJjZSBhLmJ1dHRvbi5hbHQ6ZGlzYWJsZWRbZGlzYWJsZWRdLFxuLndvb2NvbW1lcmNlIGEuYnV0dG9uLmFsdDpkaXNhYmxlZFtkaXNhYmxlZF06aG92ZXIsXG4ud29vY29tbWVyY2UgYnV0dG9uLmJ1dHRvbi5hbHQuZGlzYWJsZWQsXG4ud29vY29tbWVyY2UgYnV0dG9uLmJ1dHRvbi5hbHQuZGlzYWJsZWQ6aG92ZXIsXG4ud29vY29tbWVyY2UgYnV0dG9uLmJ1dHRvbi5hbHQ6ZGlzYWJsZWQsXG4ud29vY29tbWVyY2UgYnV0dG9uLmJ1dHRvbi5hbHQ6ZGlzYWJsZWQ6aG92ZXIsXG4ud29vY29tbWVyY2UgYnV0dG9uLmJ1dHRvbi5hbHQ6ZGlzYWJsZWRbZGlzYWJsZWRdLFxuLndvb2NvbW1lcmNlIGJ1dHRvbi5idXR0b24uYWx0OmRpc2FibGVkW2Rpc2FibGVkXTpob3Zlcixcbi53b29jb21tZXJjZSBpbnB1dC5idXR0b24uYWx0LmRpc2FibGVkLFxuLndvb2NvbW1lcmNlIGlucHV0LmJ1dHRvbi5hbHQuZGlzYWJsZWQ6aG92ZXIsXG4ud29vY29tbWVyY2UgaW5wdXQuYnV0dG9uLmFsdDpkaXNhYmxlZCxcbi53b29jb21tZXJjZSBpbnB1dC5idXR0b24uYWx0OmRpc2FibGVkOmhvdmVyLFxuLndvb2NvbW1lcmNlIGlucHV0LmJ1dHRvbi5hbHQ6ZGlzYWJsZWRbZGlzYWJsZWRdLFxuLndvb2NvbW1lcmNlIGlucHV0LmJ1dHRvbi5hbHQ6ZGlzYWJsZWRbZGlzYWJsZWRdOmhvdmVye1xuICBiYWNrZ3JvdW5kLWNvbG9yOiM2ZTQxNjg7XG4gIGNvbG9yOiNmZmZcbn1cblxuI2ZpdmVBcHByb2FjaGVzQ2FzZVN0dWR5VGFibGUge1xuICB0aGVhZHtcbiAgICB0aCB7XG4gICAgICBwYWRkaW5nOiA2cHggMjZweDtcbiAgICB9XG4gICAgdGguY29sLWV2ZW4ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LW9yYW5nZTtcbiAgICB9XG4gIH1cbiAgdGJvZHkge1xuICAgIHRoIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBwYWRkaW5nOiA2cHggMjZweDtcbiAgICB9XG4gICAgdGQge1xuICAgICAgcGFkZGluZzogNnB4IDI2cHg7XG4gICAgfVxuICAgIHRkLmNvbC1ldmVuIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1vcmFuZ2U7XG4gICAgfVxuICB9XG59XG5cbi8vIFJlcGxhY2luZyBpbWcgc3BhY2UuZ2lmXG5kaXYuc3BhY2UtZ2lme1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOjFweDtcbiAgaGVpZ2h0OjFweDtcbn0iLCIud29vY29tbWVyY2Uge1xuICAuYWRkZWRfdG9fY2FydCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiAkb3JhbmdlO1xuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIGNsZWFyOiBsZWZ0O1xuICAgIHBhZGRpbmc6IDVweCAxNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcblxuICAgIGZvcm0uY2hlY2tvdXQge1xuICAgICAgI2N1c3RvbWVyX2RldGFpbHMge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgICAuY29sLTEsIC5jb2wtMiB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuY29sLTEge1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgI29yZGVyX3Jldmlld19oZWFkaW5nIHtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDIlO1xuICAgICAgfVxuXG4gICAgICAjb3JkZXJfcmV2aWV3IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB3aWR0aDogNDglO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgLndvb2NvbW1lcmNlLXRhYmxlLS1vcmRlci1kZXRhaWxzIHtcbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkYnJpZ2h0LXJlZDtcbiAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIH1cbiAgfVxuXG4gIC53b29jb21tZXJjZS1icmVhZGNydW1iIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59IiwiQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzEuMjVlbSkge1xuICAuc21hbGwtMSB7XG4gICAgZmxleDowIDAgOC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJVxuICB9XG5cbiAgLnNtYWxsLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCVcbiAgfVxuXG4gIC5zbWFsbC0yIHtcbiAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjclXG4gIH1cblxuICAuc21hbGwtb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJVxuICB9XG5cbiAgLnNtYWxsLTMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSVcbiAgfVxuXG4gIC5zbWFsbC1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JVxuICB9XG5cbiAgLnNtYWxsLTQge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyVcbiAgfVxuXG4gIC5zbWFsbC1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JVxuICB9XG5cbiAgLnNtYWxsLTUge1xuICAgIGZsZXg6IDAgMCA0MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NyVcbiAgfVxuXG4gIC5zbWFsbC1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJVxuICB9XG5cbiAgLnNtYWxsLTYge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCVcbiAgfVxuXG4gIC5zbWFsbC1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JVxuICB9XG5cbiAgLnNtYWxsLTcge1xuICAgIGZsZXg6IDAgMCA1OC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMyVcbiAgfVxuXG4gIC5zbWFsbC1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJVxuICB9XG5cbiAgLnNtYWxsLTgge1xuICAgIGZsZXg6IDAgMCA2Ni42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NyVcbiAgfVxuXG4gIC5zbWFsbC1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJVxuICB9XG5cbiAgLnNtYWxsLTkge1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSVcbiAgfVxuXG4gIC5zbWFsbC1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JVxuICB9XG5cbiAgLnNtYWxsLTEwIHtcbiAgICBmbGV4OiAwIDAgODMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlXG4gIH1cblxuICAuc21hbGwtb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSVcbiAgfVxuXG4gIC5zbWFsbC0xMSB7XG4gICAgZmxleDogMCAwIDkxLjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY3JVxuICB9XG5cbiAgLnNtYWxsLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJVxuICB9XG5cbiAgLnNtYWxsLTEyIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCVcbiAgfVxuXG4gIC5zbWFsbC1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyVcbiAgfVxuXG4gIC5zbWFsbC1vcmRlci0xIHtcbiAgICBvcmRlcjogMVxuICB9XG5cbiAgLnNtYWxsLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyXG4gIH1cblxuICAuc21hbGwtb3JkZXItMyB7XG4gICAgb3JkZXI6IDNcbiAgfVxuXG4gIC5zbWFsbC1vcmRlci00IHtcbiAgICBvcmRlcjogNFxuICB9XG5cbiAgLnNtYWxsLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1XG4gIH1cblxuICAuc21hbGwtb3JkZXItNiB7XG4gICAgb3JkZXI6IDZcbiAgfVxuXG4gIC5zbWFsbC11cC0xIHtcbiAgICBmbGV4LXdyYXA6IHdyYXBcbiAgfVxuXG4gIC5zbWFsbC11cC0xPi5jb2x1bW4sLnNtYWxsLXVwLTE+LmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJVxuICB9XG5cbiAgLnNtYWxsLXVwLTIge1xuICAgIGZsZXgtd3JhcDogd3JhcFxuICB9XG5cbiAgLnNtYWxsLXVwLTI+LmNvbHVtbiwuc21hbGwtdXAtMj4uY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJVxuICB9XG5cbiAgLnNtYWxsLXVwLTMge1xuICAgIGZsZXgtd3JhcDogd3JhcFxuICB9XG5cbiAgLnNtYWxsLXVwLTM+LmNvbHVtbiwuc21hbGwtdXAtMz4uY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJVxuICB9XG5cbiAgLnNtYWxsLXVwLTQge1xuICAgIGZsZXgtd3JhcDogd3JhcFxuICB9XG5cbiAgLnNtYWxsLXVwLTQ+LmNvbHVtbiwuc21hbGwtdXAtND4uY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JVxuICB9XG5cbiAgLnNtYWxsLXVwLTUge1xuICAgIGZsZXgtd3JhcDogd3JhcFxuICB9XG5cbiAgLnNtYWxsLXVwLTU+LmNvbHVtbiwuc21hbGwtdXAtNT4uY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDIwJTtcbiAgICBtYXgtd2lkdGg6IDIwJVxuICB9XG5cbiAgLnNtYWxsLXVwLTYge1xuICAgIGZsZXgtd3JhcDogd3JhcFxuICB9XG5cbiAgLnNtYWxsLXVwLTY+LmNvbHVtbiwuc21hbGwtdXAtNj4uY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JVxuICB9XG5cbiAgLnNtYWxsLXVwLTcge1xuICAgIGZsZXgtd3JhcDogd3JhcFxuICB9XG5cbiAgLnNtYWxsLXVwLTc+LmNvbHVtbiwuc21hbGwtdXAtNz4uY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDE0LjI4NTcxJTtcbiAgICBtYXgtd2lkdGg6IDE0LjI4NTcxJVxuICB9XG5cbiAgLnNtYWxsLXVwLTgge1xuICAgIGZsZXgtd3JhcDogd3JhcFxuICB9XG5cbiAgLnNtYWxsLXVwLTg+LmNvbHVtbiwuc21hbGwtdXAtOD4uY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDEyLjUlO1xuICAgIG1heC13aWR0aDogMTIuNSVcbiAgfVxufVxuIl19 */
