@charset "UTF-8";
/**
 * Foundation for Sites
 * Version 6.6.3
 * https://get.foundation
 * Licensed under MIT Open Source
 */
@media print, screen and (min-width: 40em) {
  .reveal, .reveal.tiny, .reveal.small, .reveal.large {
    right: auto;
    left: auto;
    margin: 0 auto;
  }
}

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

body {
  margin: 0;
}

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

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

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

a {
  background-color: transparent;
}

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

b,
strong {
  font-weight: bolder;
}

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

small {
  font-size: 80%;
}

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

img {
  border-style: none;
}

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

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

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

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

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

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

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

progress {
  vertical-align: baseline;
}

textarea {
  overflow: auto;
}

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

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

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

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

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

details {
  display: block;
}

summary {
  display: list-item;
}

template {
  display: none;
}

[hidden] {
  display: none;
}

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

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

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

body {
  margin: 0;
  padding: 0;
  background: #ffffff;
  font-family: "Buenos Aires", Arial, sans-serif;
  font-weight: normal;
  line-height: 1.625;
  color: #000000;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

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

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

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

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

button {
  padding: 0;
  appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1;
  cursor: auto;
}

[data-whatinput='mouse'] button {
  outline: 0;
}

pre {
  overflow: auto;
}

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

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

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

[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: 3.1875rem;
  margin: 0 0 1.625rem;
  padding: 0.8125rem;
  border: 1px solid #B5B5B5;
  border-radius: 0;
  background-color: #ffffff;
  box-shadow: none;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.625;
  color: #000000;
  transition: border-color 0.25s ease-in-out;
  appearance: none;
}

[type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
textarea:focus {
  outline: none;
  border: 1px solid #3a4044;
  background-color: #e8ebec;
  box-shadow: none;
  transition: border-color 0.25s ease-in-out;
}

textarea {
  max-width: 100%;
}

textarea[rows] {
  height: auto;
}

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

[type='submit'],
[type='button'] {
  appearance: none;
  border-radius: 0;
}

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

::placeholder {
  color: #B5B5B5;
}

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

[type='checkbox'] + label,
[type='radio'] + label {
  display: inline-block;
  vertical-align: baseline;
  margin-left: 0.8125rem;
  margin-right: 1.625rem;
  margin-bottom: 0;
}

[type='checkbox'] + label[for],
[type='radio'] + label[for] {
  cursor: pointer;
}

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

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

label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #000000;
}

label.middle {
  margin: 0 0 1.625rem;
  padding: 0.875rem 0;
}

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

.input-group {
  display: flex;
  width: 100%;
  margin-bottom: 1.625rem;
  align-items: stretch;
}

.input-group > :first-child, .input-group > :first-child.input-group-button > * {
  border-radius: 0 0 0 0;
}

.input-group > :last-child, .input-group > :last-child.input-group-button > * {
  border-radius: 0 0 0 0;
}

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

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #B5B5B5;
  background: #e8ebec;
  color: #000000;
  text-align: center;
  white-space: nowrap;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
}

.input-group-label:first-child {
  border-right: 0;
}

.input-group-label:last-child {
  border-left: 0;
}

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

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  display: flex;
  flex: 0 0 auto;
}

.input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  align-self: stretch;
  height: auto;
  padding-top: 0;
  padding-bottom: 0;
  font-size: 1rem;
}

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

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

.fieldset {
  margin: 1.125rem 0;
  padding: 1.25rem;
  border: 1px solid #B5B5B5;
}

.fieldset legend {
  margin: 0;
  margin-left: -0.1875rem;
  padding: 0 0.1875rem;
}

select {
  height: 3.1875rem;
  margin: 0 0 1.625rem;
  padding: 0.8125rem;
  appearance: none;
  border: 1px solid #B5B5B5;
  border-radius: 0;
  background-color: #ffffff;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.625;
  color: #000000;
  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%2858, 64, 68%29'></polygon></svg>");
  background-origin: content-box;
  background-position: right -1.625rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 2.4375rem;
  transition: border-color 0.25s ease-in-out;
}

@media screen and (min-width: 0\0) {
  select {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==");
  }
}

select:focus {
  outline: none;
  border: 1px solid #3a4044;
  background-color: #e8ebec;
  box-shadow: none;
  transition: border-color 0.25s ease-in-out;
}

select:disabled {
  background-color: #e8ebec;
  cursor: not-allowed;
}

select::-ms-expand {
  display: none;
}

select[multiple] {
  height: auto;
  background-image: none;
}

select:not([multiple]) {
  padding-top: 0;
  padding-bottom: 0;
}

.is-invalid-input:not(:focus) {
  border-color: #ac1b1b;
  background-color: #f7e8e8;
}

.is-invalid-input:not(:focus)::placeholder {
  color: #ac1b1b;
}

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

.form-error {
  display: none;
  margin-top: -0.8125rem;
  margin-bottom: 1.625rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: #ac1b1b;
}

.form-error.is-visible {
  display: block;
}

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

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

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

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

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

h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4, .info-accordion .accordion-item .accordion-content .visible-content.president .contact.title h6,
h5, .h5,
h6, .h6 {
  font-family: "Buenos Aires", Arial, sans-serif;
  font-style: normal;
  font-weight: 700;
  color: inherit;
  text-rendering: optimizeLegibility;
}

h1 small, .h1 small,
h2 small, .h2 small,
h3 small, .h3 small,
h4 small, .h4 small, .info-accordion .accordion-item .accordion-content .visible-content.president .contact.title h6 small,
h5 small, .h5 small,
h6 small, .h6 small {
  line-height: 0;
  color: #979797;
}

h1, .h1 {
  font-size: 1.625rem;
  line-height: 1.2;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h2, .h2 {
  font-size: 1.4375rem;
  line-height: 1.2;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h3, .h3 {
  font-size: 1.4375rem;
  line-height: 1.2;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h4, .h4, .info-accordion .accordion-item .accordion-content .visible-content.president .contact.title h6 {
  font-size: 1.25rem;
  line-height: 1.2;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h5, .h5 {
  font-size: 1.25rem;
  line-height: 1.2;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

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

@media print, screen and (min-width: 40em) {
  h1, .h1 {
    font-size: 3.125rem;
  }
  h2, .h2 {
    font-size: 2.1875rem;
  }
  h3, .h3 {
    font-size: 2.1875rem;
  }
  h4, .h4, .info-accordion .accordion-item .accordion-content .visible-content.president .contact.title h6 {
    font-size: 1.5625rem;
  }
  h5, .h5 {
    font-size: 1.5625rem;
  }
  h6, .h6 {
    font-size: 1rem;
  }
}

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

a:hover, a:focus {
  color: black;
}

a img {
  border: 0;
}

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

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

li {
  font-size: inherit;
}

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

ol {
  margin-left: 1.25rem;
}

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

dl {
  margin-bottom: 1rem;
}

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

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #979797;
}

blockquote, blockquote p {
  line-height: 1.625;
  color: #3a4044;
}

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

figure {
  margin: 0;
}

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #e8ebec;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  color: #000000;
}

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

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

.stat {
  font-size: 2.5rem;
  line-height: 1;
}

p + .stat {
  margin-top: -1rem;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@media print {
  * {
    background: transparent !important;
    color: black !important;
    color-adjust: economy;
    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 #3a4044;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  @page {
    margin: 0.5cm;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .print-break-inside {
    page-break-inside: auto;
  }
}

.grid-container {
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  max-width: 75rem;
  margin-left: auto;
  margin-right: auto;
}

@media print, screen and (min-width: 40em) {
  .grid-container {
    padding-right: 3.125rem;
    padding-left: 3.125rem;
  }
}

@media print, screen and (min-width: 64em) {
  .grid-container {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.grid-container.fluid {
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

@media print, screen and (min-width: 40em) {
  .grid-container.fluid {
    padding-right: 3.125rem;
    padding-left: 3.125rem;
  }
}

@media print, screen and (min-width: 64em) {
  .grid-container.fluid {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.grid-container.full, .tabs-wrapper .grid-container.tabs-align {
  padding-right: 0;
  padding-left: 0;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.grid-x {
  display: flex;
  flex-flow: row wrap;
}

.cell, .info-accordion .accordion-item .accordion-content hr {
  flex: 0 0 auto;
  min-height: 0px;
  min-width: 0px;
  width: 100%;
}

.cell.auto, .info-accordion .accordion-item .accordion-content hr.auto {
  flex: 1 1 0px;
}

.cell.shrink, .info-accordion .accordion-item .accordion-content hr.shrink {
  flex: 0 0 auto;
}

.grid-x > .auto {
  width: auto;
}

.grid-x > .shrink {
  width: auto;
}

.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {
  flex-basis: auto;
}

@media print, screen and (min-width: 40em) {
  .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {
    flex-basis: auto;
  }
}

@media print, screen and (min-width: 48em) {
  .grid-x > .xmedium-shrink, .grid-x > .xmedium-full, .grid-x > .xmedium-1, .grid-x > .xmedium-2, .grid-x > .xmedium-3, .grid-x > .xmedium-4, .grid-x > .xmedium-5, .grid-x > .xmedium-6, .grid-x > .xmedium-7, .grid-x > .xmedium-8, .grid-x > .xmedium-9, .grid-x > .xmedium-10, .grid-x > .xmedium-11, .grid-x > .xmedium-12 {
    flex-basis: auto;
  }
}

@media print, screen and (min-width: 64em) {
  .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {
    flex-basis: auto;
  }
}

@media screen and (min-width: 75em) {
  .grid-x > .xlarge-shrink, .grid-x > .xlarge-full, .grid-x > .xlarge-1, .grid-x > .xlarge-2, .grid-x > .xlarge-3, .grid-x > .xlarge-4, .grid-x > .xlarge-5, .grid-x > .xlarge-6, .grid-x > .xlarge-7, .grid-x > .xlarge-8, .grid-x > .xlarge-9, .grid-x > .xlarge-10, .grid-x > .xlarge-11, .grid-x > .xlarge-12 {
    flex-basis: auto;
  }
}

@media screen and (min-width: 90em) {
  .grid-x > .xxlarge-shrink, .grid-x > .xxlarge-full, .grid-x > .xxlarge-1, .grid-x > .xxlarge-2, .grid-x > .xxlarge-3, .grid-x > .xxlarge-4, .grid-x > .xxlarge-5, .grid-x > .xxlarge-6, .grid-x > .xxlarge-7, .grid-x > .xxlarge-8, .grid-x > .xxlarge-9, .grid-x > .xxlarge-10, .grid-x > .xxlarge-11, .grid-x > .xxlarge-12 {
    flex-basis: auto;
  }
}

.grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {
  flex: 0 0 auto;
}

.grid-x > .small-1 {
  width: 8.33333%;
}

.grid-x > .small-2 {
  width: 16.66667%;
}

.grid-x > .small-3 {
  width: 25%;
}

.grid-x > .small-4 {
  width: 33.33333%;
}

.grid-x > .small-5 {
  width: 41.66667%;
}

.grid-x > .small-6 {
  width: 50%;
}

.grid-x > .small-7 {
  width: 58.33333%;
}

.grid-x > .small-8 {
  width: 66.66667%;
}

.grid-x > .small-9 {
  width: 75%;
}

.grid-x > .small-10 {
  width: 83.33333%;
}

.grid-x > .small-11 {
  width: 91.66667%;
}

.grid-x > .small-12 {
  width: 100%;
}

@media print, screen and (min-width: 40em) {
  .grid-x > .medium-auto {
    flex: 1 1 0px;
    width: auto;
  }
  .grid-x > .medium-shrink, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {
    flex: 0 0 auto;
  }
  .grid-x > .medium-shrink {
    width: auto;
  }
  .grid-x > .medium-1 {
    width: 8.33333%;
  }
  .grid-x > .medium-2 {
    width: 16.66667%;
  }
  .grid-x > .medium-3 {
    width: 25%;
  }
  .grid-x > .medium-4 {
    width: 33.33333%;
  }
  .grid-x > .medium-5 {
    width: 41.66667%;
  }
  .grid-x > .medium-6 {
    width: 50%;
  }
  .grid-x > .medium-7 {
    width: 58.33333%;
  }
  .grid-x > .medium-8 {
    width: 66.66667%;
  }
  .grid-x > .medium-9 {
    width: 75%;
  }
  .grid-x > .medium-10 {
    width: 83.33333%;
  }
  .grid-x > .medium-11 {
    width: 91.66667%;
  }
  .grid-x > .medium-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 48em) {
  .grid-x > .xmedium-auto {
    flex: 1 1 0px;
    width: auto;
  }
  .grid-x > .xmedium-shrink, .grid-x > .xmedium-1, .grid-x > .xmedium-2, .grid-x > .xmedium-3, .grid-x > .xmedium-4, .grid-x > .xmedium-5, .grid-x > .xmedium-6, .grid-x > .xmedium-7, .grid-x > .xmedium-8, .grid-x > .xmedium-9, .grid-x > .xmedium-10, .grid-x > .xmedium-11, .grid-x > .xmedium-12 {
    flex: 0 0 auto;
  }
  .grid-x > .xmedium-shrink {
    width: auto;
  }
  .grid-x > .xmedium-1 {
    width: 8.33333%;
  }
  .grid-x > .xmedium-2 {
    width: 16.66667%;
  }
  .grid-x > .xmedium-3 {
    width: 25%;
  }
  .grid-x > .xmedium-4 {
    width: 33.33333%;
  }
  .grid-x > .xmedium-5 {
    width: 41.66667%;
  }
  .grid-x > .xmedium-6 {
    width: 50%;
  }
  .grid-x > .xmedium-7 {
    width: 58.33333%;
  }
  .grid-x > .xmedium-8 {
    width: 66.66667%;
  }
  .grid-x > .xmedium-9 {
    width: 75%;
  }
  .grid-x > .xmedium-10 {
    width: 83.33333%;
  }
  .grid-x > .xmedium-11 {
    width: 91.66667%;
  }
  .grid-x > .xmedium-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 64em) {
  .grid-x > .large-auto {
    flex: 1 1 0px;
    width: auto;
  }
  .grid-x > .large-shrink, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {
    flex: 0 0 auto;
  }
  .grid-x > .large-shrink {
    width: auto;
  }
  .grid-x > .large-1 {
    width: 8.33333%;
  }
  .grid-x > .large-2 {
    width: 16.66667%;
  }
  .grid-x > .large-3 {
    width: 25%;
  }
  .grid-x > .large-4 {
    width: 33.33333%;
  }
  .grid-x > .large-5 {
    width: 41.66667%;
  }
  .grid-x > .large-6 {
    width: 50%;
  }
  .grid-x > .large-7 {
    width: 58.33333%;
  }
  .grid-x > .large-8 {
    width: 66.66667%;
  }
  .grid-x > .large-9 {
    width: 75%;
  }
  .grid-x > .large-10 {
    width: 83.33333%;
  }
  .grid-x > .large-11 {
    width: 91.66667%;
  }
  .grid-x > .large-12 {
    width: 100%;
  }
}

@media screen and (min-width: 75em) {
  .grid-x > .xlarge-auto {
    flex: 1 1 0px;
    width: auto;
  }
  .grid-x > .xlarge-shrink, .grid-x > .xlarge-1, .grid-x > .xlarge-2, .grid-x > .xlarge-3, .grid-x > .xlarge-4, .grid-x > .xlarge-5, .grid-x > .xlarge-6, .grid-x > .xlarge-7, .grid-x > .xlarge-8, .grid-x > .xlarge-9, .grid-x > .xlarge-10, .grid-x > .xlarge-11, .grid-x > .xlarge-12 {
    flex: 0 0 auto;
  }
  .grid-x > .xlarge-shrink {
    width: auto;
  }
  .grid-x > .xlarge-1 {
    width: 8.33333%;
  }
  .grid-x > .xlarge-2 {
    width: 16.66667%;
  }
  .grid-x > .xlarge-3 {
    width: 25%;
  }
  .grid-x > .xlarge-4 {
    width: 33.33333%;
  }
  .grid-x > .xlarge-5 {
    width: 41.66667%;
  }
  .grid-x > .xlarge-6 {
    width: 50%;
  }
  .grid-x > .xlarge-7 {
    width: 58.33333%;
  }
  .grid-x > .xlarge-8 {
    width: 66.66667%;
  }
  .grid-x > .xlarge-9 {
    width: 75%;
  }
  .grid-x > .xlarge-10 {
    width: 83.33333%;
  }
  .grid-x > .xlarge-11 {
    width: 91.66667%;
  }
  .grid-x > .xlarge-12 {
    width: 100%;
  }
}

@media screen and (min-width: 90em) {
  .grid-x > .xxlarge-auto {
    flex: 1 1 0px;
    width: auto;
  }
  .grid-x > .xxlarge-shrink, .grid-x > .xxlarge-1, .grid-x > .xxlarge-2, .grid-x > .xxlarge-3, .grid-x > .xxlarge-4, .grid-x > .xxlarge-5, .grid-x > .xxlarge-6, .grid-x > .xxlarge-7, .grid-x > .xxlarge-8, .grid-x > .xxlarge-9, .grid-x > .xxlarge-10, .grid-x > .xxlarge-11, .grid-x > .xxlarge-12 {
    flex: 0 0 auto;
  }
  .grid-x > .xxlarge-shrink {
    width: auto;
  }
  .grid-x > .xxlarge-1 {
    width: 8.33333%;
  }
  .grid-x > .xxlarge-2 {
    width: 16.66667%;
  }
  .grid-x > .xxlarge-3 {
    width: 25%;
  }
  .grid-x > .xxlarge-4 {
    width: 33.33333%;
  }
  .grid-x > .xxlarge-5 {
    width: 41.66667%;
  }
  .grid-x > .xxlarge-6 {
    width: 50%;
  }
  .grid-x > .xxlarge-7 {
    width: 58.33333%;
  }
  .grid-x > .xxlarge-8 {
    width: 66.66667%;
  }
  .grid-x > .xxlarge-9 {
    width: 75%;
  }
  .grid-x > .xxlarge-10 {
    width: 83.33333%;
  }
  .grid-x > .xxlarge-11 {
    width: 91.66667%;
  }
  .grid-x > .xxlarge-12 {
    width: 100%;
  }
}

.grid-margin-x:not(.grid-x) > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x:not(.grid-x) > hr {
  width: auto;
}

.grid-margin-y:not(.grid-y) > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-y:not(.grid-y) > hr {
  height: auto;
}

.grid-margin-x {
  margin-left: -1.25rem;
  margin-right: -1.25rem;
}

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

.grid-margin-x > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x > hr {
  width: calc(100% - 2.5rem);
  margin-left: 1.25rem;
  margin-right: 1.25rem;
}

@media print, screen and (min-width: 40em) {
  .grid-margin-x > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x > hr {
    width: calc(100% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}

.grid-margin-x > .auto {
  width: auto;
}

.grid-margin-x > .shrink {
  width: auto;
}

.grid-margin-x > .small-1 {
  width: calc(8.33333% - 2.5rem);
}

.grid-margin-x > .small-2 {
  width: calc(16.66667% - 2.5rem);
}

.grid-margin-x > .small-3 {
  width: calc(25% - 2.5rem);
}

.grid-margin-x > .small-4 {
  width: calc(33.33333% - 2.5rem);
}

.grid-margin-x > .small-5 {
  width: calc(41.66667% - 2.5rem);
}

.grid-margin-x > .small-6 {
  width: calc(50% - 2.5rem);
}

.grid-margin-x > .small-7 {
  width: calc(58.33333% - 2.5rem);
}

.grid-margin-x > .small-8 {
  width: calc(66.66667% - 2.5rem);
}

.grid-margin-x > .small-9 {
  width: calc(75% - 2.5rem);
}

.grid-margin-x > .small-10 {
  width: calc(83.33333% - 2.5rem);
}

.grid-margin-x > .small-11 {
  width: calc(91.66667% - 2.5rem);
}

.grid-margin-x > .small-12 {
  width: calc(100% - 2.5rem);
}

@media print, screen and (min-width: 40em) {
  .grid-margin-x > .auto {
    width: auto;
  }
  .grid-margin-x > .shrink {
    width: auto;
  }
  .grid-margin-x > .small-1 {
    width: calc(8.33333% - 1.875rem);
  }
  .grid-margin-x > .small-2 {
    width: calc(16.66667% - 1.875rem);
  }
  .grid-margin-x > .small-3 {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x > .small-4 {
    width: calc(33.33333% - 1.875rem);
  }
  .grid-margin-x > .small-5 {
    width: calc(41.66667% - 1.875rem);
  }
  .grid-margin-x > .small-6 {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x > .small-7 {
    width: calc(58.33333% - 1.875rem);
  }
  .grid-margin-x > .small-8 {
    width: calc(66.66667% - 1.875rem);
  }
  .grid-margin-x > .small-9 {
    width: calc(75% - 1.875rem);
  }
  .grid-margin-x > .small-10 {
    width: calc(83.33333% - 1.875rem);
  }
  .grid-margin-x > .small-11 {
    width: calc(91.66667% - 1.875rem);
  }
  .grid-margin-x > .small-12 {
    width: calc(100% - 1.875rem);
  }
  .grid-margin-x > .medium-auto {
    width: auto;
  }
  .grid-margin-x > .medium-shrink {
    width: auto;
  }
  .grid-margin-x > .medium-1 {
    width: calc(8.33333% - 1.875rem);
  }
  .grid-margin-x > .medium-2 {
    width: calc(16.66667% - 1.875rem);
  }
  .grid-margin-x > .medium-3 {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x > .medium-4 {
    width: calc(33.33333% - 1.875rem);
  }
  .grid-margin-x > .medium-5 {
    width: calc(41.66667% - 1.875rem);
  }
  .grid-margin-x > .medium-6 {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x > .medium-7 {
    width: calc(58.33333% - 1.875rem);
  }
  .grid-margin-x > .medium-8 {
    width: calc(66.66667% - 1.875rem);
  }
  .grid-margin-x > .medium-9 {
    width: calc(75% - 1.875rem);
  }
  .grid-margin-x > .medium-10 {
    width: calc(83.33333% - 1.875rem);
  }
  .grid-margin-x > .medium-11 {
    width: calc(91.66667% - 1.875rem);
  }
  .grid-margin-x > .medium-12 {
    width: calc(100% - 1.875rem);
  }
}

@media print, screen and (min-width: 48em) {
  .grid-margin-x > .xmedium-auto {
    width: auto;
  }
  .grid-margin-x > .xmedium-shrink {
    width: auto;
  }
  .grid-margin-x > .xmedium-1 {
    width: calc(8.33333% - 1.875rem);
  }
  .grid-margin-x > .xmedium-2 {
    width: calc(16.66667% - 1.875rem);
  }
  .grid-margin-x > .xmedium-3 {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x > .xmedium-4 {
    width: calc(33.33333% - 1.875rem);
  }
  .grid-margin-x > .xmedium-5 {
    width: calc(41.66667% - 1.875rem);
  }
  .grid-margin-x > .xmedium-6 {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x > .xmedium-7 {
    width: calc(58.33333% - 1.875rem);
  }
  .grid-margin-x > .xmedium-8 {
    width: calc(66.66667% - 1.875rem);
  }
  .grid-margin-x > .xmedium-9 {
    width: calc(75% - 1.875rem);
  }
  .grid-margin-x > .xmedium-10 {
    width: calc(83.33333% - 1.875rem);
  }
  .grid-margin-x > .xmedium-11 {
    width: calc(91.66667% - 1.875rem);
  }
  .grid-margin-x > .xmedium-12 {
    width: calc(100% - 1.875rem);
  }
}

@media print, screen and (min-width: 64em) {
  .grid-margin-x > .large-auto {
    width: auto;
  }
  .grid-margin-x > .large-shrink {
    width: auto;
  }
  .grid-margin-x > .large-1 {
    width: calc(8.33333% - 1.875rem);
  }
  .grid-margin-x > .large-2 {
    width: calc(16.66667% - 1.875rem);
  }
  .grid-margin-x > .large-3 {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x > .large-4 {
    width: calc(33.33333% - 1.875rem);
  }
  .grid-margin-x > .large-5 {
    width: calc(41.66667% - 1.875rem);
  }
  .grid-margin-x > .large-6 {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x > .large-7 {
    width: calc(58.33333% - 1.875rem);
  }
  .grid-margin-x > .large-8 {
    width: calc(66.66667% - 1.875rem);
  }
  .grid-margin-x > .large-9 {
    width: calc(75% - 1.875rem);
  }
  .grid-margin-x > .large-10 {
    width: calc(83.33333% - 1.875rem);
  }
  .grid-margin-x > .large-11 {
    width: calc(91.66667% - 1.875rem);
  }
  .grid-margin-x > .large-12 {
    width: calc(100% - 1.875rem);
  }
}

@media screen and (min-width: 75em) {
  .grid-margin-x > .xlarge-auto {
    width: auto;
  }
  .grid-margin-x > .xlarge-shrink {
    width: auto;
  }
  .grid-margin-x > .xlarge-1 {
    width: calc(8.33333% - 1.875rem);
  }
  .grid-margin-x > .xlarge-2 {
    width: calc(16.66667% - 1.875rem);
  }
  .grid-margin-x > .xlarge-3 {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x > .xlarge-4 {
    width: calc(33.33333% - 1.875rem);
  }
  .grid-margin-x > .xlarge-5 {
    width: calc(41.66667% - 1.875rem);
  }
  .grid-margin-x > .xlarge-6 {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x > .xlarge-7 {
    width: calc(58.33333% - 1.875rem);
  }
  .grid-margin-x > .xlarge-8 {
    width: calc(66.66667% - 1.875rem);
  }
  .grid-margin-x > .xlarge-9 {
    width: calc(75% - 1.875rem);
  }
  .grid-margin-x > .xlarge-10 {
    width: calc(83.33333% - 1.875rem);
  }
  .grid-margin-x > .xlarge-11 {
    width: calc(91.66667% - 1.875rem);
  }
  .grid-margin-x > .xlarge-12 {
    width: calc(100% - 1.875rem);
  }
}

@media screen and (min-width: 90em) {
  .grid-margin-x > .xxlarge-auto {
    width: auto;
  }
  .grid-margin-x > .xxlarge-shrink {
    width: auto;
  }
  .grid-margin-x > .xxlarge-1 {
    width: calc(8.33333% - 1.875rem);
  }
  .grid-margin-x > .xxlarge-2 {
    width: calc(16.66667% - 1.875rem);
  }
  .grid-margin-x > .xxlarge-3 {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x > .xxlarge-4 {
    width: calc(33.33333% - 1.875rem);
  }
  .grid-margin-x > .xxlarge-5 {
    width: calc(41.66667% - 1.875rem);
  }
  .grid-margin-x > .xxlarge-6 {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x > .xxlarge-7 {
    width: calc(58.33333% - 1.875rem);
  }
  .grid-margin-x > .xxlarge-8 {
    width: calc(66.66667% - 1.875rem);
  }
  .grid-margin-x > .xxlarge-9 {
    width: calc(75% - 1.875rem);
  }
  .grid-margin-x > .xxlarge-10 {
    width: calc(83.33333% - 1.875rem);
  }
  .grid-margin-x > .xxlarge-11 {
    width: calc(91.66667% - 1.875rem);
  }
  .grid-margin-x > .xxlarge-12 {
    width: calc(100% - 1.875rem);
  }
}

.grid-padding-x .grid-padding-x {
  margin-right: -1.25rem;
  margin-left: -1.25rem;
}

@media print, screen and (min-width: 40em) {
  .grid-padding-x .grid-padding-x {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}

.grid-container:not(.full) > .grid-padding-x {
  margin-right: -1.25rem;
  margin-left: -1.25rem;
}

@media print, screen and (min-width: 40em) {
  .grid-container:not(.full) > .grid-padding-x {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}

.grid-padding-x > .cell, .info-accordion .accordion-item .accordion-content .grid-padding-x > hr {
  padding-right: 1.25rem;
  padding-left: 1.25rem;
}

@media print, screen and (min-width: 40em) {
  .grid-padding-x > .cell, .info-accordion .accordion-item .accordion-content .grid-padding-x > hr {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.small-up-1 > .cell, .info-accordion .accordion-item .accordion-content .small-up-1 > hr {
  width: 100%;
}

.small-up-2 > .cell, .info-accordion .accordion-item .accordion-content .small-up-2 > hr {
  width: 50%;
}

.small-up-3 > .cell, .info-accordion .accordion-item .accordion-content .small-up-3 > hr {
  width: 33.33333%;
}

.small-up-4 > .cell, .info-accordion .accordion-item .accordion-content .small-up-4 > hr {
  width: 25%;
}

.small-up-5 > .cell, .info-accordion .accordion-item .accordion-content .small-up-5 > hr {
  width: 20%;
}

.small-up-6 > .cell, .info-accordion .accordion-item .accordion-content .small-up-6 > hr {
  width: 16.66667%;
}

.small-up-7 > .cell, .info-accordion .accordion-item .accordion-content .small-up-7 > hr {
  width: 14.28571%;
}

.small-up-8 > .cell, .info-accordion .accordion-item .accordion-content .small-up-8 > hr {
  width: 12.5%;
}

@media print, screen and (min-width: 40em) {
  .medium-up-1 > .cell, .info-accordion .accordion-item .accordion-content .medium-up-1 > hr {
    width: 100%;
  }
  .medium-up-2 > .cell, .info-accordion .accordion-item .accordion-content .medium-up-2 > hr {
    width: 50%;
  }
  .medium-up-3 > .cell, .info-accordion .accordion-item .accordion-content .medium-up-3 > hr {
    width: 33.33333%;
  }
  .medium-up-4 > .cell, .info-accordion .accordion-item .accordion-content .medium-up-4 > hr {
    width: 25%;
  }
  .medium-up-5 > .cell, .info-accordion .accordion-item .accordion-content .medium-up-5 > hr {
    width: 20%;
  }
  .medium-up-6 > .cell, .info-accordion .accordion-item .accordion-content .medium-up-6 > hr {
    width: 16.66667%;
  }
  .medium-up-7 > .cell, .info-accordion .accordion-item .accordion-content .medium-up-7 > hr {
    width: 14.28571%;
  }
  .medium-up-8 > .cell, .info-accordion .accordion-item .accordion-content .medium-up-8 > hr {
    width: 12.5%;
  }
}

@media print, screen and (min-width: 48em) {
  .xmedium-up-1 > .cell, .info-accordion .accordion-item .accordion-content .xmedium-up-1 > hr {
    width: 100%;
  }
  .xmedium-up-2 > .cell, .info-accordion .accordion-item .accordion-content .xmedium-up-2 > hr {
    width: 50%;
  }
  .xmedium-up-3 > .cell, .info-accordion .accordion-item .accordion-content .xmedium-up-3 > hr {
    width: 33.33333%;
  }
  .xmedium-up-4 > .cell, .info-accordion .accordion-item .accordion-content .xmedium-up-4 > hr {
    width: 25%;
  }
  .xmedium-up-5 > .cell, .info-accordion .accordion-item .accordion-content .xmedium-up-5 > hr {
    width: 20%;
  }
  .xmedium-up-6 > .cell, .info-accordion .accordion-item .accordion-content .xmedium-up-6 > hr {
    width: 16.66667%;
  }
  .xmedium-up-7 > .cell, .info-accordion .accordion-item .accordion-content .xmedium-up-7 > hr {
    width: 14.28571%;
  }
  .xmedium-up-8 > .cell, .info-accordion .accordion-item .accordion-content .xmedium-up-8 > hr {
    width: 12.5%;
  }
}

@media print, screen and (min-width: 64em) {
  .large-up-1 > .cell, .info-accordion .accordion-item .accordion-content .large-up-1 > hr {
    width: 100%;
  }
  .large-up-2 > .cell, .info-accordion .accordion-item .accordion-content .large-up-2 > hr {
    width: 50%;
  }
  .large-up-3 > .cell, .info-accordion .accordion-item .accordion-content .large-up-3 > hr {
    width: 33.33333%;
  }
  .large-up-4 > .cell, .info-accordion .accordion-item .accordion-content .large-up-4 > hr {
    width: 25%;
  }
  .large-up-5 > .cell, .info-accordion .accordion-item .accordion-content .large-up-5 > hr {
    width: 20%;
  }
  .large-up-6 > .cell, .info-accordion .accordion-item .accordion-content .large-up-6 > hr {
    width: 16.66667%;
  }
  .large-up-7 > .cell, .info-accordion .accordion-item .accordion-content .large-up-7 > hr {
    width: 14.28571%;
  }
  .large-up-8 > .cell, .info-accordion .accordion-item .accordion-content .large-up-8 > hr {
    width: 12.5%;
  }
}

@media screen and (min-width: 75em) {
  .xlarge-up-1 > .cell, .info-accordion .accordion-item .accordion-content .xlarge-up-1 > hr {
    width: 100%;
  }
  .xlarge-up-2 > .cell, .info-accordion .accordion-item .accordion-content .xlarge-up-2 > hr {
    width: 50%;
  }
  .xlarge-up-3 > .cell, .info-accordion .accordion-item .accordion-content .xlarge-up-3 > hr {
    width: 33.33333%;
  }
  .xlarge-up-4 > .cell, .info-accordion .accordion-item .accordion-content .xlarge-up-4 > hr {
    width: 25%;
  }
  .xlarge-up-5 > .cell, .info-accordion .accordion-item .accordion-content .xlarge-up-5 > hr {
    width: 20%;
  }
  .xlarge-up-6 > .cell, .info-accordion .accordion-item .accordion-content .xlarge-up-6 > hr {
    width: 16.66667%;
  }
  .xlarge-up-7 > .cell, .info-accordion .accordion-item .accordion-content .xlarge-up-7 > hr {
    width: 14.28571%;
  }
  .xlarge-up-8 > .cell, .info-accordion .accordion-item .accordion-content .xlarge-up-8 > hr {
    width: 12.5%;
  }
}

@media screen and (min-width: 90em) {
  .xxlarge-up-1 > .cell, .info-accordion .accordion-item .accordion-content .xxlarge-up-1 > hr {
    width: 100%;
  }
  .xxlarge-up-2 > .cell, .info-accordion .accordion-item .accordion-content .xxlarge-up-2 > hr {
    width: 50%;
  }
  .xxlarge-up-3 > .cell, .info-accordion .accordion-item .accordion-content .xxlarge-up-3 > hr {
    width: 33.33333%;
  }
  .xxlarge-up-4 > .cell, .info-accordion .accordion-item .accordion-content .xxlarge-up-4 > hr {
    width: 25%;
  }
  .xxlarge-up-5 > .cell, .info-accordion .accordion-item .accordion-content .xxlarge-up-5 > hr {
    width: 20%;
  }
  .xxlarge-up-6 > .cell, .info-accordion .accordion-item .accordion-content .xxlarge-up-6 > hr {
    width: 16.66667%;
  }
  .xxlarge-up-7 > .cell, .info-accordion .accordion-item .accordion-content .xxlarge-up-7 > hr {
    width: 14.28571%;
  }
  .xxlarge-up-8 > .cell, .info-accordion .accordion-item .accordion-content .xxlarge-up-8 > hr {
    width: 12.5%;
  }
}

.grid-margin-x.small-up-1 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.small-up-1 > hr {
  width: calc(100% - 2.5rem);
}

.grid-margin-x.small-up-2 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.small-up-2 > hr {
  width: calc(50% - 2.5rem);
}

.grid-margin-x.small-up-3 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.small-up-3 > hr {
  width: calc(33.33333% - 2.5rem);
}

.grid-margin-x.small-up-4 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.small-up-4 > hr {
  width: calc(25% - 2.5rem);
}

.grid-margin-x.small-up-5 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.small-up-5 > hr {
  width: calc(20% - 2.5rem);
}

.grid-margin-x.small-up-6 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.small-up-6 > hr {
  width: calc(16.66667% - 2.5rem);
}

.grid-margin-x.small-up-7 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.small-up-7 > hr {
  width: calc(14.28571% - 2.5rem);
}

.grid-margin-x.small-up-8 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.small-up-8 > hr {
  width: calc(12.5% - 2.5rem);
}

@media print, screen and (min-width: 40em) {
  .grid-margin-x.small-up-1 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.small-up-1 > hr {
    width: calc(100% - 1.875rem);
  }
  .grid-margin-x.small-up-2 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.small-up-2 > hr {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x.small-up-3 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.small-up-3 > hr {
    width: calc(33.33333% - 1.875rem);
  }
  .grid-margin-x.small-up-4 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.small-up-4 > hr {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x.small-up-5 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.small-up-5 > hr {
    width: calc(20% - 1.875rem);
  }
  .grid-margin-x.small-up-6 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.small-up-6 > hr {
    width: calc(16.66667% - 1.875rem);
  }
  .grid-margin-x.small-up-7 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.small-up-7 > hr {
    width: calc(14.28571% - 1.875rem);
  }
  .grid-margin-x.small-up-8 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.small-up-8 > hr {
    width: calc(12.5% - 1.875rem);
  }
  .grid-margin-x.medium-up-1 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.medium-up-1 > hr {
    width: calc(100% - 1.875rem);
  }
  .grid-margin-x.medium-up-2 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.medium-up-2 > hr {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x.medium-up-3 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.medium-up-3 > hr {
    width: calc(33.33333% - 1.875rem);
  }
  .grid-margin-x.medium-up-4 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.medium-up-4 > hr {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x.medium-up-5 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.medium-up-5 > hr {
    width: calc(20% - 1.875rem);
  }
  .grid-margin-x.medium-up-6 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.medium-up-6 > hr {
    width: calc(16.66667% - 1.875rem);
  }
  .grid-margin-x.medium-up-7 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.medium-up-7 > hr {
    width: calc(14.28571% - 1.875rem);
  }
  .grid-margin-x.medium-up-8 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.medium-up-8 > hr {
    width: calc(12.5% - 1.875rem);
  }
}

@media print, screen and (min-width: 48em) {
  .grid-margin-x.xmedium-up-1 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xmedium-up-1 > hr {
    width: calc(100% - 1.875rem);
  }
  .grid-margin-x.xmedium-up-2 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xmedium-up-2 > hr {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x.xmedium-up-3 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xmedium-up-3 > hr {
    width: calc(33.33333% - 1.875rem);
  }
  .grid-margin-x.xmedium-up-4 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xmedium-up-4 > hr {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x.xmedium-up-5 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xmedium-up-5 > hr {
    width: calc(20% - 1.875rem);
  }
  .grid-margin-x.xmedium-up-6 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xmedium-up-6 > hr {
    width: calc(16.66667% - 1.875rem);
  }
  .grid-margin-x.xmedium-up-7 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xmedium-up-7 > hr {
    width: calc(14.28571% - 1.875rem);
  }
  .grid-margin-x.xmedium-up-8 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xmedium-up-8 > hr {
    width: calc(12.5% - 1.875rem);
  }
}

@media print, screen and (min-width: 64em) {
  .grid-margin-x.large-up-1 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.large-up-1 > hr {
    width: calc(100% - 1.875rem);
  }
  .grid-margin-x.large-up-2 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.large-up-2 > hr {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x.large-up-3 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.large-up-3 > hr {
    width: calc(33.33333% - 1.875rem);
  }
  .grid-margin-x.large-up-4 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.large-up-4 > hr {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x.large-up-5 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.large-up-5 > hr {
    width: calc(20% - 1.875rem);
  }
  .grid-margin-x.large-up-6 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.large-up-6 > hr {
    width: calc(16.66667% - 1.875rem);
  }
  .grid-margin-x.large-up-7 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.large-up-7 > hr {
    width: calc(14.28571% - 1.875rem);
  }
  .grid-margin-x.large-up-8 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.large-up-8 > hr {
    width: calc(12.5% - 1.875rem);
  }
}

@media screen and (min-width: 75em) {
  .grid-margin-x.xlarge-up-1 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xlarge-up-1 > hr {
    width: calc(100% - 1.875rem);
  }
  .grid-margin-x.xlarge-up-2 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xlarge-up-2 > hr {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x.xlarge-up-3 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xlarge-up-3 > hr {
    width: calc(33.33333% - 1.875rem);
  }
  .grid-margin-x.xlarge-up-4 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xlarge-up-4 > hr {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x.xlarge-up-5 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xlarge-up-5 > hr {
    width: calc(20% - 1.875rem);
  }
  .grid-margin-x.xlarge-up-6 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xlarge-up-6 > hr {
    width: calc(16.66667% - 1.875rem);
  }
  .grid-margin-x.xlarge-up-7 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xlarge-up-7 > hr {
    width: calc(14.28571% - 1.875rem);
  }
  .grid-margin-x.xlarge-up-8 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xlarge-up-8 > hr {
    width: calc(12.5% - 1.875rem);
  }
}

@media screen and (min-width: 90em) {
  .grid-margin-x.xxlarge-up-1 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xxlarge-up-1 > hr {
    width: calc(100% - 1.875rem);
  }
  .grid-margin-x.xxlarge-up-2 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xxlarge-up-2 > hr {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x.xxlarge-up-3 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xxlarge-up-3 > hr {
    width: calc(33.33333% - 1.875rem);
  }
  .grid-margin-x.xxlarge-up-4 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xxlarge-up-4 > hr {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x.xxlarge-up-5 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xxlarge-up-5 > hr {
    width: calc(20% - 1.875rem);
  }
  .grid-margin-x.xxlarge-up-6 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xxlarge-up-6 > hr {
    width: calc(16.66667% - 1.875rem);
  }
  .grid-margin-x.xxlarge-up-7 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xxlarge-up-7 > hr {
    width: calc(14.28571% - 1.875rem);
  }
  .grid-margin-x.xxlarge-up-8 > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-x.xxlarge-up-8 > hr {
    width: calc(12.5% - 1.875rem);
  }
}

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

.small-margin-collapse > .cell, .info-accordion .accordion-item .accordion-content .small-margin-collapse > hr {
  margin-right: 0;
  margin-left: 0;
}

.small-margin-collapse > .small-1 {
  width: 8.33333%;
}

.small-margin-collapse > .small-2 {
  width: 16.66667%;
}

.small-margin-collapse > .small-3 {
  width: 25%;
}

.small-margin-collapse > .small-4 {
  width: 33.33333%;
}

.small-margin-collapse > .small-5 {
  width: 41.66667%;
}

.small-margin-collapse > .small-6 {
  width: 50%;
}

.small-margin-collapse > .small-7 {
  width: 58.33333%;
}

.small-margin-collapse > .small-8 {
  width: 66.66667%;
}

.small-margin-collapse > .small-9 {
  width: 75%;
}

.small-margin-collapse > .small-10 {
  width: 83.33333%;
}

.small-margin-collapse > .small-11 {
  width: 91.66667%;
}

.small-margin-collapse > .small-12 {
  width: 100%;
}

@media print, screen and (min-width: 40em) {
  .small-margin-collapse > .medium-1 {
    width: 8.33333%;
  }
  .small-margin-collapse > .medium-2 {
    width: 16.66667%;
  }
  .small-margin-collapse > .medium-3 {
    width: 25%;
  }
  .small-margin-collapse > .medium-4 {
    width: 33.33333%;
  }
  .small-margin-collapse > .medium-5 {
    width: 41.66667%;
  }
  .small-margin-collapse > .medium-6 {
    width: 50%;
  }
  .small-margin-collapse > .medium-7 {
    width: 58.33333%;
  }
  .small-margin-collapse > .medium-8 {
    width: 66.66667%;
  }
  .small-margin-collapse > .medium-9 {
    width: 75%;
  }
  .small-margin-collapse > .medium-10 {
    width: 83.33333%;
  }
  .small-margin-collapse > .medium-11 {
    width: 91.66667%;
  }
  .small-margin-collapse > .medium-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 48em) {
  .small-margin-collapse > .xmedium-1 {
    width: 8.33333%;
  }
  .small-margin-collapse > .xmedium-2 {
    width: 16.66667%;
  }
  .small-margin-collapse > .xmedium-3 {
    width: 25%;
  }
  .small-margin-collapse > .xmedium-4 {
    width: 33.33333%;
  }
  .small-margin-collapse > .xmedium-5 {
    width: 41.66667%;
  }
  .small-margin-collapse > .xmedium-6 {
    width: 50%;
  }
  .small-margin-collapse > .xmedium-7 {
    width: 58.33333%;
  }
  .small-margin-collapse > .xmedium-8 {
    width: 66.66667%;
  }
  .small-margin-collapse > .xmedium-9 {
    width: 75%;
  }
  .small-margin-collapse > .xmedium-10 {
    width: 83.33333%;
  }
  .small-margin-collapse > .xmedium-11 {
    width: 91.66667%;
  }
  .small-margin-collapse > .xmedium-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 64em) {
  .small-margin-collapse > .large-1 {
    width: 8.33333%;
  }
  .small-margin-collapse > .large-2 {
    width: 16.66667%;
  }
  .small-margin-collapse > .large-3 {
    width: 25%;
  }
  .small-margin-collapse > .large-4 {
    width: 33.33333%;
  }
  .small-margin-collapse > .large-5 {
    width: 41.66667%;
  }
  .small-margin-collapse > .large-6 {
    width: 50%;
  }
  .small-margin-collapse > .large-7 {
    width: 58.33333%;
  }
  .small-margin-collapse > .large-8 {
    width: 66.66667%;
  }
  .small-margin-collapse > .large-9 {
    width: 75%;
  }
  .small-margin-collapse > .large-10 {
    width: 83.33333%;
  }
  .small-margin-collapse > .large-11 {
    width: 91.66667%;
  }
  .small-margin-collapse > .large-12 {
    width: 100%;
  }
}

@media screen and (min-width: 75em) {
  .small-margin-collapse > .xlarge-1 {
    width: 8.33333%;
  }
  .small-margin-collapse > .xlarge-2 {
    width: 16.66667%;
  }
  .small-margin-collapse > .xlarge-3 {
    width: 25%;
  }
  .small-margin-collapse > .xlarge-4 {
    width: 33.33333%;
  }
  .small-margin-collapse > .xlarge-5 {
    width: 41.66667%;
  }
  .small-margin-collapse > .xlarge-6 {
    width: 50%;
  }
  .small-margin-collapse > .xlarge-7 {
    width: 58.33333%;
  }
  .small-margin-collapse > .xlarge-8 {
    width: 66.66667%;
  }
  .small-margin-collapse > .xlarge-9 {
    width: 75%;
  }
  .small-margin-collapse > .xlarge-10 {
    width: 83.33333%;
  }
  .small-margin-collapse > .xlarge-11 {
    width: 91.66667%;
  }
  .small-margin-collapse > .xlarge-12 {
    width: 100%;
  }
}

@media screen and (min-width: 90em) {
  .small-margin-collapse > .xxlarge-1 {
    width: 8.33333%;
  }
  .small-margin-collapse > .xxlarge-2 {
    width: 16.66667%;
  }
  .small-margin-collapse > .xxlarge-3 {
    width: 25%;
  }
  .small-margin-collapse > .xxlarge-4 {
    width: 33.33333%;
  }
  .small-margin-collapse > .xxlarge-5 {
    width: 41.66667%;
  }
  .small-margin-collapse > .xxlarge-6 {
    width: 50%;
  }
  .small-margin-collapse > .xxlarge-7 {
    width: 58.33333%;
  }
  .small-margin-collapse > .xxlarge-8 {
    width: 66.66667%;
  }
  .small-margin-collapse > .xxlarge-9 {
    width: 75%;
  }
  .small-margin-collapse > .xxlarge-10 {
    width: 83.33333%;
  }
  .small-margin-collapse > .xxlarge-11 {
    width: 91.66667%;
  }
  .small-margin-collapse > .xxlarge-12 {
    width: 100%;
  }
}

.small-padding-collapse {
  margin-right: 0;
  margin-left: 0;
}

.small-padding-collapse > .cell, .info-accordion .accordion-item .accordion-content .small-padding-collapse > hr {
  padding-right: 0;
  padding-left: 0;
}

@media print, screen and (min-width: 40em) {
  .medium-margin-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .medium-margin-collapse > .cell, .info-accordion .accordion-item .accordion-content .medium-margin-collapse > hr {
    margin-right: 0;
    margin-left: 0;
  }
}

@media print, screen and (min-width: 40em) {
  .medium-margin-collapse > .small-1 {
    width: 8.33333%;
  }
  .medium-margin-collapse > .small-2 {
    width: 16.66667%;
  }
  .medium-margin-collapse > .small-3 {
    width: 25%;
  }
  .medium-margin-collapse > .small-4 {
    width: 33.33333%;
  }
  .medium-margin-collapse > .small-5 {
    width: 41.66667%;
  }
  .medium-margin-collapse > .small-6 {
    width: 50%;
  }
  .medium-margin-collapse > .small-7 {
    width: 58.33333%;
  }
  .medium-margin-collapse > .small-8 {
    width: 66.66667%;
  }
  .medium-margin-collapse > .small-9 {
    width: 75%;
  }
  .medium-margin-collapse > .small-10 {
    width: 83.33333%;
  }
  .medium-margin-collapse > .small-11 {
    width: 91.66667%;
  }
  .medium-margin-collapse > .small-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 40em) {
  .medium-margin-collapse > .medium-1 {
    width: 8.33333%;
  }
  .medium-margin-collapse > .medium-2 {
    width: 16.66667%;
  }
  .medium-margin-collapse > .medium-3 {
    width: 25%;
  }
  .medium-margin-collapse > .medium-4 {
    width: 33.33333%;
  }
  .medium-margin-collapse > .medium-5 {
    width: 41.66667%;
  }
  .medium-margin-collapse > .medium-6 {
    width: 50%;
  }
  .medium-margin-collapse > .medium-7 {
    width: 58.33333%;
  }
  .medium-margin-collapse > .medium-8 {
    width: 66.66667%;
  }
  .medium-margin-collapse > .medium-9 {
    width: 75%;
  }
  .medium-margin-collapse > .medium-10 {
    width: 83.33333%;
  }
  .medium-margin-collapse > .medium-11 {
    width: 91.66667%;
  }
  .medium-margin-collapse > .medium-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 48em) {
  .medium-margin-collapse > .xmedium-1 {
    width: 8.33333%;
  }
  .medium-margin-collapse > .xmedium-2 {
    width: 16.66667%;
  }
  .medium-margin-collapse > .xmedium-3 {
    width: 25%;
  }
  .medium-margin-collapse > .xmedium-4 {
    width: 33.33333%;
  }
  .medium-margin-collapse > .xmedium-5 {
    width: 41.66667%;
  }
  .medium-margin-collapse > .xmedium-6 {
    width: 50%;
  }
  .medium-margin-collapse > .xmedium-7 {
    width: 58.33333%;
  }
  .medium-margin-collapse > .xmedium-8 {
    width: 66.66667%;
  }
  .medium-margin-collapse > .xmedium-9 {
    width: 75%;
  }
  .medium-margin-collapse > .xmedium-10 {
    width: 83.33333%;
  }
  .medium-margin-collapse > .xmedium-11 {
    width: 91.66667%;
  }
  .medium-margin-collapse > .xmedium-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 64em) {
  .medium-margin-collapse > .large-1 {
    width: 8.33333%;
  }
  .medium-margin-collapse > .large-2 {
    width: 16.66667%;
  }
  .medium-margin-collapse > .large-3 {
    width: 25%;
  }
  .medium-margin-collapse > .large-4 {
    width: 33.33333%;
  }
  .medium-margin-collapse > .large-5 {
    width: 41.66667%;
  }
  .medium-margin-collapse > .large-6 {
    width: 50%;
  }
  .medium-margin-collapse > .large-7 {
    width: 58.33333%;
  }
  .medium-margin-collapse > .large-8 {
    width: 66.66667%;
  }
  .medium-margin-collapse > .large-9 {
    width: 75%;
  }
  .medium-margin-collapse > .large-10 {
    width: 83.33333%;
  }
  .medium-margin-collapse > .large-11 {
    width: 91.66667%;
  }
  .medium-margin-collapse > .large-12 {
    width: 100%;
  }
}

@media screen and (min-width: 75em) {
  .medium-margin-collapse > .xlarge-1 {
    width: 8.33333%;
  }
  .medium-margin-collapse > .xlarge-2 {
    width: 16.66667%;
  }
  .medium-margin-collapse > .xlarge-3 {
    width: 25%;
  }
  .medium-margin-collapse > .xlarge-4 {
    width: 33.33333%;
  }
  .medium-margin-collapse > .xlarge-5 {
    width: 41.66667%;
  }
  .medium-margin-collapse > .xlarge-6 {
    width: 50%;
  }
  .medium-margin-collapse > .xlarge-7 {
    width: 58.33333%;
  }
  .medium-margin-collapse > .xlarge-8 {
    width: 66.66667%;
  }
  .medium-margin-collapse > .xlarge-9 {
    width: 75%;
  }
  .medium-margin-collapse > .xlarge-10 {
    width: 83.33333%;
  }
  .medium-margin-collapse > .xlarge-11 {
    width: 91.66667%;
  }
  .medium-margin-collapse > .xlarge-12 {
    width: 100%;
  }
}

@media screen and (min-width: 90em) {
  .medium-margin-collapse > .xxlarge-1 {
    width: 8.33333%;
  }
  .medium-margin-collapse > .xxlarge-2 {
    width: 16.66667%;
  }
  .medium-margin-collapse > .xxlarge-3 {
    width: 25%;
  }
  .medium-margin-collapse > .xxlarge-4 {
    width: 33.33333%;
  }
  .medium-margin-collapse > .xxlarge-5 {
    width: 41.66667%;
  }
  .medium-margin-collapse > .xxlarge-6 {
    width: 50%;
  }
  .medium-margin-collapse > .xxlarge-7 {
    width: 58.33333%;
  }
  .medium-margin-collapse > .xxlarge-8 {
    width: 66.66667%;
  }
  .medium-margin-collapse > .xxlarge-9 {
    width: 75%;
  }
  .medium-margin-collapse > .xxlarge-10 {
    width: 83.33333%;
  }
  .medium-margin-collapse > .xxlarge-11 {
    width: 91.66667%;
  }
  .medium-margin-collapse > .xxlarge-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 40em) {
  .medium-padding-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .medium-padding-collapse > .cell, .info-accordion .accordion-item .accordion-content .medium-padding-collapse > hr {
    padding-right: 0;
    padding-left: 0;
  }
}

@media print, screen and (min-width: 48em) {
  .xmedium-margin-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .xmedium-margin-collapse > .cell, .info-accordion .accordion-item .accordion-content .xmedium-margin-collapse > hr {
    margin-right: 0;
    margin-left: 0;
  }
}

@media print, screen and (min-width: 48em) {
  .xmedium-margin-collapse > .small-1 {
    width: 8.33333%;
  }
  .xmedium-margin-collapse > .small-2 {
    width: 16.66667%;
  }
  .xmedium-margin-collapse > .small-3 {
    width: 25%;
  }
  .xmedium-margin-collapse > .small-4 {
    width: 33.33333%;
  }
  .xmedium-margin-collapse > .small-5 {
    width: 41.66667%;
  }
  .xmedium-margin-collapse > .small-6 {
    width: 50%;
  }
  .xmedium-margin-collapse > .small-7 {
    width: 58.33333%;
  }
  .xmedium-margin-collapse > .small-8 {
    width: 66.66667%;
  }
  .xmedium-margin-collapse > .small-9 {
    width: 75%;
  }
  .xmedium-margin-collapse > .small-10 {
    width: 83.33333%;
  }
  .xmedium-margin-collapse > .small-11 {
    width: 91.66667%;
  }
  .xmedium-margin-collapse > .small-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 48em) {
  .xmedium-margin-collapse > .medium-1 {
    width: 8.33333%;
  }
  .xmedium-margin-collapse > .medium-2 {
    width: 16.66667%;
  }
  .xmedium-margin-collapse > .medium-3 {
    width: 25%;
  }
  .xmedium-margin-collapse > .medium-4 {
    width: 33.33333%;
  }
  .xmedium-margin-collapse > .medium-5 {
    width: 41.66667%;
  }
  .xmedium-margin-collapse > .medium-6 {
    width: 50%;
  }
  .xmedium-margin-collapse > .medium-7 {
    width: 58.33333%;
  }
  .xmedium-margin-collapse > .medium-8 {
    width: 66.66667%;
  }
  .xmedium-margin-collapse > .medium-9 {
    width: 75%;
  }
  .xmedium-margin-collapse > .medium-10 {
    width: 83.33333%;
  }
  .xmedium-margin-collapse > .medium-11 {
    width: 91.66667%;
  }
  .xmedium-margin-collapse > .medium-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 48em) {
  .xmedium-margin-collapse > .xmedium-1 {
    width: 8.33333%;
  }
  .xmedium-margin-collapse > .xmedium-2 {
    width: 16.66667%;
  }
  .xmedium-margin-collapse > .xmedium-3 {
    width: 25%;
  }
  .xmedium-margin-collapse > .xmedium-4 {
    width: 33.33333%;
  }
  .xmedium-margin-collapse > .xmedium-5 {
    width: 41.66667%;
  }
  .xmedium-margin-collapse > .xmedium-6 {
    width: 50%;
  }
  .xmedium-margin-collapse > .xmedium-7 {
    width: 58.33333%;
  }
  .xmedium-margin-collapse > .xmedium-8 {
    width: 66.66667%;
  }
  .xmedium-margin-collapse > .xmedium-9 {
    width: 75%;
  }
  .xmedium-margin-collapse > .xmedium-10 {
    width: 83.33333%;
  }
  .xmedium-margin-collapse > .xmedium-11 {
    width: 91.66667%;
  }
  .xmedium-margin-collapse > .xmedium-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 64em) {
  .xmedium-margin-collapse > .large-1 {
    width: 8.33333%;
  }
  .xmedium-margin-collapse > .large-2 {
    width: 16.66667%;
  }
  .xmedium-margin-collapse > .large-3 {
    width: 25%;
  }
  .xmedium-margin-collapse > .large-4 {
    width: 33.33333%;
  }
  .xmedium-margin-collapse > .large-5 {
    width: 41.66667%;
  }
  .xmedium-margin-collapse > .large-6 {
    width: 50%;
  }
  .xmedium-margin-collapse > .large-7 {
    width: 58.33333%;
  }
  .xmedium-margin-collapse > .large-8 {
    width: 66.66667%;
  }
  .xmedium-margin-collapse > .large-9 {
    width: 75%;
  }
  .xmedium-margin-collapse > .large-10 {
    width: 83.33333%;
  }
  .xmedium-margin-collapse > .large-11 {
    width: 91.66667%;
  }
  .xmedium-margin-collapse > .large-12 {
    width: 100%;
  }
}

@media screen and (min-width: 75em) {
  .xmedium-margin-collapse > .xlarge-1 {
    width: 8.33333%;
  }
  .xmedium-margin-collapse > .xlarge-2 {
    width: 16.66667%;
  }
  .xmedium-margin-collapse > .xlarge-3 {
    width: 25%;
  }
  .xmedium-margin-collapse > .xlarge-4 {
    width: 33.33333%;
  }
  .xmedium-margin-collapse > .xlarge-5 {
    width: 41.66667%;
  }
  .xmedium-margin-collapse > .xlarge-6 {
    width: 50%;
  }
  .xmedium-margin-collapse > .xlarge-7 {
    width: 58.33333%;
  }
  .xmedium-margin-collapse > .xlarge-8 {
    width: 66.66667%;
  }
  .xmedium-margin-collapse > .xlarge-9 {
    width: 75%;
  }
  .xmedium-margin-collapse > .xlarge-10 {
    width: 83.33333%;
  }
  .xmedium-margin-collapse > .xlarge-11 {
    width: 91.66667%;
  }
  .xmedium-margin-collapse > .xlarge-12 {
    width: 100%;
  }
}

@media screen and (min-width: 90em) {
  .xmedium-margin-collapse > .xxlarge-1 {
    width: 8.33333%;
  }
  .xmedium-margin-collapse > .xxlarge-2 {
    width: 16.66667%;
  }
  .xmedium-margin-collapse > .xxlarge-3 {
    width: 25%;
  }
  .xmedium-margin-collapse > .xxlarge-4 {
    width: 33.33333%;
  }
  .xmedium-margin-collapse > .xxlarge-5 {
    width: 41.66667%;
  }
  .xmedium-margin-collapse > .xxlarge-6 {
    width: 50%;
  }
  .xmedium-margin-collapse > .xxlarge-7 {
    width: 58.33333%;
  }
  .xmedium-margin-collapse > .xxlarge-8 {
    width: 66.66667%;
  }
  .xmedium-margin-collapse > .xxlarge-9 {
    width: 75%;
  }
  .xmedium-margin-collapse > .xxlarge-10 {
    width: 83.33333%;
  }
  .xmedium-margin-collapse > .xxlarge-11 {
    width: 91.66667%;
  }
  .xmedium-margin-collapse > .xxlarge-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 48em) {
  .xmedium-padding-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .xmedium-padding-collapse > .cell, .info-accordion .accordion-item .accordion-content .xmedium-padding-collapse > hr {
    padding-right: 0;
    padding-left: 0;
  }
}

@media print, screen and (min-width: 64em) {
  .large-margin-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .large-margin-collapse > .cell, .info-accordion .accordion-item .accordion-content .large-margin-collapse > hr {
    margin-right: 0;
    margin-left: 0;
  }
}

@media print, screen and (min-width: 64em) {
  .large-margin-collapse > .small-1 {
    width: 8.33333%;
  }
  .large-margin-collapse > .small-2 {
    width: 16.66667%;
  }
  .large-margin-collapse > .small-3 {
    width: 25%;
  }
  .large-margin-collapse > .small-4 {
    width: 33.33333%;
  }
  .large-margin-collapse > .small-5 {
    width: 41.66667%;
  }
  .large-margin-collapse > .small-6 {
    width: 50%;
  }
  .large-margin-collapse > .small-7 {
    width: 58.33333%;
  }
  .large-margin-collapse > .small-8 {
    width: 66.66667%;
  }
  .large-margin-collapse > .small-9 {
    width: 75%;
  }
  .large-margin-collapse > .small-10 {
    width: 83.33333%;
  }
  .large-margin-collapse > .small-11 {
    width: 91.66667%;
  }
  .large-margin-collapse > .small-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 64em) {
  .large-margin-collapse > .medium-1 {
    width: 8.33333%;
  }
  .large-margin-collapse > .medium-2 {
    width: 16.66667%;
  }
  .large-margin-collapse > .medium-3 {
    width: 25%;
  }
  .large-margin-collapse > .medium-4 {
    width: 33.33333%;
  }
  .large-margin-collapse > .medium-5 {
    width: 41.66667%;
  }
  .large-margin-collapse > .medium-6 {
    width: 50%;
  }
  .large-margin-collapse > .medium-7 {
    width: 58.33333%;
  }
  .large-margin-collapse > .medium-8 {
    width: 66.66667%;
  }
  .large-margin-collapse > .medium-9 {
    width: 75%;
  }
  .large-margin-collapse > .medium-10 {
    width: 83.33333%;
  }
  .large-margin-collapse > .medium-11 {
    width: 91.66667%;
  }
  .large-margin-collapse > .medium-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 64em) {
  .large-margin-collapse > .xmedium-1 {
    width: 8.33333%;
  }
  .large-margin-collapse > .xmedium-2 {
    width: 16.66667%;
  }
  .large-margin-collapse > .xmedium-3 {
    width: 25%;
  }
  .large-margin-collapse > .xmedium-4 {
    width: 33.33333%;
  }
  .large-margin-collapse > .xmedium-5 {
    width: 41.66667%;
  }
  .large-margin-collapse > .xmedium-6 {
    width: 50%;
  }
  .large-margin-collapse > .xmedium-7 {
    width: 58.33333%;
  }
  .large-margin-collapse > .xmedium-8 {
    width: 66.66667%;
  }
  .large-margin-collapse > .xmedium-9 {
    width: 75%;
  }
  .large-margin-collapse > .xmedium-10 {
    width: 83.33333%;
  }
  .large-margin-collapse > .xmedium-11 {
    width: 91.66667%;
  }
  .large-margin-collapse > .xmedium-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 64em) {
  .large-margin-collapse > .large-1 {
    width: 8.33333%;
  }
  .large-margin-collapse > .large-2 {
    width: 16.66667%;
  }
  .large-margin-collapse > .large-3 {
    width: 25%;
  }
  .large-margin-collapse > .large-4 {
    width: 33.33333%;
  }
  .large-margin-collapse > .large-5 {
    width: 41.66667%;
  }
  .large-margin-collapse > .large-6 {
    width: 50%;
  }
  .large-margin-collapse > .large-7 {
    width: 58.33333%;
  }
  .large-margin-collapse > .large-8 {
    width: 66.66667%;
  }
  .large-margin-collapse > .large-9 {
    width: 75%;
  }
  .large-margin-collapse > .large-10 {
    width: 83.33333%;
  }
  .large-margin-collapse > .large-11 {
    width: 91.66667%;
  }
  .large-margin-collapse > .large-12 {
    width: 100%;
  }
}

@media screen and (min-width: 75em) {
  .large-margin-collapse > .xlarge-1 {
    width: 8.33333%;
  }
  .large-margin-collapse > .xlarge-2 {
    width: 16.66667%;
  }
  .large-margin-collapse > .xlarge-3 {
    width: 25%;
  }
  .large-margin-collapse > .xlarge-4 {
    width: 33.33333%;
  }
  .large-margin-collapse > .xlarge-5 {
    width: 41.66667%;
  }
  .large-margin-collapse > .xlarge-6 {
    width: 50%;
  }
  .large-margin-collapse > .xlarge-7 {
    width: 58.33333%;
  }
  .large-margin-collapse > .xlarge-8 {
    width: 66.66667%;
  }
  .large-margin-collapse > .xlarge-9 {
    width: 75%;
  }
  .large-margin-collapse > .xlarge-10 {
    width: 83.33333%;
  }
  .large-margin-collapse > .xlarge-11 {
    width: 91.66667%;
  }
  .large-margin-collapse > .xlarge-12 {
    width: 100%;
  }
}

@media screen and (min-width: 90em) {
  .large-margin-collapse > .xxlarge-1 {
    width: 8.33333%;
  }
  .large-margin-collapse > .xxlarge-2 {
    width: 16.66667%;
  }
  .large-margin-collapse > .xxlarge-3 {
    width: 25%;
  }
  .large-margin-collapse > .xxlarge-4 {
    width: 33.33333%;
  }
  .large-margin-collapse > .xxlarge-5 {
    width: 41.66667%;
  }
  .large-margin-collapse > .xxlarge-6 {
    width: 50%;
  }
  .large-margin-collapse > .xxlarge-7 {
    width: 58.33333%;
  }
  .large-margin-collapse > .xxlarge-8 {
    width: 66.66667%;
  }
  .large-margin-collapse > .xxlarge-9 {
    width: 75%;
  }
  .large-margin-collapse > .xxlarge-10 {
    width: 83.33333%;
  }
  .large-margin-collapse > .xxlarge-11 {
    width: 91.66667%;
  }
  .large-margin-collapse > .xxlarge-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 64em) {
  .large-padding-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .large-padding-collapse > .cell, .info-accordion .accordion-item .accordion-content .large-padding-collapse > hr {
    padding-right: 0;
    padding-left: 0;
  }
}

@media screen and (min-width: 75em) {
  .xlarge-margin-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .xlarge-margin-collapse > .cell, .info-accordion .accordion-item .accordion-content .xlarge-margin-collapse > hr {
    margin-right: 0;
    margin-left: 0;
  }
}

@media screen and (min-width: 75em) {
  .xlarge-margin-collapse > .small-1 {
    width: 8.33333%;
  }
  .xlarge-margin-collapse > .small-2 {
    width: 16.66667%;
  }
  .xlarge-margin-collapse > .small-3 {
    width: 25%;
  }
  .xlarge-margin-collapse > .small-4 {
    width: 33.33333%;
  }
  .xlarge-margin-collapse > .small-5 {
    width: 41.66667%;
  }
  .xlarge-margin-collapse > .small-6 {
    width: 50%;
  }
  .xlarge-margin-collapse > .small-7 {
    width: 58.33333%;
  }
  .xlarge-margin-collapse > .small-8 {
    width: 66.66667%;
  }
  .xlarge-margin-collapse > .small-9 {
    width: 75%;
  }
  .xlarge-margin-collapse > .small-10 {
    width: 83.33333%;
  }
  .xlarge-margin-collapse > .small-11 {
    width: 91.66667%;
  }
  .xlarge-margin-collapse > .small-12 {
    width: 100%;
  }
}

@media screen and (min-width: 75em) {
  .xlarge-margin-collapse > .medium-1 {
    width: 8.33333%;
  }
  .xlarge-margin-collapse > .medium-2 {
    width: 16.66667%;
  }
  .xlarge-margin-collapse > .medium-3 {
    width: 25%;
  }
  .xlarge-margin-collapse > .medium-4 {
    width: 33.33333%;
  }
  .xlarge-margin-collapse > .medium-5 {
    width: 41.66667%;
  }
  .xlarge-margin-collapse > .medium-6 {
    width: 50%;
  }
  .xlarge-margin-collapse > .medium-7 {
    width: 58.33333%;
  }
  .xlarge-margin-collapse > .medium-8 {
    width: 66.66667%;
  }
  .xlarge-margin-collapse > .medium-9 {
    width: 75%;
  }
  .xlarge-margin-collapse > .medium-10 {
    width: 83.33333%;
  }
  .xlarge-margin-collapse > .medium-11 {
    width: 91.66667%;
  }
  .xlarge-margin-collapse > .medium-12 {
    width: 100%;
  }
}

@media screen and (min-width: 75em) {
  .xlarge-margin-collapse > .xmedium-1 {
    width: 8.33333%;
  }
  .xlarge-margin-collapse > .xmedium-2 {
    width: 16.66667%;
  }
  .xlarge-margin-collapse > .xmedium-3 {
    width: 25%;
  }
  .xlarge-margin-collapse > .xmedium-4 {
    width: 33.33333%;
  }
  .xlarge-margin-collapse > .xmedium-5 {
    width: 41.66667%;
  }
  .xlarge-margin-collapse > .xmedium-6 {
    width: 50%;
  }
  .xlarge-margin-collapse > .xmedium-7 {
    width: 58.33333%;
  }
  .xlarge-margin-collapse > .xmedium-8 {
    width: 66.66667%;
  }
  .xlarge-margin-collapse > .xmedium-9 {
    width: 75%;
  }
  .xlarge-margin-collapse > .xmedium-10 {
    width: 83.33333%;
  }
  .xlarge-margin-collapse > .xmedium-11 {
    width: 91.66667%;
  }
  .xlarge-margin-collapse > .xmedium-12 {
    width: 100%;
  }
}

@media screen and (min-width: 75em) {
  .xlarge-margin-collapse > .large-1 {
    width: 8.33333%;
  }
  .xlarge-margin-collapse > .large-2 {
    width: 16.66667%;
  }
  .xlarge-margin-collapse > .large-3 {
    width: 25%;
  }
  .xlarge-margin-collapse > .large-4 {
    width: 33.33333%;
  }
  .xlarge-margin-collapse > .large-5 {
    width: 41.66667%;
  }
  .xlarge-margin-collapse > .large-6 {
    width: 50%;
  }
  .xlarge-margin-collapse > .large-7 {
    width: 58.33333%;
  }
  .xlarge-margin-collapse > .large-8 {
    width: 66.66667%;
  }
  .xlarge-margin-collapse > .large-9 {
    width: 75%;
  }
  .xlarge-margin-collapse > .large-10 {
    width: 83.33333%;
  }
  .xlarge-margin-collapse > .large-11 {
    width: 91.66667%;
  }
  .xlarge-margin-collapse > .large-12 {
    width: 100%;
  }
}

@media screen and (min-width: 75em) {
  .xlarge-margin-collapse > .xlarge-1 {
    width: 8.33333%;
  }
  .xlarge-margin-collapse > .xlarge-2 {
    width: 16.66667%;
  }
  .xlarge-margin-collapse > .xlarge-3 {
    width: 25%;
  }
  .xlarge-margin-collapse > .xlarge-4 {
    width: 33.33333%;
  }
  .xlarge-margin-collapse > .xlarge-5 {
    width: 41.66667%;
  }
  .xlarge-margin-collapse > .xlarge-6 {
    width: 50%;
  }
  .xlarge-margin-collapse > .xlarge-7 {
    width: 58.33333%;
  }
  .xlarge-margin-collapse > .xlarge-8 {
    width: 66.66667%;
  }
  .xlarge-margin-collapse > .xlarge-9 {
    width: 75%;
  }
  .xlarge-margin-collapse > .xlarge-10 {
    width: 83.33333%;
  }
  .xlarge-margin-collapse > .xlarge-11 {
    width: 91.66667%;
  }
  .xlarge-margin-collapse > .xlarge-12 {
    width: 100%;
  }
}

@media screen and (min-width: 90em) {
  .xlarge-margin-collapse > .xxlarge-1 {
    width: 8.33333%;
  }
  .xlarge-margin-collapse > .xxlarge-2 {
    width: 16.66667%;
  }
  .xlarge-margin-collapse > .xxlarge-3 {
    width: 25%;
  }
  .xlarge-margin-collapse > .xxlarge-4 {
    width: 33.33333%;
  }
  .xlarge-margin-collapse > .xxlarge-5 {
    width: 41.66667%;
  }
  .xlarge-margin-collapse > .xxlarge-6 {
    width: 50%;
  }
  .xlarge-margin-collapse > .xxlarge-7 {
    width: 58.33333%;
  }
  .xlarge-margin-collapse > .xxlarge-8 {
    width: 66.66667%;
  }
  .xlarge-margin-collapse > .xxlarge-9 {
    width: 75%;
  }
  .xlarge-margin-collapse > .xxlarge-10 {
    width: 83.33333%;
  }
  .xlarge-margin-collapse > .xxlarge-11 {
    width: 91.66667%;
  }
  .xlarge-margin-collapse > .xxlarge-12 {
    width: 100%;
  }
}

@media screen and (min-width: 75em) {
  .xlarge-padding-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .xlarge-padding-collapse > .cell, .info-accordion .accordion-item .accordion-content .xlarge-padding-collapse > hr {
    padding-right: 0;
    padding-left: 0;
  }
}

@media screen and (min-width: 90em) {
  .xxlarge-margin-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .xxlarge-margin-collapse > .cell, .info-accordion .accordion-item .accordion-content .xxlarge-margin-collapse > hr {
    margin-right: 0;
    margin-left: 0;
  }
}

@media screen and (min-width: 90em) {
  .xxlarge-margin-collapse > .small-1 {
    width: 8.33333%;
  }
  .xxlarge-margin-collapse > .small-2 {
    width: 16.66667%;
  }
  .xxlarge-margin-collapse > .small-3 {
    width: 25%;
  }
  .xxlarge-margin-collapse > .small-4 {
    width: 33.33333%;
  }
  .xxlarge-margin-collapse > .small-5 {
    width: 41.66667%;
  }
  .xxlarge-margin-collapse > .small-6 {
    width: 50%;
  }
  .xxlarge-margin-collapse > .small-7 {
    width: 58.33333%;
  }
  .xxlarge-margin-collapse > .small-8 {
    width: 66.66667%;
  }
  .xxlarge-margin-collapse > .small-9 {
    width: 75%;
  }
  .xxlarge-margin-collapse > .small-10 {
    width: 83.33333%;
  }
  .xxlarge-margin-collapse > .small-11 {
    width: 91.66667%;
  }
  .xxlarge-margin-collapse > .small-12 {
    width: 100%;
  }
}

@media screen and (min-width: 90em) {
  .xxlarge-margin-collapse > .medium-1 {
    width: 8.33333%;
  }
  .xxlarge-margin-collapse > .medium-2 {
    width: 16.66667%;
  }
  .xxlarge-margin-collapse > .medium-3 {
    width: 25%;
  }
  .xxlarge-margin-collapse > .medium-4 {
    width: 33.33333%;
  }
  .xxlarge-margin-collapse > .medium-5 {
    width: 41.66667%;
  }
  .xxlarge-margin-collapse > .medium-6 {
    width: 50%;
  }
  .xxlarge-margin-collapse > .medium-7 {
    width: 58.33333%;
  }
  .xxlarge-margin-collapse > .medium-8 {
    width: 66.66667%;
  }
  .xxlarge-margin-collapse > .medium-9 {
    width: 75%;
  }
  .xxlarge-margin-collapse > .medium-10 {
    width: 83.33333%;
  }
  .xxlarge-margin-collapse > .medium-11 {
    width: 91.66667%;
  }
  .xxlarge-margin-collapse > .medium-12 {
    width: 100%;
  }
}

@media screen and (min-width: 90em) {
  .xxlarge-margin-collapse > .xmedium-1 {
    width: 8.33333%;
  }
  .xxlarge-margin-collapse > .xmedium-2 {
    width: 16.66667%;
  }
  .xxlarge-margin-collapse > .xmedium-3 {
    width: 25%;
  }
  .xxlarge-margin-collapse > .xmedium-4 {
    width: 33.33333%;
  }
  .xxlarge-margin-collapse > .xmedium-5 {
    width: 41.66667%;
  }
  .xxlarge-margin-collapse > .xmedium-6 {
    width: 50%;
  }
  .xxlarge-margin-collapse > .xmedium-7 {
    width: 58.33333%;
  }
  .xxlarge-margin-collapse > .xmedium-8 {
    width: 66.66667%;
  }
  .xxlarge-margin-collapse > .xmedium-9 {
    width: 75%;
  }
  .xxlarge-margin-collapse > .xmedium-10 {
    width: 83.33333%;
  }
  .xxlarge-margin-collapse > .xmedium-11 {
    width: 91.66667%;
  }
  .xxlarge-margin-collapse > .xmedium-12 {
    width: 100%;
  }
}

@media screen and (min-width: 90em) {
  .xxlarge-margin-collapse > .large-1 {
    width: 8.33333%;
  }
  .xxlarge-margin-collapse > .large-2 {
    width: 16.66667%;
  }
  .xxlarge-margin-collapse > .large-3 {
    width: 25%;
  }
  .xxlarge-margin-collapse > .large-4 {
    width: 33.33333%;
  }
  .xxlarge-margin-collapse > .large-5 {
    width: 41.66667%;
  }
  .xxlarge-margin-collapse > .large-6 {
    width: 50%;
  }
  .xxlarge-margin-collapse > .large-7 {
    width: 58.33333%;
  }
  .xxlarge-margin-collapse > .large-8 {
    width: 66.66667%;
  }
  .xxlarge-margin-collapse > .large-9 {
    width: 75%;
  }
  .xxlarge-margin-collapse > .large-10 {
    width: 83.33333%;
  }
  .xxlarge-margin-collapse > .large-11 {
    width: 91.66667%;
  }
  .xxlarge-margin-collapse > .large-12 {
    width: 100%;
  }
}

@media screen and (min-width: 90em) {
  .xxlarge-margin-collapse > .xlarge-1 {
    width: 8.33333%;
  }
  .xxlarge-margin-collapse > .xlarge-2 {
    width: 16.66667%;
  }
  .xxlarge-margin-collapse > .xlarge-3 {
    width: 25%;
  }
  .xxlarge-margin-collapse > .xlarge-4 {
    width: 33.33333%;
  }
  .xxlarge-margin-collapse > .xlarge-5 {
    width: 41.66667%;
  }
  .xxlarge-margin-collapse > .xlarge-6 {
    width: 50%;
  }
  .xxlarge-margin-collapse > .xlarge-7 {
    width: 58.33333%;
  }
  .xxlarge-margin-collapse > .xlarge-8 {
    width: 66.66667%;
  }
  .xxlarge-margin-collapse > .xlarge-9 {
    width: 75%;
  }
  .xxlarge-margin-collapse > .xlarge-10 {
    width: 83.33333%;
  }
  .xxlarge-margin-collapse > .xlarge-11 {
    width: 91.66667%;
  }
  .xxlarge-margin-collapse > .xlarge-12 {
    width: 100%;
  }
}

@media screen and (min-width: 90em) {
  .xxlarge-margin-collapse > .xxlarge-1 {
    width: 8.33333%;
  }
  .xxlarge-margin-collapse > .xxlarge-2 {
    width: 16.66667%;
  }
  .xxlarge-margin-collapse > .xxlarge-3 {
    width: 25%;
  }
  .xxlarge-margin-collapse > .xxlarge-4 {
    width: 33.33333%;
  }
  .xxlarge-margin-collapse > .xxlarge-5 {
    width: 41.66667%;
  }
  .xxlarge-margin-collapse > .xxlarge-6 {
    width: 50%;
  }
  .xxlarge-margin-collapse > .xxlarge-7 {
    width: 58.33333%;
  }
  .xxlarge-margin-collapse > .xxlarge-8 {
    width: 66.66667%;
  }
  .xxlarge-margin-collapse > .xxlarge-9 {
    width: 75%;
  }
  .xxlarge-margin-collapse > .xxlarge-10 {
    width: 83.33333%;
  }
  .xxlarge-margin-collapse > .xxlarge-11 {
    width: 91.66667%;
  }
  .xxlarge-margin-collapse > .xxlarge-12 {
    width: 100%;
  }
}

@media screen and (min-width: 90em) {
  .xxlarge-padding-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .xxlarge-padding-collapse > .cell, .info-accordion .accordion-item .accordion-content .xxlarge-padding-collapse > hr {
    padding-right: 0;
    padding-left: 0;
  }
}

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

.grid-margin-x > .small-offset-0 {
  margin-left: calc(0% + 1.25rem);
}

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

.grid-margin-x > .small-offset-1 {
  margin-left: calc(8.33333% + 1.25rem);
}

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

.grid-margin-x > .small-offset-2 {
  margin-left: calc(16.66667% + 1.25rem);
}

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

.grid-margin-x > .small-offset-3 {
  margin-left: calc(25% + 1.25rem);
}

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

.grid-margin-x > .small-offset-4 {
  margin-left: calc(33.33333% + 1.25rem);
}

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

.grid-margin-x > .small-offset-5 {
  margin-left: calc(41.66667% + 1.25rem);
}

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

.grid-margin-x > .small-offset-6 {
  margin-left: calc(50% + 1.25rem);
}

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

.grid-margin-x > .small-offset-7 {
  margin-left: calc(58.33333% + 1.25rem);
}

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

.grid-margin-x > .small-offset-8 {
  margin-left: calc(66.66667% + 1.25rem);
}

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

.grid-margin-x > .small-offset-9 {
  margin-left: calc(75% + 1.25rem);
}

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

.grid-margin-x > .small-offset-10 {
  margin-left: calc(83.33333% + 1.25rem);
}

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

.grid-margin-x > .small-offset-11 {
  margin-left: calc(91.66667% + 1.25rem);
}

@media print, screen and (min-width: 40em) {
  .medium-offset-0 {
    margin-left: 0%;
  }
  .grid-margin-x > .medium-offset-0 {
    margin-left: calc(0% + 0.9375rem);
  }
  .medium-offset-1 {
    margin-left: 8.33333%;
  }
  .grid-margin-x > .medium-offset-1 {
    margin-left: calc(8.33333% + 0.9375rem);
  }
  .medium-offset-2 {
    margin-left: 16.66667%;
  }
  .grid-margin-x > .medium-offset-2 {
    margin-left: calc(16.66667% + 0.9375rem);
  }
  .medium-offset-3 {
    margin-left: 25%;
  }
  .grid-margin-x > .medium-offset-3 {
    margin-left: calc(25% + 0.9375rem);
  }
  .medium-offset-4 {
    margin-left: 33.33333%;
  }
  .grid-margin-x > .medium-offset-4 {
    margin-left: calc(33.33333% + 0.9375rem);
  }
  .medium-offset-5 {
    margin-left: 41.66667%;
  }
  .grid-margin-x > .medium-offset-5 {
    margin-left: calc(41.66667% + 0.9375rem);
  }
  .medium-offset-6 {
    margin-left: 50%;
  }
  .grid-margin-x > .medium-offset-6 {
    margin-left: calc(50% + 0.9375rem);
  }
  .medium-offset-7 {
    margin-left: 58.33333%;
  }
  .grid-margin-x > .medium-offset-7 {
    margin-left: calc(58.33333% + 0.9375rem);
  }
  .medium-offset-8 {
    margin-left: 66.66667%;
  }
  .grid-margin-x > .medium-offset-8 {
    margin-left: calc(66.66667% + 0.9375rem);
  }
  .medium-offset-9 {
    margin-left: 75%;
  }
  .grid-margin-x > .medium-offset-9 {
    margin-left: calc(75% + 0.9375rem);
  }
  .medium-offset-10 {
    margin-left: 83.33333%;
  }
  .grid-margin-x > .medium-offset-10 {
    margin-left: calc(83.33333% + 0.9375rem);
  }
  .medium-offset-11 {
    margin-left: 91.66667%;
  }
  .grid-margin-x > .medium-offset-11 {
    margin-left: calc(91.66667% + 0.9375rem);
  }
}

@media print, screen and (min-width: 48em) {
  .xmedium-offset-0 {
    margin-left: 0%;
  }
  .grid-margin-x > .xmedium-offset-0 {
    margin-left: calc(0% + 0.9375rem);
  }
  .xmedium-offset-1 {
    margin-left: 8.33333%;
  }
  .grid-margin-x > .xmedium-offset-1 {
    margin-left: calc(8.33333% + 0.9375rem);
  }
  .xmedium-offset-2 {
    margin-left: 16.66667%;
  }
  .grid-margin-x > .xmedium-offset-2 {
    margin-left: calc(16.66667% + 0.9375rem);
  }
  .xmedium-offset-3 {
    margin-left: 25%;
  }
  .grid-margin-x > .xmedium-offset-3 {
    margin-left: calc(25% + 0.9375rem);
  }
  .xmedium-offset-4 {
    margin-left: 33.33333%;
  }
  .grid-margin-x > .xmedium-offset-4 {
    margin-left: calc(33.33333% + 0.9375rem);
  }
  .xmedium-offset-5 {
    margin-left: 41.66667%;
  }
  .grid-margin-x > .xmedium-offset-5 {
    margin-left: calc(41.66667% + 0.9375rem);
  }
  .xmedium-offset-6 {
    margin-left: 50%;
  }
  .grid-margin-x > .xmedium-offset-6 {
    margin-left: calc(50% + 0.9375rem);
  }
  .xmedium-offset-7 {
    margin-left: 58.33333%;
  }
  .grid-margin-x > .xmedium-offset-7 {
    margin-left: calc(58.33333% + 0.9375rem);
  }
  .xmedium-offset-8 {
    margin-left: 66.66667%;
  }
  .grid-margin-x > .xmedium-offset-8 {
    margin-left: calc(66.66667% + 0.9375rem);
  }
  .xmedium-offset-9 {
    margin-left: 75%;
  }
  .grid-margin-x > .xmedium-offset-9 {
    margin-left: calc(75% + 0.9375rem);
  }
  .xmedium-offset-10 {
    margin-left: 83.33333%;
  }
  .grid-margin-x > .xmedium-offset-10 {
    margin-left: calc(83.33333% + 0.9375rem);
  }
  .xmedium-offset-11 {
    margin-left: 91.66667%;
  }
  .grid-margin-x > .xmedium-offset-11 {
    margin-left: calc(91.66667% + 0.9375rem);
  }
}

@media print, screen and (min-width: 64em) {
  .large-offset-0 {
    margin-left: 0%;
  }
  .grid-margin-x > .large-offset-0 {
    margin-left: calc(0% + 0.9375rem);
  }
  .large-offset-1 {
    margin-left: 8.33333%;
  }
  .grid-margin-x > .large-offset-1 {
    margin-left: calc(8.33333% + 0.9375rem);
  }
  .large-offset-2 {
    margin-left: 16.66667%;
  }
  .grid-margin-x > .large-offset-2 {
    margin-left: calc(16.66667% + 0.9375rem);
  }
  .large-offset-3 {
    margin-left: 25%;
  }
  .grid-margin-x > .large-offset-3 {
    margin-left: calc(25% + 0.9375rem);
  }
  .large-offset-4 {
    margin-left: 33.33333%;
  }
  .grid-margin-x > .large-offset-4 {
    margin-left: calc(33.33333% + 0.9375rem);
  }
  .large-offset-5 {
    margin-left: 41.66667%;
  }
  .grid-margin-x > .large-offset-5 {
    margin-left: calc(41.66667% + 0.9375rem);
  }
  .large-offset-6 {
    margin-left: 50%;
  }
  .grid-margin-x > .large-offset-6 {
    margin-left: calc(50% + 0.9375rem);
  }
  .large-offset-7 {
    margin-left: 58.33333%;
  }
  .grid-margin-x > .large-offset-7 {
    margin-left: calc(58.33333% + 0.9375rem);
  }
  .large-offset-8 {
    margin-left: 66.66667%;
  }
  .grid-margin-x > .large-offset-8 {
    margin-left: calc(66.66667% + 0.9375rem);
  }
  .large-offset-9 {
    margin-left: 75%;
  }
  .grid-margin-x > .large-offset-9 {
    margin-left: calc(75% + 0.9375rem);
  }
  .large-offset-10 {
    margin-left: 83.33333%;
  }
  .grid-margin-x > .large-offset-10 {
    margin-left: calc(83.33333% + 0.9375rem);
  }
  .large-offset-11 {
    margin-left: 91.66667%;
  }
  .grid-margin-x > .large-offset-11 {
    margin-left: calc(91.66667% + 0.9375rem);
  }
}

@media screen and (min-width: 75em) {
  .xlarge-offset-0 {
    margin-left: 0%;
  }
  .grid-margin-x > .xlarge-offset-0 {
    margin-left: calc(0% + 0.9375rem);
  }
  .xlarge-offset-1 {
    margin-left: 8.33333%;
  }
  .grid-margin-x > .xlarge-offset-1 {
    margin-left: calc(8.33333% + 0.9375rem);
  }
  .xlarge-offset-2 {
    margin-left: 16.66667%;
  }
  .grid-margin-x > .xlarge-offset-2 {
    margin-left: calc(16.66667% + 0.9375rem);
  }
  .xlarge-offset-3 {
    margin-left: 25%;
  }
  .grid-margin-x > .xlarge-offset-3 {
    margin-left: calc(25% + 0.9375rem);
  }
  .xlarge-offset-4 {
    margin-left: 33.33333%;
  }
  .grid-margin-x > .xlarge-offset-4 {
    margin-left: calc(33.33333% + 0.9375rem);
  }
  .xlarge-offset-5 {
    margin-left: 41.66667%;
  }
  .grid-margin-x > .xlarge-offset-5 {
    margin-left: calc(41.66667% + 0.9375rem);
  }
  .xlarge-offset-6 {
    margin-left: 50%;
  }
  .grid-margin-x > .xlarge-offset-6 {
    margin-left: calc(50% + 0.9375rem);
  }
  .xlarge-offset-7 {
    margin-left: 58.33333%;
  }
  .grid-margin-x > .xlarge-offset-7 {
    margin-left: calc(58.33333% + 0.9375rem);
  }
  .xlarge-offset-8 {
    margin-left: 66.66667%;
  }
  .grid-margin-x > .xlarge-offset-8 {
    margin-left: calc(66.66667% + 0.9375rem);
  }
  .xlarge-offset-9 {
    margin-left: 75%;
  }
  .grid-margin-x > .xlarge-offset-9 {
    margin-left: calc(75% + 0.9375rem);
  }
  .xlarge-offset-10 {
    margin-left: 83.33333%;
  }
  .grid-margin-x > .xlarge-offset-10 {
    margin-left: calc(83.33333% + 0.9375rem);
  }
  .xlarge-offset-11 {
    margin-left: 91.66667%;
  }
  .grid-margin-x > .xlarge-offset-11 {
    margin-left: calc(91.66667% + 0.9375rem);
  }
}

@media screen and (min-width: 90em) {
  .xxlarge-offset-0 {
    margin-left: 0%;
  }
  .grid-margin-x > .xxlarge-offset-0 {
    margin-left: calc(0% + 0.9375rem);
  }
  .xxlarge-offset-1 {
    margin-left: 8.33333%;
  }
  .grid-margin-x > .xxlarge-offset-1 {
    margin-left: calc(8.33333% + 0.9375rem);
  }
  .xxlarge-offset-2 {
    margin-left: 16.66667%;
  }
  .grid-margin-x > .xxlarge-offset-2 {
    margin-left: calc(16.66667% + 0.9375rem);
  }
  .xxlarge-offset-3 {
    margin-left: 25%;
  }
  .grid-margin-x > .xxlarge-offset-3 {
    margin-left: calc(25% + 0.9375rem);
  }
  .xxlarge-offset-4 {
    margin-left: 33.33333%;
  }
  .grid-margin-x > .xxlarge-offset-4 {
    margin-left: calc(33.33333% + 0.9375rem);
  }
  .xxlarge-offset-5 {
    margin-left: 41.66667%;
  }
  .grid-margin-x > .xxlarge-offset-5 {
    margin-left: calc(41.66667% + 0.9375rem);
  }
  .xxlarge-offset-6 {
    margin-left: 50%;
  }
  .grid-margin-x > .xxlarge-offset-6 {
    margin-left: calc(50% + 0.9375rem);
  }
  .xxlarge-offset-7 {
    margin-left: 58.33333%;
  }
  .grid-margin-x > .xxlarge-offset-7 {
    margin-left: calc(58.33333% + 0.9375rem);
  }
  .xxlarge-offset-8 {
    margin-left: 66.66667%;
  }
  .grid-margin-x > .xxlarge-offset-8 {
    margin-left: calc(66.66667% + 0.9375rem);
  }
  .xxlarge-offset-9 {
    margin-left: 75%;
  }
  .grid-margin-x > .xxlarge-offset-9 {
    margin-left: calc(75% + 0.9375rem);
  }
  .xxlarge-offset-10 {
    margin-left: 83.33333%;
  }
  .grid-margin-x > .xxlarge-offset-10 {
    margin-left: calc(83.33333% + 0.9375rem);
  }
  .xxlarge-offset-11 {
    margin-left: 91.66667%;
  }
  .grid-margin-x > .xxlarge-offset-11 {
    margin-left: calc(91.66667% + 0.9375rem);
  }
}

.grid-y {
  display: flex;
  flex-flow: column nowrap;
}

.grid-y > .cell, .info-accordion .accordion-item .accordion-content .grid-y > hr {
  height: auto;
  max-height: none;
}

.grid-y > .auto {
  height: auto;
}

.grid-y > .shrink {
  height: auto;
}

.grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {
  flex-basis: auto;
}

@media print, screen and (min-width: 40em) {
  .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {
    flex-basis: auto;
  }
}

@media print, screen and (min-width: 48em) {
  .grid-y > .xmedium-shrink, .grid-y > .xmedium-full, .grid-y > .xmedium-1, .grid-y > .xmedium-2, .grid-y > .xmedium-3, .grid-y > .xmedium-4, .grid-y > .xmedium-5, .grid-y > .xmedium-6, .grid-y > .xmedium-7, .grid-y > .xmedium-8, .grid-y > .xmedium-9, .grid-y > .xmedium-10, .grid-y > .xmedium-11, .grid-y > .xmedium-12 {
    flex-basis: auto;
  }
}

@media print, screen and (min-width: 64em) {
  .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {
    flex-basis: auto;
  }
}

@media screen and (min-width: 75em) {
  .grid-y > .xlarge-shrink, .grid-y > .xlarge-full, .grid-y > .xlarge-1, .grid-y > .xlarge-2, .grid-y > .xlarge-3, .grid-y > .xlarge-4, .grid-y > .xlarge-5, .grid-y > .xlarge-6, .grid-y > .xlarge-7, .grid-y > .xlarge-8, .grid-y > .xlarge-9, .grid-y > .xlarge-10, .grid-y > .xlarge-11, .grid-y > .xlarge-12 {
    flex-basis: auto;
  }
}

@media screen and (min-width: 90em) {
  .grid-y > .xxlarge-shrink, .grid-y > .xxlarge-full, .grid-y > .xxlarge-1, .grid-y > .xxlarge-2, .grid-y > .xxlarge-3, .grid-y > .xxlarge-4, .grid-y > .xxlarge-5, .grid-y > .xxlarge-6, .grid-y > .xxlarge-7, .grid-y > .xxlarge-8, .grid-y > .xxlarge-9, .grid-y > .xxlarge-10, .grid-y > .xxlarge-11, .grid-y > .xxlarge-12 {
    flex-basis: auto;
  }
}

.grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {
  flex: 0 0 auto;
}

.grid-y > .small-1 {
  height: 8.33333%;
}

.grid-y > .small-2 {
  height: 16.66667%;
}

.grid-y > .small-3 {
  height: 25%;
}

.grid-y > .small-4 {
  height: 33.33333%;
}

.grid-y > .small-5 {
  height: 41.66667%;
}

.grid-y > .small-6 {
  height: 50%;
}

.grid-y > .small-7 {
  height: 58.33333%;
}

.grid-y > .small-8 {
  height: 66.66667%;
}

.grid-y > .small-9 {
  height: 75%;
}

.grid-y > .small-10 {
  height: 83.33333%;
}

.grid-y > .small-11 {
  height: 91.66667%;
}

.grid-y > .small-12 {
  height: 100%;
}

@media print, screen and (min-width: 40em) {
  .grid-y > .medium-auto {
    flex: 1 1 0px;
    height: auto;
  }
  .grid-y > .medium-shrink, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {
    flex: 0 0 auto;
  }
  .grid-y > .medium-shrink {
    height: auto;
  }
  .grid-y > .medium-1 {
    height: 8.33333%;
  }
  .grid-y > .medium-2 {
    height: 16.66667%;
  }
  .grid-y > .medium-3 {
    height: 25%;
  }
  .grid-y > .medium-4 {
    height: 33.33333%;
  }
  .grid-y > .medium-5 {
    height: 41.66667%;
  }
  .grid-y > .medium-6 {
    height: 50%;
  }
  .grid-y > .medium-7 {
    height: 58.33333%;
  }
  .grid-y > .medium-8 {
    height: 66.66667%;
  }
  .grid-y > .medium-9 {
    height: 75%;
  }
  .grid-y > .medium-10 {
    height: 83.33333%;
  }
  .grid-y > .medium-11 {
    height: 91.66667%;
  }
  .grid-y > .medium-12 {
    height: 100%;
  }
}

@media print, screen and (min-width: 48em) {
  .grid-y > .xmedium-auto {
    flex: 1 1 0px;
    height: auto;
  }
  .grid-y > .xmedium-shrink, .grid-y > .xmedium-1, .grid-y > .xmedium-2, .grid-y > .xmedium-3, .grid-y > .xmedium-4, .grid-y > .xmedium-5, .grid-y > .xmedium-6, .grid-y > .xmedium-7, .grid-y > .xmedium-8, .grid-y > .xmedium-9, .grid-y > .xmedium-10, .grid-y > .xmedium-11, .grid-y > .xmedium-12 {
    flex: 0 0 auto;
  }
  .grid-y > .xmedium-shrink {
    height: auto;
  }
  .grid-y > .xmedium-1 {
    height: 8.33333%;
  }
  .grid-y > .xmedium-2 {
    height: 16.66667%;
  }
  .grid-y > .xmedium-3 {
    height: 25%;
  }
  .grid-y > .xmedium-4 {
    height: 33.33333%;
  }
  .grid-y > .xmedium-5 {
    height: 41.66667%;
  }
  .grid-y > .xmedium-6 {
    height: 50%;
  }
  .grid-y > .xmedium-7 {
    height: 58.33333%;
  }
  .grid-y > .xmedium-8 {
    height: 66.66667%;
  }
  .grid-y > .xmedium-9 {
    height: 75%;
  }
  .grid-y > .xmedium-10 {
    height: 83.33333%;
  }
  .grid-y > .xmedium-11 {
    height: 91.66667%;
  }
  .grid-y > .xmedium-12 {
    height: 100%;
  }
}

@media print, screen and (min-width: 64em) {
  .grid-y > .large-auto {
    flex: 1 1 0px;
    height: auto;
  }
  .grid-y > .large-shrink, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {
    flex: 0 0 auto;
  }
  .grid-y > .large-shrink {
    height: auto;
  }
  .grid-y > .large-1 {
    height: 8.33333%;
  }
  .grid-y > .large-2 {
    height: 16.66667%;
  }
  .grid-y > .large-3 {
    height: 25%;
  }
  .grid-y > .large-4 {
    height: 33.33333%;
  }
  .grid-y > .large-5 {
    height: 41.66667%;
  }
  .grid-y > .large-6 {
    height: 50%;
  }
  .grid-y > .large-7 {
    height: 58.33333%;
  }
  .grid-y > .large-8 {
    height: 66.66667%;
  }
  .grid-y > .large-9 {
    height: 75%;
  }
  .grid-y > .large-10 {
    height: 83.33333%;
  }
  .grid-y > .large-11 {
    height: 91.66667%;
  }
  .grid-y > .large-12 {
    height: 100%;
  }
}

@media screen and (min-width: 75em) {
  .grid-y > .xlarge-auto {
    flex: 1 1 0px;
    height: auto;
  }
  .grid-y > .xlarge-shrink, .grid-y > .xlarge-1, .grid-y > .xlarge-2, .grid-y > .xlarge-3, .grid-y > .xlarge-4, .grid-y > .xlarge-5, .grid-y > .xlarge-6, .grid-y > .xlarge-7, .grid-y > .xlarge-8, .grid-y > .xlarge-9, .grid-y > .xlarge-10, .grid-y > .xlarge-11, .grid-y > .xlarge-12 {
    flex: 0 0 auto;
  }
  .grid-y > .xlarge-shrink {
    height: auto;
  }
  .grid-y > .xlarge-1 {
    height: 8.33333%;
  }
  .grid-y > .xlarge-2 {
    height: 16.66667%;
  }
  .grid-y > .xlarge-3 {
    height: 25%;
  }
  .grid-y > .xlarge-4 {
    height: 33.33333%;
  }
  .grid-y > .xlarge-5 {
    height: 41.66667%;
  }
  .grid-y > .xlarge-6 {
    height: 50%;
  }
  .grid-y > .xlarge-7 {
    height: 58.33333%;
  }
  .grid-y > .xlarge-8 {
    height: 66.66667%;
  }
  .grid-y > .xlarge-9 {
    height: 75%;
  }
  .grid-y > .xlarge-10 {
    height: 83.33333%;
  }
  .grid-y > .xlarge-11 {
    height: 91.66667%;
  }
  .grid-y > .xlarge-12 {
    height: 100%;
  }
}

@media screen and (min-width: 90em) {
  .grid-y > .xxlarge-auto {
    flex: 1 1 0px;
    height: auto;
  }
  .grid-y > .xxlarge-shrink, .grid-y > .xxlarge-1, .grid-y > .xxlarge-2, .grid-y > .xxlarge-3, .grid-y > .xxlarge-4, .grid-y > .xxlarge-5, .grid-y > .xxlarge-6, .grid-y > .xxlarge-7, .grid-y > .xxlarge-8, .grid-y > .xxlarge-9, .grid-y > .xxlarge-10, .grid-y > .xxlarge-11, .grid-y > .xxlarge-12 {
    flex: 0 0 auto;
  }
  .grid-y > .xxlarge-shrink {
    height: auto;
  }
  .grid-y > .xxlarge-1 {
    height: 8.33333%;
  }
  .grid-y > .xxlarge-2 {
    height: 16.66667%;
  }
  .grid-y > .xxlarge-3 {
    height: 25%;
  }
  .grid-y > .xxlarge-4 {
    height: 33.33333%;
  }
  .grid-y > .xxlarge-5 {
    height: 41.66667%;
  }
  .grid-y > .xxlarge-6 {
    height: 50%;
  }
  .grid-y > .xxlarge-7 {
    height: 58.33333%;
  }
  .grid-y > .xxlarge-8 {
    height: 66.66667%;
  }
  .grid-y > .xxlarge-9 {
    height: 75%;
  }
  .grid-y > .xxlarge-10 {
    height: 83.33333%;
  }
  .grid-y > .xxlarge-11 {
    height: 91.66667%;
  }
  .grid-y > .xxlarge-12 {
    height: 100%;
  }
}

.grid-padding-y .grid-padding-y {
  margin-top: -1.25rem;
  margin-bottom: -1.25rem;
}

@media print, screen and (min-width: 40em) {
  .grid-padding-y .grid-padding-y {
    margin-top: -0.9375rem;
    margin-bottom: -0.9375rem;
  }
}

.grid-padding-y > .cell, .info-accordion .accordion-item .accordion-content .grid-padding-y > hr {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

@media print, screen and (min-width: 40em) {
  .grid-padding-y > .cell, .info-accordion .accordion-item .accordion-content .grid-padding-y > hr {
    padding-top: 0.9375rem;
    padding-bottom: 0.9375rem;
  }
}

.grid-margin-y {
  margin-top: -1.25rem;
  margin-bottom: -1.25rem;
}

@media print, screen and (min-width: 40em) {
  .grid-margin-y {
    margin-top: -0.9375rem;
    margin-bottom: -0.9375rem;
  }
}

.grid-margin-y > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-y > hr {
  height: calc(100% - 2.5rem);
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
}

@media print, screen and (min-width: 40em) {
  .grid-margin-y > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-y > hr {
    height: calc(100% - 1.875rem);
    margin-top: 0.9375rem;
    margin-bottom: 0.9375rem;
  }
}

.grid-margin-y > .auto {
  height: auto;
}

.grid-margin-y > .shrink {
  height: auto;
}

.grid-margin-y > .small-1 {
  height: calc(8.33333% - 2.5rem);
}

.grid-margin-y > .small-2 {
  height: calc(16.66667% - 2.5rem);
}

.grid-margin-y > .small-3 {
  height: calc(25% - 2.5rem);
}

.grid-margin-y > .small-4 {
  height: calc(33.33333% - 2.5rem);
}

.grid-margin-y > .small-5 {
  height: calc(41.66667% - 2.5rem);
}

.grid-margin-y > .small-6 {
  height: calc(50% - 2.5rem);
}

.grid-margin-y > .small-7 {
  height: calc(58.33333% - 2.5rem);
}

.grid-margin-y > .small-8 {
  height: calc(66.66667% - 2.5rem);
}

.grid-margin-y > .small-9 {
  height: calc(75% - 2.5rem);
}

.grid-margin-y > .small-10 {
  height: calc(83.33333% - 2.5rem);
}

.grid-margin-y > .small-11 {
  height: calc(91.66667% - 2.5rem);
}

.grid-margin-y > .small-12 {
  height: calc(100% - 2.5rem);
}

@media print, screen and (min-width: 40em) {
  .grid-margin-y > .auto {
    height: auto;
  }
  .grid-margin-y > .shrink {
    height: auto;
  }
  .grid-margin-y > .small-1 {
    height: calc(8.33333% - 1.875rem);
  }
  .grid-margin-y > .small-2 {
    height: calc(16.66667% - 1.875rem);
  }
  .grid-margin-y > .small-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .small-4 {
    height: calc(33.33333% - 1.875rem);
  }
  .grid-margin-y > .small-5 {
    height: calc(41.66667% - 1.875rem);
  }
  .grid-margin-y > .small-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .small-7 {
    height: calc(58.33333% - 1.875rem);
  }
  .grid-margin-y > .small-8 {
    height: calc(66.66667% - 1.875rem);
  }
  .grid-margin-y > .small-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .small-10 {
    height: calc(83.33333% - 1.875rem);
  }
  .grid-margin-y > .small-11 {
    height: calc(91.66667% - 1.875rem);
  }
  .grid-margin-y > .small-12 {
    height: calc(100% - 1.875rem);
  }
  .grid-margin-y > .medium-auto {
    height: auto;
  }
  .grid-margin-y > .medium-shrink {
    height: auto;
  }
  .grid-margin-y > .medium-1 {
    height: calc(8.33333% - 1.875rem);
  }
  .grid-margin-y > .medium-2 {
    height: calc(16.66667% - 1.875rem);
  }
  .grid-margin-y > .medium-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .medium-4 {
    height: calc(33.33333% - 1.875rem);
  }
  .grid-margin-y > .medium-5 {
    height: calc(41.66667% - 1.875rem);
  }
  .grid-margin-y > .medium-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .medium-7 {
    height: calc(58.33333% - 1.875rem);
  }
  .grid-margin-y > .medium-8 {
    height: calc(66.66667% - 1.875rem);
  }
  .grid-margin-y > .medium-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .medium-10 {
    height: calc(83.33333% - 1.875rem);
  }
  .grid-margin-y > .medium-11 {
    height: calc(91.66667% - 1.875rem);
  }
  .grid-margin-y > .medium-12 {
    height: calc(100% - 1.875rem);
  }
}

@media print, screen and (min-width: 48em) {
  .grid-margin-y > .xmedium-auto {
    height: auto;
  }
  .grid-margin-y > .xmedium-shrink {
    height: auto;
  }
  .grid-margin-y > .xmedium-1 {
    height: calc(8.33333% - 1.875rem);
  }
  .grid-margin-y > .xmedium-2 {
    height: calc(16.66667% - 1.875rem);
  }
  .grid-margin-y > .xmedium-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .xmedium-4 {
    height: calc(33.33333% - 1.875rem);
  }
  .grid-margin-y > .xmedium-5 {
    height: calc(41.66667% - 1.875rem);
  }
  .grid-margin-y > .xmedium-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .xmedium-7 {
    height: calc(58.33333% - 1.875rem);
  }
  .grid-margin-y > .xmedium-8 {
    height: calc(66.66667% - 1.875rem);
  }
  .grid-margin-y > .xmedium-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .xmedium-10 {
    height: calc(83.33333% - 1.875rem);
  }
  .grid-margin-y > .xmedium-11 {
    height: calc(91.66667% - 1.875rem);
  }
  .grid-margin-y > .xmedium-12 {
    height: calc(100% - 1.875rem);
  }
}

@media print, screen and (min-width: 64em) {
  .grid-margin-y > .large-auto {
    height: auto;
  }
  .grid-margin-y > .large-shrink {
    height: auto;
  }
  .grid-margin-y > .large-1 {
    height: calc(8.33333% - 1.875rem);
  }
  .grid-margin-y > .large-2 {
    height: calc(16.66667% - 1.875rem);
  }
  .grid-margin-y > .large-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .large-4 {
    height: calc(33.33333% - 1.875rem);
  }
  .grid-margin-y > .large-5 {
    height: calc(41.66667% - 1.875rem);
  }
  .grid-margin-y > .large-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .large-7 {
    height: calc(58.33333% - 1.875rem);
  }
  .grid-margin-y > .large-8 {
    height: calc(66.66667% - 1.875rem);
  }
  .grid-margin-y > .large-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .large-10 {
    height: calc(83.33333% - 1.875rem);
  }
  .grid-margin-y > .large-11 {
    height: calc(91.66667% - 1.875rem);
  }
  .grid-margin-y > .large-12 {
    height: calc(100% - 1.875rem);
  }
}

@media screen and (min-width: 75em) {
  .grid-margin-y > .xlarge-auto {
    height: auto;
  }
  .grid-margin-y > .xlarge-shrink {
    height: auto;
  }
  .grid-margin-y > .xlarge-1 {
    height: calc(8.33333% - 1.875rem);
  }
  .grid-margin-y > .xlarge-2 {
    height: calc(16.66667% - 1.875rem);
  }
  .grid-margin-y > .xlarge-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .xlarge-4 {
    height: calc(33.33333% - 1.875rem);
  }
  .grid-margin-y > .xlarge-5 {
    height: calc(41.66667% - 1.875rem);
  }
  .grid-margin-y > .xlarge-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .xlarge-7 {
    height: calc(58.33333% - 1.875rem);
  }
  .grid-margin-y > .xlarge-8 {
    height: calc(66.66667% - 1.875rem);
  }
  .grid-margin-y > .xlarge-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .xlarge-10 {
    height: calc(83.33333% - 1.875rem);
  }
  .grid-margin-y > .xlarge-11 {
    height: calc(91.66667% - 1.875rem);
  }
  .grid-margin-y > .xlarge-12 {
    height: calc(100% - 1.875rem);
  }
}

@media screen and (min-width: 90em) {
  .grid-margin-y > .xxlarge-auto {
    height: auto;
  }
  .grid-margin-y > .xxlarge-shrink {
    height: auto;
  }
  .grid-margin-y > .xxlarge-1 {
    height: calc(8.33333% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-2 {
    height: calc(16.66667% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-4 {
    height: calc(33.33333% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-5 {
    height: calc(41.66667% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-7 {
    height: calc(58.33333% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-8 {
    height: calc(66.66667% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-10 {
    height: calc(83.33333% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-11 {
    height: calc(91.66667% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-12 {
    height: calc(100% - 1.875rem);
  }
}

.grid-frame {
  overflow: hidden;
  position: relative;
  flex-wrap: nowrap;
  align-items: stretch;
  width: 100vw;
}

.cell .grid-frame, .info-accordion .accordion-item .accordion-content hr .grid-frame {
  width: 100%;
}

.cell-block {
  overflow-x: auto;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar;
}

.cell-block-y {
  overflow-y: auto;
  max-height: 100%;
  min-height: 100%;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar;
}

.cell-block-container {
  display: flex;
  flex-direction: column;
  max-height: 100%;
}

.cell-block-container > .grid-x {
  max-height: 100%;
  flex-wrap: nowrap;
}

@media print, screen and (min-width: 40em) {
  .medium-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100vw;
  }
  .cell .medium-grid-frame, .info-accordion .accordion-item .accordion-content hr .medium-grid-frame {
    width: 100%;
  }
  .medium-cell-block {
    overflow-x: auto;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }
  .medium-cell-block-container {
    display: flex;
    flex-direction: column;
    max-height: 100%;
  }
  .medium-cell-block-container > .grid-x {
    max-height: 100%;
    flex-wrap: nowrap;
  }
  .medium-cell-block-y {
    overflow-y: auto;
    max-height: 100%;
    min-height: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }
}

@media print, screen and (min-width: 48em) {
  .xmedium-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100vw;
  }
  .cell .xmedium-grid-frame, .info-accordion .accordion-item .accordion-content hr .xmedium-grid-frame {
    width: 100%;
  }
  .xmedium-cell-block {
    overflow-x: auto;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }
  .xmedium-cell-block-container {
    display: flex;
    flex-direction: column;
    max-height: 100%;
  }
  .xmedium-cell-block-container > .grid-x {
    max-height: 100%;
    flex-wrap: nowrap;
  }
  .xmedium-cell-block-y {
    overflow-y: auto;
    max-height: 100%;
    min-height: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }
}

@media print, screen and (min-width: 64em) {
  .large-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100vw;
  }
  .cell .large-grid-frame, .info-accordion .accordion-item .accordion-content hr .large-grid-frame {
    width: 100%;
  }
  .large-cell-block {
    overflow-x: auto;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }
  .large-cell-block-container {
    display: flex;
    flex-direction: column;
    max-height: 100%;
  }
  .large-cell-block-container > .grid-x {
    max-height: 100%;
    flex-wrap: nowrap;
  }
  .large-cell-block-y {
    overflow-y: auto;
    max-height: 100%;
    min-height: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }
}

@media screen and (min-width: 75em) {
  .xlarge-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100vw;
  }
  .cell .xlarge-grid-frame, .info-accordion .accordion-item .accordion-content hr .xlarge-grid-frame {
    width: 100%;
  }
  .xlarge-cell-block {
    overflow-x: auto;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }
  .xlarge-cell-block-container {
    display: flex;
    flex-direction: column;
    max-height: 100%;
  }
  .xlarge-cell-block-container > .grid-x {
    max-height: 100%;
    flex-wrap: nowrap;
  }
  .xlarge-cell-block-y {
    overflow-y: auto;
    max-height: 100%;
    min-height: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }
}

@media screen and (min-width: 90em) {
  .xxlarge-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100vw;
  }
  .cell .xxlarge-grid-frame, .info-accordion .accordion-item .accordion-content hr .xxlarge-grid-frame {
    width: 100%;
  }
  .xxlarge-cell-block {
    overflow-x: auto;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }
  .xxlarge-cell-block-container {
    display: flex;
    flex-direction: column;
    max-height: 100%;
  }
  .xxlarge-cell-block-container > .grid-x {
    max-height: 100%;
    flex-wrap: nowrap;
  }
  .xxlarge-cell-block-y {
    overflow-y: auto;
    max-height: 100%;
    min-height: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }
}

.grid-y.grid-frame {
  width: auto;
  overflow: hidden;
  position: relative;
  flex-wrap: nowrap;
  align-items: stretch;
  height: 100vh;
}

@media print, screen and (min-width: 40em) {
  .grid-y.medium-grid-frame {
    width: auto;
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    height: 100vh;
  }
}

@media print, screen and (min-width: 48em) {
  .grid-y.xmedium-grid-frame {
    width: auto;
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    height: 100vh;
  }
}

@media print, screen and (min-width: 64em) {
  .grid-y.large-grid-frame {
    width: auto;
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    height: 100vh;
  }
}

@media screen and (min-width: 75em) {
  .grid-y.xlarge-grid-frame {
    width: auto;
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    height: 100vh;
  }
}

@media screen and (min-width: 90em) {
  .grid-y.xxlarge-grid-frame {
    width: auto;
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    height: 100vh;
  }
}

.cell .grid-y.grid-frame, .info-accordion .accordion-item .accordion-content hr .grid-y.grid-frame {
  height: 100%;
}

@media print, screen and (min-width: 40em) {
  .cell .grid-y.medium-grid-frame, .info-accordion .accordion-item .accordion-content hr .grid-y.medium-grid-frame {
    height: 100%;
  }
}

@media print, screen and (min-width: 48em) {
  .cell .grid-y.xmedium-grid-frame, .info-accordion .accordion-item .accordion-content hr .grid-y.xmedium-grid-frame {
    height: 100%;
  }
}

@media print, screen and (min-width: 64em) {
  .cell .grid-y.large-grid-frame, .info-accordion .accordion-item .accordion-content hr .grid-y.large-grid-frame {
    height: 100%;
  }
}

@media screen and (min-width: 75em) {
  .cell .grid-y.xlarge-grid-frame, .info-accordion .accordion-item .accordion-content hr .grid-y.xlarge-grid-frame {
    height: 100%;
  }
}

@media screen and (min-width: 90em) {
  .cell .grid-y.xxlarge-grid-frame, .info-accordion .accordion-item .accordion-content hr .grid-y.xxlarge-grid-frame {
    height: 100%;
  }
}

.grid-margin-y {
  margin-top: -1.25rem;
  margin-bottom: -1.25rem;
}

@media print, screen and (min-width: 40em) {
  .grid-margin-y {
    margin-top: -0.9375rem;
    margin-bottom: -0.9375rem;
  }
}

.grid-margin-y > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-y > hr {
  height: calc(100% - 2.5rem);
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
}

@media print, screen and (min-width: 40em) {
  .grid-margin-y > .cell, .info-accordion .accordion-item .accordion-content .grid-margin-y > hr {
    height: calc(100% - 1.875rem);
    margin-top: 0.9375rem;
    margin-bottom: 0.9375rem;
  }
}

.grid-margin-y > .auto {
  height: auto;
}

.grid-margin-y > .shrink {
  height: auto;
}

.grid-margin-y > .small-1 {
  height: calc(8.33333% - 2.5rem);
}

.grid-margin-y > .small-2 {
  height: calc(16.66667% - 2.5rem);
}

.grid-margin-y > .small-3 {
  height: calc(25% - 2.5rem);
}

.grid-margin-y > .small-4 {
  height: calc(33.33333% - 2.5rem);
}

.grid-margin-y > .small-5 {
  height: calc(41.66667% - 2.5rem);
}

.grid-margin-y > .small-6 {
  height: calc(50% - 2.5rem);
}

.grid-margin-y > .small-7 {
  height: calc(58.33333% - 2.5rem);
}

.grid-margin-y > .small-8 {
  height: calc(66.66667% - 2.5rem);
}

.grid-margin-y > .small-9 {
  height: calc(75% - 2.5rem);
}

.grid-margin-y > .small-10 {
  height: calc(83.33333% - 2.5rem);
}

.grid-margin-y > .small-11 {
  height: calc(91.66667% - 2.5rem);
}

.grid-margin-y > .small-12 {
  height: calc(100% - 2.5rem);
}

@media print, screen and (min-width: 40em) {
  .grid-margin-y > .auto {
    height: auto;
  }
  .grid-margin-y > .shrink {
    height: auto;
  }
  .grid-margin-y > .small-1 {
    height: calc(8.33333% - 1.875rem);
  }
  .grid-margin-y > .small-2 {
    height: calc(16.66667% - 1.875rem);
  }
  .grid-margin-y > .small-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .small-4 {
    height: calc(33.33333% - 1.875rem);
  }
  .grid-margin-y > .small-5 {
    height: calc(41.66667% - 1.875rem);
  }
  .grid-margin-y > .small-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .small-7 {
    height: calc(58.33333% - 1.875rem);
  }
  .grid-margin-y > .small-8 {
    height: calc(66.66667% - 1.875rem);
  }
  .grid-margin-y > .small-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .small-10 {
    height: calc(83.33333% - 1.875rem);
  }
  .grid-margin-y > .small-11 {
    height: calc(91.66667% - 1.875rem);
  }
  .grid-margin-y > .small-12 {
    height: calc(100% - 1.875rem);
  }
  .grid-margin-y > .medium-auto {
    height: auto;
  }
  .grid-margin-y > .medium-shrink {
    height: auto;
  }
  .grid-margin-y > .medium-1 {
    height: calc(8.33333% - 1.875rem);
  }
  .grid-margin-y > .medium-2 {
    height: calc(16.66667% - 1.875rem);
  }
  .grid-margin-y > .medium-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .medium-4 {
    height: calc(33.33333% - 1.875rem);
  }
  .grid-margin-y > .medium-5 {
    height: calc(41.66667% - 1.875rem);
  }
  .grid-margin-y > .medium-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .medium-7 {
    height: calc(58.33333% - 1.875rem);
  }
  .grid-margin-y > .medium-8 {
    height: calc(66.66667% - 1.875rem);
  }
  .grid-margin-y > .medium-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .medium-10 {
    height: calc(83.33333% - 1.875rem);
  }
  .grid-margin-y > .medium-11 {
    height: calc(91.66667% - 1.875rem);
  }
  .grid-margin-y > .medium-12 {
    height: calc(100% - 1.875rem);
  }
}

@media print, screen and (min-width: 48em) {
  .grid-margin-y > .xmedium-auto {
    height: auto;
  }
  .grid-margin-y > .xmedium-shrink {
    height: auto;
  }
  .grid-margin-y > .xmedium-1 {
    height: calc(8.33333% - 1.875rem);
  }
  .grid-margin-y > .xmedium-2 {
    height: calc(16.66667% - 1.875rem);
  }
  .grid-margin-y > .xmedium-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .xmedium-4 {
    height: calc(33.33333% - 1.875rem);
  }
  .grid-margin-y > .xmedium-5 {
    height: calc(41.66667% - 1.875rem);
  }
  .grid-margin-y > .xmedium-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .xmedium-7 {
    height: calc(58.33333% - 1.875rem);
  }
  .grid-margin-y > .xmedium-8 {
    height: calc(66.66667% - 1.875rem);
  }
  .grid-margin-y > .xmedium-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .xmedium-10 {
    height: calc(83.33333% - 1.875rem);
  }
  .grid-margin-y > .xmedium-11 {
    height: calc(91.66667% - 1.875rem);
  }
  .grid-margin-y > .xmedium-12 {
    height: calc(100% - 1.875rem);
  }
}

@media print, screen and (min-width: 64em) {
  .grid-margin-y > .large-auto {
    height: auto;
  }
  .grid-margin-y > .large-shrink {
    height: auto;
  }
  .grid-margin-y > .large-1 {
    height: calc(8.33333% - 1.875rem);
  }
  .grid-margin-y > .large-2 {
    height: calc(16.66667% - 1.875rem);
  }
  .grid-margin-y > .large-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .large-4 {
    height: calc(33.33333% - 1.875rem);
  }
  .grid-margin-y > .large-5 {
    height: calc(41.66667% - 1.875rem);
  }
  .grid-margin-y > .large-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .large-7 {
    height: calc(58.33333% - 1.875rem);
  }
  .grid-margin-y > .large-8 {
    height: calc(66.66667% - 1.875rem);
  }
  .grid-margin-y > .large-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .large-10 {
    height: calc(83.33333% - 1.875rem);
  }
  .grid-margin-y > .large-11 {
    height: calc(91.66667% - 1.875rem);
  }
  .grid-margin-y > .large-12 {
    height: calc(100% - 1.875rem);
  }
}

@media screen and (min-width: 75em) {
  .grid-margin-y > .xlarge-auto {
    height: auto;
  }
  .grid-margin-y > .xlarge-shrink {
    height: auto;
  }
  .grid-margin-y > .xlarge-1 {
    height: calc(8.33333% - 1.875rem);
  }
  .grid-margin-y > .xlarge-2 {
    height: calc(16.66667% - 1.875rem);
  }
  .grid-margin-y > .xlarge-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .xlarge-4 {
    height: calc(33.33333% - 1.875rem);
  }
  .grid-margin-y > .xlarge-5 {
    height: calc(41.66667% - 1.875rem);
  }
  .grid-margin-y > .xlarge-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .xlarge-7 {
    height: calc(58.33333% - 1.875rem);
  }
  .grid-margin-y > .xlarge-8 {
    height: calc(66.66667% - 1.875rem);
  }
  .grid-margin-y > .xlarge-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .xlarge-10 {
    height: calc(83.33333% - 1.875rem);
  }
  .grid-margin-y > .xlarge-11 {
    height: calc(91.66667% - 1.875rem);
  }
  .grid-margin-y > .xlarge-12 {
    height: calc(100% - 1.875rem);
  }
}

@media screen and (min-width: 90em) {
  .grid-margin-y > .xxlarge-auto {
    height: auto;
  }
  .grid-margin-y > .xxlarge-shrink {
    height: auto;
  }
  .grid-margin-y > .xxlarge-1 {
    height: calc(8.33333% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-2 {
    height: calc(16.66667% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-4 {
    height: calc(33.33333% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-5 {
    height: calc(41.66667% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-7 {
    height: calc(58.33333% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-8 {
    height: calc(66.66667% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-10 {
    height: calc(83.33333% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-11 {
    height: calc(91.66667% - 1.875rem);
  }
  .grid-margin-y > .xxlarge-12 {
    height: calc(100% - 1.875rem);
  }
}

.grid-frame.grid-margin-y {
  height: calc(100vh + 2.5rem);
}

@media print, screen and (min-width: 40em) {
  .grid-frame.grid-margin-y {
    height: calc(100vh + 1.875rem);
  }
}

@media print, screen and (min-width: 48em) {
  .grid-frame.grid-margin-y {
    height: calc(100vh + 1.875rem);
  }
}

@media print, screen and (min-width: 64em) {
  .grid-frame.grid-margin-y {
    height: calc(100vh + 1.875rem);
  }
}

@media screen and (min-width: 75em) {
  .grid-frame.grid-margin-y {
    height: calc(100vh + 1.875rem);
  }
}

@media screen and (min-width: 90em) {
  .grid-frame.grid-margin-y {
    height: calc(100vh + 1.875rem);
  }
}

@media print, screen and (min-width: 40em) {
  .grid-margin-y.medium-grid-frame {
    height: calc(100vh + 1.875rem);
  }
}

@media print, screen and (min-width: 48em) {
  .grid-margin-y.xmedium-grid-frame {
    height: calc(100vh + 1.875rem);
  }
}

@media print, screen and (min-width: 64em) {
  .grid-margin-y.large-grid-frame {
    height: calc(100vh + 1.875rem);
  }
}

@media screen and (min-width: 75em) {
  .grid-margin-y.xlarge-grid-frame {
    height: calc(100vh + 1.875rem);
  }
}

@media screen and (min-width: 90em) {
  .grid-margin-y.xxlarge-grid-frame {
    height: calc(100vh + 1.875rem);
  }
}

.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  padding: 0.5625rem 1em;
  border: 1px solid transparent;
  border-radius: 0;
  transition: background-color 0.2s ease-out, color 0.2s ease-out, border-color 0.2s ease-out;
  font-family: inherit;
  font-size: 1rem;
  -webkit-appearance: none;
  line-height: 1;
  text-align: center;
  cursor: pointer;
}

[data-whatinput='mouse'] .button {
  outline: 0;
}

.button.tiny {
  font-size: 0.6rem;
}

.button.small {
  font-size: 0.75rem;
}

.button.large {
  font-size: 1.5625rem;
}

.button.expanded {
  display: block;
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}

@media print, screen and (max-width: 39.99875em) {
  .button.small-only-expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }
}

@media print, screen and (min-width: 40em) and (max-width: 47.99875em) {
  .button.medium-only-expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }
}

@media print, screen and (max-width: 47.99875em) {
  .button.medium-down-expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }
}

@media print, screen and (min-width: 40em) {
  .button.medium-expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }
}

@media print, screen and (min-width: 48em) and (max-width: 63.99875em) {
  .button.xmedium-only-expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }
}

@media print, screen and (max-width: 63.99875em) {
  .button.xmedium-down-expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }
}

@media print, screen and (min-width: 48em) {
  .button.xmedium-expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }
}

@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {
  .button.large-only-expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }
}

@media print, screen and (max-width: 74.99875em) {
  .button.large-down-expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }
}

@media print, screen and (min-width: 64em) {
  .button.large-expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }
}

@media screen and (min-width: 75em) and (max-width: 89.99875em) {
  .button.xlarge-only-expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }
}

@media print, screen and (max-width: 89.99875em) {
  .button.xlarge-down-expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }
}

@media screen and (min-width: 75em) {
  .button.xlarge-expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }
}

@media screen and (min-width: 90em) {
  .button.xxlarge-only-expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }
}

.button.xxlarge-down-expanded {
  display: block;
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}

@media screen and (min-width: 90em) {
  .button.xxlarge-expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }
}

.button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {
  background-color: #3a4044;
  color: #ffffff;
}

.button:hover, .button:focus {
  background-color: white;
  color: #ffffff;
}

.button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {
  background-color: #3a4044;
  color: #ffffff;
}

.button.primary:hover, .button.primary:focus {
  background-color: #2e3336;
  color: #ffffff;
}

.button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {
  background-color: #ffcc00;
  color: #000000;
}

.button.secondary:hover, .button.secondary:focus {
  background-color: #cca300;
  color: #000000;
}

.button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {
  background-color: #44ac1b;
  color: #000000;
}

.button.success:hover, .button.success:focus {
  background-color: #368a16;
  color: #000000;
}

.button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {
  background-color: #1b7bac;
  color: #ffffff;
}

.button.warning:hover, .button.warning:focus {
  background-color: #16628a;
  color: #ffffff;
}

.button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {
  background-color: #ac1b1b;
  color: #ffffff;
}

.button.alert:hover, .button.alert:focus {
  background-color: #8a1616;
  color: #ffffff;
}

.button.grey, .button.grey.disabled, .button.grey[disabled], .button.grey.disabled:hover, .button.grey[disabled]:hover, .button.grey.disabled:focus, .button.grey[disabled]:focus {
  background-color: #e8ebec;
  color: #000000;
}

.button.grey:hover, .button.grey:focus {
  background-color: #b5bec2;
  color: #000000;
}

.button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {
  background-color: transparent;
}

.button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {
  border: 1px solid #3a4044;
  color: #3a4044;
}

.button.hollow:hover, .button.hollow:focus {
  border-color: #1d2022;
  color: #1d2022;
}

.button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {
  border: 1px solid #3a4044;
  color: #3a4044;
}

.button.hollow.primary:hover, .button.hollow.primary:focus {
  border-color: #1d2022;
  color: #1d2022;
}

.button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {
  border: 1px solid #ffcc00;
  color: #ffcc00;
}

.button.hollow.secondary:hover, .button.hollow.secondary:focus {
  border-color: #806600;
  color: #806600;
}

.button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {
  border: 1px solid #44ac1b;
  color: #44ac1b;
}

.button.hollow.success:hover, .button.hollow.success:focus {
  border-color: #22560e;
  color: #22560e;
}

.button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {
  border: 1px solid #1b7bac;
  color: #1b7bac;
}

.button.hollow.warning:hover, .button.hollow.warning:focus {
  border-color: #0e3e56;
  color: #0e3e56;
}

.button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {
  border: 1px solid #ac1b1b;
  color: #ac1b1b;
}

.button.hollow.alert:hover, .button.hollow.alert:focus {
  border-color: #560e0e;
  color: #560e0e;
}

.button.hollow.grey, .button.hollow.grey.disabled, .button.hollow.grey[disabled], .button.hollow.grey.disabled:hover, .button.hollow.grey[disabled]:hover, .button.hollow.grey.disabled:focus, .button.hollow.grey[disabled]:focus {
  border: 1px solid #e8ebec;
  color: #e8ebec;
}

.button.hollow.grey:hover, .button.hollow.grey:focus {
  border-color: #6a7b80;
  color: #6a7b80;
}

.button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {
  border-color: transparent;
  background-color: transparent;
}

.button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {
  color: #3a4044;
}

.button.clear:hover, .button.clear:focus {
  color: #1d2022;
}

.button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {
  color: #3a4044;
}

.button.clear.primary:hover, .button.clear.primary:focus {
  color: #1d2022;
}

.button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {
  color: #ffcc00;
}

.button.clear.secondary:hover, .button.clear.secondary:focus {
  color: #806600;
}

.button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {
  color: #44ac1b;
}

.button.clear.success:hover, .button.clear.success:focus {
  color: #22560e;
}

.button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {
  color: #1b7bac;
}

.button.clear.warning:hover, .button.clear.warning:focus {
  color: #0e3e56;
}

.button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {
  color: #ac1b1b;
}

.button.clear.alert:hover, .button.clear.alert:focus {
  color: #560e0e;
}

.button.clear.grey, .button.clear.grey.disabled, .button.clear.grey[disabled], .button.clear.grey.disabled:hover, .button.clear.grey[disabled]:hover, .button.clear.grey.disabled:focus, .button.clear.grey[disabled]:focus {
  color: #e8ebec;
}

.button.clear.grey:hover, .button.clear.grey:focus {
  color: #6a7b80;
}

.button.disabled, .button[disabled] {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.dropdown::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.4em;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #ffffff transparent transparent;
  position: relative;
  top: 0.4em;
  display: inline-block;
  float: right;
  margin-left: 1em;
}

.button.dropdown.hollow::after, .button.dropdown.clear::after {
  border-top-color: #3a4044;
}

.button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {
  border-top-color: #3a4044;
}

.button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {
  border-top-color: #ffcc00;
}

.button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {
  border-top-color: #44ac1b;
}

.button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {
  border-top-color: #1b7bac;
}

.button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {
  border-top-color: #ac1b1b;
}

.button.dropdown.hollow.grey::after, .button.dropdown.clear.grey::after {
  border-top-color: #e8ebec;
}

.button.arrow-only::after {
  top: -0.1em;
  float: none;
  margin-left: 0;
}

a.button:hover, a.button:focus {
  text-decoration: none;
}

.button-group {
  margin-bottom: 1rem;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  flex-grow: 1;
}

.button-group::before, .button-group::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.button-group::after {
  clear: both;
}

.button-group::before, .button-group::after {
  display: none;
}

.button-group .button {
  margin: 0;
  margin-right: 1px;
  margin-bottom: 1px;
  font-size: 1rem;
  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.5625rem;
}

.button-group.expanded .button {
  flex: 1 1 0px;
  margin-right: 0;
}

.button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {
  background-color: #3a4044;
  color: #ffffff;
}

.button-group.primary .button:hover, .button-group.primary .button:focus {
  background-color: #2e3336;
  color: #ffffff;
}

.button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {
  background-color: #ffcc00;
  color: #000000;
}

.button-group.secondary .button:hover, .button-group.secondary .button:focus {
  background-color: #cca300;
  color: #000000;
}

.button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {
  background-color: #44ac1b;
  color: #000000;
}

.button-group.success .button:hover, .button-group.success .button:focus {
  background-color: #368a16;
  color: #000000;
}

.button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {
  background-color: #1b7bac;
  color: #ffffff;
}

.button-group.warning .button:hover, .button-group.warning .button:focus {
  background-color: #16628a;
  color: #ffffff;
}

.button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {
  background-color: #ac1b1b;
  color: #ffffff;
}

.button-group.alert .button:hover, .button-group.alert .button:focus {
  background-color: #8a1616;
  color: #ffffff;
}

.button-group.grey .button, .button-group.grey .button.disabled, .button-group.grey .button[disabled], .button-group.grey .button.disabled:hover, .button-group.grey .button[disabled]:hover, .button-group.grey .button.disabled:focus, .button-group.grey .button[disabled]:focus {
  background-color: #e8ebec;
  color: #000000;
}

.button-group.grey .button:hover, .button-group.grey .button:focus {
  background-color: #b5bec2;
  color: #000000;
}

.button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {
  background-color: transparent;
}

.button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {
  border: 1px solid #3a4044;
  color: #3a4044;
}

.button-group.hollow .button:hover, .button-group.hollow .button:focus {
  border-color: #1d2022;
  color: #1d2022;
}

.button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {
  border: 1px solid #3a4044;
  color: #3a4044;
}

.button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {
  border-color: #1d2022;
  color: #1d2022;
}

.button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {
  border: 1px solid #ffcc00;
  color: #ffcc00;
}

.button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {
  border-color: #806600;
  color: #806600;
}

.button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {
  border: 1px solid #44ac1b;
  color: #44ac1b;
}

.button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {
  border-color: #22560e;
  color: #22560e;
}

.button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {
  border: 1px solid #1b7bac;
  color: #1b7bac;
}

.button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {
  border-color: #0e3e56;
  color: #0e3e56;
}

.button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {
  border: 1px solid #ac1b1b;
  color: #ac1b1b;
}

.button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {
  border-color: #560e0e;
  color: #560e0e;
}

.button-group.hollow.grey .button, .button-group.hollow.grey .button.disabled, .button-group.hollow.grey .button[disabled], .button-group.hollow.grey .button.disabled:hover, .button-group.hollow.grey .button[disabled]:hover, .button-group.hollow.grey .button.disabled:focus, .button-group.hollow.grey .button[disabled]:focus, .button-group.hollow .button.grey, .button-group.hollow .button.grey.disabled, .button-group.hollow .button.grey[disabled], .button-group.hollow .button.grey.disabled:hover, .button-group.hollow .button.grey[disabled]:hover, .button-group.hollow .button.grey.disabled:focus, .button-group.hollow .button.grey[disabled]:focus {
  border: 1px solid #e8ebec;
  color: #e8ebec;
}

.button-group.hollow.grey .button:hover, .button-group.hollow.grey .button:focus, .button-group.hollow .button.grey:hover, .button-group.hollow .button.grey:focus {
  border-color: #6a7b80;
  color: #6a7b80;
}

.button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {
  border-color: transparent;
  background-color: transparent;
}

.button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {
  color: #3a4044;
}

.button-group.clear .button:hover, .button-group.clear .button:focus {
  color: #1d2022;
}

.button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {
  color: #3a4044;
}

.button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {
  color: #1d2022;
}

.button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {
  color: #ffcc00;
}

.button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {
  color: #806600;
}

.button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {
  color: #44ac1b;
}

.button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {
  color: #22560e;
}

.button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {
  color: #1b7bac;
}

.button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {
  color: #0e3e56;
}

.button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {
  color: #ac1b1b;
}

.button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {
  color: #560e0e;
}

.button-group.clear.grey .button, .button-group.clear.grey .button.disabled, .button-group.clear.grey .button[disabled], .button-group.clear.grey .button.disabled:hover, .button-group.clear.grey .button[disabled]:hover, .button-group.clear.grey .button.disabled:focus, .button-group.clear.grey .button[disabled]:focus, .button-group.clear .button.grey, .button-group.clear .button.grey.disabled, .button-group.clear .button.grey[disabled], .button-group.clear .button.grey.disabled:hover, .button-group.clear .button.grey[disabled]:hover, .button-group.clear .button.grey.disabled:focus, .button-group.clear .button.grey[disabled]:focus {
  color: #e8ebec;
}

.button-group.clear.grey .button:hover, .button-group.clear.grey .button:focus, .button-group.clear .button.grey:hover, .button-group.clear .button.grey:focus {
  color: #6a7b80;
}

.button-group.no-gaps .button {
  margin-right: -0.0625rem;
}

.button-group.no-gaps .button + .button {
  border-left-color: transparent;
}

.button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {
  flex-wrap: wrap;
}

.button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
  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;
}

.button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {
  flex: 1 1 0px;
  margin-right: 0;
}

@media print, screen and (min-width: 40em) {
  .button-group.stacked-for-small .button {
    flex: 0 0 auto;
    margin-bottom: 0;
  }
}

@media print, screen and (min-width: 64em) {
  .button-group.stacked-for-medium .button {
    flex: 0 0 auto;
    margin-bottom: 0;
  }
}

@media print, screen and (max-width: 39.99875em) {
  .button-group.stacked-for-small.expanded {
    display: block;
  }
  .button-group.stacked-for-small.expanded .button {
    display: block;
    margin-right: 0;
  }
}

@media print, screen and (max-width: 47.99875em) {
  .button-group.stacked-for-medium.expanded {
    display: block;
  }
  .button-group.stacked-for-medium.expanded .button {
    display: block;
    margin-right: 0;
  }
}

.close-button {
  position: absolute;
  z-index: 10;
  color: #3a4044;
  cursor: pointer;
}

[data-whatinput='mouse'] .close-button {
  outline: 0;
}

.close-button:hover, .close-button:focus {
  color: #000000;
}

.close-button.small {
  right: 0.66rem;
  top: 0.33em;
  font-size: 1.5em;
  line-height: 1;
}

.close-button.medium, .close-button {
  right: 1rem;
  top: 0.5rem;
  font-size: 2em;
  line-height: 1;
}

.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  border-radius: 0;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  background: #ffcc00;
  color: #ffffff;
}

.label.primary {
  background: #ffcc00;
  color: #000000;
}

.label.secondary {
  background: #e8ebec;
  color: #000000;
}

.label.success {
  background: #44ac1b;
  color: #000000;
}

.label.warning {
  background: #1b7bac;
  color: #ffffff;
}

.label.alert {
  background: #ac1b1b;
  color: #ffffff;
}

table {
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0;
}

thead,
tbody,
tfoot {
  border: 1px solid #f2f2f2;
  background-color: #ffffff;
}

caption {
  padding: 0.5rem 0.625rem 0.625rem;
  font-weight: bold;
}

thead {
  background: #f9f9f9;
  color: #000000;
}

tfoot {
  background: #f2f2f2;
  color: #000000;
}

thead tr,
tfoot tr {
  background: transparent;
}

thead th,
thead td,
tfoot th,
tfoot td {
  padding: 0.5rem 0.625rem 0.625rem;
  font-weight: bold;
  text-align: left;
}

tbody th,
tbody td {
  padding: 0.5rem 0.625rem 0.625rem;
}

tbody tr:nth-child(even) {
  border-bottom: 0;
  background-color: #f2f2f2;
}

table.unstriped tbody {
  background-color: #ffffff;
}

table.unstriped tbody tr {
  border-bottom: 0;
  border-bottom: 1px solid #f2f2f2;
  background-color: #ffffff;
}

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

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

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

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

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

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

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

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

.breadcrumbs::before, .breadcrumbs::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.breadcrumbs::after {
  clear: both;
}

.breadcrumbs li {
  float: left;
  font-size: 0.8125rem;
  color: #000000;
  cursor: default;
}

.breadcrumbs li:not(:last-child)::after {
  position: relative;
  margin: 0 0.25rem;
  opacity: 1;
  content: "/";
  color: #000000;
}

.breadcrumbs a {
  color: #ffcc00;
}

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

.breadcrumbs .disabled {
  color: #979797;
  cursor: not-allowed;
}

.callout {
  position: relative;
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(0, 0, 0, 0.25);
  border-radius: 0;
  background-color: white;
  color: #000000;
}

.callout > :first-child {
  margin-top: 0;
}

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

.callout.primary {
  background-color: #fff7d9;
  color: #000000;
}

.callout.secondary {
  background-color: #fcfcfc;
  color: #000000;
}

.callout.success {
  background-color: #e0f9d7;
  color: #000000;
}

.callout.warning {
  background-color: #d7edf9;
  color: #000000;
}

.callout.alert {
  background-color: #f9d7d7;
  color: #000000;
}

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

.card {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  margin-bottom: 1rem;
  border: 1px solid #e8ebec;
  border-radius: 0;
  background: #ffffff;
  box-shadow: none;
  overflow: hidden;
  color: #000000;
}

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

.card-divider {
  display: flex;
  flex: 0 1 auto;
  padding: 1rem;
  background: #e8ebec;
}

.card-divider > :last-child {
  margin-bottom: 0;
}

.card-section {
  flex: 1 0 auto;
  padding: 1rem;
}

.card-section > :last-child {
  margin-bottom: 0;
}

.card-image {
  min-height: 1px;
}

.dropdown-pane {
  position: absolute;
  z-index: 10;
  display: none;
  width: 300px;
  padding: 1rem;
  visibility: hidden;
  border: 1px solid #979797;
  border-radius: 0;
  background-color: #ffffff;
  font-size: 1rem;
}

.dropdown-pane.is-opening {
  display: block;
}

.dropdown-pane.is-open {
  display: block;
  visibility: visible;
}

.dropdown-pane.tiny {
  width: 100px;
}

.dropdown-pane.small {
  width: 200px;
}

.dropdown-pane.large {
  width: 400px;
}

.pagination {
  margin-left: 0;
  margin-bottom: 1rem;
}

.pagination::before, .pagination::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.pagination::after {
  clear: both;
}

.pagination li {
  margin-right: 0.0625rem;
  border-radius: 0;
  font-size: 0.875rem;
  display: none;
}

.pagination li:last-child, .pagination li:first-child {
  display: inline-block;
}

@media print, screen and (min-width: 40em) {
  .pagination li {
    display: inline-block;
  }
}

.pagination a,
.pagination button {
  display: block;
  padding: 0.1875rem 0.625rem;
  border-radius: 0;
  color: #000000;
}

.pagination a:hover,
.pagination button:hover {
  background: none;
}

.pagination .current {
  padding: 0.1875rem 0.625rem;
  background: #000000;
  color: #ffffff;
  cursor: default;
}

.pagination .disabled {
  padding: 0.1875rem 0.625rem;
  color: #979797;
  cursor: not-allowed;
}

.pagination .disabled:hover {
  background: transparent;
}

.pagination .ellipsis::after {
  padding: 0.1875rem 0.625rem;
  content: '\2026';
  color: #000000;
}

.pagination-previous a::before,
.pagination-previous.disabled::before {
  display: inline-block;
  margin-right: 0.5rem;
  content: "«";
}

.pagination-next a::after,
.pagination-next.disabled::after {
  display: inline-block;
  margin-left: 0.5rem;
  content: "»";
}

.accordion {
  margin-left: 0;
  background: #ffffff;
  list-style-type: none;
}

.accordion[disabled] .accordion-title {
  cursor: not-allowed;
}

.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 {
  position: relative;
  display: block;
  padding: 1.25rem 1rem;
  border: none;
  border-bottom: 0;
  font-size: 1.5rem;
  line-height: 1;
  color: #ffcc00;
}

:last-child:not(.is-active) > .accordion-title {
  border-bottom: none;
  border-radius: 0 0 0 0;
}

.accordion-title:hover, .accordion-title:focus {
  background-color: transparent;
}

.accordion-content {
  display: none;
  padding: 1rem;
  border: none;
  border-bottom: 0;
  background-color: #ffffff;
  color: #000000;
}

:last-child > .accordion-content:last-child {
  border-bottom: none;
}

.media-object {
  display: flex;
  margin-bottom: 1rem;
  flex-wrap: nowrap;
}

.media-object img {
  max-width: none;
}

@media print, screen and (max-width: 39.99875em) {
  .media-object.stack-for-small {
    flex-wrap: wrap;
  }
}

.media-object-section {
  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 print, screen and (max-width: 39.99875em) {
  .stack-for-small .media-object-section {
    padding: 0;
    padding-bottom: 1rem;
    flex-basis: 100%;
    max-width: 100%;
  }
  .stack-for-small .media-object-section img {
    width: 100%;
  }
}

.media-object-section.main-section {
  flex: 1 1 0px;
}

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

.tabs::before, .tabs::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.tabs::after {
  clear: both;
}

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

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

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

.tabs.primary {
  background: #ffcc00;
}

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

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

.tabs-title {
  float: left;
}

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

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

.tabs-title > a:hover {
  background: #ffffff;
  color: black;
}

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

.tabs-content {
  border: 1px solid #e8ebec;
  border-top: 0;
  background: #ffffff;
  color: #000000;
  transition: all 0.5s ease;
}

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

.tabs-panel {
  display: none;
  padding: 0;
}

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

.menu {
  padding: 0;
  margin: 0;
  list-style: none;
  position: relative;
  display: flex;
  flex-wrap: wrap;
}

[data-whatinput='mouse'] .menu li {
  outline: 0;
}

.menu a,
.menu .button {
  line-height: 1;
  text-decoration: none;
  display: block;
  padding: 0.7rem 1rem;
}

.menu input,
.menu select,
.menu a,
.menu button {
  margin-bottom: 0;
}

.menu input {
  display: inline-block;
}

.menu, .menu.horizontal {
  flex-wrap: wrap;
  flex-direction: row;
}

.menu.vertical {
  flex-wrap: nowrap;
  flex-direction: column;
}

.menu.expanded li {
  flex: 1 1 0px;
}

.menu.simple {
  align-items: center;
}

.menu.simple li + li {
  margin-left: 1rem;
}

.menu.simple a {
  padding: 0;
}

@media print, screen and (min-width: 40em) {
  .menu.medium-horizontal {
    flex-wrap: wrap;
    flex-direction: row;
  }
  .menu.medium-vertical {
    flex-wrap: nowrap;
    flex-direction: column;
  }
  .menu.medium-expanded li {
    flex: 1 1 0px;
  }
  .menu.medium-simple li {
    flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 48em) {
  .menu.xmedium-horizontal {
    flex-wrap: wrap;
    flex-direction: row;
  }
  .menu.xmedium-vertical {
    flex-wrap: nowrap;
    flex-direction: column;
  }
  .menu.xmedium-expanded li {
    flex: 1 1 0px;
  }
  .menu.xmedium-simple li {
    flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 64em) {
  .menu.large-horizontal {
    flex-wrap: wrap;
    flex-direction: row;
  }
  .menu.large-vertical {
    flex-wrap: nowrap;
    flex-direction: column;
  }
  .menu.large-expanded li {
    flex: 1 1 0px;
  }
  .menu.large-simple li {
    flex: 1 1 0px;
  }
}

@media screen and (min-width: 75em) {
  .menu.xlarge-horizontal {
    flex-wrap: wrap;
    flex-direction: row;
  }
  .menu.xlarge-vertical {
    flex-wrap: nowrap;
    flex-direction: column;
  }
  .menu.xlarge-expanded li {
    flex: 1 1 0px;
  }
  .menu.xlarge-simple li {
    flex: 1 1 0px;
  }
}

@media screen and (min-width: 90em) {
  .menu.xxlarge-horizontal {
    flex-wrap: wrap;
    flex-direction: row;
  }
  .menu.xxlarge-vertical {
    flex-wrap: nowrap;
    flex-direction: column;
  }
  .menu.xxlarge-expanded li {
    flex: 1 1 0px;
  }
  .menu.xxlarge-simple li {
    flex: 1 1 0px;
  }
}

.menu.nested {
  margin-right: 0;
  margin-left: 1rem;
}

.menu.icons a {
  display: flex;
}

.menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {
  display: flex;
}

.menu.icon-left li a {
  flex-flow: row nowrap;
}

.menu.icon-left li a img,
.menu.icon-left li a i,
.menu.icon-left li a svg {
  margin-right: 0.25rem;
}

.menu.icon-right li a {
  flex-flow: row nowrap;
}

.menu.icon-right li a img,
.menu.icon-right li a i,
.menu.icon-right li a svg {
  margin-left: 0.25rem;
}

.menu.icon-top li a {
  flex-flow: column nowrap;
}

.menu.icon-top li a img,
.menu.icon-top li a i,
.menu.icon-top li a svg {
  align-self: stretch;
  margin-bottom: 0.25rem;
  text-align: center;
}

.menu.icon-bottom li a {
  flex-flow: column nowrap;
}

.menu.icon-bottom li a img,
.menu.icon-bottom li a i,
.menu.icon-bottom li a svg {
  align-self: stretch;
  margin-bottom: 0.25rem;
  text-align: center;
}

.menu .is-active > a {
  background: #ffcc00;
  color: #000000;
}

.menu .active > a {
  background: #ffcc00;
  color: #000000;
}

.menu.align-left {
  justify-content: flex-start;
}

.menu.align-right li {
  display: flex;
  justify-content: flex-end;
}

.menu.align-right li .submenu li {
  justify-content: flex-start;
}

.menu.align-right.vertical li {
  display: block;
  text-align: right;
}

.menu.align-right.vertical li .submenu li {
  text-align: right;
}

.menu.align-right .nested {
  margin-right: 1rem;
  margin-left: 0;
}

.menu.align-center li {
  display: flex;
  justify-content: center;
}

.menu.align-center li .submenu li {
  justify-content: flex-start;
}

.menu .menu-text {
  padding: 0.7rem 1rem;
  font-weight: bold;
  line-height: 1;
  color: inherit;
}

.menu-centered > .menu {
  justify-content: center;
}

.menu-centered > .menu li {
  display: flex;
  justify-content: center;
}

.menu-centered > .menu li .submenu li {
  justify-content: flex-start;
}

.no-js [data-responsive-menu] ul {
  display: none;
}

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer;
}

.menu-icon::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background: #ffffff;
  box-shadow: 0 7px 0 #ffffff, 0 14px 0 #ffffff;
  content: '';
}

.menu-icon:hover::after {
  background: #979797;
  box-shadow: 0 7px 0 #979797, 0 14px 0 #979797;
}

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer;
}

.menu-icon.dark::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background: #000000;
  box-shadow: 0 7px 0 #000000, 0 14px 0 #000000;
  content: '';
}

.menu-icon.dark:hover::after {
  background: #3a4044;
  box-shadow: 0 7px 0 #3a4044, 0 14px 0 #3a4044;
}

.is-drilldown {
  position: relative;
  overflow: hidden;
}

.is-drilldown li {
  display: block;
}

.is-drilldown.animate-height {
  transition: height 0.5s;
}

.drilldown a {
  padding: 25px;
  background: #ffcc00;
}

.drilldown .is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  width: 100%;
  background: white;
  transition: transform 0.15s linear;
}

.drilldown .is-drilldown-submenu.is-active {
  z-index: 1;
  display: block;
  transform: translateX(-100%);
}

.drilldown .is-drilldown-submenu.is-closing {
  transform: translateX(100%);
}

.drilldown .is-drilldown-submenu a {
  padding: 25px;
}

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

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

.dropdown.menu > li.opens-left > .is-dropdown-submenu {
  top: 100%;
  right: 0;
  left: auto;
}

.dropdown.menu > li.opens-right > .is-dropdown-submenu {
  top: 100%;
  right: auto;
  left: 0;
}

[data-whatinput='mouse'] .dropdown.menu a {
  outline: 0;
}

.dropdown.menu > li > a {
  padding: 14px 18px;
}

.dropdown.menu > li.is-active > a {
  background: #ffcc00;
  color: #000000;
}

.no-js .dropdown.menu ul {
  display: none;
}

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

.dropdown.menu.vertical > li .is-dropdown-submenu {
  top: 0;
}

.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
  top: 0;
  right: 100%;
  left: auto;
}

.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%;
}

@media print, screen and (min-width: 40em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }
  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
  }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto;
  }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
}

@media print, screen and (min-width: 48em) {
  .dropdown.menu.xmedium-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }
  .dropdown.menu.xmedium-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
  }
  .dropdown.menu.xmedium-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.xmedium-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto;
  }
  .dropdown.menu.xmedium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
}

@media print, screen and (min-width: 64em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }
  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
  }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto;
  }
  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
}

@media screen and (min-width: 75em) {
  .dropdown.menu.xlarge-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }
  .dropdown.menu.xlarge-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
  }
  .dropdown.menu.xlarge-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.xlarge-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto;
  }
  .dropdown.menu.xlarge-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
}

@media screen and (min-width: 90em) {
  .dropdown.menu.xxlarge-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }
  .dropdown.menu.xxlarge-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
  }
  .dropdown.menu.xxlarge-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.xxlarge-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto;
  }
  .dropdown.menu.xxlarge-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
}

.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
  top: 100%;
  right: 0;
  left: auto;
}

.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;
  left: auto;
  margin-top: -6px;
}

.is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
  top: 100%;
  left: auto;
}

.is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
  right: 100%;
  left: auto;
}

.is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%;
}

.is-dropdown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: 1;
  display: none;
  min-width: 200px;
  border: none;
  background: #ffffff;
}

.dropdown .is-dropdown-submenu a {
  padding: 14px 18px;
}

.is-dropdown-submenu > li {
  width: 100%;
}

.is-dropdown-submenu.js-dropdown-active {
  display: block;
}

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

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

.js-off-canvas-overlay.is-visible {
  opacity: 1;
  visibility: visible;
}

.js-off-canvas-overlay.is-closable {
  cursor: pointer;
}

.js-off-canvas-overlay.is-overlay-absolute {
  position: absolute;
}

.js-off-canvas-overlay.is-overlay-fixed {
  position: fixed;
}

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

.off-canvas {
  position: fixed;
  z-index: 12;
  transition: transform 0.5s ease;
  backface-visibility: hidden;
  background: #e8ebec;
}

[data-whatinput='mouse'] .off-canvas {
  outline: 0;
}

.off-canvas.is-transition-push {
  z-index: 12;
}

.off-canvas.is-closed {
  visibility: hidden;
}

.off-canvas.is-transition-overlap {
  z-index: 13;
}

.off-canvas.is-transition-overlap.is-open {
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
}

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

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

[data-whatinput='mouse'] .off-canvas-absolute {
  outline: 0;
}

.off-canvas-absolute.is-transition-push {
  z-index: 12;
}

.off-canvas-absolute.is-closed {
  visibility: hidden;
}

.off-canvas-absolute.is-transition-overlap {
  z-index: 13;
}

.off-canvas-absolute.is-transition-overlap.is-open {
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
}

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

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

.off-canvas-content .off-canvas.position-left {
  transform: translateX(-250px);
}

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

.off-canvas-content.is-open-left.has-transition-push {
  transform: translateX(250px);
}

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

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

.off-canvas-content .off-canvas.position-right {
  transform: translateX(250px);
}

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

.off-canvas-content.is-open-right.has-transition-push {
  transform: translateX(-250px);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

html.is-reveal-open.zf-has-scroll {
  overflow-y: scroll;
}

html.is-reveal-open body {
  overflow-y: hidden;
}

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

.reveal {
  z-index: 1006;
  backface-visibility: hidden;
  display: none;
  padding: 1rem;
  border: none;
  border-radius: 0;
  background-color: #ffffff;
  position: relative;
  top: 100px;
  margin-right: auto;
  margin-left: auto;
  overflow-y: auto;
}

[data-whatinput='mouse'] .reveal {
  outline: 0;
}

@media print, screen and (min-width: 40em) {
  .reveal {
    min-height: 0;
  }
}

.reveal .column {
  min-width: 0;
}

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

@media print, screen and (min-width: 40em) {
  .reveal {
    width: 600px;
    max-width: 75rem;
  }
}

.reveal.collapse {
  padding: 0;
}

@media print, screen and (min-width: 40em) {
  .reveal.tiny {
    width: 30%;
    max-width: 75rem;
  }
}

@media print, screen and (min-width: 40em) {
  .reveal.small {
    width: 50%;
    max-width: 75rem;
  }
}

@media print, screen and (min-width: 40em) {
  .reveal.large {
    width: 90%;
    max-width: 75rem;
  }
}

.reveal.full, .tabs-wrapper .reveal.tabs-align {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  min-height: 100%;
  margin-left: 0;
  border: 0;
  border-radius: 0;
}

@media print, screen and (max-width: 39.99875em) {
  .reveal {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 100%;
    margin-left: 0;
    border: 0;
    border-radius: 0;
  }
}

.reveal.without-overlay {
  position: fixed;
}

.float-left {
  float: left !important;
}

.float-right {
  float: right !important;
}

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

.clearfix::before, .clearfix::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.clearfix::after {
  clear: both;
}

.align-left {
  justify-content: flex-start;
}

.align-right {
  justify-content: flex-end;
}

.align-center {
  justify-content: center;
}

.align-justify {
  justify-content: space-between;
}

.align-spaced {
  justify-content: space-around;
}

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

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

.align-center.vertical.menu > li > a {
  justify-content: center;
}

.align-top {
  align-items: flex-start;
}

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

.align-bottom {
  align-items: flex-end;
}

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

.align-middle {
  align-items: center;
}

.align-self-middle {
  align-self: center;
}

.align-stretch {
  align-items: stretch;
}

.align-self-stretch {
  align-self: stretch;
}

.align-center-middle {
  justify-content: center;
  align-items: center;
  align-content: center;
}

.small-order-1 {
  order: 1;
}

.small-order-2 {
  order: 2;
}

.small-order-3 {
  order: 3;
}

.small-order-4 {
  order: 4;
}

.small-order-5 {
  order: 5;
}

.small-order-6 {
  order: 6;
}

@media print, screen and (min-width: 40em) {
  .medium-order-1 {
    order: 1;
  }
  .medium-order-2 {
    order: 2;
  }
  .medium-order-3 {
    order: 3;
  }
  .medium-order-4 {
    order: 4;
  }
  .medium-order-5 {
    order: 5;
  }
  .medium-order-6 {
    order: 6;
  }
}

@media print, screen and (min-width: 48em) {
  .xmedium-order-1 {
    order: 1;
  }
  .xmedium-order-2 {
    order: 2;
  }
  .xmedium-order-3 {
    order: 3;
  }
  .xmedium-order-4 {
    order: 4;
  }
  .xmedium-order-5 {
    order: 5;
  }
  .xmedium-order-6 {
    order: 6;
  }
}

@media print, screen and (min-width: 64em) {
  .large-order-1 {
    order: 1;
  }
  .large-order-2 {
    order: 2;
  }
  .large-order-3 {
    order: 3;
  }
  .large-order-4 {
    order: 4;
  }
  .large-order-5 {
    order: 5;
  }
  .large-order-6 {
    order: 6;
  }
}

@media screen and (min-width: 75em) {
  .xlarge-order-1 {
    order: 1;
  }
  .xlarge-order-2 {
    order: 2;
  }
  .xlarge-order-3 {
    order: 3;
  }
  .xlarge-order-4 {
    order: 4;
  }
  .xlarge-order-5 {
    order: 5;
  }
  .xlarge-order-6 {
    order: 6;
  }
}

@media screen and (min-width: 90em) {
  .xxlarge-order-1 {
    order: 1;
  }
  .xxlarge-order-2 {
    order: 2;
  }
  .xxlarge-order-3 {
    order: 3;
  }
  .xxlarge-order-4 {
    order: 4;
  }
  .xxlarge-order-5 {
    order: 5;
  }
  .xxlarge-order-6 {
    order: 6;
  }
}

.flex-container {
  display: flex;
}

.flex-child-auto {
  flex: 1 1 auto;
}

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

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

.flex-dir-row {
  flex-direction: row;
}

.flex-dir-row-reverse {
  flex-direction: row-reverse;
}

.flex-dir-column {
  flex-direction: column;
}

.flex-dir-column-reverse {
  flex-direction: column-reverse;
}

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

@media print, screen and (min-width: 48em) {
  .xmedium-flex-container {
    display: flex;
  }
  .xmedium-flex-child-auto {
    flex: 1 1 auto;
  }
  .xmedium-flex-child-grow {
    flex: 1 0 auto;
  }
  .xmedium-flex-child-shrink {
    flex: 0 1 auto;
  }
  .xmedium-flex-dir-row {
    flex-direction: row;
  }
  .xmedium-flex-dir-row-reverse {
    flex-direction: row-reverse;
  }
  .xmedium-flex-dir-column {
    flex-direction: column;
  }
  .xmedium-flex-dir-column-reverse {
    flex-direction: column-reverse;
  }
}

@media print, screen and (min-width: 64em) {
  .large-flex-container {
    display: flex;
  }
  .large-flex-child-auto {
    flex: 1 1 auto;
  }
  .large-flex-child-grow {
    flex: 1 0 auto;
  }
  .large-flex-child-shrink {
    flex: 0 1 auto;
  }
  .large-flex-dir-row {
    flex-direction: row;
  }
  .large-flex-dir-row-reverse {
    flex-direction: row-reverse;
  }
  .large-flex-dir-column {
    flex-direction: column;
  }
  .large-flex-dir-column-reverse {
    flex-direction: column-reverse;
  }
}

@media screen and (min-width: 75em) {
  .xlarge-flex-container {
    display: flex;
  }
  .xlarge-flex-child-auto {
    flex: 1 1 auto;
  }
  .xlarge-flex-child-grow {
    flex: 1 0 auto;
  }
  .xlarge-flex-child-shrink {
    flex: 0 1 auto;
  }
  .xlarge-flex-dir-row {
    flex-direction: row;
  }
  .xlarge-flex-dir-row-reverse {
    flex-direction: row-reverse;
  }
  .xlarge-flex-dir-column {
    flex-direction: column;
  }
  .xlarge-flex-dir-column-reverse {
    flex-direction: column-reverse;
  }
}

@media screen and (min-width: 90em) {
  .xxlarge-flex-container {
    display: flex;
  }
  .xxlarge-flex-child-auto {
    flex: 1 1 auto;
  }
  .xxlarge-flex-child-grow {
    flex: 1 0 auto;
  }
  .xxlarge-flex-child-shrink {
    flex: 0 1 auto;
  }
  .xxlarge-flex-dir-row {
    flex-direction: row;
  }
  .xxlarge-flex-dir-row-reverse {
    flex-direction: row-reverse;
  }
  .xxlarge-flex-dir-column {
    flex-direction: column;
  }
  .xxlarge-flex-dir-column-reverse {
    flex-direction: column-reverse;
  }
}

.hide {
  display: none !important;
}

.invisible {
  visibility: hidden;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.show-for-landscape,
.hide-for-portrait {
  display: block !important;
}

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

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

.hide-for-landscape,
.show-for-portrait {
  display: none !important;
}

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

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

#header {
  background: #ffffff;
  border-bottom: 0.125rem solid #000000;
}

@media print, screen and (min-width: 64em) {
  #header {
    border-bottom: 0.3125rem solid #000000;
    width: 100%;
    z-index: 10;
    top: 0;
  }
}

#header .grid-y {
  height: 5rem;
  justify-content: flex-end;
}

@media print, screen and (min-width: 64em) {
  #header .grid-y {
    height: 10rem;
    padding-top: 1.25rem;
    justify-content: space-between;
  }
}

#header .logo {
  display: block;
  position: relative;
  top: -0.6875rem;
}

#header .logo img {
  width: 12.5rem;
  height: auto;
}

@media print, screen and (min-width: 64em) {
  #header .logo {
    top: -0.5rem;
  }
  #header .logo img {
    width: 18.75rem;
    height: 3.25rem;
  }
}

@media print, screen and (min-width: 64em) {
  #header .logo {
    top: -1rem;
  }
}

#header .main-menu {
  position: relative;
}

#footer {
  background-color: #e8ebec;
  position: relative;
}

#footer .footer-menu {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr auto;
  grid-template-columns: 1fr auto;
  -ms-grid-rows: repeat(4, auto);
  grid-template-rows: repeat(4, auto);
  padding: 1.875rem 20px 1.875rem 20px;
}

@media print, screen and (min-width: 64em) {
  #footer .footer-menu {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
    max-width: 75rem;
    margin-left: auto;
    margin-right: auto;
  }
}

@media print, screen and (min-width: 64em) and (min-width: 40em) {
  #footer .footer-menu {
    padding-right: 3.125rem;
    padding-left: 3.125rem;
  }
}

@media print, screen and (min-width: 64em) and (min-width: 64em) {
  #footer .footer-menu {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

#footer .footer-menu h6 {
  margin-bottom: 0.9375rem;
}

@media print, screen and (min-width: 48em) {
  #footer .footer-menu {
    padding-left: 15px;
    padding-right: 15px;
    -ms-grid-columns: 38% 20% auto;
    grid-template-columns: 38% 20% auto;
    -ms-grid-rows: repeat(3, auto);
    grid-template-rows: repeat(3, auto);
    column-gap: 1.5625rem;
  }
}

@media screen and (min-width: 75em) {
  #footer .footer-menu {
    -ms-grid-columns: 38% 120px auto 60px auto auto;
    grid-template-columns: 38% 120px auto 60px auto auto;
    column-gap: 0;
  }
}

#footer .footer-menu hr {
  margin: 0.5rem 0;
  border-bottom: 1px solid #B5B5B5;
}

#footer .footer-menu .menu:not(.simple) {
  margin-bottom: 1.875rem;
}

#footer .footer-menu .menu li {
  font-size: 0.8125rem;
}

#footer .footer-menu .menu li a {
  padding: 0.5rem 0;
}

#footer .footer-menu .menu li a:hover, #footer .footer-menu .menu li a:focus {
  text-decoration: underline;
}

#footer .footer-menu .align-justify {
  height: 100%;
}

#footer .footer-menu address {
  font-style: inherit;
}

#footer .footer-menu .locations {
  -ms-grid-column: 1;
  grid-column: 1;
  -ms-grid-row: 1 / span 3;
  grid-row: 1 / span 3;
}

#footer .footer-menu .service {
  -ms-grid-column: 1;
  grid-column: 1;
}

@media print, screen and (min-width: 48em) {
  #footer .footer-menu .service {
    -ms-grid-column: 2;
    grid-column: 2;
  }
}

@media screen and (min-width: 75em) {
  #footer .footer-menu .service {
    -ms-grid-column: 3;
    grid-column: 3;
  }
}

#footer .footer-menu .contact {
  -ms-grid-column: 1;
  grid-column: 1;
}

@media print, screen and (min-width: 48em) {
  #footer .footer-menu .contact {
    -ms-grid-column: 3;
    grid-column: 3;
  }
}

@media screen and (min-width: 75em) {
  #footer .footer-menu .contact {
    -ms-grid-column: 5;
    grid-column: 5;
  }
}

#footer .footer-menu .social-media {
  -ms-grid-column: 1;
  grid-column: 1;
  align-self: end;
}

@media print, screen and (min-width: 48em) {
  #footer .footer-menu .social-media {
    -ms-grid-column: 3;
    grid-column: 3;
  }
}

@media screen and (min-width: 75em) {
  #footer .footer-menu .social-media {
    -ms-grid-row: 3;
    grid-row: 3;
    -ms-grid-column: 5;
    grid-column: 5;
  }
}

#footer .footer-menu .social-media li {
  font-size: 2.2rem;
}

#footer .footer-menu .social-media li a:hover, #footer .footer-menu .social-media li a:focus {
  text-decoration: none;
}

#footer .footer-menu .social-media li a:hover:before, #footer .footer-menu .social-media li a:focus:before {
  color: #ffcc00;
}

#footer .footer-menu .emblem {
  -ms-grid-column: 2;
  grid-column: 2;
}

@media print, screen and (min-width: 48em) {
  #footer .footer-menu .emblem {
    -ms-grid-column: 3;
    grid-column: 3;
    justify-self: right;
  }
}

@media screen and (min-width: 75em) {
  #footer .footer-menu .emblem {
    -ms-grid-row: 3;
    grid-row: 3;
    -ms-grid-column: 6;
    grid-column: 6;
  }
}

#footer .copyright {
  background-color: #ffcc00;
  line-height: 3.125rem;
  font-size: 0.8125rem;
}

.breadcrumbs {
  margin-top: 1.5rem;
  margin-bottom: 2.5rem;
}

.breadcrumbs li a {
  color: inherit;
  font-style: italic;
}

@media print, screen and (max-width: 39.99875em) {
  .breadcrumbs li:not(:last-child)::after {
    margin: 0 0.2rem;
  }
}

.page-hero.hero-right {
  overflow: hidden;
}

.page-hero .hero-wrap {
  display: -ms-grid;
  display: grid;
  max-width: 75rem;
  margin-left: auto;
  margin-right: auto;
  padding-top: 1.875rem;
  -ms-grid-columns: 20px 1fr 20px;
  grid-template-columns: 20px 1fr 20px;
}

@media print, screen and (min-width: 40em) {
  .page-hero .hero-wrap {
    -ms-grid-columns: 50px 1fr 50px;
    grid-template-columns: 50px 1fr 50px;
  }
}

@media print, screen and (min-width: 64em) {
  .page-hero .hero-wrap {
    -ms-grid-columns: 15px minmax(0, 2fr) 1fr 15px;
    grid-template-columns: 15px minmax(0, 2fr) 1fr 15px;
  }
}

.page-hero .hero-wrap:before {
  content: "";
  background-color: #ffcc00;
  -ms-grid-column: 2 / span 2;
  grid-column: 2 / span 2;
  -ms-grid-row: 1;
  grid-row: 1;
  width: 100%;
  height: 100%;
  border-top: 1.875rem solid #ffcc00;
}

@media print, screen and (max-width: 39.99875em) {
  .page-hero .hero-wrap:before {
    border-top: 0.9375rem solid #ffcc00;
  }
}

@media print, screen and (min-width: 64em) {
  .page-hero .hero-wrap:before {
    display: none;
  }
}

.page-hero .hero-wrap:after {
  content: "";
  background-color: #ffcc00;
  -ms-grid-column: 3;
  grid-column: 3;
  -ms-grid-row: 1 / span 2;
  grid-row: 1 / span 2;
  width: 100%;
  height: 100%;
}

@media print, screen and (min-width: 64em) {
  .page-hero .hero-wrap:after {
    display: none;
  }
}

.page-hero .hero-wrap .content-wrap {
  position: relative;
  z-index: 1;
  -ms-grid-column: 2;
  grid-column: 2;
}

@media print, screen and (min-width: 64em) {
  .page-hero .hero-wrap .content-wrap {
    -ms-grid-column: 2;
    grid-column: 2;
    -ms-grid-row: 1;
    grid-row: 1;
  }
}

.page-hero .hero-wrap .hero-img-wrap {
  position: relative;
  -ms-grid-column: 1 / span 2;
  grid-column: 1 / span 2;
  -ms-grid-row: 2;
  grid-row: 2;
}

@media print, screen and (max-width: 63.99875em) {
  .page-hero .hero-wrap .hero-img-wrap {
    padding-right: 5%;
    background: #ffcc00;
  }
}

@media print, screen and (min-width: 64em) {
  .page-hero .hero-wrap .hero-img-wrap {
    -ms-grid-column: 2;
    grid-column: 2;
    -ms-grid-row: 1;
    grid-row: 1;
  }
  .page-hero .hero-wrap .hero-img-wrap:before {
    content: "";
    height: 1.875rem;
    width: 90vw;
    top: -1.875rem;
    left: 100px;
    position: absolute;
    z-index: -1;
    background: #ffcc00;
    display: block;
  }
}

.page-hero .hero-wrap .page-hero-image.show-for-large img {
  height: 17.1875rem;
}

.page-hero .hero-wrap .page-hero-image img {
  width: 100%;
  object-fit: cover;
}

.page-hero .hero-wrap .content-wrap {
  -ms-grid-column: 2;
  grid-column: 2;
  z-index: 1;
}

@media print, screen and (min-width: 64em) {
  .page-hero .hero-wrap .content-wrap {
    -ms-grid-column: 2;
    grid-column: 2;
    -ms-grid-row: 1;
    grid-row: 1;
  }
}

.page-hero .hero-wrap aside {
  -ms-grid-column: 2;
  grid-column: 2;
  -ms-grid-row: 3;
  grid-row: 3;
  position: relative;
  margin-bottom: 1rem;
}

@media print, screen and (min-width: 64em) {
  .page-hero .hero-wrap aside {
    margin-bottom: 2rem;
    -ms-grid-column: 3;
    grid-column: 3;
    -ms-grid-row: 1;
    grid-row: 1;
  }
  .page-hero .hero-wrap aside img {
    margin-bottom: 1rem;
  }
  .page-hero .hero-wrap aside img.float-right {
    margin-left: 1rem;
  }
  .page-hero .hero-wrap aside img.float-left {
    margin-right: 1rem;
  }
}

.page-hero .hero-wrap aside > .grid-x {
  position: relative;
  padding-top: 1.5625rem;
  padding-left: 1.25rem;
  padding-bottom: 1.25rem;
  background: #ffcc00;
}

@media print, screen and (min-width: 64em) {
  .page-hero .hero-wrap aside > .grid-x {
    padding-left: 1.875rem;
    min-height: 20rem;
  }
}

.page-hero .hero-wrap aside > .grid-x .cell, .page-hero .hero-wrap aside > .grid-x .info-accordion .accordion-item .accordion-content hr, .info-accordion .accordion-item .accordion-content .page-hero .hero-wrap aside > .grid-x hr {
  padding-bottom: 1.875rem;
}

.page-hero .hero-wrap aside > .grid-x:after {
  content: "";
  position: absolute;
  z-index: -1;
  background: #ffcc00;
  display: block;
  height: 100%;
  width: 50vw;
  top: 0;
  left: 100%;
}

.page-hero .grid-content {
  -ms-grid-column: 2;
  grid-column: 2;
  -ms-grid-row: 5;
  grid-row: 5;
  margin-top: 2.5rem;
}

@media print, screen and (min-width: 64em) {
  .page-hero .grid-content {
    -ms-grid-row: 4;
    grid-row: 4;
    padding-right: 4.6875rem;
  }
}

.page-hero .location-slider-wrap {
  -ms-grid-column: 2;
  grid-column: 2;
  -ms-grid-row: 4;
  grid-row: 4;
}

@media print, screen and (min-width: 64em) {
  .page-hero .location-slider-wrap {
    -ms-grid-column: 3;
    grid-column: 3;
  }
}

.page-hero-slider {
  max-width: 100%;
  z-index: 3;
}

.page-hero.hero-right .sidebar-events {
  padding-right: 1.875rem;
}

.page-hero.hero-right .sidebar-events time.h4 {
  display: block;
  margin-bottom: 0.625rem;
}

.page-hero.hero-right .sidebar-events h4:first-of-type {
  margin-bottom: 0;
}

.page-hero.hero-right .sidebar-events h4:last-of-type {
  margin-bottom: 2.1875rem;
}

@media print, screen and (max-width: 63.99875em) {
  filler {
    background: white;
    -ms-grid-column: 1;
    grid-column: 1;
    -ms-grid-row: 2;
    grid-row: 2;
    z-index: 2;
  }
}

section.hero-image {
  position: relative;
}

section.hero-image img {
  height: 25.625rem;
  object-fit: cover;
  width: 100%;
  object-position: top center;
}

@media print, screen and (min-width: 40em) {
  section.hero-image img {
    height: 23.125rem;
  }
}

@media print, screen and (min-width: 64em) {
  section.hero-image img {
    height: 42.8125rem;
  }
}

.page-hero.sidebar-simple {
  overflow-x: hidden;
  margin-top: -110px;
}

@media print, screen and (min-width: 64em) {
  .page-hero.sidebar-simple {
    margin-top: -210px;
  }
  .page-hero.sidebar-simple .content-wrap {
    padding-top: 10.625rem;
  }
}

.page-hero.sidebar-simple .content-wrap:before,
.page-hero.sidebar-simple .hero-wrap:after,
.page-hero.sidebar-simple .hero-wrap:before {
  display: none;
}

.page-hero.sidebar-simple aside {
  -ms-grid-row: 1;
  grid-row: 1;
  z-index: 1;
}

.page-hero .hero-wrap.hero-left:before {
  -ms-grid-column: 1 / span 2;
  grid-column: 1 / span 2;
}

.page-hero .hero-wrap.hero-left:after {
  -ms-grid-column: 1;
  grid-column: 1;
}

@media print, screen and (min-width: 64em) {
  .page-hero .hero-wrap.hero-left {
    -ms-grid-columns: 15px 1fr 2fr 15px;
    grid-template-columns: 15px 1fr 2fr 15px;
  }
}

.page-hero .hero-wrap.hero-left .hero-img-wrap {
  -ms-grid-column: 2 / span 3;
  grid-column: 2 / span 3;
}

@media print, screen and (max-width: 63.99875em) {
  .page-hero .hero-wrap.hero-left .hero-img-wrap {
    padding-left: 0;
    padding-right: 0;
  }
}

@media print, screen and (min-width: 64em) {
  .page-hero .hero-wrap.hero-left .hero-img-wrap {
    -ms-grid-column: 3;
    grid-column: 3;
  }
  .page-hero .hero-wrap.hero-left .hero-img-wrap:before {
    display: none;
  }
}

.page-hero .hero-wrap.hero-left .content-wrap {
  -ms-grid-column: 2;
  grid-column: 2;
}

@media print, screen and (min-width: 64em) {
  .page-hero .hero-wrap.hero-left .content-wrap {
    -ms-grid-column: 3;
    grid-column: 3;
  }
}

@media print, screen and (min-width: 64em) {
  .page-hero .hero-wrap.hero-left .content-wrap .grid-content {
    padding-left: 3.125rem;
  }
}

.page-hero .hero-wrap.hero-left .content-wrap .grid-content .cell, .page-hero .hero-wrap.hero-left .content-wrap .grid-content .info-accordion .accordion-item .accordion-content hr, .info-accordion .accordion-item .accordion-content .page-hero .hero-wrap.hero-left .content-wrap .grid-content hr {
  margin-bottom: 2.5rem;
}

.page-hero .hero-wrap.hero-left aside.aside-left {
  -ms-grid-column: 2;
  grid-column: 2;
  margin-bottom: 0;
}

.page-hero .hero-wrap.hero-left aside.aside-left:after {
  content: "";
  position: absolute;
  z-index: -1;
  background: #ffcc00;
  display: block;
  height: 100%;
  width: 50vw;
  top: 0;
  box-shadow: 0 0 1px #ffcc00;
  right: 100%;
}

@media print, screen and (min-width: 64em) {
  .page-hero .hero-wrap.hero-left aside.aside-left {
    position: sticky;
    top: 0;
    height: 100vh;
  }
  .page-hero .hero-wrap.hero-left aside.aside-left:before {
    content: "";
    height: 1.875rem;
    width: 90vw;
    top: -1.875rem;
    right: -166%;
    position: absolute;
    z-index: -1;
    background: #ffcc00;
    display: block;
  }
}

.page-hero .hero-wrap.hero-left aside.aside-left > .grid-x {
  padding-left: 0;
  padding-top: 0;
  padding-bottom: 0;
  height: 100%;
  flex-direction: column;
  flex-wrap: nowrap;
}

@media print, screen and (min-width: 64em) {
  .page-hero .hero-wrap.hero-left aside.aside-left > .grid-x {
    overflow-y: auto;
  }
}

.page-hero .hero-wrap.hero-left aside.aside-left > .grid-x:before {
  content: "";
  position: absolute;
  z-index: -1;
  background: #ffcc00;
  display: block;
  height: 100%;
  width: 50vw;
  top: 0;
  box-shadow: 0 0 1px #ffcc00;
  right: 100%;
}

.page-hero .hero-wrap.hero-left aside.aside-left > .grid-x:after {
  display: none;
}

.page-hero .hero-wrap.hero-left aside.aside-left > .grid-x .cell, .page-hero .hero-wrap.hero-left aside.aside-left > .grid-x .info-accordion .accordion-item .accordion-content hr, .info-accordion .accordion-item .accordion-content .page-hero .hero-wrap.hero-left aside.aside-left > .grid-x hr {
  padding-left: 0;
}

.page-hero .hero-wrap.hero-left aside.aside-left > .grid-x .cell.show-for-large, .page-hero .hero-wrap.hero-left aside.aside-left > .grid-x .info-accordion .accordion-item .accordion-content hr.show-for-large, .info-accordion .accordion-item .accordion-content .page-hero .hero-wrap.hero-left aside.aside-left > .grid-x hr.show-for-large {
  padding-bottom: 2.5rem;
  padding-top: 2.5rem;
}

.page-hero .hero-wrap.hero-left aside.aside-left > .grid-x .back-link {
  margin-top: 1.25rem;
  margin-bottom: 1rem;
  padding-bottom: 0;
}

.page-hero .hero-wrap.hero-left aside.aside-left > .grid-x .filter {
  background: transparent;
  padding-bottom: 0;
}

.page-hero .hero-wrap.hero-left aside.aside-left > .grid-x .filter .select.current {
  background: white;
}

.page-hero .hero-wrap.hero-left aside.aside-left > .grid-x .filter li a {
  display: block;
  line-height: 1.875rem;
  padding: 0.5rem 1.5625rem;
}

.page-hero .hero-wrap.hero-left aside.aside-left .menu.vertical {
  max-width: 21.25rem;
}

.page-hero .hero-wrap.hero-left aside.aside-left .menu.vertical li.active > a {
  color: inherit;
  font-weight: bold;
}

.page-hero .hero-wrap.hero-left aside.aside-left .menu.vertical li a {
  padding: 0.9375rem 0;
  border-bottom: 1px solid #ba9203;
}

.page-hero .hero-wrap.hero-left aside.aside-left .menu.vertical li a:hover, .page-hero .hero-wrap.hero-left aside.aside-left .menu.vertical li a:focus {
  text-decoration: underline;
}

.search-placeholder {
  width: 2.8125rem;
  height: 2.8125rem;
}

@media print, screen and (min-width: 64em) {
  .search-placeholder {
    width: 4.375rem;
    height: 4.375rem;
  }
}

.sticky-search .search-wrap {
  position: sticky;
  top: -5.6875rem;
  right: 0;
  z-index: 250;
}

.sticky-search .search-wrap .search .search-trigger {
  z-index: 150;
  width: 2.8125rem;
  height: 2.8125rem;
  transition: width 0.25s ease-out;
}

.sticky-search .search-wrap .search .search-trigger:before {
  font-size: 1.875rem;
  transition: font-size 0.25s ease-out;
}

.sticky-search .search-wrap .search .search-trigger:after {
  display: none;
  height: 0;
  width: 0;
}

@media print, screen and (min-width: 64em) {
  .sticky-search .search-box {
    top: 0;
  }
}

.search-wrap {
  position: relative;
}

.search-wrap .search {
  position: absolute;
  right: 20px;
  top: 2.1875rem;
  z-index: 5;
}

@media print, screen and (min-width: 40em) {
  .search-wrap .search {
    right: 50px;
  }
}

@media print, screen and (min-width: 64em) {
  .search-wrap .search {
    right: 15px;
    top: 5.625rem;
  }
}

.search-wrap .search .search-trigger {
  width: 2.8125rem;
  height: 2.8125rem;
  margin: 0;
  padding: 0;
  position: relative;
  border: none;
  transition: width 0.25s ease-out;
}

.search-wrap .search .search-trigger:after {
  content: "";
  border: 2px solid transparent;
  margin-bottom: -0.125rem;
  position: absolute;
  width: 100%;
  bottom: 0;
  left: 0;
  transition: border-color 0.25s ease-out;
}

@media print, screen and (min-width: 64em) {
  .search-wrap .search .search-trigger:after {
    margin-bottom: -0.3125rem;
    border-width: 0.3125rem;
  }
}

.search-wrap .search .search-trigger.open:after {
  border-color: #ffcc00;
  transition: border-color 0.25s ease-out;
}

@media print, screen and (min-width: 64em) {
  .search-wrap .search .search-trigger {
    width: 4.375rem;
    height: 4.375rem;
  }
}

.search-wrap .search .search-trigger:hover, .search-wrap .search .search-trigger:focus {
  background: #ffcc00;
}

.search-wrap .search .search-trigger:hover:before, .search-wrap .search .search-trigger:focus:before {
  color: #ffffff;
}

.search-wrap .search .search-trigger:before {
  display: block;
  color: #000000;
  font-size: 1.875rem;
}

@media print, screen and (min-width: 64em) {
  .search-wrap .search .search-trigger:before {
    font-size: 2.3125rem;
    transition: font-size 0.25s ease-out;
  }
}

.search-box {
  background: #ffcc00;
  position: absolute;
  top: calc(100% + 2px);
  right: 0;
  width: calc(100vw - 57px);
  max-width: calc(75rem - 30px);
  z-index: 100;
  padding: 0.9375rem 0.625rem 0.3125rem;
  display: none;
}

@media print, screen and (min-width: 40em) {
  .search-box {
    padding: 1.5625rem 1.5625rem 0.625rem;
    width: calc(100vw - 117px);
  }
}

@media print, screen and (min-width: 64em) {
  .search-box {
    top: calc(100% + 5px);
    padding: 2.1875rem 3.125rem 1.4375rem;
    width: calc(100vw - 47px);
  }
}

.search-box input {
  font-size: 1.4375rem;
  line-height: 2.8125rem;
  border: none;
  height: 2.8125rem;
  padding: 0 0.625rem;
}

.search-box input:focus {
  border: none;
  background: white;
}

.search-box input::placeholder {
  color: black;
  font-style: italic;
}

@media print, screen and (min-width: 64em) {
  .search-box input {
    padding: 0 1.5625rem;
    height: 4.375rem;
    line-height: 4.375rem;
    font-size: 1.5625rem;
  }
  .search-box input::placeholder {
    color: #757575;
    font-style: italic;
    font-size: 2.1875rem;
  }
}

.search-box .input-group {
  margin: 0;
}

.search-box button {
  font-size: 1.5625rem;
  padding: 0;
  border: none;
  width: 2.8125rem;
  height: 2.8125rem;
}

.search-box button:hover, .search-box button:focus {
  background: #3a4044;
  color: #ffcc00;
}

.search-box button:before {
  line-height: 2.8125rem;
}

@media print, screen and (min-width: 64em) {
  .search-box button {
    font-size: 2.1875rem;
    width: 4.375rem;
    height: 4.375rem;
    line-height: 4.375rem;
  }
  .search-box button:before {
    line-height: 4.375rem;
  }
}

.search-box a:hover, .search-box a:focus {
  text-decoration: underline;
}

.search-box a:hover:after, .search-box a:focus:after {
  text-decoration: none;
}

.search-box a.search-help-link {
  font-size: 0.75rem;
  display: inline-block;
}

@media print, screen and (min-width: 40em) {
  .search-box a.search-help-link {
    font-size: 0.8125rem;
    margin-top: 0.875rem;
  }
}

.search-box a.icon-e {
  display: inline-block;
  font-size: 1rem;
  padding-top: 15px;
}

.search-box a.icon-e:after {
  font-size: 1.2rem;
  display: inline-block;
}

@media print, screen and (min-width: 40em) {
  .search-box a.icon-e {
    font-size: 1.125rem;
    padding-top: 0.625rem;
    padding-right: 0.3125rem;
  }
  .search-box a.icon-e:after {
    font-size: 1.3rem;
  }
}

@media print, screen and (min-width: 64em) {
  .search-box a.icon-e {
    font-size: 1.25rem;
    padding-top: 10px;
    padding-right: 5.625rem;
  }
  .search-box a.icon-e:after {
    font-size: 1.5rem;
  }
}

.news .content time {
  display: block;
  margin-bottom: 1.125rem;
}

@media print, screen and (max-width: 39.99875em) {
  .news .content .news-wrap {
    margin-bottom: 3.75rem;
  }
}

.news .content .media-object {
  box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.15);
  margin-bottom: 1.25rem;
}

.news .content .media-object .thumbnail {
  height: 9.75rem;
  position: relative;
}

.news .content .media-object .thumbnail:before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  background: transparent;
  transition: background-color 0.25s ease-out;
}

.news .content .media-object .thumbnail:after {
  font-family: "labw-icon";
  content: "\e915";
  font-size: 1.7rem;
  position: absolute;
  bottom: 0;
  right: 1rem;
  opacity: 0;
}

.news .content .media-object .thumbnail img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

.news .content .media-object:hover .thumbnail:before,
.news .content .media-object:focus .thumbnail:before {
  background-color: rgba(255, 204, 0, 0.9);
  transition: background-color 0.25s ease-out;
}

.news .content .media-object:hover .thumbnail:after,
.news .content .media-object:focus .thumbnail:after {
  opacity: 1;
  transition: opacity 0.25s ease-out;
}

@media print, screen and (min-width: 64em) {
  .news .content .media-object {
    margin-bottom: 1.25rem;
  }
}

@media print, screen and (min-width: 64em) {
  .news .content .media-object.stack-for-large {
    flex-wrap: wrap;
  }
  .news .content .media-object.stack-for-large .media-object-section {
    flex-basis: 100%;
    max-width: 100%;
    padding: 0;
  }
}

@media print, screen and (max-width: 63.99875em) {
  .news .content .media-object.stack-for-xmedium {
    flex-wrap: wrap;
  }
  .news .content .media-object.stack-for-xmedium .media-object-section {
    flex-basis: 100%;
    max-width: 100%;
    padding: 0;
  }
}

@media print, screen and (max-width: 63.99875em) {
  .news .content .media-object:not(:first-child) .thumbnail {
    display: none;
  }
}

.news .content .media-object .media-object-section {
  position: relative;
  width: 100%;
}

@media print, screen and (min-width: 64em) {
  .news .content .media-object .media-object-section {
    width: 50%;
  }
}

.news .content .media-object .media-object-section > a {
  display: block;
  height: 100%;
}

.news .content .media-object .media-object-section .text {
  padding: 1rem;
}

.news .content .media-object .media-object-section .text h4 {
  font-size: 1rem;
}

@media print, screen and (min-width: 40em) {
  .news .content .media-object .media-object-section .text {
    padding: 2rem 1rem 1.75rem;
  }
}

.news .content .media-object .media-object-section:first-child {
  padding-right: 0;
}

.news .content .media-object .media-object-section:first-of-type {
  padding-bottom: 0;
  order: 1;
}

@media print, screen and (max-width: 63.99875em) {
  .news .content .media-object .media-object-section:first-of-type {
    display: none;
  }
}

.news .content .media-object.top-news .media-object-section:first-of-type {
  display: block;
  padding-bottom: 0;
  order: 1;
}

@media print, screen and (min-width: 64em) {
  .news .content .media-object.top-news .media-object-section:first-of-type {
    order: 0;
  }
  .news .content .media-object.top-news .media-object-section:first-of-type .thumbnail {
    height: 15.625rem;
  }
}

.news .content .events li {
  position: relative;
  padding-top: 1rem;
  border-bottom: 1px solid #B5B5B5;
  padding-bottom: 0.9375rem;
}

.news .content .events li:first-child {
  border-top: 1px solid #B5B5B5;
}

.news .content .events li a {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 4rem auto;
  grid-template-columns: 4rem auto;
  -ms-grid-rows: auto;
  grid-template-rows: auto;
  justify-items: start;
}

@media print, screen and (min-width: 40em) {
  .news .content .events li a {
    -ms-grid-columns: 5rem auto;
    grid-template-columns: 5rem auto;
  }
}

@media print, screen and (min-width: 64em) {
  .news .content .events li a {
    -ms-grid-columns: 6rem auto;
    grid-template-columns: 6rem auto;
  }
}

.news .content .events li a time {
  font-size: 1.25rem;
  font-weight: bold;
  -ms-grid-column: 1;
  -ms-grid-column-start: 1;
  grid-column-start: 1;
}

@media print, screen and (min-width: 64em) {
  .news .content .events li a time {
    font-size: 1.5625rem;
    line-height: 1.4;
  }
}

.news .content .events li a .wrap {
  -ms-grid-column: 2;
  -ms-grid-column-start: 2;
  grid-column-start: 2;
}

.news .content .events li a .wrap time {
  display: block;
  font-weight: 700;
  margin-bottom: 4px;
}

.news .content .events li a .label.small {
  top: 0;
}

.news .content .link-more a:hover, .news .content .link-more a:focus {
  text-decoration: underline;
}

.tile-grid {
  background-image: url(https://dummyimage.com/1400x450/818181/);
  background-size: cover;
  padding: 1.875rem 0;
}

@media print, screen and (min-width: 64em) {
  .tile-grid {
    padding-top: 1.875rem;
  }
}

@media screen and (min-width: 75em) {
  .tile-grid {
    padding: 5.1875rem 0;
  }
}

.tile-grid .entry {
  position: relative;
  background: #ffffff;
  max-height: 15.4375rem;
  transition: background-color 0.25s ease-out;
  padding: 1.25rem;
  display: block;
  width: 100%;
}

@media print, screen and (max-width: 39.99875em) {
  .tile-grid .entry:not(:last-child) {
    margin-bottom: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .tile-grid .entry {
    margin-bottom: 1.375rem;
  }
  .tile-grid .entry:nth-last-child(-n + 2) {
    margin-bottom: 0;
  }
}

@media screen and (min-width: 75em) {
  .tile-grid .entry:nth-last-child(-n + 4) {
    margin-bottom: 0;
  }
}

.tile-grid .entry .content {
  transition: opacity 0.1s ease-out;
}

.tile-grid .entry .content h6 {
  margin-bottom: 0;
}

@media screen and (min-width: 75em) {
  .tile-grid .entry .content h6 {
    padding-top: 40%;
    margin-bottom: 2.5rem;
  }
}

.tile-grid .entry .content p {
  display: none;
}

@media screen and (min-width: 75em) {
  .tile-grid .entry .content p {
    display: block;
  }
}

.tile-grid .entry:hover, .tile-grid .entry:focus {
  background: #ffcc00;
}

@media screen and (min-width: 75em) {
  .tile-grid .entry:hover .content, .tile-grid .entry:focus .content {
    opacity: 0.1;
  }
}

@media screen and (min-width: 75em) {
  .tile-grid .entry:hover:after, .tile-grid .entry:focus:after {
    font-family: "labw-icon";
    content: "\e914";
    font-size: 3.5rem;
    position: absolute;
    bottom: 0;
    right: 1rem;
    pointer-events: none;
  }
}

.card-link-list .card {
  border: none;
  box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.15);
}

@media print, screen and (min-width: 40em) {
  .card-link-list .card {
    margin-bottom: 0;
    height: 85%;
  }
}

.card-link-list .card img {
  object-fit: cover;
}

.card-link-list .card .card-section {
  padding: 1.53125rem 1.25rem;
}

.card-link-list .card .card-section li {
  padding: 0.1875rem 0;
}

.card-link-list .card .card-section li:after {
  margin-left: 0.625rem;
}

.accordion-special .accordion-horizontal {
  margin: 0;
  width: 100%;
  display: block;
  list-style-type: none;
  height: 28.75rem;
  font-size: 0;
}

.accordion-special .accordion-horizontal .acc-tabs {
  display: inline-block;
  background-color: #3a4044;
  border-right: #ffffff 1px solid;
  height: 100%;
  overflow: hidden;
  position: relative;
  margin: 0;
  font-size: 16px;
  transition: all 0.4s ease-in-out;
}

@media print, screen and (min-width: 40em) {
  .accordion-special .accordion-horizontal .acc-tabs {
    width: 60px;
  }
}

@media print, screen and (min-width: 64em) {
  .accordion-special .accordion-horizontal .acc-tabs {
    width: 70px;
  }
}

.accordion-special .accordion-horizontal .acc-tabs:focus .tab-links {
  transition: background ease-out 0.25s, color ease-out 0.25s;
  background: #ffcc00;
  color: #000000;
  font-weight: 700;
}

.accordion-special .accordion-horizontal .acc-tabs:not(.active) .paragraph {
  visibility: hidden;
}

.accordion-special .accordion-horizontal .acc-tabs .tab-links {
  position: absolute;
  bottom: 0;
  left: 0;
  margin: 0;
  writing-mode: vertical-lr;
  -ms-writing-mode: tb-lr;
  transform: rotate(180deg);
  cursor: pointer;
  cursor: pointer;
  width: 70px;
  height: 100%;
  line-height: 70px;
  padding: 2rem 0;
  transition: background ease-out 0.25s, color ease-out 0.25s;
}

.accordion-special .accordion-horizontal .acc-tabs .tab-links:hover {
  transition: background ease-out 0.25s, color ease-out 0.25s;
  background: #ffcc00;
  color: #000000;
  font-weight: 700;
}

.accordion-special .accordion-horizontal .paragraph {
  height: 100%;
  margin-left: 4.375rem;
  position: relative;
}

.accordion-special .accordion-horizontal .paragraph img {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.accordion-special .accordion-horizontal .paragraph .content-card {
  position: relative;
  z-index: 1;
  padding: 11.875rem 0 0;
  height: 100%;
  background: transparent;
}

@media print, screen and (min-width: 40em) {
  .accordion-special .accordion-horizontal .paragraph .content-card {
    width: 80%;
  }
}

@media print, screen and (min-width: 64em) {
  .accordion-special .accordion-horizontal .paragraph .content-card {
    width: 65%;
    min-width: 21.875rem;
    max-width: 34.375rem;
  }
}

.accordion-special .accordion-horizontal .paragraph .content-card .content {
  background: rgba(255, 255, 255, 0.9);
  height: 100%;
}

@media print, screen and (min-width: 40em) {
  .accordion-special .accordion-horizontal .paragraph .content-card .content {
    padding: 2.125rem 1.75rem;
  }
}

@media print, screen and (min-width: 64em) {
  .accordion-special .accordion-horizontal .paragraph .content-card .content {
    padding: 2.125rem 2.375rem;
  }
}

.accordion-special .accordion-horizontal .paragraph .content-card .content h6 {
  margin-bottom: 2.125rem;
}

.accordion-special div.cell.link-more {
  margin-top: 2rem;
}

.accordion-vertical {
  width: 100%;
}

.accordion-vertical .accordion-item {
  background-color: #3a4044;
}

.accordion-vertical .accordion-item .accordion-title {
  padding: 0.9375rem 1.25rem;
  border-bottom: 1px solid #ffffff;
}

.accordion-vertical .accordion-item.is-active .accordion-title {
  background: #ffcc00;
  color: black;
}

.accordion-vertical .accordion-item.is-active .paragraph {
  height: auto;
}

.accordion-vertical .accordion-item .paragraph {
  position: absolute;
  height: 0;
  background: rgba(255, 255, 255, 0.9);
  bottom: 0;
  left: 0;
  width: 80%;
  padding: 1rem;
}

.accordion-vertical .accordion-item .paragraph p {
  -webkit-line-clamp: 4;
}

.accordion-vertical .accordion-item .accordion-content {
  position: relative;
  background: url(/assets/img/verkehr.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  height: 25rem;
}

.accordion-special .acc-tabs h4,
.accordion-special .accordion-item h4 {
  color: #ffffff;
  font-weight: 300;
  margin-bottom: 0;
}

.accordion-special .acc-tabs.active, .accordion-special .acc-tabs.is-active,
.accordion-special .accordion-item.active,
.accordion-special .accordion-item.is-active {
  background-color: #ffcc00;
  transition: all 0.4s ease-in-out;
}

.accordion-special .acc-tabs.active h4, .accordion-special .acc-tabs.is-active h4,
.accordion-special .accordion-item.active h4,
.accordion-special .accordion-item.is-active h4 {
  color: black;
  font-weight: 700;
  line-height: 1.2;
}

.accordion-special .acc-tabs p,
.accordion-special .accordion-item p {
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {
  .accordion-special .acc-tabs p,
  .accordion-special .accordion-item p {
    -webkit-line-clamp: 4;
  }
}

.hero-slider {
  margin-bottom: 2rem;
  position: relative;
}

@media print, screen and (max-width: 47.99875em) {
  .hero-slider .small-align-center {
    justify-content: center;
  }
}

.hero-slider img {
  object-fit: cover;
}

.hero-slider .main-slider {
  height: 25.625rem;
}

@media print, screen and (min-width: 40em) {
  .hero-slider .main-slider {
    height: 23.125rem;
  }
}

@media print, screen and (min-width: 64em) {
  .hero-slider .main-slider {
    height: 42.8125rem;
  }
}

.hero-slider .main-slider .slick-list,
.hero-slider .main-slider .slick-track,
.hero-slider .main-slider .slick-slide > div,
.hero-slider .main-slider img {
  height: 100%;
}

.hero-slider .main-slider .item {
  position: relative;
}

.hero-slider .main-slider .item img {
  object-fit: cover;
  width: 100%;
  object-position: top center;
}

.hero-slider .main-slider,
.nav-slider {
  opacity: 0;
  transition: opacity 0.25s ease-out;
}

.hero-slider .main-slider.slick-initialized,
.nav-slider.slick-initialized {
  opacity: 1;
  transition: opacity 0.25s ease-out;
}

.hero-slider .main-slider .wrap,
.hero-image .wrap {
  position: absolute;
  top: 0;
  width: 100%;
  padding-top: 6.25rem;
  padding-bottom: 6.25rem;
}

@media print, screen and (min-width: 48em) {
  .hero-slider .main-slider .wrap,
  .hero-image .wrap {
    padding-top: 8.125rem;
    padding-bottom: 1.875rem;
  }
}

@media print, screen and (min-width: 64em) {
  .hero-slider .main-slider .wrap,
  .hero-image .wrap {
    padding-top: 10.625rem;
    padding-bottom: 3rem;
  }
}

.hero-slider .main-slider .wrap .grid-container,
.hero-slider .main-slider .wrap .grid-x,
.hero-image .wrap .grid-container,
.hero-image .wrap .grid-x {
  height: 100%;
}

.hero-slider .main-slider .hero-heading,
.hero-image .hero-heading {
  word-wrap: break-word;
}

@media print, screen and (max-width: 47.99875em) {
  .hero-slider .main-slider .hero-heading,
  .hero-image .hero-heading {
    align-self: center;
    margin: 0 auto;
  }
}

.hero-slider .main-slider .hero-heading h1.h0,
.hero-image .hero-heading h1.h0 {
  font-size: 2.1875rem;
  color: white;
  padding-left: 0.625rem;
  overflow: hidden;
  max-height: 230px;
}

@media print, screen and (min-width: 64em) {
  .hero-slider .main-slider .hero-heading h1.h0,
  .hero-image .hero-heading h1.h0 {
    font-size: 3.125rem;
  }
}

.hero-slider .main-slider .hero-heading h1.h0 span,
.hero-image .hero-heading h1.h0 span {
  background: black;
  line-height: 1.6;
  box-shadow: -10px 0 0 0 black, 10px 0 0 0 black;
}

.hero-slider .main-slider .hero-heading h1.h0 span:after,
.hero-image .hero-heading h1.h0 span:after {
  font-size: 1.25rem;
  position: relative;
  top: -0.3125rem;
  padding-left: 0.5rem;
}

@media print, screen and (min-width: 64em) {
  .hero-slider .main-slider .hero-heading h1.h0 span:after,
  .hero-image .hero-heading h1.h0 span:after {
    font-size: 1.5625rem;
    top: -0.75rem;
  }
}

.hero-slider .main-slider .hero-heading .button,
.hero-image .hero-heading .button {
  margin-top: 0.625rem;
  margin-bottom: 0;
  padding: 0.625rem 1.25rem;
}

@media print, screen and (min-width: 40em) {
  .hero-slider .main-slider .hero-heading .button,
  .hero-image .hero-heading .button {
    margin-top: 1.875rem;
  }
}

.hero-slider .main-slider .hero-heading .button a,
.hero-image .hero-heading .button a {
  color: #ffffff;
}

.slider-navigation {
  position: absolute;
  width: 100%;
  bottom: 0.5rem;
}

.slick-arrow {
  position: absolute;
  bottom: 0;
  font-size: 1.65rem;
  line-height: 1.2;
  color: #979797;
  cursor: pointer;
}

.slick-arrow:hover, .slick-arrow:focus {
  color: #3a4044;
}

.slick-arrow.slick-next {
  right: 0.5rem;
}

@media print, screen and (min-width: 64em) {
  .slick-arrow.slick-next {
    right: 2rem;
  }
}

.slick-arrow.slick-prev {
  left: 0.5rem;
}

@media print, screen and (min-width: 64em) {
  .slick-arrow.slick-prev {
    left: 2rem;
  }
}

.hero-slider .nav-slider {
  margin-top: -2rem;
}

@media print, screen and (min-width: 48em) {
  .hero-slider .nav-slider {
    margin-top: -15rem;
  }
}

@media print, screen and (min-width: 64em) {
  .hero-slider .nav-slider {
    margin-top: -20rem;
  }
}

.nav-slider-wrap {
  position: relative;
}

.nav-slider-wrap .nav-slider {
  background: #ffffff;
  box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.15);
  width: 19.375rem;
  height: 20rem;
}

@media print, screen and (min-width: 64em) {
  .nav-slider-wrap .nav-slider {
    width: 23.75rem;
    height: 25.625rem;
  }
}

.nav-slider-wrap .nav-slider .item {
  padding: 1.25rem 0 1.875rem 1.25rem;
}

@media print, screen and (min-width: 64em) {
  .nav-slider-wrap .nav-slider .item {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 1.75fr 1fr 1rem;
    grid-template-columns: 1.75fr 1fr 1rem;
    -ms-grid-rows: 135px 270px auto;
    grid-template-rows: 135px 270px auto;
    -ms-grid-rows: 135px 170px auto;
    grid-template-rows: 135px 170px auto;
    -ms-grid-columns: 0.8fr 1fr 1rem;
    grid-template-columns: 0.8fr 1fr 1rem;
  }
}

.nav-slider-wrap .nav-slider .item .item-top {
  -ms-grid-column-span: 2;
  -ms-grid-column: 1 / span 3;
  grid-column: 1 / span 3;
  -ms-grid-row: 1;
  -ms-grid-column: 1;
}

.nav-slider-wrap .nav-slider .item .item-top .label {
  position: absolute;
  right: 0;
  top: 0;
}

.nav-slider-wrap .nav-slider .item .item-top .location-img {
  object-fit: cover;
  height: 6.125rem;
  float: right;
  margin-right: -0.0625rem;
}

@media print, screen and (min-width: 40em) {
  .nav-slider-wrap .nav-slider .item .item-top .location-img {
    height: 6.5625rem;
  }
}

@media print, screen and (min-width: 64em) {
  .nav-slider-wrap .nav-slider .item .item-top .location-img {
    height: 7.5rem;
  }
}

.nav-slider-wrap .nav-slider .item .item-bottom {
  -ms-grid-row: 2;
  -ms-grid-column: 2;
}

@media print, screen and (max-width: 63.99875em) {
  .nav-slider-wrap .nav-slider .item .item-bottom {
    display: inline-block;
    width: 11.5625rem;
    margin-top: 1rem;
  }
}

@media print, screen and (max-width: 63.99875em) {
  .nav-slider-wrap .nav-slider .button {
    padding: 0.4rem 1rem;
  }
}

@media print, screen and (min-width: 64em) {
  .nav-slider-wrap .nav-slider .button {
    position: relative;
    width: 50%;
    -ms-grid-column: 2 / 2;
    grid-column: 2 / 2;
    -ms-grid-row: 3 / 3;
    grid-row: 3 / 3;
  }
}

.nav-slider-wrap .nav-slider .location-map {
  width: 8.125rem;
  height: 10rem;
  margin-top: -1px;
  -ms-grid-row: 2;
  -ms-grid-column: 1;
}

.nav-slider-wrap .nav-slider address {
  font-size: 0.75rem;
}

@media print, screen and (min-width: 64em) {
  .nav-slider-wrap .nav-slider address {
    font-size: 0.8125rem;
  }
}

.nav-slider-wrap .nav-slider address li {
  line-height: 1.6;
}

.nav-slider-wrap .nav-slider address li:first-child {
  margin-bottom: 0.375rem;
}

.nav-slider-wrap .slider-navigation {
  bottom: 0;
}

.slick-dots {
  list-style: none;
  display: block;
  text-align: center;
  padding: 0;
  margin: 0;
  width: 100%;
  line-height: 2.5;
}

.slick-dots li {
  position: relative;
  display: inline-block;
  font-size: 0;
  background-color: #9b9fa1;
  margin: 0 0.125rem;
}

.slick-dots li.slick-active, .slick-dots li:hover, .slick-dots li:focus {
  background-color: #3a4044;
}

.slick-dots li button {
  height: 0.1875rem;
  width: 1.25rem;
  cursor: pointer;
}

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}

.slick-list:focus {
  outline: none;
}

.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}

.slick-track:after {
  clear: both;
}

.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}

[dir="rtl"] .slick-slide {
  float: right;
}

.slick-slide img {
  display: block;
}

.slick-slide.slick-loading img {
  display: none;
}

.slick-slide.dragging img {
  pointer-events: none;
}

.slick-initialized .slick-slide {
  display: block;
}

.slick-loading .slick-slide {
  visibility: hidden;
}

.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

.redirect {
  position: fixed;
  height: 100vh;
  width: 100vw;
  z-index: 200;
  background: white;
  top: 0;
}

.redirect .grid-x {
  height: 100vh;
}

.redirect .small-1:after {
  font-size: 3rem;
  position: absolute;
  right: 50px;
}

@media print, screen and (min-width: 40em) {
  .redirect .small-1:after {
    font-size: 7rem;
    position: static;
  }
}

.info-accordion {
  margin-bottom: 1.25rem;
}

@media print, screen and (min-width: 64em) {
  .info-accordion {
    margin-bottom: 2.5rem;
  }
}

.info-accordion a {
  text-decoration: underline;
}

.info-accordion a:hover, .info-accordion a:focus {
  text-decoration: none;
}

.info-accordion .accordion-item {
  margin-bottom: 1.25rem;
}

.info-accordion .accordion-item .accordion-title {
  color: #000000;
  border: 1px solid #000000;
  font-size: 1rem;
  padding: 0.875rem 4rem 0.9375rem 1rem;
  position: relative;
  text-decoration: none;
}

.info-accordion .accordion-item .accordion-title:hover, .info-accordion .accordion-item .accordion-title:focus {
  text-decoration: underline;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-title {
    padding: 1.25rem 6rem 1.25rem 1rem;
  }
}

.info-accordion .accordion-item .accordion-title:before {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  height: 100%;
  width: 3.125rem;
  line-height: 3.125rem !important;
  background: #3a4044;
  text-align: center;
  color: #ffffff;
  font-size: 1.125rem;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-title:before {
    font-size: 1.5625rem;
    width: 4.375rem;
    line-height: 4.375rem !important;
  }
}

.info-accordion .accordion-item .accordion-title h6 {
  font-weight: 100;
  margin-bottom: 0;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-title h6 {
    font-size: 1.5rem;
  }
}

.info-accordion .accordion-item .accordion-content {
  margin-top: 1.25rem;
}

.info-accordion .accordion-item .accordion-content > .grid-x {
  box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.15);
}

.info-accordion .accordion-item .accordion-content > .grid-x:not(:first-child) {
  margin-top: 1.25rem;
}

.info-accordion .accordion-item .accordion-content .visible-content.president {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr;
  grid-template-columns: 1fr;
  -ms-grid-rows: repeat(5, auto);
  grid-template-rows: repeat(5, auto);
  padding: 1.1875rem 0.75rem;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-content .visible-content.president {
    padding: 1.875rem;
    -ms-grid-columns: 1fr 1fr 2fr;
    grid-template-columns: 1fr 1fr 2fr;
  }
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-content .visible-content.president .contact.title, .info-accordion .accordion-item .accordion-content .visible-content.president .contact.job, .info-accordion .accordion-item .accordion-content .visible-content.president .contact.button {
    margin-left: 2.375rem;
  }
}

.info-accordion .accordion-item .accordion-content .visible-content.president .contact.image {
  -ms-grid-column: 1;
  grid-column: 1;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-content .visible-content.president .contact.image {
    justify-self: start;
  }
}

@media print, screen and (max-width: 63.99875em) {
  .info-accordion .accordion-item .accordion-content .visible-content.president .contact.image {
    width: 11.25rem;
  }
}

.info-accordion .accordion-item .accordion-content .visible-content.president .contact.title {
  margin-top: 1.0625rem;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-content .visible-content.president .contact.title {
    -ms-grid-column: 2 / span 3;
    grid-column: 2 / span 3;
  }
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-content .visible-content.president .contact.job {
    -ms-grid-column: 2;
    grid-column: 2;
  }
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-content .visible-content.president .contact.address {
    -ms-grid-column: 3;
    grid-column: 3;
  }
}

.info-accordion .accordion-item .accordion-content .visible-content.president .contact.button {
  -ms-grid-row: 5;
  grid-row: 5;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-content .visible-content.president .contact.button {
    -ms-grid-column: 2;
    grid-column: 2;
    -ms-grid-row: 2;
    grid-row: 2;
    align-self: end;
    margin-bottom: 0;
  }
}

.info-accordion .accordion-item .accordion-content .visible-content {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr;
  grid-template-columns: 1fr;
  -ms-grid-rows: repeat(3, auto);
  grid-template-rows: repeat(3, auto);
  width: 100%;
  padding: 1.1875rem 0.75rem;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-content .visible-content {
    padding: 1.5625rem 1.875rem;
    -ms-grid-columns: 2fr 1fr 1fr;
    grid-template-columns: 2fr 1fr 1fr;
    -ms-grid-rows: repeat(3, auto);
    grid-template-rows: repeat(3, auto);
  }
}

.info-accordion .accordion-item .accordion-content .visible-content .contact.image {
  margin-bottom: 1.25rem;
  width: 7.8125rem;
  -ms-grid-column: 1;
  grid-column: 1;
  -ms-grid-row: 2;
  grid-row: 2;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-content .visible-content .contact.image {
    width: auto;
    -ms-grid-column: 3;
    grid-column: 3;
    -ms-grid-row: 1 / span 2;
    grid-row: 1 / span 2;
    justify-self: end;
    margin-bottom: 0;
  }
}

.info-accordion .accordion-item .accordion-content .visible-content .contact.title {
  -ms-grid-column: 1;
  grid-column: 1;
  -ms-grid-row: 1;
  grid-row: 1;
}

.info-accordion .accordion-item .accordion-content .visible-content .contact.job {
  -ms-grid-column: 1;
  grid-column: 1;
  -ms-grid-row: 3;
  grid-row: 3;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-content .visible-content .contact.job {
    -ms-grid-row: 2;
    grid-row: 2;
  }
}

.info-accordion .accordion-item .accordion-content .visible-content .contact.address {
  margin: 0;
  -ms-grid-column: 1;
  grid-column: 1;
  -ms-grid-row: 4;
  grid-row: 4;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-content .visible-content .contact.address {
    -ms-grid-column: 2;
    grid-column: 2;
    -ms-grid-row: 2;
    grid-row: 2;
  }
}

.info-accordion .accordion-item .accordion-content .visible-content .contact.button {
  -ms-grid-column: 1;
  grid-column: 1;
  margin-bottom: 0;
  -ms-grid-row: 7;
  grid-row: 7;
  z-index: 2;
  width: 5.625rem;
}

.info-accordion .accordion-item .accordion-content .visible-content .contact.button:after {
  content: "+";
  display: inline-block;
  padding-left: 5px;
}

.info-accordion .accordion-item .accordion-content .visible-content .contact.button.show-less {
  margin-bottom: 1rem;
  width: 7rem;
}

.info-accordion .accordion-item .accordion-content .visible-content .contact.button.show-less:after {
  content: "-";
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-content .visible-content .contact.button {
    align-self: end;
    -ms-grid-row: 2;
    grid-row: 2;
  }
  .info-accordion .accordion-item .accordion-content .visible-content .contact.button.show-less {
    -ms-grid-row: 7;
    grid-row: 7;
  }
}

.info-accordion .accordion-item .accordion-content .title {
  position: relative;
}

.info-accordion .accordion-item .accordion-content .title h4 {
  padding: 0.9375rem 0;
}

.info-accordion .accordion-item .accordion-content .address {
  margin-top: auto;
}

.info-accordion .accordion-item .accordion-content .address address {
  margin-bottom: 1.875rem;
}

.info-accordion .accordion-item .accordion-content hr {
  margin: 0.9375rem;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-content hr {
    margin: 1.875rem;
  }
}

.info-accordion .accordion-item .accordion-content h5 {
  margin: 1.875rem 0 1.25rem;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-content h5 {
    margin: 2.5rem 0 1.25rem;
  }
}

.info-accordion .accordion-item .accordion-content h5.heading-workfield {
  margin-left: -1rem;
}

.info-accordion .accordion-item .accordion-content .hidden-content {
  -ms-grid-column: 1 / span 3;
  grid-column: 1 / span 3;
  -ms-grid-row: 6;
  grid-row: 6;
}

.info-accordion .accordion-item .accordion-content .hidden-content h6 {
  margin-bottom: 1.25rem;
}

.info-accordion .accordion-item .accordion-content .hidden-content .shrink.address {
  -ms-grid-row: 4;
  grid-row: 4;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .accordion-content .hidden-content .shrink.address {
    margin-left: 50%;
  }
}

.info-accordion .accordion-item .icon-e {
  margin-bottom: 1.875rem;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .accordion-item .icon-e {
    margin-bottom: 4.375rem;
  }
}

.info-accordion .button.secondary.show-less {
  margin-bottom: 1.875rem;
}

.info-accordion .button.secondary:after {
  font-size: 0.5rem;
  vertical-align: middle;
  margin-left: 0.3rem;
}

.info-accordion .dot-bullet {
  list-style: none;
  margin-bottom: 1.875rem;
  margin-left: 0;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .dot-bullet {
    margin-bottom: 2.5rem;
  }
}

.info-accordion .dot-bullet li {
  position: relative;
  padding-left: 1.2rem;
  margin-bottom: 1.25rem;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .dot-bullet li {
    padding-left: 2rem;
  }
}

.info-accordion .dot-bullet li:before {
  display: block;
  position: absolute;
  left: 0;
  font-size: 1rem;
  line-height: 1.5;
}

@media print, screen and (min-width: 64em) {
  .info-accordion .dot-bullet li:before {
    line-height: 1;
    font-size: 1.5rem;
  }
}

.info-accordion .icon-e:after {
  margin-left: 1rem;
}

.masonry-container {
  column-count: 1;
  column-gap: 1rem;
}

@media print, screen and (min-width: 40em) {
  .masonry-container {
    column-count: 2;
  }
}

@media print, screen and (min-width: 48em) {
  .masonry-container {
    column-count: 3;
  }
}

.masonry-item {
  break-inside: avoid;
  margin-bottom: 1rem;
  margin-bottom: 2.5rem;
}

.masonry-item img {
  margin-bottom: 1.875rem;
}

.masonry-item p {
  font-size: 0.8125rem;
}

.events {
  position: relative;
}

.calendar-open {
  margin-bottom: 1.4375rem;
}

@media print, screen and (min-width: 64em) {
  .calendar-open {
    margin-bottom: 2.1875rem;
  }
}

.calendar-open h6 {
  cursor: pointer;
}

.calendar-open i {
  vertical-align: middle;
}

.calendar-open i.icon-calendar {
  margin-right: 0.5rem;
  display: inline-block;
  font-size: 1.5rem;
}

.calendar-open i.icon-arrow-up:before, .calendar-open i.arrow:after {
  transform: rotate(180deg);
  display: inline-block;
  font-size: 1.5rem;
  margin-left: 0.3rem;
}

.calendar-open.hide-for-large {
  position: relative;
}

.calendar-open.hide-for-large #calendar {
  right: auto;
  left: 0;
}

.calendar-wrap {
  margin-top: 0.75rem;
  max-width: 20rem;
  z-index: 1;
  position: absolute;
  right: 0;
  height: 20.3125rem;
  box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.15);
  background: white;
  width: 20rem;
  height: auto;
}

@media screen and (min-width: 28.75em) {
  .calendar-wrap {
    margin-top: 0.75rem;
    width: 23.75rem;
    max-width: 23.75rem;
  }
  .calendar-wrap .pignose-calendar .pignose-calendar-top .pignose-calendar-top-nav.pignose-calendar-top-prev {
    margin-left: 12%;
  }
  .calendar-wrap .pignose-calendar .pignose-calendar-top .pignose-calendar-top-nav.pignose-calendar-top-next {
    margin-right: 12%;
  }
  .calendar-wrap .pignose-calendar .pignose-calendar-top .pignose-calendar-top-date {
    font-size: 1.5625rem;
  }
  .calendar-wrap .pignose-calendar .pignose-calendar-top .pignose-calendar-top-date {
    top: 0.625rem;
  }
}

.calendar-wrap.static {
  position: static;
  margin-top: 0;
  width: 100%;
  margin-bottom: 3.125rem;
}

.calendar-wrap .close-button {
  right: 0;
  top: 0;
  width: 2.5rem;
  height: 2.5rem;
  background: #3a4044;
  color: #ffffff;
  font-size: 1.6rem;
  z-index: 2;
}

.pignose-calendar-wrapper {
  display: none;
  position: fixed;
  top: 50%;
  left: 50%;
  border-radius: 2px;
  z-index: 50001;
  overflow: hidden;
  -webkit-box-shadow: 0 4px 16px #000000;
  box-shadow: 0 4px 16px #000000;
  -webkit-transform: translate3d(0, 160px, 0);
  transform: translate3d(0, 160px, 0);
  opacity: 0;
  -webkit-transition: opacity 0.3s ease, -webkit-transform 0.5s ease-out;
  transition: opacity 0.3s ease, -webkit-transform 0.5s ease-out;
  transition: opacity 0.3s ease, transform 0.5s ease-out;
  transition: opacity 0.3s ease, transform 0.5s ease-out, -webkit-transform 0.5s ease-out;
}

.pignose-calendar-wrapper.pignose-calendar-wrapper-active {
  opacity: 1;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.pignose-calendar-wrapper .pignose-calendar {
  max-width: auto;
  width: 100%;
  border: none;
}

.pignose-calendar-wrapper .pignose-calendar .pignose-calendar-button-group {
  border-top: 1px solid #e2e2e2;
  overflow: hidden;
}

.pignose-calendar-wrapper .pignose-calendar .pignose-calendar-button-group .pignose-calendar-button {
  width: 50%;
  display: block;
  float: left;
  height: 3.2em;
  text-align: center;
  line-height: 3.2em;
  color: #333333;
  font-weight: 600;
  text-decoration: none;
  -webkit-transition: background-color 0.3s ease;
  transition: background-color 0.3s ease;
}

.pignose-calendar-wrapper .pignose-calendar .pignose-calendar-button-group .pignose-calendar-button:hover, .pignose-calendar-wrapper .pignose-calendar .pignose-calendar-button-group .pignose-calendar-button:focus {
  background-color: #efefef;
}

.pignose-calendar-wrapper .pignose-calendar .pignose-calendar-button-group .pignose-calendar-button-apply {
  color: #ffffff;
  background-color: #2fabb7;
}

.pignose-calendar-wrapper .pignose-calendar .pignose-calendar-button-group .pignose-calendar-button-apply:hover, .pignose-calendar-wrapper .pignose-calendar .pignose-calendar-button-group .pignose-calendar-button-apply:focus {
  background-color: #000000;
}

.pignose-calendar-wrapper-overlay {
  background-color: #000000;
  opacity: 0;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  z-index: 50000;
}

.pignose-calendar-wrapper-overlay.pignose-calendar-wrapper-overlay-active {
  opacity: 0.7;
}

.pignose-calendar {
  background-color: #ffffff;
  border: 1px solid #d8d8d8;
  font-size: 100%;
  margin: 0 auto;
}

.pignose-calendar .pignose-calendar-top {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
  position: relative;
  overflow: hidden;
}

.pignose-calendar .pignose-calendar-top .pignose-calendar-top-date {
  position: absolute;
  top: 0.9375rem;
  left: 0;
  width: 100%;
  height: 100%;
  font-size: 1.25rem;
  font-weight: 700;
  text-align: center;
}

.pignose-calendar .pignose-calendar-top .pignose-calendar-top-year,
.pignose-calendar .pignose-calendar-top .pignose-calendar-top-month {
  display: inline-block;
  text-align: center;
}

.pignose-calendar .pignose-calendar-top .pignose-calendar-top-nav {
  display: inline-block;
  width: 1.6em;
  height: 1.6em;
  position: relative;
  z-index: 5;
  text-decoration: none;
}

.pignose-calendar .pignose-calendar-top .pignose-calendar-top-nav .pignose-calendar-top-value {
  display: inline-block;
  color: #777777;
  font-size: 115%;
  font-weight: 600;
  vertical-align: middle;
  margin-top: -10px;
}

.pignose-calendar .pignose-calendar-top .pignose-calendar-top-nav .pignose-calendar-top-icon {
  color: #000000;
  font-size: 160%;
}

.pignose-calendar .pignose-calendar-top .pignose-calendar-top-nav.pignose-calendar-top-prev {
  float: left;
  margin-left: 3em;
}

.pignose-calendar .pignose-calendar-top .pignose-calendar-top-nav.pignose-calendar-top-prev .pignose-calendar-top-value {
  margin-left: 0.2em;
}

.pignose-calendar .pignose-calendar-top .pignose-calendar-top-nav.pignose-calendar-top-next {
  float: right;
  margin-right: 3em;
}

.pignose-calendar .pignose-calendar-top .pignose-calendar-top-nav.pignose-calendar-top-next .pignose-calendar-top-value {
  margin-right: 0.2em;
}

.pignose-calendar .pignose-calendar-header {
  margin: 0 0.9375rem 0;
  font-weight: 600;
  overflow: hidden;
  border-bottom: 1px solid #B5B5B5;
}

.pignose-calendar .pignose-calendar-header .pignose-calendar-week {
  float: left;
  width: 14.28%;
  height: 2.8em;
  text-align: center;
  line-height: 2.8em;
}

.pignose-calendar .pignose-calendar-header .pignose-calendar-week.pignose-calendar-week-sun,
.pignose-calendar .pignose-calendar-header .pignose-calendar-week.pignose-calendar-week-sat {
  color: #000000;
}

.pignose-calendar .pignose-calendar-header .pignose-calendar-week:last-child {
  width: 14.32%;
}

.pignose-calendar .pignose-calendar-body {
  padding: 0.9375rem;
}

.pignose-calendar .pignose-calendar-body .pignose-calendar-row {
  overflow: hidden;
}

.pignose-calendar .pignose-calendar-unit {
  float: left;
  display: block;
  height: 2.375rem;
  width: 14.28%;
  text-align: center;
}

.pignose-calendar .pignose-calendar-unit:last-child {
  width: 14.32%;
}

.pignose-calendar .pignose-calendar-unit .pignose-calendar-button-schedule-container {
  line-height: 0.5em;
}

.pignose-calendar .pignose-calendar-unit .pignose-calendar-button-schedule-container .pignose-calendar-button-schedule-pin {
  display: inline-block;
  background-color: #777777;
  width: 0.5em;
  height: 0.5em;
  border-radius: 50%;
  margin-right: 0.2em;
}

.pignose-calendar .pignose-calendar-unit .pignose-calendar-button-schedule-container .pignose-calendar-button-schedule-pin:last-child {
  margin-right: 0;
}

.pignose-calendar .pignose-calendar-unit a {
  display: inline-block;
  width: 1.875rem;
  height: 1.875rem;
  border-radius: 50%;
  color: #000000;
  line-height: 1.875rem;
  text-align: center;
  text-decoration: none;
  margin-bottom: 0.5rem;
}

.pignose-calendar .pignose-calendar-unit a:hover, .pignose-calendar .pignose-calendar-unit a:focus {
  text-decoration: underline;
}

.pignose-calendar .pignose-calendar-unit.pignose-calendar-unit-disabled a {
  opacity: 0.5;
  background-color: #efefef;
}

.pignose-calendar .pignose-calendar-unit.pignose-calendar-unit-today a,
.pignose-calendar .pignose-calendar-unit.pignose-calendar-unit-sun.pignose-calendar-unit-today a,
.pignose-calendar .pignose-calendar-unit.pignose-calendar-unit-sat.pignose-calendar-unit-today a {
  background-color: black;
  color: #ffffff;
}

.pignose-calendar .pignose-calendar-unit.pignose-calendar-unit-range a {
  background-color: #efefef;
  border-radius: 0;
  width: 100%;
}

.pignose-calendar .pignose-calendar-unit.pignose-calendar-unit-range.pignose-calendar-unit-disabled a {
  color: #b2b9bb;
  background-color: #e1e1e1;
}

.pignose-calendar .pignose-calendar-unit.pignose-calendar-unit-range.pignose-calendar-unit-range-first a {
  border-top-left-radius: 1.2em;
  border-bottom-left-radius: 1.2em;
}

.pignose-calendar .pignose-calendar-unit.pignose-calendar-unit-range.pignose-calendar-unit-range-last a {
  border-top-right-radius: 1.2em;
  border-bottom-right-radius: 1.2em;
}

.pignose-calendar .pignose-calendar-unit.pignose-calendar-unit-sun a,
.pignose-calendar .pignose-calendar-unit.pignose-calendar-unit-sat a {
  color: #000000;
}

.pignose-calendar.pignose-calendar-default .pignose-calendar-body .pignose-calendar-row .pignose-calendar-unit.pignose-calendar-unit-toggle-active a {
  color: #cccccc !important;
}

.pignose-calendar.pignose-calendar-default.pignose-calendar-reverse .pignose-calendar-body .pignose-calendar-row .pignose-calendar-unit.pignose-calendar-unit-toggle-inactive a {
  color: #cccccc !important;
}

.card-link-list.locations .card {
  margin-bottom: 1.875rem;
  height: calc(100% - 30px);
}

.card-link-list.locations .card:hover .card-section:before, .card-link-list.locations .card:focus .card-section:before {
  background-color: rgba(255, 204, 0, 0.9);
  transition: background-color 0.25s ease-out;
}

.card-link-list.locations .card:hover .card-section:after, .card-link-list.locations .card:focus .card-section:after {
  opacity: 1;
  transition: opacity 0.25s ease-out;
}

.card-link-list.locations .card-section {
  padding: 1rem 1rem 0.8rem;
  position: relative;
}

.card-link-list.locations .card-section h6, .card-link-list.locations .card-section li {
  line-height: 1.75;
}

.card-link-list.locations .card-section h6 {
  margin-bottom: 0;
}

.card-link-list.locations .card-section ul {
  margin-bottom: 0;
}

.card-link-list.locations .card-section:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background: transparent;
  transition: background-color 0.25s ease-out;
}

.card-link-list.locations .card-section:after {
  font-family: "labw-icon";
  content: "\e915";
  font-size: 1.7rem;
  position: absolute;
  bottom: 0;
  right: 1rem;
  opacity: 0;
}

.map-section {
  margin-top: 1.25rem;
  margin-bottom: 3.125rem;
}

.map-section .map {
  padding-top: 33.333%;
  position: relative;
  min-height: 28.125rem;
}

.map-section iframe {
  position: absolute;
  top: 0;
  height: 100%;
}

.tile-grid.presentation {
  background: #e8ebec;
  height: auto;
}

@media print, screen and (min-width: 64em) {
  .tile-grid.presentation {
    padding: 3.125rem 0;
  }
}

@media print, screen and (min-width: 64em) {
  .tile-grid.presentation .cell.entry, .tile-grid.presentation .info-accordion .accordion-item .accordion-content hr.entry, .info-accordion .accordion-item .accordion-content .tile-grid.presentation hr.entry {
    box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.15);
    margin-bottom: 1.8125rem;
  }
  .tile-grid.presentation .cell.entry:nth-last-child(-n + 4), .tile-grid.presentation .info-accordion .accordion-item .accordion-content hr.entry:nth-last-child(-n + 4), .info-accordion .accordion-item .accordion-content .tile-grid.presentation hr.entry:nth-last-child(-n + 4) {
    margin-bottom: 0;
  }
}

@media print, screen and (min-width: 64em) {
  .tile-grid.presentation .cell.entry a, .tile-grid.presentation .info-accordion .accordion-item .accordion-content hr.entry a, .info-accordion .accordion-item .accordion-content .tile-grid.presentation hr.entry a {
    padding: 0 1.6875rem 1.5rem;
  }
}

.tile-grid.presentation .cell.entry .content h6, .tile-grid.presentation .info-accordion .accordion-item .accordion-content hr.entry .content h6, .info-accordion .accordion-item .accordion-content .tile-grid.presentation hr.entry .content h6 {
  margin-bottom: 0;
}

@media print, screen and (min-width: 64em) {
  .tile-grid.presentation .cell.entry .content h6, .tile-grid.presentation .info-accordion .accordion-item .accordion-content hr.entry .content h6, .info-accordion .accordion-item .accordion-content .tile-grid.presentation hr.entry .content h6 {
    padding-top: 73%;
  }
}

.tile-grid.presentation .cell.entry:hover, .tile-grid.presentation .info-accordion .accordion-item .accordion-content hr.entry:hover, .info-accordion .accordion-item .accordion-content .tile-grid.presentation hr.entry:hover, .tile-grid.presentation .cell.entry:focus, .tile-grid.presentation .info-accordion .accordion-item .accordion-content hr.entry:focus, .info-accordion .accordion-item .accordion-content .tile-grid.presentation hr.entry:focus {
  background: #ffcc00;
}

.tile-grid.presentation .cell.entry:hover .content, .tile-grid.presentation .info-accordion .accordion-item .accordion-content hr.entry:hover .content, .info-accordion .accordion-item .accordion-content .tile-grid.presentation hr.entry:hover .content, .tile-grid.presentation .cell.entry:focus .content, .tile-grid.presentation .info-accordion .accordion-item .accordion-content hr.entry:focus .content, .info-accordion .accordion-item .accordion-content .tile-grid.presentation hr.entry:focus .content {
  opacity: 1;
}

.tile-grid.presentation .cell.entry:after, .tile-grid.presentation .info-accordion .accordion-item .accordion-content hr.entry:after, .info-accordion .accordion-item .accordion-content .tile-grid.presentation hr.entry:after {
  content: "";
}

.filter-widget-wrap {
  margin-bottom: 2.8125rem;
}

@media print, screen and (max-width: 63.99875em) {
  .filter-widget-wrap {
    display: -ms-grid;
    display: grid;
    -ms-grid-rows: auto auto;
    grid-template-rows: auto auto;
    margin-bottom: 2.375rem;
  }
  .filter-widget-wrap .filter-container {
    -ms-grid-row: 2;
    grid-row: 2;
  }
  .filter-widget-wrap .tags {
    -ms-grid-row: 1;
    grid-row: 1;
  }
}

@media print, screen and (max-width: 63.99875em) {
  .filter-container {
    background: #e8ebec;
  }
}

.filter-container .filter-dropdown {
  width: 100%;
}

@media print, screen and (min-width: 64em) {
  .filter-container .filter-dropdown {
    position: relative;
    display: flex;
    vertical-align: middle;
  }
}

.filter-container button[type="submit"] {
  margin-top: 0.625rem;
}

@media print, screen and (min-width: 64em) {
  .filter-container button[type="submit"] {
    margin: 0;
    float: right;
  }
}

.filter-container .filter {
  margin-bottom: 0;
}

.arrow:after {
  position: absolute;
  font-size: 1.5rem;
  transform: rotate(180deg);
}

.filter {
  background: #e8ebec;
  cursor: pointer;
  margin-bottom: 1rem;
}

@media print, screen and (min-width: 64em) {
  .filter {
    padding-top: 1.25rem;
    padding-bottom: 1.5rem;
    margin-bottom: 0;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}

.filter > h6 {
  width: 100%;
  text-align: left;
  padding: 0.625rem 1.25rem;
}

.filter h6,
.filter .select,
.filter .select-box-wrap {
  display: inline-block;
}

.filter h6 {
  width: 100%;
  margin-bottom: 0;
  font-weight: bold;
  font-size: 1rem;
  position: relative;
}

.filter h6:after {
  right: 0;
}

@media print, screen and (min-width: 64em) {
  .filter h6 {
    margin-bottom: 0.9375rem;
    padding: 0;
  }
  .filter h6:after {
    content: "";
    display: none;
  }
}

.filter h6.arrow.current:after {
  transform: rotate(0);
  transition: transform 0.3s ease-out;
}

.filter .select {
  line-height: 1.5;
  height: 2.8125rem;
  margin-bottom: 0;
  width: 100%;
  border: 1px solid #B5B5B5;
  background: #ffffff;
  padding: 0.7rem;
  cursor: pointer;
}

.filter .select:after {
  display: inherit;
  right: 0.5rem;
  transition: transform 0.3s ease-out;
}

.filter .select.current {
  background: #ffcc00;
  font-weight: bold;
}

.filter .select.current:after {
  transform: rotate(0);
  transition: transform 0.3s ease-out;
}

@media print, screen and (min-width: 64em) {
  .filter .select {
    width: auto;
    padding-right: 2.2rem;
  }
  .filter .select.current {
    padding-right: 2.075rem;
  }
}

.filter .select-box-wrap {
  position: relative;
}

@media print, screen and (max-width: 63.99875em) {
  .filter .select-box-wrap {
    width: 100%;
    margin-top: 0.625rem;
  }
}

@media print, screen and (min-width: 64em) {
  .filter .select-box-wrap {
    margin-right: 0.3125rem;
    margin-bottom: 0.3125rem;
  }
}

.filter .select-wrap {
  position: absolute;
  width: 100%;
  background: #ffffff;
  z-index: 2;
  top: 100%;
  box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.15);
}

@media print, screen and (min-width: 64em) {
  .filter .select-wrap {
    left: 0;
    width: 22.8125rem;
    max-width: 22.8125rem;
  }
}

.filter .select-wrap ul {
  border-top: 2px solid black;
  margin-bottom: 0;
}

.filter .select-wrap ul li:first-child {
  padding-top: 0.625rem;
}

.filter .select-wrap .option-wrap.checked, .filter .select-wrap .option-wrap:hover:not(.submit) {
  background: #e8ebec;
}

.filter .select-wrap .option-wrap.submit {
  margin-top: 1.25rem;
  padding: 0 1.5625rem;
}

.filter .select-wrap .option-wrap.submit .button {
  width: 100%;
}

.filter .select-wrap [type="checkbox"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.filter .select-wrap [type="checkbox"] + label {
  width: 100%;
  font-size: 1rem;
  margin-left: 0;
  line-height: 1.875rem;
  padding: 0.3rem 1.5625rem;
  margin-bottom: 0;
  margin-right: 0;
}

.filter .select-wrap [type="checkbox"] + label:before {
  display: none;
}

.filter .select-wrap [type="checkbox"]:checked + label:before {
  display: none;
}

.filter .select-wrap [type="checkbox"]:focus + label {
  outline: -webkit-focus-ring-color auto 5px;
  outline-color: -webkit-focus-ring-color;
  outline-style: auto;
  outline-width: 5px;
}

.filter .select-wrap [type="checkbox"] + label:after {
  display: none;
}

.filter .select-wrap [type="checkbox"]:checked + label:before {
  display: none;
}

.filter .select-wrap [type="checkbox"]:checked + label:after {
  color: black;
  display: block;
  font-size: 1.652rem;
  transform: rotate(0deg);
  border: none;
  background: transparent;
  right: 1.625rem;
  left: auto;
  top: 0;
  padding-top: 0.3125rem;
}

.filter-tags {
  padding: 0.625rem 1.25rem;
}

.filter-tags .tag-list .cell, .filter-tags .tag-list .info-accordion .accordion-item .accordion-content hr, .info-accordion .accordion-item .accordion-content .filter-tags .tag-list hr,
.filter-tags #resetFilter {
  margin-top: 0.3125rem;
  margin-bottom: 0.3125rem;
  border: 1px solid #B5B5B5;
  padding: 0.125rem 1.5rem 0.125rem 0.625rem;
  position: relative;
}

.filter-tags .tag-list .cell .close-button, .filter-tags .tag-list .info-accordion .accordion-item .accordion-content hr .close-button, .info-accordion .accordion-item .accordion-content .filter-tags .tag-list hr .close-button,
.filter-tags #resetFilter .close-button {
  position: absolute;
  right: 0.125rem;
  top: 0.1875rem;
  line-height: 0;
  z-index: 0;
  font-size: 1rem;
}

.filter-tags .tag-list .cell .close-button:after, .filter-tags .tag-list .info-accordion .accordion-item .accordion-content hr .close-button:after, .info-accordion .accordion-item .accordion-content .filter-tags .tag-list hr .close-button:after,
.filter-tags #resetFilter .close-button:after {
  font-size: 0.875rem;
  font-weight: bold;
}

.filter-tags #resetFilter {
  padding-left: 0;
  border: none;
  margin-bottom: 0.625rem;
}

.filter-tags #resetFilter a.close-button {
  position: relative;
}

@media print, screen and (min-width: 64em) {
  .filter-tags #resetFilter a.close-button {
    position: absolute;
  }
}

.filter-tags #resetFilter a.close-button:after {
  font-size: 1rem;
  line-height: 1.4;
}

.filter-tags .tag-list {
  margin-bottom: 0;
}

@media print, screen and (max-width: 47.99875em) {
  .filter-result {
    padding-left: 0;
  }
}

.filter-result .cell, .filter-result .info-accordion .accordion-item .accordion-content hr, .info-accordion .accordion-item .accordion-content .filter-result hr {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 33.333333% 66.666666%;
  grid-template-columns: 33.333333% 66.666666%;
  margin-bottom: 1.25rem;
}

@media print, screen and (min-width: 48em) {
  .filter-result .cell, .filter-result .info-accordion .accordion-item .accordion-content hr, .info-accordion .accordion-item .accordion-content .filter-result hr {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    -ms-grid-rows: 1fr;
    grid-template-rows: 1fr;
    height: auto;
    max-height: none;
  }
}

.filter-result .cell .image-wrap, .filter-result .info-accordion .accordion-item .accordion-content hr .image-wrap, .info-accordion .accordion-item .accordion-content .filter-result hr .image-wrap {
  position: relative;
  -ms-grid-column: 1;
  grid-column: 1;
}

.filter-result .cell .image-wrap img, .filter-result .info-accordion .accordion-item .accordion-content hr .image-wrap img, .info-accordion .accordion-item .accordion-content .filter-result hr .image-wrap img {
  width: 100%;
}

.filter-result .cell .heading-wrap, .filter-result .info-accordion .accordion-item .accordion-content hr .heading-wrap, .info-accordion .accordion-item .accordion-content .filter-result hr .heading-wrap {
  -ms-grid-column: 2;
  grid-column: 2;
  padding: 0.625rem;
}

@media print, screen and (min-width: 48em) {
  .filter-result .cell .heading-wrap, .filter-result .info-accordion .accordion-item .accordion-content hr .heading-wrap, .info-accordion .accordion-item .accordion-content .filter-result hr .heading-wrap {
    -ms-grid-column: 1;
    grid-column: 1;
    -ms-grid-row: 2;
    grid-row: 2;
    padding: 0.625rem 0;
    margin-top: 1.5625rem;
  }
}

.pagination {
  display: flex;
  justify-content: space-evenly;
  margin-top: 4.5rem;
}

@media print, screen and (min-width: 64em) {
  .pagination {
    display: block;
    text-align: right;
  }
}

.pagination:before, .pagination:after {
  display: none;
}

.pagination li {
  display: inline-block;
  line-height: 35px;
  text-align: center;
  padding: 0;
  width: auto;
}

.pagination li a {
  background: transparent;
  font-size: 0.8125rem;
}

.pagination li a:hover, .pagination li a:focus {
  text-decoration: underline;
}

.pagination [class^="icon-arrow-"] {
  cursor: pointer;
}

.pagination [class^="icon-arrow-"]:before {
  font-size: 1.5rem;
  vertical-align: middle;
}

.pagination .current {
  background: transparent;
  position: relative;
  color: white;
  margin: 0 0.625rem;
  font-weight: 700;
}

.pagination .current:after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  background: black;
  border-radius: 50%;
  width: 2.1875rem;
  height: 2.1875rem;
  z-index: -1;
}

.pagination .current + .ellipsis {
  margin-left: -.3rem;
}

.pagination .ellipsis + li,
.pagination .ellipsis {
  margin-left: -0.75rem;
}

.pagination .ellipsis:after {
  padding: 0;
}

.module.result-tags {
  margin-top: 1.875rem;
  margin-bottom: 1.875rem;
}

.tabs-wrapper {
  margin-bottom: 1.25rem;
  border-bottom: 1px solid black;
}

@media print, screen and (min-width: 40em) {
  .tabs-wrapper .tabs-align {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
    max-width: 75rem;
    margin-left: auto;
    margin-right: auto;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .tabs-wrapper .tabs-align {
    padding-right: 3.125rem;
    padding-left: 3.125rem;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 64em) {
  .tabs-wrapper .tabs-align {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.tabs-wrapper .tabs {
  border: none;
}

.tabs-wrapper .tabs li {
  width: 50%;
}

.tabs-wrapper .tabs li:first-child {
  width: calc(50% - 10px);
  margin-right: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .tabs-wrapper .tabs li:first-child {
    width: auto;
  }
}

@media print, screen and (min-width: 48em) {
  .tabs-wrapper .tabs li {
    width: auto;
  }
}

.tabs-wrapper .tabs li a {
  text-align: center;
  padding-left: 0;
  padding-right: 0;
}

@media print, screen and (min-width: 48em) {
  .tabs-wrapper .tabs li a {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

.tabs-wrapper .tabs-title.is-active {
  border-bottom: 4px solid black;
  font-weight: bold;
}

.tabs-wrapper .tabs-title a {
  padding-left: 0;
  padding-right: 1rem;
}

.search-results .tabs-content {
  border: none;
}

.search-results .tabs-content .tabs-panel .filter-container > .grid-container {
  padding: 0;
}

.search-results .tabs-content .tabs-panel .content-box-grey.grid-container {
  padding: 0;
}

.search-results .tabs-content .tabs-panel .empty-search {
  font-weight: normal;
  width: 60%;
  margin: 0 auto 12.5rem;
}

.search-results .tabs-content .tabs-panel .archive-location {
  margin-bottom: 1.875rem;
}

.search-results .tabs-content .tabs-panel .archive-location span:before {
  margin-left: 0.75rem;
  font-size: 1.875rem;
  vertical-align: text-bottom;
}

.search-results .tabs-content .tabs-panel .result-item {
  position: relative;
  border-top: 1px solid #B5B5B5;
  margin-bottom: 2.125rem;
}

.search-results .tabs-content .tabs-panel .result-item .label {
  left: 0;
  right: unset;
  margin-top: -0.0625rem;
}

.search-results .tabs-content .tabs-panel .result-item a.h6 {
  display: inline-block;
  margin-bottom: 1rem;
}

.search-results .tabs-content .tabs-panel .result-item a.h6:hover, .search-results .tabs-content .tabs-panel .result-item a.h6:focus {
  text-decoration: underline;
}

.search-results .tabs-content .tabs-panel .result-item .result-content {
  padding-top: 2.8125rem;
  margin-bottom: 0.625rem;
}

@media print, screen and (max-width: 47.99875em) {
  .search-results .tabs-content .tabs-panel .result-item .result-content .result-text {
    padding: 0;
  }
}

.search-results .tabs-content .tabs-panel .result-item .result-content .result-text p {
  margin-bottom: 0;
}

.search-results .tabs-content .tabs-panel .result-item img {
  height: 7.5rem;
  object-fit: cover;
}

.search-results .tabs-content .tabs-panel .result-item .result-image a {
  display: block;
  margin-top: 3rem;
  text-align: right;
  padding-right: 2.5rem;
  position: relative;
}

.search-results .tabs-content .tabs-panel .result-item .result-image a:hover, .search-results .tabs-content .tabs-panel .result-item .result-image a:focus {
  text-decoration: underline;
}

.search-results .tabs-content .tabs-panel .result-item .result-image a:after {
  position: absolute;
  right: 0;
  font-size: 1.5rem;
  vertical-align: middle;
}

.search-results .tabs-content .tabs-panel button.button.hollow,
.search-results .tabs-content .tabs-panel a.button.hollow {
  margin-bottom: 3.125rem;
  position: relative;
  padding-right: 3.4375rem;
}

.search-results .tabs-content .tabs-panel button.button.hollow:after,
.search-results .tabs-content .tabs-panel a.button.hollow:after {
  position: absolute;
  font-size: 1.5rem;
  margin-left: 1rem;
  top: 0.3rem;
  right: 0.3rem;
}

.search-results .tabs-content .tabs-panel .archive-location {
  position: relative;
}

.search-results .tabs-content .tabs-panel .archive-location.tooltip-open > .tooltip.toggle {
  display: block;
}

.search-results .tabs-content .tabs-panel .archive-location.tooltip-open span.icon-information {
  position: relative;
}

.search-results .tabs-content .tabs-panel .archive-location.tooltip-open span.icon-information:after {
  display: block;
  width: 0;
  height: 0;
  border: inset 1.3rem;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #000000 transparent transparent;
  position: absolute;
  top: -1.8rem;
  left: .35rem;
}

.search-results .tabs-content .tabs-panel .tooltip {
  position: absolute;
  bottom: 3.3rem;
  background: #000000;
  color: #ffffff;
  z-index: 102;
  padding: 1rem 0.75rem;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  max-width: 75rem;
  margin-left: auto;
  margin-right: auto;
}

@media print, screen and (min-width: 40em) {
  .search-results .tabs-content .tabs-panel .tooltip {
    padding-right: 3.125rem;
    padding-left: 3.125rem;
  }
}

@media print, screen and (min-width: 64em) {
  .search-results .tabs-content .tabs-panel .tooltip {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 64em) {
  .search-results .tabs-content .tabs-panel .tooltip {
    left: 25%;
    max-width: 35.625rem;
    padding: 1.3125rem 1.9375rem;
  }
}

.search-results .tabs-content .tabs-panel .tooltip.toggle {
  display: none;
}

.search-results .tabs-content .tabs-panel .tooltip ul {
  font-size: 0.8125rem;
  font-weight: normal;
}

.search-results .tabs-content .tabs-panel .tooltip ul li {
  margin-bottom: 1.5rem;
}

.search-results .tabs-content .tabs-panel .tooltip .link-more a {
  color: #ffffff;
  font-size: 1rem;
  font-weight: normal;
}

.search-results .tabs-content .text-center {
  margin-top: 5rem;
}

.result-external {
  margin-top: 5rem;
  margin-bottom: 5rem;
}

.result-external .grid-x {
  background: #ffcc00;
  padding: 1.875rem;
}

.result-external h4 {
  margin-bottom: 3.125rem;
}

.result-external li {
  position: relative;
  border-top: 1px solid #b69100;
}

.result-external li:last-child {
  border-bottom: 1px solid #b69100;
}

.result-external a {
  padding: 1.2rem 1.875rem 1.2rem 0;
}

.result-external a:hover, .result-external a:focus {
  text-decoration: underline;
}

.content-box-grey {
  margin-bottom: 1.25rem;
}

@media print, screen and (min-width: 64em) {
  .content-box-grey {
    margin-bottom: 2.5rem;
  }
}

.content-box-grey .cell, .content-box-grey .info-accordion .accordion-item .accordion-content hr, .info-accordion .accordion-item .accordion-content .content-box-grey hr {
  background: #e8ebec;
}

.content-box-grey .cell.wrap, .content-box-grey .info-accordion .accordion-item .accordion-content hr.wrap, .info-accordion .accordion-item .accordion-content .content-box-grey hr.wrap {
  padding: 0.9375rem 0;
}

@media print, screen and (min-width: 64em) {
  .content-box-grey .cell.wrap, .content-box-grey .info-accordion .accordion-item .accordion-content hr.wrap, .info-accordion .accordion-item .accordion-content .content-box-grey hr.wrap {
    padding: 1.875rem;
  }
}

.content-box-grey p {
  margin-bottom: 0;
}

.content-box-grey a {
  position: relative;
  text-align: left;
  line-height: 22px;
  width: 100%;
  padding-right: 1.5rem;
  margin-top: 1rem;
}

@media print, screen and (min-width: 64em) {
  .content-box-grey a {
    max-width: 21.875rem;
    margin-top: 0;
  }
}

.content-box-grey a:after {
  position: absolute;
  right: 0;
  font-size: 1.5rem;
  margin-right: 0.75rem;
  margin-bottom: 0.5rem;
}

.virtual-catalogue {
  background-color: #e8ebec;
  padding: 50px 0;
}

.catalogue-slider {
  position: relative;
  padding-bottom: 95px;
}

.catalogue-slider h4 {
  margin-bottom: 40px;
}

.catalogue-slider .slick-counter {
  position: absolute;
  top: -10px;
  right: -10px;
  padding-top: 10px;
  padding-right: 10px;
  width: 100px;
  height: 90px;
  font-size: 50px;
  font-weight: bold;
  z-index: 2;
  background-color: #e8ebec;
  text-align: center;
  line-height: 80px;
}

.catalogue-slider .slick-list {
  background-color: #ffffff;
  padding: 60px;
  -webkit-box-shadow: 0px 2px 7px 0px rgba(0, 0, 0, 0.1);
  -moz-box-shadow: 0px 2px 7px 0px rgba(0, 0, 0, 0.1);
  box-shadow: 0px 2px 7px 0px rgba(0, 0, 0, 0.1);
}

.catalogue-slider .slick-prev, .catalogue-slider .slick-next {
  position: absolute;
  bottom: 18px;
  width: 21px;
  height: 20px;
  line-height: 20px;
  color: black;
  overflow: hidden;
  cursor: pointer;
}

.catalogue-slider .slick-prev:before, .catalogue-slider .slick-next:before {
  font-family: "labw-icon";
  font-size: 20px;
}

.catalogue-slider .slick-prev.slick-disabled:before, .catalogue-slider .slick-next.slick-disabled:before {
  color: grey;
}

.catalogue-slider .slick-prev {
  left: 0;
}

.catalogue-slider .slick-prev:before {
  content: '\e90c';
}

.catalogue-slider .slick-next {
  right: 0;
}

.catalogue-slider .slick-next:before {
  content: '\e915';
}

.catalogue-slider .slick-dots li {
  display: none;
  cursor: pointer;
  padding: 5px 55px 5px 10px;
  margin: 0;
  min-width: 150px;
  font-size: 16px;
  background-color: white;
  text-align: left;
  line-height: 35px;
}

.catalogue-slider .slick-dots li button {
  width: 100%;
  height: auto;
  text-align: left;
}

.catalogue-slider .slick-dots li.slick-active {
  background-color: white;
}

.catalogue-slider .slick-dots li.slick-active {
  display: block;
}

.catalogue-slider .slick-dots li:first-child {
  border-top: 0px;
}

.catalogue-slider .slick-dots {
  border: 1px solid #e8ebec;
  display: block;
  padding: 0;
  position: absolute;
  width: 436px;
  margin: 0 auto;
  left: 50%;
  top: 96%;
  top: calc(100% - 50px);
  transform: translateX(-50%);
  z-index: 5;
}

.catalogue-slider .slick-dots.open li {
  display: block;
  border-top: 1px solid #e8ebec;
}

.catalogue-slider .slick-dots.open li.slick-active {
  background-color: #bbbbbb;
}

.catalogue-slider .slick-dots.open li:hover {
  background-color: #979797;
}

.catalogue-slider .slick-dots:before {
  position: absolute;
  top: 11px;
  right: 23px;
  content: "\e90d";
  font-family: "labw-icon";
  z-index: 1;
  transform: rotateZ(-90deg);
  font-size: 26px;
  line-height: 1;
}

.catalogue-slider .lightbox-overlay {
  margin-top: 30px;
}

.reveal img {
  width: 100%;
  height: auto;
}

.reveal .icon-close {
  position: absolute;
  top: 0px;
  right: 0px;
  font-size: 26px;
  background: white;
  width: 32px;
  height: 29px;
  cursor: pointer;
  color: #4a4a4a;
}

.reveal .icon-close:hover, .reveal .icon-close:focus {
  color: black;
}

.lightbox-overlay {
  position: relative;
  margin-bottom: 25px;
}

.lightbox-overlay:hover:before, .lightbox-overlay:focus:before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  background: rgba(255, 204, 0, 0.95);
  pointer-events: none;
}

.lightbox-overlay:hover:after, .lightbox-overlay:focus:after {
  content: "\e900";
  font-family: "labw-icon";
  font-size: 40px;
  line-height: 1;
  position: absolute;
  right: 10px;
  bottom: 9px;
  background: rgba(255, 204, 0, 0.95);
  pointer-events: none;
  background-color: transparent;
}

img.reveal-trigger {
  cursor: pointer;
}

.message {
  height: 40vh;
  text-align: center;
  margin: 6.25rem auto;
}

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

.message h1.status-code {
  font-size: 5rem;
}

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

.message h1.status-code:after {
  font-size: 5rem;
}

.message p {
  margin-bottom: 2.5rem;
}

.reveal-overlay {
  backdrop-filter: blur(2px);
}

#errorModal {
  padding: 0;
  height: auto;
  min-height: 15.625rem;
}

@media print, screen and (min-width: 64em) {
  #errorModal {
    top: 50% !important;
    transform: translateY(-50%);
  }
}

#errorModal:focus {
  outline: none;
}

#errorModal > div {
  text-align: center;
}

#errorModal .error-top {
  background: #ffcc00;
}

#errorModal .error-top .exclamation-mark {
  font-size: 6.25rem;
  font-weight: bold;
}

#errorModal .error-bottom {
  padding: 1.25rem 3.125rem;
}

@media print, screen and (min-width: 40em) {
  #errorModal .error-bottom {
    padding: 2.8125rem 6.25rem;
  }
}

#errorModal .error-bottom p {
  text-align: left;
  font-size: 1.5625rem;
  margin-bottom: 3.125rem;
}

.sitemap ul {
  list-style: none;
  margin-left: 0;
}

.sitemap ul > li {
  font-weight: normal;
}

.sitemap ul li {
  position: relative;
}

.sitemap ul li a {
  padding: 0.5rem 0;
  display: block;
  line-height: 1.2;
}

@media print, screen and (max-width: 63.99875em) {
  .sitemap ul li a {
    border-bottom: 1px solid #B5B5B5;
  }
}

.sitemap > ul > li > ul:not(:first-of-type) {
  margin-top: 2rem;
}

.sitemap > ul > li > ul:not(:first-of-type) > li {
  font-weight: bold;
}

@media print, screen and (max-width: 63.99875em) {
  .sitemap > ul > li > ul > li > ul > li ul {
    margin-left: 1rem;
  }
}

.sitemap > ul > li,
.sitemap > ul > li > ul > li {
  font-weight: bold;
}

@media print, screen and (min-width: 64em) {
  .sitemap > ul {
    margin: 0;
  }
  .sitemap > ul > li {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 1fr 8fr 3fr;
    grid-template-columns: 1fr 8fr 3fr;
  }
  .sitemap > ul > li > ul > li > ul > li > a {
    border-bottom: 1px solid #B5B5B5;
  }
  .sitemap > ul > li > ul > li > ul > li > ul > li a,
  .sitemap > ul > li > ul > li > ul > li + li a {
    border-bottom: 1px solid #B5B5B5;
    position: relative;
  }
  .sitemap > ul > li > ul > li > ul > li > ul > li a:after,
  .sitemap > ul > li > ul > li > ul > li + li a:after {
    right: 0;
    top: 1px;
    border-bottom: 1px solid white;
    content: "";
    position: absolute;
    width: 100px;
    height: 100%;
    cursor: default;
  }
  .sitemap > ul > li > ul > li > ul > li:first-child > a {
    border-bottom: none;
  }
  .sitemap > ul > li > ul > li > ul > li > ul li {
    margin-left: 1.75rem;
  }
  .sitemap > ul > li > ul > li:after {
    content: "";
    display: block;
    position: absolute;
    top: 36px;
    border-bottom: 1px solid #B5B5B5;
    width: 100%;
  }
  .sitemap > ul > li > ul + ul {
    -ms-grid-column: 2;
    grid-column: 2;
    margin-top: 3.125rem;
  }
  .sitemap > ul > li > ul > li {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 30% 70%;
    grid-template-columns: 30% 70%;
  }
}

.registration h4 {
  margin-bottom: 1.5rem;
}

.registration p {
  margin-bottom: 3.5rem;
}

.registration .button {
  margin-bottom: 4.375rem;
}

.registration .grey-content-box {
  background: #e8ebec;
  padding: 1.375rem 2.1875rem;
  margin-top: 1.25rem;
}

.registration .grey-content-box .link-more:last-child {
  margin-top: 0.6875rem;
}

.contact-direct article {
  margin-bottom: 1.875rem;
}

.contact-direct article > p:first-of-type {
  margin-bottom: 3.125rem;
}

.contact-direct article h4.normal {
  margin-bottom: 1.25rem;
}

.location-slider-wrap {
  margin: 0 auto;
}

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

.location-slider-wrap .nav-slider-wrap {
  margin-top: 3.125rem;
  margin-bottom: 2.1875rem;
}

.location-slider-wrap .slider-navigation {
  max-width: 23.75rem;
}

@media print, screen and (max-width: 74.99875em) {
  .location-slider-wrap .slider-navigation {
    max-width: 23.75rem;
    margin-top: 1rem;
  }
}

@media print, screen and (max-width: 63.99875em) {
  .location-slider-wrap .slider-navigation {
    max-width: 19.375rem;
  }
}

@media print, screen and (min-width: 48em) and (max-width: 63.99875em) {
  .location-slider-wrap .slider-navigation .slick-dots li button {
    width: 1rem;
  }
}

@media print, screen and (max-width: 47.99875em) {
  .event-details .page-hero-image {
    height: auto;
  }
}

.event-details time {
  display: block;
  margin-top: 4.0625rem;
}

@media print, screen and (min-width: 64em) {
  .event-details article {
    padding-right: 3.75rem;
  }
}

.event-details .tag-list {
  margin-top: 11.875rem;
}

.event-details aside h4 + * {
  margin-bottom: 2.1875rem;
}

.news-list {
  margin-bottom: 1.25rem;
}

@media print, screen and (min-width: 64em) {
  .news-list {
    margin-bottom: 2.5rem;
  }
}

.news-list .cell, .news-list .info-accordion .accordion-item .accordion-content hr, .info-accordion .accordion-item .accordion-content .news-list hr {
  position: relative;
}

.news-list .cell .label, .news-list .info-accordion .accordion-item .accordion-content hr .label, .info-accordion .accordion-item .accordion-content .news-list hr .label {
  top: 0;
}

.news-list .card a::before,
.news-list .top-news a::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  transition: 1s;
  margin-bottom: 1.875rem;
  z-index: 1;
}

.news-list .top-news a::before {
  margin-bottom: 0;
}

.news-list .card {
  height: 26.75rem;
}

.news-list .card .card-section,
.news-list .card .thumbnail {
  height: 50%;
}

.news-list .card h6 {
  padding-top: 1.75rem;
}

.news-list .card img {
  width: 100%;
  height: 100%;
}

.news-list .card .thumbnail {
  position: relative;
}

.news-list .card .thumbnail:before,
.news-list .top-news .thumbnail:before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  background: transparent;
  transition: background-color 0.25s ease-out;
}

.news-list .card .thumbnail:after,
.news-list .top-news .thumbnail:after {
  font-family: "labw-icon";
  content: "\e915";
  font-size: 1.7rem;
  position: absolute;
  bottom: 0;
  right: 1rem;
  opacity: 0;
}

.news-list .card:hover .thumbnail:before, .news-list .card:focus .thumbnail:before,
.news-list .top-news:hover .thumbnail:before,
.news-list .top-news:focus .thumbnail:before {
  background-color: rgba(255, 204, 0, 0.9);
  transition: background-color 0.25s ease-out;
}

.news-list .card:hover .thumbnail:after, .news-list .card:focus .thumbnail:after,
.news-list .top-news:hover .thumbnail:after,
.news-list .top-news:focus .thumbnail:after {
  opacity: 1;
  transition: opacity 0.25s ease-out;
}

.news-details article time {
  display: block;
  margin-bottom: 0.9375rem;
}

.news-details article img {
  padding-bottom: 2rem;
  padding-left: 0;
}

@media print, screen and (min-width: 64em) {
  .news-details article img.left {
    float: left;
    padding-right: 4.375rem;
  }
  .news-details article img.right {
    float: right;
    padding-left: 4.375rem;
  }
}

.news-details article p > a {
  display: inline-block;
  text-decoration: underline;
}

.news-details article p + a.link-more {
  margin: 1.5625rem 0 3.125rem;
}

.news-details .no-bullet {
  margin-bottom: 5rem;
}

.news-details .no-bullet li {
  position: relative;
  margin: 0;
  border-bottom: 1px solid #B5B5B5;
}

.news-details .no-bullet li:first-child {
  border-top: 1px solid #B5B5B5;
}

.news-details .no-bullet li h6 {
  padding-right: 1.875rem;
}

.news-details .no-bullet li a {
  padding: 1.2rem 1.875rem 1.2rem 0;
  display: block;
}

.news-details .no-bullet li a:after {
  position: absolute;
  right: 0;
  top: 1.2rem;
  font-size: 1.5rem;
}

.tag-list {
  margin-bottom: 1.875rem;
  font-size: 0.8125rem;
}

.tag-list p {
  margin-bottom: 0;
}

.top-news {
  box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.15);
  margin-bottom: 3.125rem;
}

.top-news img {
  height: 20.625rem;
  width: 100%;
  object-fit: cover;
}

.top-news .text {
  padding: 3.75rem 2.1875rem;
}

.top-news .text time {
  display: block;
  margin-bottom: 2.8125rem;
}

.news-archive .card {
  margin-bottom: 1.875rem;
}

.module.two-column-content h4 {
  margin-bottom: 2.0625rem;
}

.module.two-column-content p {
  margin-bottom: 2.8125rem;
}

.module.two-column-content .box {
  background: #e8ebec;
  padding: 1.5rem 1.25rem;
  margin-bottom: 0.9375rem;
}

.module.two-column-content .box + .box {
  margin-top: 1.875rem;
}

.module.two-column-content .box p {
  margin-bottom: 0;
}

.module.two-column-content h6 {
  margin-bottom: 2.0625rem;
}

div.under-constructions {
  margin: 5rem auto;
}

@media print, screen and (min-width: 40em) {
  div.under-constructions {
    margin: 10.625rem auto;
  }
}

div.under-constructions h1 {
  margin-bottom: 1.875rem;
}

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

div.under-constructions ul {
  font-weight: 700;
  margin-bottom: 30px;
}

div.under-constructions ul li {
  margin-bottom: 0.9375rem;
}

.nav-desktop {
  position: relative;
  z-index: 200;
}

.nav-desktop .menu:not(.submenu) > li > a {
  font-size: 1.125rem;
  font-weight: 700;
  padding-right: 2.375rem;
}

.nav-desktop .is-dropdown-submenu {
  width: max-content;
  max-width: 22.5rem;
}

.nav-desktop .submenu {
  border-top: 0.125rem solid #000000;
  box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.15);
}

.nav-desktop .submenu > li + li {
  border-top: 0.0625rem solid rgba(181, 181, 181, 0.2);
}

.nav-desktop .submenu .is-dropdown-submenu-parent.opens-right a {
  padding-right: 2.1875rem;
}

.nav-desktop .submenu .is-dropdown-submenu-parent.opens-left a {
  padding-left: 2.1875rem;
}

.nav-desktop .submenu a {
  font-size: 1rem;
  font-weight: 400;
  width: 100%;
  padding: 0.625rem 1.125rem;
  line-height: 1.5;
}

.nav-desktop .submenu a:hover, .nav-desktop .submenu a:focus {
  background: #e8ebec;
}

.nav-desktop .submenu .submenu {
  margin-top: -0.125rem;
}

.nav-desktop .menu > .opens-right > a:hover:after, .nav-desktop .menu > .opens-right > a:focus:after,
.nav-desktop .menu > .opens-left > a:hover:after,
.nav-desktop .menu > .opens-left > a:focus:after {
  transform: rotate(-90deg);
  font-size: 1.5rem;
  margin-top: -0.8125rem;
  right: 0.5rem;
  display: inline-block;
}

.nav-desktop .menu .is-active > a:after {
  transform: rotate(-90deg);
  font-size: 1.5rem;
  margin-top: -0.8125rem;
  right: 0.5rem;
  display: inline-block;
}

.nav-desktop .menu .menu > .is-dropdown-submenu-parent.opens-right > a:after,
.nav-desktop .menu .menu > .is-dropdown-submenu-parent.opens-left > a:after {
  transform: rotate(0deg);
  font-size: 1.5rem;
  margin-top: -0.8125rem;
  top: 1.5rem;
  right: 0.5rem;
  display: inline-block;
  width: 1.5rem;
}

.nav-desktop .menu .menu > .is-dropdown-submenu-parent.opens-left > a:after {
  transform: rotate(180deg);
  right: auto;
  left: 0.5rem;
}

.nav-desktop li.is-active > a,
.nav-desktop li.is-current > a {
  color: #000000;
  background: #ffcc00;
}

.nav-desktop li.is-active > a:hover, .nav-desktop li.is-active > a:focus,
.nav-desktop li.is-current > a:hover,
.nav-desktop li.is-current > a:focus {
  background: #ffcc00;
  color: #000000;
}

.language-menu a {
  padding-right: 0.5rem;
  padding-left: 0.5rem;
}

@media print, screen and (min-width: 64em) {
  .language-menu li:last-child a {
    padding-right: 0;
  }
}

.global-menu a, .language-menu a {
  font-size: 0.8125rem;
}

.global-menu a:hover:after, .language-menu a:hover:after, .global-menu a:focus:after, .language-menu a:focus:after {
  transform: scaleX(1);
}

.global-menu a:after, .language-menu a:after {
  margin-top: 3px;
  display: block;
  content: "";
  border-bottom: 3px solid black;
  transform: scaleX(0);
}

.global-menu .icon-phone:before, .language-menu .icon-phone:before {
  font-size: 1.4375rem;
  position: absolute;
  left: -8px;
  top: 0.4rem;
}

.global-menu .is-active > a, .language-menu .is-active > a {
  background: none;
  color: #000000;
  font-weight: bold;
}

@media print, screen and (min-width: 64em) {
  .global-menu .is-active > a:after, .language-menu .is-active > a:after {
    margin-top: 3px;
    display: block;
    content: "";
    border-bottom: 3px solid black;
    transform: scaleX(1);
  }
}

.blur {
  backdrop-filter: blur(0px);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: transparent;
  z-index: -1;
}

.navOpen .blur {
  backdrop-filter: blur(2px);
  background: rgba(0, 0, 0, 0.8);
  z-index: 200;
  transition: background 0.25s ease-out, backdrop-filter 0.25s ease-out;
}

.menu-open {
  width: 2.6875rem;
  height: 2.6875rem;
  background: #000000;
  border-radius: 50%;
  position: fixed;
  bottom: 2.5rem;
  right: 1.25rem;
  z-index: 500;
  cursor: pointer;
}

.menu-open:before {
  display: block;
  color: white;
  margin: .652rem;
  font-size: 1.4375rem;
}

@media print, screen and (min-width: 40em) {
  .menu-open {
    width: 4.0625rem;
    height: 4.0625rem;
  }
  .menu-open:before {
    font-size: 2.3125rem;
    margin: 0.875rem;
  }
}

.nav-mobile {
  position: fixed;
  right: -150vw;
  top: 0;
  z-index: 400;
  width: 100%;
  height: 100vh;
  overflow-y: auto;
  background: #ffcc00;
}

.navOpen .nav-mobile {
  right: 0;
  transition: right 0.25s ease-out;
}

@media print, screen and (min-width: 40em) {
  .nav-mobile {
    max-width: 24.0625rem;
  }
}

.nav-mobile .drilldown {
  width: 100%;
}

.nav-mobile .drilldown a {
  padding-top: 1.1875rem;
  padding-bottom: 1.1875rem;
  padding-right: 3.75rem;
  position: relative;
}

.nav-mobile .drilldown > li:not(.global-navs),
.nav-mobile .drilldown .is-drilldown-submenu-item {
  border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.35);
}

.nav-mobile .drilldown > li:not(.global-navs).is-current > a,
.nav-mobile .drilldown .is-drilldown-submenu-item.is-current > a {
  background: #ffcc00;
}

.nav-mobile .drilldown > li.nav-mobile-logo {
  border-width: 0.125rem;
  border-color: #000000;
}

.nav-mobile .is-drilldown-submenu-item > a {
  background: white;
  padding-top: 1.125rem;
  padding-bottom: 1.125rem;
}

.nav-mobile .is-drilldown-submenu-parent > a:after {
  font-size: 1.625rem;
  position: absolute;
  display: block;
  right: 28px;
  top: calc(50% - 13px);
}

.nav-mobile > div > ul > li > a {
  font-weight: 700;
  font-size: 1.125rem;
}

.nav-mobile .js-drilldown-back {
  background: #ffcc00;
  padding: 0.625rem 1.5625rem;
  border-bottom: 0.125rem solid #000000;
}

.nav-mobile .js-drilldown-back .mobile-breadcrumb-parent {
  padding: 0.625rem 1.5625rem 0.625rem 1.875rem;
  font-size: 1.125rem;
  font-weight: 700;
}

.nav-mobile .js-drilldown-back .mobile-breadcrumb-parent:before {
  font-size: 1.5rem;
  position: absolute;
  display: block;
  left: -0.375rem;
  top: calc(50% - 12px);
}

.nav-mobile .mobile-breadcrumb i {
  padding-right: 10px;
}

.nav-mobile .mobile-breadcrumb a {
  padding: 0;
  display: inline-block;
  background: none;
}

.nav-mobile .is-submenu-parent-item {
  display: none;
}

.nav-mobile-logo {
  border-bottom: 0.125rem soliod #000000;
}

.nav-mobile-logo img {
  max-width: 12.5rem;
  height: auto;
  padding: 1.5625rem;
}

.global-navs {
  padding-left: 1.5625rem;
  padding-right: 1.5625rem;
}

.global-navs a:after, .global-navs a:hover:after, .global-navs a:focus:after {
  content: '';
  display: none;
  width: 0;
  height: 0;
  overflow: hidden;
  border: none;
}

.global-navs .global-menu a, .global-navs .language-menu a {
  padding: 0.625rem 0;
}

.global-navs .global-menu .icon-phone:before, .global-navs .language-menu .icon-phone:before {
  position: relative;
  left: -0.1875rem;
  top: 0.3125rem;
  font-size: 1.25rem;
}

.global-navs .language-menu li + li:before {
  content: '|';
  display: inline-block;
}

.global-navs .language-menu li + li a {
  padding-left: 0.5rem;
}

.global-navs .language-menu a {
  padding-left: 0;
  padding-right: 0.5rem;
  display: inline-block;
}

@font-face {
  font-family: "Buenos Aires";
  src: url("/assets/fonts/BuenosAiresWeb-Bold.woff2") format("woff2"), url("/assets/fonts/BuenosAiresWeb-Bold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: "Buenos Aires";
  src: url("/assets/fonts/BuenosAiresWeb-Book.woff2") format("woff2"), url("/assets/fonts/BuenosAiresWeb-Book.woff") format("woff");
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: "Buenos Aires";
  src: url("/assets/fonts/BuenosAiresWeb-BookItalic.woff2") format("woff2"), url("/assets/fonts/BuenosAiresWeb-BookItalic.woff") format("woff");
  font-weight: 400;
  font-style: italic;
}

[type="radio"],
[type="checkbox"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  display: inline;
}

[type="radio"] + label,
[type="checkbox"] + label {
  margin-left: 0;
  line-height: 1.875rem;
  position: relative;
  padding: 0.625rem 0 0 2.8125rem;
  margin-bottom: 1rem;
}

[type="radio"] + label:before,
[type="checkbox"] + label:before {
  content: '';
  height: 1.875rem;
  width: 1.875rem;
  display: inline-block;
  background: white;
  position: absolute;
  left: 0;
  box-shadow: inset 0 0 0px 1px #B5B5B5;
  transition: box-shadow 0.25s ease-out;
}

[type="radio"]:checked + label,
[type="checkbox"]:checked + label {
  position: relative;
}

[type="radio"]:checked + label:before,
[type="checkbox"]:checked + label:before {
  background: white;
  box-shadow: inset 0 0 0px 10px #000000;
  transition: box-shadow 0.25s ease-out, background 0.25s ease-out;
}

[type="radio"]:disabled + label:before,
[type="checkbox"]:disabled + label:before {
  opacity: 0.3;
  background: #E8EBEC;
}

[type="radio"] + label:before {
  content: '';
  border-radius: 100%;
}

[type="checkbox"] + label:after {
  content: '';
  opacity: 0;
  transition: opacity 0.25s 0.25s ease-out;
}

[type="checkbox"]:checked + label:before {
  box-shadow: inset 0 0 0 0.9375rem #000000;
  transition: box-shadow 0.25s ease-out, background 0.25s ease-out;
}

[type="checkbox"]:checked + label:after {
  opacity: 1;
  background: #000000;
  border-left: 0.1875rem solid white;
  border-bottom: 0.1875rem solid white;
  position: absolute;
  top: 1.1875rem;
  left: 0.5rem;
  width: 0.9375rem;
  height: 0.5rem;
  display: block;
  transform: rotate(-45deg);
  transition: opacity 0.25s 0.25s ease-out;
}

@font-face {
  font-family: "labw-icon";
  src: url("/assets/icons/labw-iconfont.ttf?ywtpjt") format("truetype"), url("/assets/icons/labw-iconfont.woff?ywtpjt") format("woff"), url("/assets/icons/labw-iconfont.svg?ywtpjt#labw-iconfont") format("svg");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

[class^="icon-"]:before, .search-wrap .search .search-trigger:before, .hero-slider .main-slider .hero-heading h1.h0 span:after,
.hero-image .hero-heading h1.h0 span:after, .redirect .small-1:after, .info-accordion .accordion-item .accordion-title:before, .info-accordion .button.secondary:after, .info-accordion .dot-bullet li:before, .calendar-wrap .close-button:before, .pignose-calendar .icon-arrow-left,
.pignose-calendar .icon-arrow-right, .arrow:after, .filter .select-wrap [type="checkbox"]:checked + label:after, .filter-tags .tag-list .cell .close-button:after, .filter-tags .tag-list .info-accordion .accordion-item .accordion-content hr .close-button:after, .info-accordion .accordion-item .accordion-content .filter-tags .tag-list hr .close-button:after,
.filter-tags #resetFilter .close-button:after, .search-results .tabs-content .tabs-panel .result-item .result-image a:after, .search-results .tabs-content .tabs-panel button.button.hollow:after,
.search-results .tabs-content .tabs-panel a.button.hollow:after, .content-box-grey a:after, .nav-desktop .menu > .opens-right > a:hover:after, .nav-desktop .menu > .opens-right > a:focus:after,
.nav-desktop .menu > .opens-left > a:hover:after,
.nav-desktop .menu > .opens-left > a:focus:after, .nav-desktop .menu .is-active > a:after, .nav-desktop .menu .menu > .is-dropdown-submenu-parent.opens-right > a:after,
.nav-desktop .menu .menu > .is-dropdown-submenu-parent.opens-left > a:after, .menu-open:before, .nav-mobile .is-drilldown-submenu-parent > a:after, .nav-mobile .js-drilldown-back .mobile-breadcrumb-parent:before, h1:not(.h0):after, .page-content h1.page-heading:after, .icon-e:after, .back-link a:before, .link-more > a:after,
a.link-more:after,
.link-download > a:after,
a.link-download:after,
.link-external > a:after,
a.link-external:after, article a.link-download:after, article a.link-external:after, [class*="icon-"]:before {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: "labw-icon" !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-asterisk:before, .hero-slider .main-slider .hero-heading h1.h0 span:after,
.hero-image .hero-heading h1.h0 span:after, h1:not(.h0):after, .page-content h1.page-heading:after {
  content: "\e920";
}

.icon-plus:before, .info-accordion .accordion-item .accordion-title:before, .info-accordion .button.secondary:after {
  content: "\e900";
}

.icon-at:before {
  content: "\e901";
}

.icon-calendar:before {
  content: "\e902";
}

.icon-check:before, .filter .select-wrap [type="checkbox"]:checked + label:after {
  content: "\e903";
}

.icon-close:before, .sticky-search .search-wrap .search .search-trigger.open:before, .calendar-wrap .close-button:before, .filter-tags .tag-list .cell .close-button:after, .filter-tags .tag-list .info-accordion .accordion-item .accordion-content hr .close-button:after, .info-accordion .accordion-item .accordion-content .filter-tags .tag-list hr .close-button:after,
.filter-tags #resetFilter .close-button:after, .navOpen .menu-open:before {
  content: "\e904";
}

.icon-dot:before, .info-accordion .dot-bullet li:before {
  content: "\e905";
}

.icon-arrow-down-fat:before {
  content: "\e906";
}

.icon-download:before,
.link-download > a:after,
a.link-download:after, article a.link-download:after {
  content: "\e907";
}

.icon-externallink:before, .search-results .tabs-content .tabs-panel .result-item .result-image a:after, .search-results .tabs-content .tabs-panel button.button.hollow:after,
.search-results .tabs-content .tabs-panel a.button.hollow:after, .content-box-grey a:after, .icon-e:after, .result-external a:after,
.link-external a:after, article a.link-external:after {
  content: "\e908";
}

.icon-facebook:before {
  content: "\e909";
}

.icon-information:before {
  content: "\e90a";
}

.icon-instagram:before {
  content: "\e90b";
}

.icon-arrow-left-fat:before, .back-link a:before {
  content: "\e90c";
}

.icon-arrow-left:before, .pignose-calendar .icon-arrow-left:before, .nav-desktop .menu > .opens-right > a:hover:after, .nav-desktop .menu > .opens-right > a:focus:after,
.nav-desktop .menu > .opens-left > a:hover:after,
.nav-desktop .menu > .opens-left > a:focus:after, .nav-desktop .menu .is-active > a:after, .nav-mobile .js-drilldown-back .mobile-breadcrumb-parent:before {
  content: "\e90d";
}

.icon-mandatory:before {
  content: "\e90e";
}

.icon-menu:before, .menu-open:before {
  content: "\e90f";
}

.icon-more:before {
  content: "\e910";
}

.icon-phone:before {
  content: "\e911";
}

.icon-pointer:before {
  content: "\e912";
}

.icon-remove:before, .info-accordion .accordion-item.is-active .accordion-title:before, .info-accordion .button.secondary.show-less:after {
  content: "\e913";
}

.icon-arrow-right-fat:before {
  content: "\e914";
}

.icon-arrow-right-long:before, .redirect .small-1:after, .link-more > a:after,
a.link-more:after {
  content: "\e915";
}

.icon-arrow-right:before, .pignose-calendar .icon-arrow-right:before, .nav-desktop .menu .menu > .is-dropdown-submenu-parent.opens-right > a:after,
.nav-desktop .menu .menu > .is-dropdown-submenu-parent.opens-left > a:after, .nav-mobile .is-drilldown-submenu-parent > a:after {
  content: "\e916";
}

.icon-rss:before {
  content: "\e917";
}

.icon-search:before, .search-wrap .search .search-trigger:before {
  content: "\e918";
}

.icon-share:before {
  content: "\e919";
}

.icon-slider:before {
  content: "\e91a";
}

.icon-sync:before {
  content: "\e91b";
}

.icon-arrwo-up-fat:before {
  content: "\e91c";
}

.icon-twitter:before {
  content: "\e91d";
}

.icon-arrow-up:before, .arrow:after {
  content: "\e91e";
}

.icon-xing:before {
  content: "\e91f";
}

.icon-youtube:before {
  content: "\e921";
}

.button:hover, .button:focus {
  border-color: #3a4044;
  color: #3a4044;
}

.button.primary:hover, .button.primary:focus {
  border-color: #3a4044;
  color: #3a4044;
  background: white;
}

.button.secondary {
  color: #000000;
}

.button.secondary:hover, .button.secondary:focus {
  border-color: #ffcc00;
  color: #ffcc00;
  background: white;
}

.button.alert {
  color: white;
}

.button.alert:hover, .button.alert:focus {
  border-color: #ac1b1b;
  color: #ac1b1b;
  background: white;
}

.button.success {
  color: white;
}

.button.success:hover, .button.success:focus {
  border-color: #44ac1b;
  color: #44ac1b;
  background: white;
}

.button.warning {
  color: white;
}

.button.warning:hover, .button.warning:focus {
  border-color: #1b7bac;
  color: #1b7bac;
  background: white;
}

.button.hollow:hover, .button.hollow:focus, .button.hollow.primary:hover, .button.hollow.primary:focus {
  color: white;
  background: #3a4044;
}

.button.hollow.secondary:hover, .button.hollow.secondary:focus {
  color: white;
  background: #ffcc00;
  border-color: #ffcc00;
}

.button.large {
  font-size: 1.125rem;
  padding: 0;
  width: 15.625rem;
  line-height: 3.75rem;
}

@media print, screen and (min-width: 64em) {
  .button.large {
    width: 23.75rem;
    line-height: 5.625rem;
  }
}

.button.large:before {
  padding-right: 0.625rem;
  position: relative;
  top: 0.125rem;
}

.button.large.icon-phone:before {
  font-size: 1.5625rem;
  top: 0.4375rem;
}

.dates-button button {
  margin-right: 0.3125rem;
}

.dates-button button:last-child {
  margin-right: 0;
}

.dates-button button.secondary:hover,
.dates-button button.secondary:focus {
  background: #ffcc00;
  color: black;
}

h1:not(.h0) {
  margin-bottom: 1.125rem;
}

@media print, screen and (min-width: 64em) {
  h1:not(.h0) {
    margin-bottom: 3.125rem;
  }
}

h1:not(.h0):after {
  vertical-align: text-top;
  margin-left: 0.625rem;
  font-size: 1rem;
}

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

h2,
h5 {
  margin-bottom: 1.25rem;
}

@media print, screen and (min-width: 40em) {
  h2,
  h5 {
    margin-bottom: 1.4375rem;
  }
}

@media print, screen and (min-width: 64em) {
  h2,
  h5 {
    margin-bottom: 2.1875rem;
  }
}

.normal {
  font-weight: normal;
}

.italic {
  font-style: italic;
}

section.module {
  margin-bottom: 1.875rem;
}

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

address {
  font-style: inherit;
}

.label {
  position: absolute;
  color: #000000;
  background-color: #ffcc00;
  padding: 0 1rem;
  width: auto;
  right: 0;
  font-size: 0.8125rem;
  line-height: 1.75rem;
}

@media print, screen and (min-width: 48em) {
  .label {
    font-size: 1rem;
    line-height: 2.25rem;
  }
  .label.small {
    font-size: 0.8125rem;
    line-height: 1.75rem;
  }
}

.page-content h1.page-heading:after {
  font-size: 1.65rem;
  vertical-align: super;
  margin-left: 0.652rem;
}

.wrap {
  float: left;
}

.wrap .sidebar {
  float: right;
}

.icon-e:after {
  font-size: 1.5rem;
  vertical-align: text-bottom;
}

.pos-rel {
  position: relative;
}

.back-link {
  margin-bottom: 2.9375rem;
}

.back-link a:before {
  font-size: 1.5rem;
  line-height: 1;
  margin-right: 0.625rem;
  position: relative;
  top: 0.25rem;
  display: inline-block;
}

.back-link:hover, .back-link:focus {
  text-decoration: underline;
}

figure {
  margin-bottom: 1rem;
}

@media print, screen and (min-width: 48em) {
  figure.float-left-large, figure.float-right-large {
    width: 50%;
  }
  figure.float-left-large img, figure.float-right-large img {
    width: 100%;
  }
  figure.float-left-large {
    float: left !important;
    margin-right: 2rem;
  }
  figure.float-right-large {
    float: right !important;
    margin-left: 2rem;
  }
}

figure figcaption {
  padding-top: 0.625rem;
  font-size: 0.8125rem;
}

.page-heading h1.h2:after {
  display: none;
}

.page-hero .back-link {
  margin-top: 2.1875rem;
}

.link-more > a,
a.link-more,
.link-download > a,
a.link-download,
.link-external > a,
a.link-external {
  display: inline-block;
}

.link-more > a:after,
a.link-more:after,
.link-download > a:after,
a.link-download:after,
.link-external > a:after,
a.link-external:after {
  font-size: 1.5rem;
  line-height: 1;
  margin-left: 0.625rem;
  position: relative;
  top: 0.25rem;
  display: inline-block;
}

a.link-more:hover, a.link-more:focus,
a.link-download:hover,
a.link-download:focus,
a.link-external:hover,
a.link-external:focus {
  text-decoration: none;
}

.link-more > a,
.link-download > a,
.link-external > a {
  text-decoration: none;
}

.link-more > a:hover, .link-more > a:focus,
.link-download > a:hover,
.link-download > a:focus,
.link-external > a:hover,
.link-external > a:focus {
  text-decoration: underline;
}

.result-external a:after,
.link-external a:after {
  position: absolute;
  right: 0;
  font-size: 1.5rem;
  top: 0.9rem;
}

article a {
  display: inline-block;
  text-decoration: underline;
}

article a:after, article a.link-more:after {
  margin-left: 0.225rem;
  position: relative;
  display: inline-block;
}

article a.link-download:after {
  font-size: 1.2rem;
}

article a:hover, article a:focus, article a.link-more:hover, article a.link-more:focus {
  text-decoration: none;
}

.cc-window {
  opacity: 1;
  -webkit-transition: opacity 1s ease;
  transition: opacity 1s ease;
}

.cc-window.cc-invisible {
  opacity: 0;
}

.cc-animate.cc-revoke {
  -webkit-transition: transform 1s ease;
  -webkit-transition: -webkit-transform 1s ease;
  transition: -webkit-transform 1s ease;
  transition: transform 1s ease;
  transition: transform 1s ease, -webkit-transform 1s ease;
}

.cc-animate.cc-revoke.cc-top {
  -webkit-transform: translateY(-2em);
  transform: translateY(-2em);
}

.cc-animate.cc-revoke.cc-bottom {
  -webkit-transform: translateY(2em);
  transform: translateY(2em);
}

.cc-animate.cc-revoke.cc-active.cc-top {
  -webkit-transform: translateY(0);
  transform: translateY(0);
}

.cc-animate.cc-revoke.cc-active.cc-bottom {
  -webkit-transform: translateY(0);
  transform: translateY(0);
}

.cc-revoke:hover, .cc-revoke:focus {
  -webkit-transform: translateY(0);
  transform: translateY(0);
}

.cc-grower {
  max-height: 0;
  overflow: hidden;
  -webkit-transition: max-height 1s;
  transition: max-height 1s;
}

.cc-revoke,
.cc-window {
  position: fixed;
  overflow: hidden;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  font-family: Helvetica, Calibri, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
  z-index: 9999;
}

.cc-window.cc-static {
  position: static;
}

.cc-window.cc-floating {
  padding: 2em;
  max-width: 24em;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
}

.cc-window.cc-banner {
  padding: 1em 1.8em;
  width: 100%;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
}

.cc-revoke {
  padding: .5em;
}

.cc-revoke:hover, .cc-revoke:focus {
  text-decoration: underline;
}

.cc-header {
  font-size: 18px;
  font-weight: 700;
}

.cc-close,
.cc-link,
.cc-revoke {
  cursor: pointer;
}

.cc-link {
  opacity: .8;
  display: inline-block;
  padding: .2em;
  text-decoration: underline;
}

.cc-link:hover, .cc-link:focus {
  opacity: 1;
}

.cc-link:active,
.cc-link:visited {
  color: initial;
}

.cc-close {
  display: block;
  position: absolute;
  top: .5em;
  right: .5em;
  font-size: 1.6em;
  opacity: .9;
  line-height: .75;
}

.cc-close:focus,
.cc-close:hover {
  opacity: 1;
}

.cc-revoke.cc-top {
  top: 0;
  left: 3em;
  border-bottom-left-radius: .5em;
  border-bottom-right-radius: .5em;
}

.cc-revoke.cc-bottom {
  bottom: 0;
  left: 3em;
  border-top-left-radius: .5em;
  border-top-right-radius: .5em;
}

.cc-revoke.cc-left {
  left: 3em;
  right: unset;
}

.cc-revoke.cc-right {
  right: 3em;
  left: unset;
}

.cc-revoke.cc-bottom.cc-right {
  transform: translateX(0);
}

.cc-top {
  top: 1em;
}

.cc-left {
  left: 1em;
}

.cc-right {
  right: 1em;
}

.cc-bottom {
  bottom: 1em;
}

.cc-floating > .cc-link {
  margin-bottom: 1em;
}

.cc-floating .cc-message {
  display: block;
  margin-bottom: 1em;
}

.cc-window.cc-floating .cc-compliance {
  -webkit-box-flex: 1;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.cc-window.cc-banner {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.cc-banner.cc-top {
  left: 0;
  right: 0;
  top: 0;
}

.cc-banner.cc-bottom {
  left: 0;
  right: 0;
  bottom: 0;
}

.cc-banner .cc-message {
  display: block;
  -webkit-box-flex: 1;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  max-width: 100%;
  margin-right: 1em;
}

.cc-compliance {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -ms-flex-line-pack: justify;
  align-content: space-between;
}

@media print {
  .cc-revoke,
  .cc-window {
    display: none;
  }
}

@media screen and (max-width: 414px) and (orientation: portrait), screen and (max-width: 736px) and (orientation: landscape) {
  .cc-window.cc-top {
    top: 0;
  }
  .cc-window.cc-bottom {
    bottom: 0;
  }
  .cc-window.cc-banner,
  .cc-window.cc-floating,
  .cc-window.cc-left,
  .cc-window.cc-right {
    left: 0;
    right: 0;
  }
  .cc-window.cc-banner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
  }
  .cc-window.cc-banner .cc-compliance {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
  }
  .cc-window.cc-floating {
    max-width: none;
  }
  .cc-window .cc-message {
    margin-bottom: 1em;
  }
  .cc-window.cc-banner {
    -webkit-box-align: unset;
    -ms-flex-align: unset;
    align-items: unset;
  }
  .cc-window.cc-banner .cc-message {
    margin-right: 0;
  }
}

.cc-floating.cc-theme-classic {
  padding: 1.2em;
  border-radius: 5px;
}

.cc-floating.cc-type-info.cc-theme-classic .cc-compliance {
  text-align: center;
  display: inline;
  -webkit-box-flex: 0;
  -ms-flex: none;
  flex: none;
}

.cc-theme-edgeless.cc-window {
  padding: 0;
}

.cc-floating.cc-theme-edgeless .cc-message {
  margin: 2em;
  margin-bottom: 1.5em;
}

.cc-banner.cc-theme-edgeless .cc-message {
  margin-left: 1em;
}

.cc-revoke,
.cc-window,
.cc-revoke *,
.cc-window * {
  font: inherit;
}

.cc-window:before {
  content: '';
  display: block;
  position: absolute;
  z-index: -1;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(2px);
}

.cc-window.cc-floating {
  width: 100%;
  max-width: 39.375rem;
  padding: 0;
  overflow: visible;
}

.cc-floating .cc-message,
.cc-floating .cc-link,
.cc-floating .cc-compliance {
  background: white;
  margin: 0;
  opacity: 1;
}

.cc-message {
  font-size: 1.25rem;
  line-height: 1.4;
  padding: 2.1875rem 3.75rem 0;
}

.cc-animate.cc-revoke.cc-bottom {
  transform: translateY(0);
}

.cc-header {
  display: block;
  padding: 3.75rem;
  background: #ffcc00;
  text-align: center;
  font-size: 2.1875rem;
  font-weight: 700;
}

.cc-link {
  padding: 0.9375rem 3.75rem;
  font-size: 1.25rem;
}

.cc-floating .cc-compliance {
  padding: 0 3.75rem 2.1875rem;
}

.cc-floating .cc-compliance .button {
  line-height: 1;
  flex: none;
}

.cc-floating .cc-compliance .button + .button {
  margin-left: 1.25rem;
}

.cc-revoke.cc-bottom {
  border-radius: 0;
  box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.15);
  font-size: 0.625rem;
  background: white;
  right: 1.25rem;
}

.cc-bottom {
  bottom: 0;
}

.cc-right {
  right: 50%;
  transform: translateX(50%);
}

@media print, screen and (max-width: 74.99875em) {
  .cc-message {
    font-size: 1.125rem;
  }
  .cc-header {
    padding-top: 1.875rem;
    padding-bottom: 1.875rem;
    font-size: 1.5625rem;
  }
  .cc-link {
    font-size: 1.125rem;
  }
}

@media screen and (max-width: 414px) and (orientation: portrait), screen and (max-width: 736px) and (orientation: landscape) {
  .cc-right {
    transform: translateX(0);
  }
  .cc-message {
    padding: 0.9375rem;
    font-size: 1rem;
  }
  .cc-header {
    padding: 0.9375rem;
    font-size: 1.25rem;
  }
  .cc-link {
    padding: 0 0.9375rem 0.9375rem;
    font-size: 1rem;
  }
  .cc-floating .cc-compliance {
    padding: 0 0.9375rem 0.9375rem;
  }
}

@media print {
  @page {
    margin: 1cm;
  }
  #header *, .hero-slider, .search-wrap, .footer-menu, .calendar-open,
  .nav-slider-wrap, .filter-widget-wrap, .pagination, .hero-image,
  .slick-dots, .slick-arrow, .slick-counter, .back-link, .card-section:before,
  .thumbnail:before, .tabs-align, .filter, #filterTags, .dates-button, .calendar-wrap,
  .page-hero .hero-wrap.hero-left aside.aside-left {
    display: none !important;
  }
  *, *:after, *:before {
    background-color: #ffffff !important;
    color: black !important;
    border-color: black !important;
    box-shadow: none !important;
  }
  .card-link-list .card-section,
  .grey-content-box {
    border: 1px solid black;
  }
  .label {
    background: black !important;
    color: white !important;
  }
  .hero-wrap.hero-left {
    display: block;
  }
  a.link-more:after,
  .link-more a:after,
  a.link-external:after,
  .link-external a:after,
  article a.link-external:after,
  a.link-download:after,
  .link-download a:after,
  article a.link-download:after,
  .sitemap a:after,
  .result-image a:after,
  .result-text a:after {
    content: " (" attr(href) ")" !important;
    font-family: "Buenos Aires", Arial, sans-serif !important;
    font-style: italic !important;
    font-size: 90% !important;
    position: static !important;
    top: auto !important;
    right: auto !important;
  }
  .news .content .media-object {
    border: 1px solid black;
  }
  .news-list .top-news {
    border: 1px solid black;
  }
  .tile-grid .cell, .tile-grid .info-accordion .accordion-item .accordion-content hr, .info-accordion .accordion-item .accordion-content .tile-grid hr {
    border: 1px solid black;
  }
  .tile-grid .cell:after, .tile-grid .info-accordion .accordion-item .accordion-content hr:after, .info-accordion .accordion-item .accordion-content .tile-grid hr:after {
    content: " (" attr(href) ")" !important;
    font-family: "Buenos Aires", Arial, sans-serif !important;
    font-style: italic;
    font-size: 90%;
    top: 0;
  }
  .accordion-special .accordion-horizontal {
    height: auto;
  }
  .accordion-special .accordion-horizontal .acc-tabs {
    width: 50% !important;
    margin-bottom: 20px;
    border: none;
  }
  .accordion-special .accordion-horizontal .acc-tabs:nth-child(odd) {
    padding-right: 4%;
  }
  .accordion-special .accordion-horizontal .acc-tabs:nth-child(even) {
    padding-left: 4%;
  }
  .accordion-special .accordion-horizontal .acc-tabs.active h4 {
    font-weight: normal !important;
  }
  .accordion-special .accordion-horizontal .acc-tabs .tab-links {
    position: static;
    transform: rotate(0deg);
    writing-mode: unset;
    width: auto;
    height: auto;
    line-height: 1.1;
    padding: 0;
    padding-bottom: 10px;
  }
  .accordion-special .accordion-horizontal .paragraph {
    visibility: visible !important;
    margin-left: 0;
  }
  .accordion-special .accordion-horizontal .paragraph .content-card {
    width: auto;
    padding: 0;
  }
  .accordion-special .accordion-horizontal .paragraph .content-card .content {
    padding: 20px;
  }
  .accordion-special .accordion-horizontal .paragraph img {
    position: static;
  }
  .accordion-special .accordion-horizontal .paragraph h6 {
    margin-bottom: 10px !important;
  }
  .accordion-content {
    display: block !important;
  }
  .accordion-content .hide.hidden-content {
    display: block !important;
  }
  .accordion-content a.contact.button {
    display: none;
  }
  .accordion-content .visible-content {
    border: 1px solid black;
  }
  .page-hero {
    margin-top: 0 !important;
  }
  .page-hero .content-wrap {
    padding-top: 0 !important;
  }
  .tabs-panel {
    display: block !important;
  }
  .virtual-catalogue .catalogue-slider {
    padding-bottom: 0 !important;
  }
  .virtual-catalogue .catalogue-slider .slick-list {
    padding: 0;
  }
  .virtual-catalogue .catalogue-slider .slick-slide {
    width: auto !important;
  }
  .virtual-catalogue .slick-track {
    width: auto !important;
  }
  .virtual-catalogue .slick-slide {
    float: none !important;
    right: auto !important;
    left: auto !important;
    opacity: 1 !important;
  }
  .virtual-catalogue h4 {
    margin-top: 30px !important;
    margin-bottom: 10px !important;
  }
  #header {
    margin-bottom: 30px;
  }
  #header:before {
    content: url("/assets/img/landesarchiv.svg");
    display: block;
    text-align: center;
    padding: 30px 0;
  }
  .copyright {
    margin-top: 30px;
    border-top: 5px solid black;
    text-align: center;
  }
  .copyright .cell:after, .copyright .info-accordion .accordion-item .accordion-content hr:after, .info-accordion .accordion-item .accordion-content .copyright hr:after {
    content: ' | https://www.landesarchiv-bw.de';
  }
}

.text-hide {
  font: 0/0 a !important;
  color: transparent !important;
  text-shadow: none !important;
  background-color: transparent !important;
  border: 0 !important;
}

.text-truncate {
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis;
  white-space: nowrap !important;
}

.text-nowrap {
  white-space: nowrap !important;
}

.text-wrap {
  word-wrap: break-word !important;
}

.text-lowercase {
  text-transform: lowercase !important;
}

.text-uppercase {
  text-transform: uppercase !important;
}

.text-capitalize {
  text-transform: capitalize !important;
}

.text-overline {
  text-decoration: overline !important;
}

.text-underline {
  text-decoration: underline !important;
}

.text-line-through {
  text-decoration: line-through !important;
}

.font-wide {
  letter-spacing: 0.25rem;
}

.font-normal {
  font-weight: normal;
}

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

.font-italic {
  font-style: italic !important;
}

ul.list-disc {
  list-style-type: disc !important;
}

ul.list-circle {
  list-style-type: circle !important;
}

ul.list-square {
  list-style-type: square !important;
}

ol.list-decimal {
  list-style-type: decimal !important;
}

ol.list-lower-alpha {
  list-style-type: lower-alpha !important;
}

ol.list-lower-latin {
  list-style-type: lower-latin !important;
}

ol.list-lower-roman {
  list-style-type: lower-roman !important;
}

ol.list-upper-alpha {
  list-style-type: upper-alpha !important;
}

ol.list-upper-latin {
  list-style-type: upper-latin !important;
}

ol.list-upper-roman {
  list-style-type: upper-roman !important;
}

.rounded {
  border-radius: 5000px !important;
}

.rounded .switch-paddle {
  border-radius: 5000px !important;
}

.rounded .switch-paddle:after {
  border-radius: 50%;
}

.radius {
  border-radius: 0.1875rem;
}

.bordered {
  border: 0.0625rem solid #979797;
}

.shadow {
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
}

.arrow-down {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.4375rem;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #000000 transparent transparent;
}

.arrow-up {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.4375rem;
  content: '';
  border-top-width: 0;
  border-bottom-style: solid;
  border-color: transparent transparent #000000;
}

.arrow-right {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.4375rem;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #000000;
}

.arrow-left {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.4375rem;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #000000 transparent transparent;
}

.separator-center {
  text-align: center !important;
}

.separator-center::before, .separator-center::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.separator-center::after {
  clear: both;
}

.separator-center::after {
  position: relative !important;
  width: 3rem;
  border-bottom: 0.125rem solid #ffcc00;
  margin: 1rem auto 0;
}

.separator-left {
  text-align: left !important;
}

.separator-left::before, .separator-left::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.separator-left::after {
  clear: both;
}

.separator-left::after {
  position: relative !important;
  width: 3rem;
  border-bottom: 0.125rem solid #ffcc00;
  margin: 1rem auto 0;
  margin-left: 0 !important;
}

.separator-right {
  text-align: right !important;
}

.separator-right::before, .separator-right::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.separator-right::after {
  clear: both;
}

.separator-right::after {
  position: relative !important;
  width: 3rem;
  border-bottom: 0.125rem solid #ffcc00;
  margin: 1rem auto 0;
  margin-right: 0 !important;
}

.overflow-visible {
  overflow: visible !important;
}

.overflow-x-visible {
  overflow-x: visible !important;
}

.overflow-y-visible {
  overflow-y: visible !important;
}

.overflow-hidden {
  overflow: hidden !important;
}

.overflow-x-hidden {
  overflow-x: hidden !important;
}

.overflow-y-hidden {
  overflow-y: hidden !important;
}

.overflow-scroll {
  overflow: scroll !important;
}

.overflow-x-scroll {
  overflow-x: scroll !important;
}

.overflow-y-scroll {
  overflow-y: scroll !important;
}

.display-inline {
  display: inline !important;
}

.display-inline-block {
  display: inline-block !important;
}

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

.display-table {
  display: table !important;
}

.display-table-cell {
  display: table-cell !important;
}

.position-static {
  position: static !important;
}

.position-relative {
  position: relative !important;
}

.position-absolute {
  position: absolute !important;
}

.position-fixed {
  position: fixed !important;
}

.position-fixed-top {
  position: fixed !important;
  top: 0rem !important;
  right: 0rem !important;
  left: 0rem !important;
  z-index: 975;
}

.position-fixed-bottom {
  position: fixed !important;
  right: 0rem !important;
  bottom: 0rem !important;
  left: 0rem !important;
  z-index: 975;
}

.border-box {
  box-sizing: border-box !important;
}

.border-none {
  border: none !important;
}

.width-25 {
  width: 25% !important;
}

.width-50 {
  width: 50% !important;
}

.width-75 {
  width: 75% !important;
}

.width-100 {
  width: 100% !important;
}

.height-25 {
  height: 25% !important;
}

.height-50 {
  height: 50% !important;
}

.height-75 {
  height: 75% !important;
}

.height-100 {
  height: 100% !important;
}

.max-width-100 {
  max-width: 100% !important;
}

.max-height-100 {
  max-height: 100% !important;
}

.margin-0 {
  margin: 0rem !important;
}

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

.margin-right-0 {
  margin-right: 0rem !important;
}

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

.margin-left-0 {
  margin-left: 0rem !important;
}

.margin-horizontal-0 {
  margin-right: 0rem !important;
  margin-left: 0rem !important;
}

.margin-vertical-0 {
  margin-top: 0rem !important;
  margin-bottom: 0rem !important;
}

.padding-0 {
  padding: 0rem !important;
}

.padding-top-0 {
  padding-top: 0rem !important;
}

.padding-right-0 {
  padding-right: 0rem !important;
}

.padding-bottom-0 {
  padding-bottom: 0rem !important;
}

.padding-left-0 {
  padding-left: 0rem !important;
}

.padding-horizontal-0 {
  padding-right: 0rem !important;
  padding-left: 0rem !important;
}

.padding-vertical-0 {
  padding-top: 0rem !important;
  padding-bottom: 0rem !important;
}

.margin-1 {
  margin: 1rem !important;
}

.margin-top-1 {
  margin-top: 1rem !important;
}

.margin-right-1 {
  margin-right: 1rem !important;
}

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

.margin-left-1 {
  margin-left: 1rem !important;
}

.margin-horizontal-1 {
  margin-right: 1rem !important;
  margin-left: 1rem !important;
}

.margin-vertical-1 {
  margin-top: 1rem !important;
  margin-bottom: 1rem !important;
}

.padding-1 {
  padding: 1rem !important;
}

.padding-top-1 {
  padding-top: 1rem !important;
}

.padding-right-1 {
  padding-right: 1rem !important;
}

.padding-bottom-1 {
  padding-bottom: 1rem !important;
}

.padding-left-1 {
  padding-left: 1rem !important;
}

.padding-horizontal-1 {
  padding-right: 1rem !important;
  padding-left: 1rem !important;
}

.padding-vertical-1 {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}

.margin-2 {
  margin: 2rem !important;
}

.margin-top-2 {
  margin-top: 2rem !important;
}

.margin-right-2 {
  margin-right: 2rem !important;
}

.margin-bottom-2 {
  margin-bottom: 2rem !important;
}

.margin-left-2 {
  margin-left: 2rem !important;
}

.margin-horizontal-2 {
  margin-right: 2rem !important;
  margin-left: 2rem !important;
}

.margin-vertical-2 {
  margin-top: 2rem !important;
  margin-bottom: 2rem !important;
}

.padding-2 {
  padding: 2rem !important;
}

.padding-top-2 {
  padding-top: 2rem !important;
}

.padding-right-2 {
  padding-right: 2rem !important;
}

.padding-bottom-2 {
  padding-bottom: 2rem !important;
}

.padding-left-2 {
  padding-left: 2rem !important;
}

.padding-horizontal-2 {
  padding-right: 2rem !important;
  padding-left: 2rem !important;
}

.padding-vertical-2 {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}

.margin-3 {
  margin: 3rem !important;
}

.margin-top-3 {
  margin-top: 3rem !important;
}

.margin-right-3 {
  margin-right: 3rem !important;
}

.margin-bottom-3 {
  margin-bottom: 3rem !important;
}

.margin-left-3 {
  margin-left: 3rem !important;
}

.margin-horizontal-3 {
  margin-right: 3rem !important;
  margin-left: 3rem !important;
}

.margin-vertical-3 {
  margin-top: 3rem !important;
  margin-bottom: 3rem !important;
}

.padding-3 {
  padding: 3rem !important;
}

.padding-top-3 {
  padding-top: 3rem !important;
}

.padding-right-3 {
  padding-right: 3rem !important;
}

.padding-bottom-3 {
  padding-bottom: 3rem !important;
}

.padding-left-3 {
  padding-left: 3rem !important;
}

.padding-horizontal-3 {
  padding-right: 3rem !important;
  padding-left: 3rem !important;
}

.padding-vertical-3 {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}

.hr {
  display: block;
  clear: both;
  max-width: 75rem;
  padding-bottom: 0.625rem;
  margin-bottom: 0.625rem;
  border-bottom: 1px solid #B5B5B5;
}

.bg-light {
  background-color: #f8f9fa;
}

.news .content date {
  margin-bottom: unset !important;
}

.tile-grid {
  background-image: unset;
}

.virtual-catalogue {
  background-color: unset;
  padding: unset;
}

section.module {
  margin-bottom: unset;
  margin-top: unset;
  padding: 1.875rem 0;
}

@media print, screen and (min-width: 40em) {
  section.module {
    padding: 3.75rem 0;
  }
}

section.module.hero-slider + section.module {
  padding-top: 1.875rem !important;
}

@media print, screen and (max-width: 39.99875em) {
  .news .content .news-wrap {
    margin-bottom: 1.875rem;
  }
}

.news .content .date > time {
  display: block;
  font-size: 1.25rem;
  font-weight: bold;
  -ms-grid-column: 1;
  -ms-grid-column-start: 1;
  grid-column-start: 1;
}

@media print, screen and (min-width: 64em) {
  .news .content .date > time {
    font-size: 1.5625rem;
    line-height: 1.4;
  }
}

.hero-slider {
  margin: 0 0 2rem 0 !important;
  padding: unset !important;
}

.event-slider.page-hero .slick-slide img {
  max-height: 300px;
  object-fit: cover;
}

.pagination .current {
  background-color: #000000;
}

.pagination .current::after {
  display: none;
}

.news .content .events li a .wrap .time {
  display: block;
  font-weight: 700;
  margin-bottom: 4px;
}

h3 {
  margin-bottom: 0.9rem;
}

.calendar-open.hide-for-large .calendar {
  right: auto;
  left: 0;
}

.pignose-calendar .pignose-calendar-unit.is-active a {
  background-color: #ffcc00;
}

.result-tags {
  margin-top: 5rem;
  margin-bottom: 5rem;
}

.map {
  padding-top: unset !important;
}

.map img {
  width: 100%;
  height: auto;
}

.dates-button {
  display: flex;
  flex-wrap: wrap;
}

.dates-button * {
  flex-grow: 1;
  margin: 10px;
}

@media only screen and (max-width: 1023px) {
  .filter-widget-wrap section.filter-container {
    display: none;
  }
}

.accordion-special .accordion-horizontal .acc-tabs .tab-links {
  -ms-writing-mode: tb-lr;
}

.cell h3, .info-accordion .accordion-item .accordion-content hr h3 {
  margin-top: 2rem;
  font-size: 1.8rem;
}

.cell h4, .info-accordion .accordion-item .accordion-content hr h4 {
  margin-top: 2rem;
}

@media only screen and (max-width: 600px) {
  .grid-margin-x > .small-6 {
    width: calc(100% - 1.875rem);
  }
}

.accordion-content p {
  margin-bottom: 1rem;
}

ul li a.link-external {
  display: inline;
}

.events li time {
  font-size: 1.5625rem;
  line-height: 1.4;
  display: block;
  font-weight: bold;
}

@media print, screen and (min-width: 40em) {
  .news .text {
    height: 11rem;
  }
  .news-location {
    margin-bottom: 2rem;
  }
  .news-location .top-news {
    width: calc(50% - 1.875rem);
  }
  .news-location .label.small {
    font-size: 1rem;
    line-height: 2.25rem;
  }
  .news-location .text {
    height: 11rem;
  }
  .news-location .top-news .text time {
    margin-bottom: 1.3rem;
  }
  .news-location .content .media-object.top-news .media-object-section:first-of-type .thumbnail {
    height: 19em;
    width: 20rem;
  }
  .news-location .content .media-object.top-news .media-object-section .text {
    padding: 2rem 1rem 1.75rem 3.3rem;
  }
  .news-location .content .media-object.large-6 .media-object-section .thumbnail {
    height: 9.75rem;
  }
  .news-location h4 {
    margin-top: -0.3rem;
    margin-bottom: -0.5rem;
  }
  h4.nodate {
    margin-top: 2.6rem;
  }
  .news-location h4.nodate {
    margin-top: 2.6rem;
  }
  h4.date {
    margin-top: -0.2rem;
  }
}

@media print, screen and (min-width: 64em) {
  .news-location .grid-margin-x > .large-6 {
    width: calc(25% - 1.875rem);
  }
  .hero-slider .main-slider .hero-heading h1.h0,
  .hero-image .hero-heading h1.h0 {
    max-height: 240px;
  }
}

a.link-more:after,
a.link-download:after,
a.link-external:after,
li.link-download::before,
li.link-download > a:after,
.link-more > a:after,
.link-external a:after {
  content: none !important;
}

a.link-more::before,
.link-more > a:before {
  content: "\e915";
}

a.link-download::before,
li.link-download > a:before {
  content: "\e907";
}

a.link-external:before,
.link-external a:before {
  content: "\e908";
}

a.link-more::before,
.link-more > a:before,
a.link-download::before,
a.link-external:before,
li.link-download > a:before,
.link-external > a:before {
  font-family: "labw-icon" !important;
  font-size: 1.5rem;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  speak: none;
  line-height: 1;
}

a.link-more:before,
.link-more > a:before,
a.link-download:before {
  position: relative;
  display: inline-block;
  top: 0.3rem;
  margin-right: 0.2rem;
}

li.link-download > a:before {
  position: relative;
  display: inline-block;
  top: 0.3rem;
  margin-right: 0.2rem;
}

a.link-external:before,
.link-external a:before {
  position: relative;
  display: inline-block;
  top: 0.3rem;
  margin-right: 0.3rem;
}

div.standort {
  display: block;
}

div.standort .card-section {
  font-size: 0.88rem;
  height: 15rem;
}

.edge-column a:link,
.edge-column a:visited,
.edge-column a:active {
  text-decoration: underline;
}

.edge-column a:hover {
  text-decoration: none;
}

.edge-column a.link-more:link,
.edge-column a.link-more:visited,
.edge-column a.link-more:active,
.edge-column a.link-download:link,
.edge-column a.link-download:visited,
.edge-column a.link-download:active,
.edge-column a.link-external:link,
.edge-column a.link-external:visited,
.edge-column a.link-external:active {
  text-decoration: none;
}

.edge-column a.link-more:hover,
.edge-column a.link-download:hover,
.edge-column a.link-external:hover {
  text-decoration: underline;
}

/*
    Darstellung Default Tabelle in Vergabeverfahren
*/
.tis table {
  table-layout: fixed;
}

.tis table th:nth-child(3) {
  width: 40%;
}

.tis table td:nth-child(3) {
  width: 40%;
}

/*
    Startseite: Höhe Slider Standorte
*/
.slick-slide .item-top img {
  margin-left: 1px;
}

@media print, screen and (min-width: 64em) {
  .nav-slider-wrap .nav-slider {
    height: 28rem;
  }
  .nav-slider .button {
    margin-top: 2rem;
  }
  .hero-slider .nav-slider {
    margin-top: -23rem;
  }
}

@media print, screen and (max-width: 64em) {
  .nav-slider-wrap .nav-slider {
    height: 24rem;
  }
  .nav-slider-wrap .nav-slider .button {
    margin-top: 12.4em;
    position: absolute;
  }
}

/*
    Standort Übersicht
*/
.standortcell {
  margin: 0 7px !important;
  width: 224px !important;
}

.standortdiv {
  padding: 1.2rem 0.7rem;
  font-size: 0.85rem;
}

/*
    Vergabeverfahren: Darstellung resposnive Tabelle
*/
@media only screen and (max-width: 1023px) {
  .tis table thead {
    display: none;
  }
  .tis table td {
    width: 100%;
    float: left;
  }
  .tis table td:nth-child(3) {
    width: 100%;
  }
  .tis table td::before {
    content: attr(data-label);
    word-wrap: break-word;
    width: 100%;
    float: left;
    padding: 1em;
    font-weight: bold;
    margin: -1em 1em -1em -1em;
  }
  .tis table td::before {
    content: attr(data-label);
    /* Inhalt des Data-Attributs einfügen */
    word-break: break-word;
    /* Bei zu langen Attributen Umbrüche erzwingen */
  }
}

/*
    Startseite: Firefox fix schwarzer Hintergrund
*/
h1.h1-start {
  padding: 0px 0;
  width: 100%;
}

span.h1-start {
  padding: 0.3rem 0.5rem 0.45rem 0.4rem;
  box-decoration-break: clone;
}

/*
    Termine und Standorte: Slider
*/
@media screen and (max-width: 1023px) {
  .synced-slider {
    display: none;
  }
}

.synced-slider .slider-item-aside {
  display: none;
}

.synced-slider .slider-item-aside:nth-child(1) {
  display: block;
}

.synced-slider .slider-img {
  display: none;
  width: 100%;
  height: 17.1875rem;
  object-fit: cover;
}

/* Ab hier kann das vermutlich raus. Der Stand ist noch nicht online */
.synced-slider .slider-item-aside em {
  font-size: 1rem;
  font-weight: 100;
}

.synced-slider .page-hero-slider-show {
  display: none;
}

.synced-slider .slider-img:nth-child(1) {
  display: block;
}

.synced-slider .button-active {
  background-color: #000000;
}

@media screen and (max-width: 1023px) {
  .synced-slider-desktop {
    display: none;
  }
}

@media screen and (min-width: 1023px) {
  .synced-slider-mobile {
    display: none;
  }
}

.synced-slider-desktop .slider-item-aside-desktop {
  display: none;
}

.synced-slider-desktop .slider-item-aside-desktop:nth-child(1) {
  display: block;
}

.synced-slider-desktop .slider-img {
  display: none;
  width: 100%;
  height: 17.1875rem;
  object-fit: cover;
}

.synced-slider-mobile .slider-item-aside-mobile {
  display: none;
}

.synced-slider-mobile .slider-item-aside-mobile:nth-child(1) {
  display: block;
}

.synced-slider-mobile .slider-img {
  display: none;
  width: 100%;
  height: 17.1875rem;
  object-fit: cover;
}

/*
    Generische Inhalte: Links als Kacheln
*/
.binnennavigation {
  margin-bottom: 2rem;
}

/*
    Generische Inhalte: Slider
*/
.slickslider_absatz h2 {
  margin-top: 2rem;
  margin-bottom: 1.5rem;
}

.slickslider_absatz .slick-slider {
  margin-bottom: 2rem;
  background: #f8f9fc;
  padding: 1rem 0 1rem 0;
}

.slickslider_absatz .slick div.item {
  padding: 1rem 1rem 0 1rem;
  width: 100%;
  display: table !important;
}

.slickslider_absatz .slick div.item img {
  height: 450px;
  padding-bottom: 1rem;
  cursor: pointer;
}

.slickslider_absatz .link-download {
  position: relative;
  padding: 0 1px 4px 5px;
  top: -65px;
  border-radius: 100%;
  left: 15px;
  background: #EDEDEC;
}

.slickslider_absatz .item-caption {
  display: table-caption;
  caption-side: bottom;
  padding: 0 1rem 0 1rem;
  margin-top: -1.2rem;
}

.slickslider_absatz .slick-arrow {
  margin-bottom: 0.7rem;
}

#ud_lightbox_overlay {
  position: fixed;
  z-index: 10000;
  width: 100%;
  height: 100%;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.9);
  text-align: center;
  display: none;
}

#ud_lightbox_inhalt {
  top: 5%;
  height: 80%;
  width: 100%;
  text-align: center;
  color: FFFFFF;
}

#ud_lightbox_inhalt img {
  margin-bottom: 1rem;
  max-height: 100%;
  padding: 0 0.5rem 0 0.5rem;
}

#ud_lightbox_inhalt #ud_image {
  display: table;
  margin: 0 auto;
  text-align: left;
}

#ud_lightbox_inhalt #ud_image p {
  color: #FFFFFF;
  display: table-caption;
  caption-side: bottom;
}

#ud_lightbox_inhalt #ud_image p.btnDownload {
  height: 30px;
}

#ud_lightbox_inhalt #ud_image .link-download-lightbox {
  float: left;
  margin-right: 30px;
  margin-left: 5px;
}

#ud_lightbox_inhalt .caption {
  color: #FFFFFF;
  text-align: left;
  padding: 0 0.5rem 0 0.5rem;
  position: absolute;
}

#ud_lightbox_inhalt .lightbox-close a,
#ud_lightbox_inhalt .lightbox-close a:LINK,
#ud_lightbox_inhalt .lightbox-close a:VISITED,
#ud_lightbox_inhalt .lightbox-close a:HOVER,
#ud_lightbox_inhalt .lightbox-close a:ACTIVE {
  color: #FFF;
}

#ud_lightbox_inhalt .link-download {
  position: relative;
  padding: 0 1px 4px 5px;
  top: -65px;
  border-radius: 100%;
  left: 15px;
  background: #EDEDEC;
}

#ud_lightbox_inhalt #ud_nav {
  color: #FFFFFF;
  font-size: 30px;
  margin: 0 0 20px 0;
  width: 100%;
  text-align: right;
  padding-right: 10px;
}

.copy-area {
  display: none;
  cursor: pointer;
  margin: 0 0 15px 15px;
  padding: 5px;
  background: #FFEA76;
}

.copy-area .copy-image {
  position: relative;
  top: -0px;
  left: 0px;
  margin-right: 8px;
}

.copy-area .copy-button {
  box-shadow: 0 0 3px #AAA;
  cursor: pointer;
  background: #EAEAEA;
  border-radius: 10px;
  padding: 10px 12px 8px 10px;
}

.copy-area .copy-url {
  padding: 0 1rem 0 0.8rem;
}

/*
    ANFANG: Pseudoklassen fuer Headlines SEO Optimierung
*/
h1.headline-article {
  font-size: 2.1875rem;
  margin-top: 0;
  margin-bottom: 2.1875rem;
  line-height: 1.2;
  font-weight: 700;
}

h1.headline-article:after {
  content: none;
}

h2.headline-article {
  font-size: 1.8rem;
  margin-top: 0;
  margin-bottom: 0.9rem;
}

.headline-article-small {
  font-size: 1rem !important;
  padding-top: 1.2rem;
  padding-right: 1.875rem;
  margin-top: 0rem !important;
  margin-bottom: 0.5rem;
}

.headline-article-small-binnen {
  padding-top: 40%;
  margin-bottom: 2.5rem;
}

.headline-footer {
  margin-bottom: 0.4rem;
  font-weight: 700;
}

.headline-articletyp {
  font-size: 3.125rem;
  margin-top: -0.65rem;
  margin-bottom: 2.4rem;
  font-weight: 700;
}

.headline-articletyp:after {
  font-family: "labw-icon" !important;
  font-size: 1.625rem;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  vertical-align: text-top;
  margin-left: 0.625rem;
  content: "\e920";
}

.headline-box {
  font-style: normal;
  font-weight: 700;
  margin-bottom: 2.1875rem;
  font-size: 2.1875rem;
  line-height: 1.2;
}

/* Headline Klappen */
.accordion-item h2.headline-article {
  font-size: 1.5rem;
  font-weight: 100;
  margin-top: 0;
  margin-bottom: 0;
}

/* Angleichung Headline Ueberschriften ohne Underline in link, visited und active */
.accordion-item a.accordion-title:hover {
  text-decoration: underline;
}

.accordion-item a.accordion-title:link,
.accordion-item a.accordion-title:visited,
.accordion-item a.accordion-title:active {
  text-decoration: none !important;
}

.card-news h3 {
  font-size: 1rem;
  margin-top: 0;
  margin-bottom: 0.5rem;
  padding-top: 1.75rem;
}

.card-location h3 {
  margin-top: 0rem;
  margin-bottom: 0rem;
  font-size: 1rem;
}

.card-location h3.nodate {
  margin-top: 2.6rem;
}

.accordion-special h3 {
  font-size: 2.1875rem;
  margin-top: 0rem;
  margin-bottom: 2.1875rem;
}

.accordion-special h5 {
  font-size: 1rem;
}

.accordion-special .headline-themes {
  line-height: 1.2;
  font-weight: 700;
  margin-bottom: 0.5rem;
}

h1.start-headline {
  font-size: 2.1875rem;
  margin-bottom: 2.1875rem;
}

h1.start-headline:after {
  display: none;
}

h2.start-headline {
  font-size: 3.125rem;
  color: white;
  padding-left: 0.625rem;
  overflow: hidden;
  max-height: 230px;
}

h2.start-headline span.start-headline-text {
  background: black;
  line-height: 4.9rem;
  padding: 0.1rem 0.5rem 0.25rem 0.4rem;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  box-shadow: -10px 0 0 0 black, 10px 0 0 0 black;
}

h2.start-headline span.start-headline-text:after {
  font-family: "labw-icon" !important;
  font-size: 1.5rem;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  line-height: 1;
  text-transform: none;
  position: relative;
  padding-left: 10px;
  top: -10px;
  speak: none;
  content: "\e920";
}

.small {
  font-size: 1.1rem !important;
  line-height: 1.2;
  margin-top: 0 !important;
  margin-bottom: 0.6rem;
}

h3.card-headline {
  font-size: 1rem;
  margin-bottom: 0.5rem;
  padding-top: 1.75rem;
}

h3.termine-headline {
  font-size: 1rem;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h3.boxheadline {
  font-size: 0.9rem;
  margin-top: 0;
  margin-bottom: 0.5rem !important;
}

div.showlink h3.headline-article {
  margin-top: 0;
}

h4.filter-box {
  font-size: 1rem;
  margin-top: 0;
  margin-bottom: 0.9375rem;
}

li.item-ma div.accordion-content {
  margin-top: 0 !important;
}

@media only screen and (max-width: 1023px) {
  h2.start-headline {
    font-size: 1.4rem;
  }
  h2.start-headline span.start-headline-text {
    line-height: 2.7rem !important;
    box-shadow: -7px 0 0 0 black, 7px 0 0 0 black;
  }
  h2.start-headline span.start-headline-text:after {
    font-size: 0.8rem;
    top: -6px;
  }
}

/*
    ENDE: Pseudoklassen fuer Headlines bei SEO Optimierung
*/
.nav-desktop .is-dropdown-submenu {
  max-width: 23.2rem;
}

#footer .footer-menu .menu li a {
  line-height: 1.1rem;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vYXBwLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2JyZWFrcG9pbnQuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy92ZW5kb3Ivbm9ybWFsaXplLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvdGVtcGxhdGVzL3NyYy9hc3NldHMvc2Nzcy9fc2V0dGluZ3Muc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fdGV4dC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3VuaXQuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fY2hlY2tib3guc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faGVscC10ZXh0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2lucHV0LWdyb3VwLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3NlbGVjdC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19lcnJvci5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19oZWxwZXJzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jbGFzc2VzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fZ3V0dGVycy5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2dyaWQuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jZWxsLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWF0aC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2xheW91dC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2NvbGxhcHNlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fcG9zaXRpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19mcmFtZS5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi1ncm91cC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Nsb3NlLWJ1dHRvbi5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2xhYmVsLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFibGUuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19jb2xvci5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2FsbG91dC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2NhcmQuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZWRpYS1vYmplY3Quc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUtaWNvbi5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Ryb3Bkb3duLW1lbnUuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vZmYtY2FudmFzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxvYXQuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZmxleC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvY29tcG9uZW50cy9faGVhZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL2NvbXBvbmVudHMvX2Zvb3Rlci5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvdGVtcGxhdGVzL3NyYy9hc3NldHMvc2Nzcy9jb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvdGVtcGxhdGVzL3NyYy9hc3NldHMvc2Nzcy9jb21wb25lbnRzL19oZXJvLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL2NvbXBvbmVudHMvX2hlcm8taW1hZ2Uuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvY29tcG9uZW50cy9faGVyby1sZWZ0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL2NvbXBvbmVudHMvX3NlYXJjaC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvdGVtcGxhdGVzL3NyYy9hc3NldHMvc2Nzcy9jb21wb25lbnRzL19uZXdzX2V2ZW50cy5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvdGVtcGxhdGVzL3NyYy9hc3NldHMvc2Nzcy9jb21wb25lbnRzL190aWxlX2dyaWQuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvY29tcG9uZW50cy9fbGluay1jYXJkLXRyaW8uc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLXNwZWNpYWwuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvY29tcG9uZW50cy9fc2xpZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL2NvbXBvbmVudHMvc2xpY2suc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvY29tcG9uZW50cy9fcmVkaXJlY3Quc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvY29tcG9uZW50cy9faW5mby1hY2NvcmRpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvY29tcG9uZW50cy9fbWFzb25yeS1jb250ZW50LnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL2NvbXBvbmVudHMvX2NhbGVuZGFyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL2NvbXBvbmVudHMvX2xvY2F0aW9uLWNhcmQuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvY29tcG9uZW50cy90aWxlX2dyaWQyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL2NvbXBvbmVudHMvX2ZpbHRlci1ib3guc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvY29tcG9uZW50cy9fZmlsdGVyLXRhZ3Muc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvY29tcG9uZW50cy9fZmlsdGVyLXJlc3VsdC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvdGVtcGxhdGVzL3NyYy9hc3NldHMvc2Nzcy9jb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL2NvbXBvbmVudHMvc2VhcmNoLXJlc3VsdC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvdGVtcGxhdGVzL3NyYy9hc3NldHMvc2Nzcy9jb21wb25lbnRzL19yZXN1bHQtZXh0ZW5hbC1saW5rcy5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvdGVtcGxhdGVzL3NyYy9hc3NldHMvc2Nzcy9jb21wb25lbnRzL19jb250ZW50LWJveC1ncmV5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL2NvbXBvbmVudHMvX3ZpcnR1YWwtY2F0YWxvZ3VlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL2NvbXBvbmVudHMvX3JldmVhbC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvdGVtcGxhdGVzL3NyYy9hc3NldHMvc2Nzcy9jb21wb25lbnRzL180MDQuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvY29tcG9uZW50cy9fZXJyb3Iuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvY29tcG9uZW50cy9fc2l0ZW1hcC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvdGVtcGxhdGVzL3NyYy9hc3NldHMvc2Nzcy9jb21wb25lbnRzL19yZWdpc3RyYXRpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvY29tcG9uZW50cy9fY29udGFjdC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvdGVtcGxhdGVzL3NyYy9hc3NldHMvc2Nzcy9jb21wb25lbnRzL19ldmVudC1kZXRhaWxzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL2NvbXBvbmVudHMvbmV3cy9fbmV3cy1saXN0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL2NvbXBvbmVudHMvbmV3cy9fbmV3cy1kZXRhaWxzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL2NvbXBvbmVudHMvbmV3cy9fbmV3cy1hcmNoaXZlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL2NvbXBvbmVudHMvX3R3by1jb2x1bW4tY29udGVudC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvdGVtcGxhdGVzL3NyYy9hc3NldHMvc2Nzcy9jb21wb25lbnRzL191bmRlci1jb25zdHJ1Y3Rpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9fbmF2LWRlc2t0b3Auc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvY29tcG9uZW50cy9uYXZpZ2F0aW9uL19sYW5ndWFnZS1tZW51LnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9fZ2xvYmFsLW5hdi5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvdGVtcGxhdGVzL3NyYy9hc3NldHMvc2Nzcy9jb21wb25lbnRzL25hdmlnYXRpb24vX25hdi1tb2JpbGUuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvZ2xvYmFsL190eXBvZ3JhcGh5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL2dsb2JhbC9fZm9ybXMuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvZ2xvYmFsL19pY29ucy5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvdGVtcGxhdGVzL3NyYy9hc3NldHMvc2Nzcy9nbG9iYWwvX2J1dHRvbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvZ2xvYmFsL19sYXlvdXQuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL3RlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvZ2xvYmFsL19jb29raWVjb25zZW50LnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy90ZW1wbGF0ZXMvc3JjL2Fzc2V0cy9zY3NzL19wcmludC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fdGV4dC11dGlsaXRpZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3RleHQtdHJhbnNmb3JtYXRpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fZm9udC1zdHlsaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19saXN0LXN0eWxlLXR5cGUuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3JvdW5kZWQuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2JvcmRlcmVkLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19zaGFkb3cuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2Fycm93LnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19zZXBhcmF0b3Iuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3Bvc2l0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19vdmVyZmxvdy5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fZGlzcGxheS5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fYm9yZGVyLWJveC5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fYm9yZGVyLW5vbmUuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3NpemluZy5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fc3BhY2luZy5zY3NzIiwid2VicGFjazovLy9fdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQWhCOzs7OztFRE1FO0FFMEtNO0VDbklOO0lBQ0UsV0FBVztJQUNYLFVBQVU7SUFDVixjQUFjO0VIcENoQjtBQUNGOztBSVpFO0FBUUE7RUFDRSxpQkFBaUI7RUFDakIsOEJBQThC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a0JGb1krQjtFRWxZL0IseUJGZFc7RUVlWCxnQkZGZTtFRUdmLHlCRmJhO0VFY2IsZ0JGZ1lpQjtFRTlYakIsb0JGb1h5QjtFRW5YekIsZUNadUQ7RURhdkQsbUJGVjJCO0VFVzNCLGtCRmhDdUI7RUVpQ3ZCLGNGckJhO0VFd0JYLDBDRjBYNkM7RUVyVzdDLGdCQUFnQjtBUjhLcEI7O0FBRUE7O0VRaE1JLGFBQWE7RUFDYix5QkYvQmU7RUVnQ2YseUJGeENrQjtFRXlDbEIsZ0JGZ1hxQjtFRTdXbkIsMENGK1cyQztBTjlLakQ7O0FJckdFO0VJN0VFLGVBQWU7QVJzTG5COztBUXZMRTtFQUlJLFlBQVk7QVJ1TGxCOztBUW5MRTs7O0VBS0kseUJGbEVjO0VFbUVkLG1CRmtWNkI7QU45Sm5DOztBQUVBOztFUS9LSSxnQkFBZ0I7RUFDaEIsZ0JGNURhO0FOOE9qQjs7QVE5S0U7RUFDRSxzQkFBc0I7QVJpTDFCOztBUWhLRTtFQUNFLGNGaEdTO0FObVFiOztBQUVBOzs7RVV6VUksb0JENEVxRDtBVGlRekQ7O0FBRUE7O0VVelVJLHFCQUFxQjtFQUNyQix3QkFBd0I7RUFFeEIsc0JBQWtEO0VBQ2xELHNCRGtFcUQ7RUNqRXJELGdCQUFnQjtBVjJVcEI7O0FBRUE7O0VVMVVNLGVBQWU7QVY2VXJCOztBVXhVRTs7RUFFRSx1QkFBbUQ7QVYyVXZEOztBQUVBO0VVeFVJLFdBQVc7QVYwVWY7O0FXdFVFO0VBakJBLGNBQWM7RUFDZCxTQUFTO0VBRVQsbUJGNER1RDtFRTNEdkQsbUJMOEQyQjtFSzdEM0IsZ0JMbWIwQjtFS2xiMUIsY0xtRGE7QU51U2Y7O0FXL1VFO0VBTEEsb0JGbUR1RDtFRWxEdkQsbUJBQThEO0FYd1ZoRTs7QVl6V0U7RUFHRSxzQkFGdUM7RUFHdkMsb0JIK0RxRDtFRzlEckQsa0JOK2F3QjtFTTlheEIsY051RFc7QU5tVGY7O0FhM1dFO0VBQ0UsYUFBaUM7RUFDakMsV0FBVztFQUNYLHVCSjJEcUQ7RUl4RG5ELG9CQUFvQjtBYjRXMUI7O0FhbFhFO0VBV00sc0JQd0RTO0FObVRqQjs7QWF0WEU7RUFpQk0sc0JBQWlIO0FieVd6SDs7QWFwV0U7Ozs7RUFDRSxTQUFTO0VBQ1QsbUJBQW1CO0FiMFd2Qjs7QWFsV0U7RUFFRSxlUGladUI7RU9oWnZCLHlCUG1CUztFT2xCVCxtQlBnQmdCO0VPZGhCLGNQa0JXO0VPakJYLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFHakIsYUFBYTtFQUNiLGNBQWM7RUFDZCxtQkFBbUI7QWJpV3pCOztBYTlXRTtFQXNCTSxlQUFpQztBYjRWekM7O0FhbFhFO0VBMEJNLGNBQWdDO0FiNFZ4Qzs7QWF2VkU7RUFFRSxnQkFBZ0I7RUFHZCxhQUFhO0VBQ2IsWUFBWTtBYnVWbEI7O0FhblZFO0VBRUUsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFHaEIsYUFBYTtFQUNiLGNBQWM7QWJtVnBCOztBYTNWRTs7OztFQXNCTSxtQkFBbUI7RUFDbkIsWUFBWTtFQUtkLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsZUp6Q21EO0FUaVh6RDs7QUlsUkU7RVVoSkUsU0FBUztFQUNULFVBQVU7RUFDVixTQUFTO0Fkc2FiOztBSS9RRTtFVW5KRSxlQUFlO0VBQ2Ysd0JBQWtDO0Fkc2F0Qzs7QWNuYUU7RUF4QkEsa0JMb0VXO0VLbkVYLGdCTDhEdUQ7RUs3RHZELHlCUnFEVztBTjBZYjs7QWM3YkU7RUFFRSxTQUFTO0VBQ1QsdUJMd0RxRDtFS3ZEckQsb0JMdURxRDtBVHdZekQ7O0FLaFNFO0VVektBLGlCQUZzSjtFQUd0SixvQk5nRXVEO0VNL0R2RCxrQlR1YytCO0VTcmMvQixnQkFBZ0I7RUFDaEIseUJUb0RXO0VTbkRYLGdCVGdFZTtFUy9EZix5QlRxRGE7RVNuRGIsb0JUdWJ5QjtFU3RiekIsZU51RHVEO0VNdER2RCxtQlR5RDJCO0VTeEQzQixrQlRtQ3VCO0VTbEN2QixjVDhDYTtFQ29FYixxT0FBeU47RVE5R3ZOLDhCQUE4QjtFQUM5QiwyQ0FBMEQ7RUFDMUQsNEJBQTRCO0VBQzVCLHdCQUF3QjtFQUV4Qix3QkFBdUQ7RUFJdkQsMENUbWI2QztBTmtCakQ7O0FPOVZFO0VGd0NBO0lFckNJLHVXQUF1VztFUGdXM1c7QUFDRjs7QWV2Y0U7RUFDRSxhQUFhO0VBQ2IseUJUMEJlO0VTekJmLHlCVGlCa0I7RVNoQmxCLGdCVHlhcUI7RVN0YW5CLDBDVHdhMkM7QU5nQ2pEOztBZW5jRTtFQUNFLHlCVFlnQjtFU1hoQixtQlRnYStCO0FOc0NuQzs7QWVsY0U7RUFDRSxhQUFhO0FmcWNqQjs7QWVsY0U7RUFDRSxZQUFZO0VBQ1osc0JBQXNCO0FmcWMxQjs7QWVuY0U7RUFDRSxjQUFjO0VBQ2QsaUJBQWlCO0Fmc2NyQjs7QWdCM2VFO0VBQ0UscUJWK0JjO0VVOUJkLHlCQUErRDtBaEI4ZW5FOztBZ0I1ZUk7RUFDRSxjVjJCWTtBTm9kbEI7O0FnQnJkSTtFQUNFLGNWQVk7QU53ZGxCOztBZ0JuZEU7RUF6QkEsYUFBYTtFQUNiLHNCQUFnQztFQUNoQyx1QlA4QnVEO0VPNUJ2RCxrQlA0QnVEO0VPM0J2RCxpQlYrQnVCO0VVOUJ2QixjVmNnQjtBTmllbEI7O0FnQjVkRTtFQUlJLGNBQWM7QWhCNGRwQjs7QWlCOVVFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUJFLFNBQVM7RUFDVCxVQUFVO0FqQmlWZDs7QWlCN1VFO0VBQ0UsbUJYL0QwQjtFV2lFMUIsa0JBQWtCO0VBQ2xCLGtCWHpMcUI7RVcwTHJCLGtDWGxFeUM7QU5pWjdDOztBaUIzVUU7O0VBRUUsa0JBQWtCO0VBQ2xCLG9CQUFvQjtBakI4VXhCOztBaUIxVUU7O0VBRUUsaUJYakxxQjtFV2tMckIsb0JBQW9CO0FqQjZVeEI7O0FJbmdCRTtFYTJMRSxjWHpGaUI7RVcwRmpCLG9CQUFvQjtBakI0VXhCOztBaUJ4VUU7Ozs7OztFQU1FLDhDWHhNZ0Q7RVd5TWhELGtCWHJKc0I7RVdzSnRCLGdCWHZKb0I7RVd3SnBCLGNYckprQjtFV3NKbEIsa0NYekdzQztBTm9iMUM7O0FpQnJWRTs7Ozs7O0VBYUksY0FBYztFQUNkLGNYdk5lO0FOd2lCckI7O0FpQnhVUTtFQUlJLG1CUjNONkM7RVF1TzdDLGdCWGxMVztFVzBMWCxhQUFhO0VBT2IscUJYaE1pQjtBTmdmN0I7O0FpQi9VUTtFQUlJLG9CUjNONkM7RVF1TzdDLGdCWGxMVztFVzBMWCxhQUFhO0VBT2IscUJYaE1pQjtBTnVmN0I7O0FpQnRWUTtFQUlJLG9CUjNONkM7RVF1TzdDLGdCWGxMVztFVzBMWCxhQUFhO0VBT2IscUJYaE1pQjtBTjhmN0I7O0FpQjdWUTtFQUlJLGtCUjNONkM7RVF1TzdDLGdCWGxMVztFVzBMWCxhQUFhO0VBT2IscUJYaE1pQjtBTnFnQjdCOztBaUJwV1E7RUFJSSxrQlIzTjZDO0VRdU83QyxnQlhsTFc7RVcwTFgsYUFBYTtFQU9iLHFCWGhNaUI7QU40Z0I3Qjs7QWlCM1dRO0VBSUksZVIzTjZDO0VRdU83QyxnQlhsTFc7RVcwTFgsYUFBYTtFQU9iLHFCWGhNaUI7QU5taEI3Qjs7QUVqZlE7RWUrSEE7SUFJSSxtQlIzTjZDO0VUOGtCdkQ7RWlCdlhNO0lBSUksb0JSM042QztFVGlsQnZEO0VpQjFYTTtJQUlJLG9CUjNONkM7RVRvbEJ2RDtFaUI3WE07SUFJSSxvQlIzTjZDO0VUdWxCdkQ7RWlCaFlNO0lBSUksb0JSM042QztFVDBsQnZEO0VpQm5ZTTtJQUlJLGVSM042QztFVDZsQnZEO0FBQ0Y7O0FJOW5CRTtFYStSRSxvQkFBb0I7RUFDcEIsY1h0UVc7RVd1UVgscUJYbEp5QjtFV29KekIsZUFBZTtBakJrV25COztBaUJ2V0U7RUFTSSxZWHpKMkQ7QU4yZmpFOztBaUIzV0U7RUFnQkksU0FBUztBakIrVmY7O0FJaHFCRTtFYXVVRSxXQUFXO0VBRVgsZ0JSdFJxRDtFUXVSckQsU0FBUztFQUNULG9CWHJLeUI7RVd1S3pCLGFBQWE7RUFDYixlQUFlO0VBQ2YsZ0NYcFNTO0VXcVNULGNBQWM7QWpCMlZsQjs7QWlCdlZFOzs7RUFHRSxtQlgvTDBCO0VXZ00xQiw0Qlg5S3lCO0VXK0t6QixrQlh4VHFCO0FOa3BCekI7O0FpQnRWRTtFQUNFLGtCQUFrQjtBakJ5VnRCOztBaUJyVkU7RUFDRSxvQlh4THNCO0VXeUx0QixxQlgzTGtCO0FObWhCdEI7O0FpQnBWRTtFQUNFLG9CWDlMc0I7QU5xaEIxQjs7QWlCblZFO0VBRUksb0JYbk0yQjtFV29NM0IsZ0JBQWdCO0FqQnFWdEI7O0FpQmhWRTtFQUNFLG1CWHpNeUI7QU40aEI3Qjs7QWlCcFZFO0VBSUkscUJYMU04QjtFVzJNOUIsaUJYblVtQjtBTnVwQnpCOztBaUIvVUU7RUFDRSxnQlh4TzBCO0VXeU8xQixzQ1I5VXFEO0VRK1VyRCw4Qlh4VmlCO0FOMHFCckI7O0FpQnJWRTtFQU1JLGtCWHBXbUI7RVdxV25CLGNYMVZhO0FONnFCbkI7O0FpQnJVRTtFQUNFLGlDWHhXVztFV3lXWCxZQUFZO0VBQ1oscUJBQXFCO0FqQndVekI7O0FpQnBVRTtFQUNFLFNBQVM7QWpCdVViOztBaUI1VEU7RUFDRSxTQUFTO0VBQ1QsMkJSalhTO0VRbVhULHlCWGxZZ0I7RVdvWWhCLDREWHZVbUU7RVd3VW5FLGNYallXO0FOOHJCZjs7QWtCM29CRTtFQUNFLGtCWm9HeUI7RVluR3pCLHFCWm9HNEI7RVlsRzVCLG1CWjlDeUI7RVkrQ3pCLGdCWjZGc0I7RVk1RnRCLGNaMURlO0FOdXNCbkI7O0FrQnpvQkU7RUFDRSxlWnFGcUM7RVlwRnJDLGdCWnFGaUI7QU51akJyQjs7QWtCeG9CRTtFQUNFLGlCWnNGbUI7RVlyRm5CLGNBQWM7QWxCMm9CbEI7O0FrQnpvQkk7RUFDRSxpQkFBaUI7QWxCNG9CdkI7O0FrQnhvQkU7RUFHSSxjQUFnQztFQUNoQyxnQkFBZ0I7QWxCeW9CdEI7O0FrQnJvQkU7RUFqRkEsY0FBYztFQUNkLGNaTGlCO0VZTWpCLG9CVEN1RDtBVHl0QnpEOztBa0J4dEJFO0VBQ0UsYVpnSWtCO0FOMmxCdEI7O0FrQjNvQkU7RUF6RUEseUJabEJtQjtFWW1CbkIseUJacEJrQjtFWXNCbEIsNERadUNxRTtFWXRDckUsbUJaVjJCO0VZVzNCLGNacEJhO0VZMEJiLGVBQWU7RUFDZixlQUFlO0VBQ2YscUJBQXFCO0VBRXJCLHFDVHhCdUQ7QVR5dUJ6RDs7QWtCbHBCRTtFQTlFQSx5QlpsQm1CO0VZbUJuQix5QlpwQmtCO0VZc0JsQiw0RFp1Q3FFO0VZ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QTZEO0VBQTdELHFCQUE2RDtFQ2RuRSxlRkZtQztFRUduQyxpQkFBaUI7RUFDakIsa0JBQWtCO0F2QnVnQ3BCOztBRTMyQlE7RW1CcEtOO0lDb0JNLHVCQUE2RDtJQUE3RCxzQkFBNkQ7RXRCaWdDbkU7QUFDRjs7QUVsM0JRO0VtQnBLTjtJQ29CTSx3QkFBNkQ7SUFBN0QsdUJBQTZEO0V0QndnQ25FO0FBQ0Y7O0FxQjdoQ0U7RUM2QkksZ0JBQTZEO0VBQTdELGVBQTZEO0VDdkJqRSxlRkVtQztFRURuQyxpQkFBaUI7RUFDakIsa0JBQWtCO0F2QjZoQ3BCOztBcUJ4aENFO0VFU0EsYUFBYTtFQUNiLG1CQUhxQjtBdkJzaEN2Qjs7QXFCemhDRTtFRzRGQSxjQUFNO0VBSUosZUFBZTtFQUNmLGNBQWM7RUFzQ2QsV0F0RWlDO0F4Qis5QnJDOztBcUJoaUNFO0VHNEZBLGFBQU07QXhCdzhCUjs7QXFCcGlDRTtFRzRGQSxjQUFNO0F4QjQ4QlI7O0FxQjVoQ0U7RUcySEUsV0FsRlk7QXhCdS9CaEI7O0FxQmhpQ0U7RUcySEUsV0FsRlk7QXhCMi9CaEI7O0FxQnBoQ0k7RUFNSSxnQkFBZ0I7QXJCa2hDeEI7O0FFajZCUTtFbUJ2SEo7SUFNSSxnQkFBZ0I7RXJCdWhDdEI7QUFDRjs7QUV2NkJRO0VtQnZISjtJQU1JLGdCQUFnQjtFckI2aEN0QjtBQUNGOztBRTc2QlE7RW1CdkhKO0lBTUksZ0JBQWdCO0VyQm1pQ3RCO0FBQ0Y7O0FFOTZCUTtFbUI1SEo7SUFNSSxnQkFBZ0I7RXJCeWlDdEI7QUFDRjs7QUVwN0JRO0VtQjVISjtJQU1JLGdCQUFnQjtFckIraUN0QjtBQUNGOztBcUJuaUNJO0VHNkNGLGNBQU07QXhCMC9CUjs7QXFCeGhDTTtFR3lFRixlQ25CeUQ7QXpCcytCN0Q7O0FxQjVoQ007RUd5RUYsZ0JDbkJ5RDtBekIwK0I3RDs7QXFCaGlDTTtFR3lFRixVQ25CeUQ7QXpCOCtCN0Q7O0FxQnBpQ007RUd5RUYsZ0JDbkJ5RDtBekJrL0I3RDs7QXFCeGlDTTtFR3lFRixnQkNuQnlEO0F6QnMvQjdEOztBcUI1aUNNO0VHeUVGLFVDbkJ5RDtBekIwL0I3RDs7QXFCaGpDTTtFR3lFRixnQkNuQnlEO0F6QjgvQjdEOztBcUJwakNNO0VHeUVGLGdCQ25CeUQ7QXpCa2dDN0Q7O0FxQnhqQ007RUd5RUYsVUNuQnlEO0F6QnNnQzdEOztBcUI1akNNO0VHeUVGLGdCQ25CeUQ7QXpCMGdDN0Q7O0FxQmhrQ007RUd5RUYsZ0JDbkJ5RDtBekI4Z0M3RDs7QXFCcGtDTTtFR3lFRixXQ25CeUQ7QXpCa2hDN0Q7O0FFbi9CUTtFbUJ6R0Y7SUdrREosYUFBTTtJQTJDSixXQWxGWTtFeEJ1bENkO0VxQjdsQ0U7SUc2Q0YsY0FBTTtFeEJtakNOO0VxQjFsQ0k7SUdrRkYsV0FsRlk7RXhCNmxDZDtFcUJwbENJO0lHeUVGLGVDbkJ5RDtFekJpaUMzRDtFcUJ2bENJO0lHeUVGLGdCQ25CeUQ7RXpCb2lDM0Q7RXFCMWxDSTtJR3lFRixVQ25CeUQ7RXpCdWlDM0Q7RXFCN2xDSTtJR3lFRixnQkNuQnlEO0V6QjBpQzNEO0VxQmhtQ0k7SUd5RUYsZ0JDbkJ5RDtFekI2aUMzRDtFcUJubUNJO0lHeUVGLFVDbkJ5RDtFekJnakMzRDtFcUJ0bUNJO0lHeUVGLGdCQ25CeUQ7RXpCbWpDM0Q7RXFCem1DSTtJR3lFRixnQkNuQnlEO0V6QnNqQzNEO0VxQjVtQ0k7SUd5RUYsVUNuQnlEO0V6QnlqQzNEO0VxQi9tQ0k7SUd5RUYsZ0JDbkJ5RDtFekI0akMzRDtFcUJsbkNJO0lHeUVGLGdCQ25CeUQ7RXpCK2pDM0Q7RXFCcm5DSTtJR3lFRixXQ25CeUQ7RXpCa2tDM0Q7QUFDRjs7QUVwaUNRO0VtQnpHRjtJR2tESixhQUFNO0lBMkNKLFdBbEZZO0V4QndvQ2Q7RXFCOW9DRTtJRzZDRixjQUFNO0V4Qm9tQ047RXFCM29DSTtJR2tGRixXQWxGWTtFeEI4b0NkO0VxQnJvQ0k7SUd5RUYsZUNuQnlEO0V6QmtsQzNEO0VxQnhvQ0k7SUd5RUYsZ0JDbkJ5RDtFekJxbEMzRDtFcUIzb0NJO0lHeUVGLFVDbkJ5RDtFekJ3bEMzRDtFcUI5b0NJO0lHeUVGLGdCQ25CeUQ7RXpCMmxDM0Q7RXFCanBDSTtJR3lFRixnQkNuQnlEO0V6QjhsQzNEO0VxQnBwQ0k7SUd5RUYsVUNuQnlEO0V6QmltQzNEO0VxQnZwQ0k7SUd5RUYsZ0JDbkJ5RDtFekJvbUMzRDtFcUIxcENJO0lHeUVGLGdCQ25CeUQ7RXpCdW1DM0Q7RXFCN3BDSTtJR3lFRixVQ25CeUQ7RXpCMG1DM0Q7RXFCaHFDSTtJR3lFRixnQkNuQnlEO0V6QjZtQzNEO0VxQm5xQ0k7SUd5RUYsZ0JDbkJ5RDtFekJnbkMzRDtFcUJ0cUNJO0lHeUVGLFdDbkJ5RDtFekJtbkMzRDtBQUNGOztBRXJsQ1E7RW1CekdGO0lHa0RKLGFBQU07SUEyQ0osV0FsRlk7RXhCeXJDZDtFcUIvckNFO0lHNkNGLGNBQU07RXhCcXBDTjtFcUI1ckNJO0lHa0ZGLFdBbEZZO0V4QityQ2Q7RXFCdHJDSTtJR3lFRixlQ25CeUQ7RXpCbW9DM0Q7RXFCenJDSTtJR3lFRixnQkNuQnlEO0V6QnNvQzNEO0VxQjVyQ0k7SUd5RUYsVUNuQnlEO0V6QnlvQzNEO0VxQi9yQ0k7SUd5RUYsZ0JDbkJ5RDtFekI0b0MzRDtFcUJsc0NJO0lHeUVGLGdCQ25CeUQ7RXpCK29DM0Q7RXFCcnNDSTtJR3lFRixVQ25CeUQ7RXpCa3BDM0Q7RXFCeHNDSTtJR3lFRixnQkNuQnlEO0V6QnFwQzNEO0VxQjNzQ0k7SUd5RUYsZ0JDbkJ5RDtFekJ3cEMzRDtFcUI5c0NJO0lHeUVGLFVDbkJ5RDtFekIycEMzRDtFcUJqdENJO0lHeUVGLGdCQ25CeUQ7RXpCOHBDM0Q7RXFCcHRDSTtJR3lFRixnQkNuQnlEO0V6QmlxQzNEO0VxQnZ0Q0k7SUd5RUYsV0NuQnlEO0V6Qm9xQzNEO0FBQ0Y7O0FFam9DUTtFbUI5R0Y7SUdrREosYUFBTTtJQTJDSixXQWxGWTtFeEIwdUNkO0VxQmh2Q0U7SUc2Q0YsY0FBTTtFeEJzc0NOO0VxQjd1Q0k7SUdrRkYsV0FsRlk7RXhCZ3ZDZDtFcUJ2dUNJO0lHeUVGLGVDbkJ5RDtFekJvckMzRDtFcUIxdUNJO0lHeUVGLGdCQ25CeUQ7RXpCdXJDM0Q7RXFCN3VDSTtJR3lFRixVQ25CeUQ7RXpCMHJDM0Q7RXFCaHZDSTtJR3lFRixnQkNuQnlEO0V6QjZyQzNEO0VxQm52Q0k7SUd5RUYsZ0JDbkJ5RDtFekJnc0MzRDtFcUJ0dkNJO0lHeUVGLFVDbkJ5RDtFekJtc0MzRDtFcUJ6dkNJO0lHeUVGLGdCQ25CeUQ7RXpCc3NDM0Q7RXFCNXZDSTtJR3lFRixnQkNuQnlEO0V6QnlzQzNEO0VxQi92Q0k7SUd5RUYsVUNuQnlEO0V6QjRzQzNEO0VxQmx3Q0k7SUd5RUYsZ0JDbkJ5RDtFekIrc0MzRDtFcUJyd0NJO0lHeUVGLGdCQ25CeUQ7RXpCa3RDM0Q7RXFCeHdDSTtJR3lFRixXQ25CeUQ7RXpCcXRDM0Q7QUFDRjs7QUVsckNRO0VtQjlHRjtJR2tESixhQUFNO0lBMkNKLFdBbEZZO0V4QjJ4Q2Q7RXFCanlDRTtJRzZDRixjQUFNO0V4QnV2Q047RXFCOXhDSTtJR2tGRixXQWxGWTtFeEJpeUNkO0VxQnh4Q0k7SUd5RUYsZUNuQnlEO0V6QnF1QzNEO0VxQjN4Q0k7SUd5RUYsZ0JDbkJ5RDtFekJ3dUMzRDtFcUI5eENJO0lHeUVGLFVDbkJ5RDtFekIydUMzRDtFcUJqeUNJO0lHeUVGLGdCQ25CeUQ7RXpCOHVDM0Q7RXFCcHlDSTtJR3lFRixnQkNuQnlEO0V6Qml2QzNEO0VxQnZ5Q0k7SUd5RUYsVUNuQnlEO0V6Qm92QzNEO0VxQjF5Q0k7SUd5RUYsZ0JDbkJ5RDtFekJ1dkMzRDtFcUI3eUNJO0lHeUVGLGdCQ25CeUQ7RXpCMHZDM0Q7RXFCaHpDSTtJR3lFRixVQ25CeUQ7RXpCNnZDM0Q7RXFCbnpDSTtJR3lFRixnQkNuQnlEO0V6Qmd3QzNEO0VxQnR6Q0k7SUd5RUYsZ0JDbkJ5RDtFekJtd0MzRDtFcUJ6ekNJO0lHeUVGLFdDbkJ5RDtFekJzd0MzRDtBQUNGOztBcUJyekNFO0VBQ0UsV0FBVztBckJ3ekNmOztBcUJwekNFO0VBQ0UsWUFBWTtBckJ1ekNoQjs7QXFCenhDRTtFQ3ZHTSxxQkFBNkQ7RUFBN0Qsc0JBQTZEO0F0QnE0Q3JFOztBRXJ2Q1E7RW1CekNOO0lDdkdNLHVCQUE2RDtJQUE3RCx3QkFBNkQ7RXRCMjRDbkU7QUFDRjs7QXFCcnlDRTtFRzZCRSwwQkF0RDhGO0VGckU1RixvQkFBNkQ7RUFBN0QscUJBQTZEO0F0Qnk0Q25FOztBRWx3Q1E7RW1CekNOO0lHNkJFLDRCQXREOEY7SUZyRTVGLHNCQUE2RDtJQUE3RCx1QkFBNkQ7RXRCZzVDakU7QUFDRjs7QXFCMzBDRTtFR3FERSxXQWxGWTtBeEI0MkNoQjs7QXFCMzBDRTtFR2lERSxXQWxGWTtBeEJnM0NoQjs7QXFCdjBDSTtFR3lDQSw4QkF0RDhGO0F4QncxQ2xHOztBcUIzMENJO0VHeUNBLCtCQXREOEY7QXhCNDFDbEc7O0FxQi8wQ0k7RUd5Q0EseUJBdEQ4RjtBeEJnMkNsRzs7QXFCbjFDSTtFR3lDQSwrQkF0RDhGO0F4Qm8yQ2xHOztBcUJ2MUNJO0VHeUNBLCtCQXREOEY7QXhCdzJDbEc7O0FxQjMxQ0k7RUd5Q0EseUJBdEQ4RjtBeEI0MkNsRzs7QXFCLzFDSTtFR3lDQSwrQkF0RDhGO0F4QmczQ2xHOztBcUJuMkNJO0VHeUNBLCtCQXREOEY7QXhCbzNDbEc7O0FxQnYyQ0k7RUd5Q0EseUJBdEQ4RjtBeEJ3M0NsRzs7QXFCMzJDSTtFR3lDQSwrQkF0RDhGO0F4QjQzQ2xHOztBcUIvMkNJO0VHeUNBLCtCQXREOEY7QXhCZzRDbEc7O0FxQm4zQ0k7RUd5Q0EsMEJBdEQ4RjtBeEJvNENsRzs7QUVsMENRO0VtQmpFTjtJR3FERSxXQWxGWTtFeEJxNkNkO0VxQnA0Q0E7SUdpREUsV0FsRlk7RXhCdzZDZDtFcUIvM0NFO0lHeUNBLGdDQXREOEY7RXhCKzRDaEc7RXFCbDRDRTtJR3lDQSxpQ0F0RDhGO0V4Qms1Q2hHO0VxQnI0Q0U7SUd5Q0EsMkJBdEQ4RjtFeEJxNUNoRztFcUJ4NENFO0lHeUNBLGlDQXREOEY7RXhCdzVDaEc7RXFCMzRDRTtJR3lDQSxpQ0F0RDhGO0V4QjI1Q2hHO0VxQjk0Q0U7SUd5Q0EsMkJBdEQ4RjtFeEI4NUNoRztFcUJqNUNFO0lHeUNBLGlDQXREOEY7RXhCaTZDaEc7RXFCcDVDRTtJR3lDQSxpQ0F0RDhGO0V4Qm82Q2hHO0VxQnY1Q0U7SUd5Q0EsMkJBdEQ4RjtFeEJ1NkNoRztFcUIxNUNFO0lHeUNBLGlDQXREOEY7RXhCMDZDaEc7RXFCNzVDRTtJR3lDQSxpQ0F0RDhGO0V4QjY2Q2hHO0VxQmg2Q0U7SUd5Q0EsNEJBdEQ4RjtFeEJnN0NoRztFcUIvNkNBO0lHcURFLFdBbEZZO0V4Qis4Q2Q7RXFCOTZDQTtJR2lERSxXQWxGWTtFeEJrOUNkO0VxQno2Q0U7SUd5Q0EsZ0NBdEQ4RjtFeEJ5N0NoRztFcUI1NkNFO0lHeUNBLGlDQXREOEY7RXhCNDdDaEc7RXFCLzZDRTtJR3lDQSwyQkF0RDhGO0V4Qis3Q2hHO0VxQmw3Q0U7SUd5Q0EsaUNBdEQ4RjtFeEJrOENoRztFcUJyN0NFO0lHeUNBLGlDQXREOEY7RXhCcThDaEc7RXFCeDdDRTtJR3lDQSwyQkF0RDhGO0V4Qnc4Q2hHO0VxQjM3Q0U7SUd5Q0EsaUNBdEQ4RjtFeEIyOENoRztFcUI5N0NFO0lHeUNBLGlDQXREOEY7RXhCODhDaEc7RXFCajhDRTtJR3lDQSwyQkF0RDhGO0V4Qmk5Q2hHO0VxQnA4Q0U7SUd5Q0EsaUNBdEQ4RjtFeEJvOUNoRztFcUJ2OENFO0lHeUNBLGlDQXREOEY7RXhCdTlDaEc7RXFCMThDRTtJR3lDQSw0QkF0RDhGO0V4QjA5Q2hHO0FBQ0Y7O0FFejVDUTtFbUJqRU47SUdxREUsV0FsRlk7RXhCNC9DZDtFcUIzOUNBO0lHaURFLFdBbEZZO0V4QisvQ2Q7RXFCdDlDRTtJR3lDQSxnQ0F0RDhGO0V4QnMrQ2hHO0VxQno5Q0U7SUd5Q0EsaUNBdEQ4RjtFeEJ5K0NoRztFcUI1OUNFO0lHeUNBLDJCQXREOEY7RXhCNCtDaEc7RXFCLzlDRTtJR3lDQSxpQ0F0RDhGO0V4QisrQ2hHO0VxQmwrQ0U7SUd5Q0EsaUNBdEQ4RjtFeEJrL0NoRztFcUJyK0NFO0lHeUNBLDJCQXREOEY7RXhCcS9DaEc7RXFCeCtDRTtJR3lDQSxpQ0F0RDhGO0V4QncvQ2hHO0VxQjMrQ0U7SUd5Q0EsaUNBdEQ4RjtFeEIyL0NoRztFcUI5K0NFO0lHeUNBLDJCQXREOEY7RXhCOC9DaEc7RXFCai9DRTtJR3lDQSxpQ0F0RDhGO0V4QmlnRGhHO0VxQnAvQ0U7SUd5Q0EsaUNBdEQ4RjtFeEJvZ0RoRztFcUJ2L0NFO0lHeUNBLDRCQXREOEY7RXhCdWdEaEc7QUFDRjs7QUV0OENRO0VtQmpFTjtJR3FERSxXQWxGWTtFeEJ5aURkO0VxQnhnREE7SUdpREUsV0FsRlk7RXhCNGlEZDtFcUJuZ0RFO0lHeUNBLGdDQXREOEY7RXhCbWhEaEc7RXFCdGdERTtJR3lDQSxpQ0F0RDhGO0V4QnNoRGhHO0VxQnpnREU7SUd5Q0EsMkJBdEQ4RjtFeEJ5aERoRztFcUI1Z0RFO0lHeUNBLGlDQXREOEY7RXhCNGhEaEc7RXFCL2dERTtJR3lDQSxpQ0F0RDhGO0V4QitoRGhHO0VxQmxoREU7SUd5Q0EsMkJBdEQ4RjtFeEJraURoRztFcUJyaERFO0lHeUNBLGlDQXREOEY7RXhCcWlEaEc7RXFCeGhERTtJR3lDQSxpQ0F0RDhGO0V4QndpRGhHO0VxQjNoREU7SUd5Q0EsMkJBdEQ4RjtFeEIyaURoRztFcUI5aERFO0lHeUNBLGlDQXREOEY7RXhCOGlEaEc7RXFCamlERTtJR3lDQSxpQ0F0RDhGO0V4QmlqRGhHO0VxQnBpREU7SUd5Q0EsNEJBdEQ4RjtFeEJvakRoRztBQUNGOztBRTkrQ1E7RW1CdEVOO0lHcURFLFdBbEZZO0V4QnNsRGQ7RXFCcmpEQTtJR2lERSxXQWxGWTtFeEJ5bERkO0VxQmhqREU7SUd5Q0EsZ0NBdEQ4RjtFeEJna0RoRztFcUJuakRFO0lHeUNBLGlDQXREOEY7RXhCbWtEaEc7RXFCdGpERTtJR3lDQSwyQkF0RDhGO0V4QnNrRGhHO0VxQnpqREU7SUd5Q0EsaUNBdEQ4RjtFeEJ5a0RoRztFcUI1akRFO0lHeUNBLGlDQXREOEY7RXhCNGtEaEc7RXFCL2pERTtJR3lDQSwyQkF0RDhGO0V4QitrRGhHO0VxQmxrREU7SUd5Q0EsaUNBdEQ4RjtFeEJrbERoRztFcUJya0RFO0lHeUNBLGlDQXREOEY7RXhCcWxEaEc7RXFCeGtERTtJR3lDQSwyQkF0RDhGO0V4QndsRGhHO0VxQjNrREU7SUd5Q0EsaUNBdEQ4RjtFeEIybERoRztFcUI5a0RFO0lHeUNBLGlDQXREOEY7RXhCOGxEaEc7RXFCamxERTtJR3lDQSw0QkF0RDhGO0V4QmltRGhHO0FBQ0Y7O0FFM2hEUTtFbUJ0RU47SUdxREUsV0FsRlk7RXhCbW9EZDtFcUJsbURBO0lHaURFLFdBbEZZO0V4QnNvRGQ7RXFCN2xERTtJR3lDQSxnQ0F0RDhGO0V4QjZtRGhHO0VxQmhtREU7SUd5Q0EsaUNBdEQ4RjtFeEJnbkRoRztFcUJubURFO0lHeUNBLDJCQXREOEY7RXhCbW5EaEc7RXFCdG1ERTtJR3lDQSxpQ0F0RDhGO0V4QnNuRGhHO0VxQnptREU7SUd5Q0EsaUNBdEQ4RjtFeEJ5bkRoRztFcUI1bURFO0lHeUNBLDJCQXREOEY7RXhCNG5EaEc7RXFCL21ERTtJR3lDQSxpQ0F0RDhGO0V4QituRGhHO0VxQmxuREU7SUd5Q0EsaUNBdEQ4RjtFeEJrb0RoRztFcUJybkRFO0lHeUNBLDJCQXREOEY7RXhCcW9EaEc7RXFCeG5ERTtJR3lDQSxpQ0F0RDhGO0V4QndvRGhHO0VxQjNuREU7SUd5Q0EsaUNBdEQ4RjtFeEIyb0RoRztFcUI5bkRFO0lHeUNBLDRCQXREOEY7RXhCOG9EaEc7QUFDRjs7QXFCbGxERTtFQzNJTSxzQkFBNkQ7RUFBN0QscUJBQTZEO0F0Qmt1RHJFOztBRWxsRFE7RW1CTE47SUMzSU0sd0JBQTZEO0lBQTdELHVCQUE2RDtFdEJ3dURuRTtBQUNGOztBcUJybERJO0VDcEpJLHNCQUE2RDtFQUE3RCxxQkFBNkQ7QXRCOHVEckU7O0FFOWxEUTtFbUJJSjtJQ3BKSSx3QkFBNkQ7SUFBN0QsdUJBQTZEO0V0Qm92RG5FO0FBQ0Y7O0FxQjFtREU7RUMzSU0sc0JBQTZEO0VBQTdELHFCQUE2RDtBdEIwdkRyRTs7QUUxbURRO0VtQkxOO0lDM0lNLHdCQUE2RDtJQUE3RCx1QkFBNkQ7RXRCZ3dEbkU7QUFDRjs7QTBCandERTtFRm9JRSxXQ25CeUQ7QXpCb3BEN0Q7O0EwQnJ3REU7RUZvSUUsVUNuQnlEO0F6QndwRDdEOztBMEJ6d0RFO0VGb0lFLGdCQ25CeUQ7QXpCNHBEN0Q7O0EwQjd3REU7RUZvSUUsVUNuQnlEO0F6QmdxRDdEOztBMEJqeERFO0VGb0lFLFVDbkJ5RDtBekJvcUQ3RDs7QTBCcnhERTtFRm9JRSxnQkNuQnlEO0F6QndxRDdEOztBMEJ6eERFO0VGb0lFLGdCQ25CeUQ7QXpCNHFEN0Q7O0EwQjd4REU7RUZvSUUsWUNuQnlEO0F6QmdyRDdEOztBRWpwRFE7RXdCaEpOO0lGb0lFLFdDbkJ5RDtFekJxckQzRDtFMEJ0eURBO0lGb0lFLFVDbkJ5RDtFekJ3ckQzRDtFMEJ6eURBO0lGb0lFLGdCQ25CeUQ7RXpCMnJEM0Q7RTBCNXlEQTtJRm9JRSxVQ25CeUQ7RXpCOHJEM0Q7RTBCL3lEQTtJRm9JRSxVQ25CeUQ7RXpCaXNEM0Q7RTBCbHpEQTtJRm9JRSxnQkNuQnlEO0V6Qm9zRDNEO0UwQnJ6REE7SUZvSUUsZ0JDbkJ5RDtFekJ1c0QzRDtFMEJ4ekRBO0lGb0lFLFlDbkJ5RDtFekIwc0QzRDtBQUNGOztBRTVxRFE7RXdCaEpOO0lGb0lFLFdDbkJ5RDtFekJndEQzRDtFMEJqMERBO0lGb0lFLFVDbkJ5RDtFekJtdEQzRDtFMEJwMERBO0lGb0lFLGdCQ25CeUQ7RXpCc3REM0Q7RTBCdjBEQTtJRm9JRSxVQ25CeUQ7RXpCeXREM0Q7RTBCMTBEQTtJRm9JRSxVQ25CeUQ7RXpCNHREM0Q7RTBCNzBEQTtJRm9JRSxnQkNuQnlEO0V6Qit0RDNEO0UwQmgxREE7SUZvSUUsZ0JDbkJ5RDtFekJrdUQzRDtFMEJuMURBO0lGb0lFLFlDbkJ5RDtFekJxdUQzRDtBQUNGOztBRXZzRFE7RXdCaEpOO0lGb0lFLFdDbkJ5RDtFekIydUQzRDtFMEI1MURBO0lGb0lFLFVDbkJ5RDtFekI4dUQzRDtFMEIvMURBO0lGb0lFLGdCQ25CeUQ7RXpCaXZEM0Q7RTBCbDJEQTtJRm9JRSxVQ25CeUQ7RXpCb3ZEM0Q7RTBCcjJEQTtJRm9JRSxVQ25CeUQ7RXpCdXZEM0Q7RTBCeDJEQTtJRm9JRSxnQkNuQnlEO0V6QjB2RDNEO0UwQjMyREE7SUZvSUUsZ0JDbkJ5RDtFekI2dkQzRDtFMEI5MkRBO0lGb0lFLFlDbkJ5RDtFekJnd0QzRDtBQUNGOztBRTd0RFE7RXdCckpOO0lGb0lFLFdDbkJ5RDtFekJzd0QzRDtFMEJ2M0RBO0lGb0lFLFVDbkJ5RDtFekJ5d0QzRDtFMEIxM0RBO0lGb0lFLGdCQ25CeUQ7RXpCNHdEM0Q7RTBCNzNEQTtJRm9JRSxVQ25CeUQ7RXpCK3dEM0Q7RTBCaDREQTtJRm9JRSxVQ25CeUQ7RXpCa3hEM0Q7RTBCbjREQTtJRm9JRSxnQkNuQnlEO0V6QnF4RDNEO0UwQnQ0REE7SUZvSUUsZ0JDbkJ5RDtFekJ3eEQzRDtFMEJ6NERBO0lGb0lFLFlDbkJ5RDtFekIyeEQzRDtBQUNGOztBRXh2RFE7RXdCckpOO0lGb0lFLFdDbkJ5RDtFekJpeUQzRDtFMEJsNURBO0lGb0lFLFVDbkJ5RDtFekJveUQzRDtFMEJyNURBO0lGb0lFLGdCQ25CeUQ7RXpCdXlEM0Q7RTBCeDVEQTtJRm9JRSxVQ25CeUQ7RXpCMHlEM0Q7RTBCMzVEQTtJRm9JRSxVQ25CeUQ7RXpCNnlEM0Q7RTBCOTVEQTtJRm9JRSxnQkNuQnlEO0V6Qmd6RDNEO0UwQmo2REE7SUZvSUUsZ0JDbkJ5RDtFekJtekQzRDtFMEJwNkRBO0lGb0lFLFlDbkJ5RDtFekJzekQzRDtBQUNGOztBMEJ4NkRFO0VGb0lFLDBCQXREOEY7QXhCODFEbEc7O0EwQjU2REU7RUZvSUUseUJBdEQ4RjtBeEJrMkRsRzs7QTBCaDdERTtFRm9JRSwrQkF0RDhGO0F4QnMyRGxHOztBMEJwN0RFO0VGb0lFLHlCQXREOEY7QXhCMDJEbEc7O0EwQng3REU7RUZvSUUseUJBdEQ4RjtBeEI4MkRsRzs7QTBCNTdERTtFRm9JRSwrQkF0RDhGO0F4QmszRGxHOztBMEJoOERFO0VGb0lFLCtCQXREOEY7QXhCczNEbEc7O0EwQnA4REU7RUZvSUUsMkJBdEQ4RjtBeEIwM0RsRzs7QUV4ekRRO0V3QmhKTjtJRm9JRSw0QkF0RDhGO0V4QiszRGhHO0UwQjc4REE7SUZvSUUsMkJBdEQ4RjtFeEJrNERoRztFMEJoOURBO0lGb0lFLGlDQXREOEY7RXhCcTREaEc7RTBCbjlEQTtJRm9JRSwyQkF0RDhGO0V4Qnc0RGhHO0UwQnQ5REE7SUZvSUUsMkJBdEQ4RjtFeEIyNERoRztFMEJ6OURBO0lGb0lFLGlDQXREOEY7RXhCODREaEc7RTBCNTlEQTtJRm9JRSxpQ0F0RDhGO0V4Qmk1RGhHO0UwQi85REE7SUZvSUUsNkJBdEQ4RjtFeEJvNURoRztFMEJsK0RBO0lGb0lFLDRCQXREOEY7RXhCdTVEaEc7RTBCcitEQTtJRm9JRSwyQkF0RDhGO0V4QjA1RGhHO0UwQngrREE7SUZvSUUsaUNBdEQ4RjtFeEI2NURoRztFMEIzK0RBO0lGb0lFLDJCQXREOEY7RXhCZzZEaEc7RTBCOStEQTtJRm9JRSwyQkF0RDhGO0V4Qm02RGhHO0UwQmovREE7SUZvSUUsaUNBdEQ4RjtFeEJzNkRoRztFMEJwL0RBO0lGb0lFLGlDQXREOEY7RXhCeTZEaEc7RTBCdi9EQTtJRm9JRSw2QkF0RDhGO0V4QjQ2RGhHO0FBQ0Y7O0FFMzJEUTtFd0JoSk47SUZvSUUsNEJBdEQ4RjtFeEJrN0RoRztFMEJoZ0VBO0lGb0lFLDJCQXREOEY7RXhCcTdEaEc7RTBCbmdFQTtJRm9JRSxpQ0F0RDhGO0V4Qnc3RGhHO0UwQnRnRUE7SUZvSUUsMkJBdEQ4RjtFeEIyN0RoRztFMEJ6Z0VBO0lGb0lFLDJCQXREOEY7RXhCODdEaEc7RTBCNWdFQTtJRm9JRSxpQ0F0RDhGO0V4Qmk4RGhHO0UwQi9nRUE7SUZvSUUsaUNBdEQ4RjtFeEJvOERoRztFMEJsaEVBO0lGb0lFLDZCQXREOEY7RXhCdThEaEc7QUFDRjs7QUV0NERRO0V3QmhKTjtJRm9JRSw0QkF0RDhGO0V4QjY4RGhHO0UwQjNoRUE7SUZvSUUsMkJBdEQ4RjtFeEJnOURoRztFMEI5aEVBO0lGb0lFLGlDQXREOEY7RXhCbTlEaEc7RTBCamlFQTtJRm9JRSwyQkF0RDhGO0V4QnM5RGhHO0UwQnBpRUE7SUZvSUUsMkJBdEQ4RjtFeEJ5OURoRztFMEJ2aUVBO0lGb0lFLGlDQXREOEY7RXhCNDlEaEc7RTBCMWlFQTtJRm9JRSxpQ0F0RDhGO0V4Qis5RGhHO0UwQjdpRUE7SUZvSUUsNkJBdEQ4RjtFeEJrK0RoRztBQUNGOztBRTU1RFE7RXdCckpOO0lGb0lFLDRCQXREOEY7RXhCdytEaEc7RTBCdGpFQTtJRm9JRSwyQkF0RDhGO0V4QjIrRGhHO0UwQnpqRUE7SUZvSUUsaUNBdEQ4RjtFeEI4K0RoRztFMEI1akVBO0lGb0lFLDJCQXREOEY7RXhCaS9EaEc7RTBCL2pFQTtJRm9JRSwyQkF0RDhGO0V4Qm8vRGhHO0UwQmxrRUE7SUZvSUUsaUNBdEQ4RjtFeEJ1L0RoRztFMEJya0VBO0lGb0lFLGlDQXREOEY7RXhCMC9EaEc7RTBCeGtFQTtJRm9JRSw2QkF0RDhGO0V4QjYvRGhHO0FBQ0Y7O0FFdjdEUTtFd0JySk47SUZvSUUsNEJBdEQ4RjtFeEJtZ0VoRztFMEJqbEVBO0lGb0lFLDJCQXREOEY7RXhCc2dFaEc7RTBCcGxFQTtJRm9JRSxpQ0F0RDhGO0V4QnlnRWhHO0UwQnZsRUE7SUZvSUUsMkJBdEQ4RjtFeEI0Z0VoRztFMEIxbEVBO0lGb0lFLDJCQXREOEY7RXhCK2dFaEc7RTBCN2xFQTtJRm9JRSxpQ0F0RDhGO0V4QmtoRWhHO0UwQmhtRUE7SUZvSUUsaUNBdEQ4RjtFeEJxaEVoRztFMEJubUVBO0lGb0lFLDZCQXREOEY7RXhCd2hFaEc7QUFDRjs7QXFCaDZETTtFTTlNRSxlQUEwQjtFQUExQixjQUEwQjtBM0JtbkVsQzs7QTJCaG5FTTtFQUVJLGVBQTBCO0VBQTFCLGNBQTBCO0EzQm1uRXBDOztBMkI3bEVZO0VIZ0hSLGVDbkJ5RDtBekJvZ0U3RDs7QTJCam1FWTtFSGdIUixnQkNuQnlEO0F6QndnRTdEOztBMkJybUVZO0VIZ0hSLFVDbkJ5RDtBekI0Z0U3RDs7QTJCem1FWTtFSGdIUixnQkNuQnlEO0F6QmdoRTdEOztBMkI3bUVZO0VIZ0hSLGdCQ25CeUQ7QXpCb2hFN0Q7O0EyQmpuRVk7RUhnSFIsVUNuQnlEO0F6QndoRTdEOztBMkJybkVZO0VIZ0hSLGdCQ25CeUQ7QXpCNGhFN0Q7O0EyQnpuRVk7RUhnSFIsZ0JDbkJ5RDtBekJnaUU3RDs7QTJCN25FWTtFSGdIUixVQ25CeUQ7QXpCb2lFN0Q7O0EyQmpvRVk7RUhnSFIsZ0JDbkJ5RDtBekJ3aUU3RDs7QTJCcm9FWTtFSGdIUixnQkNuQnlEO0F6QjRpRTdEOztBMkJ6b0VZO0VIZ0hSLFdDbkJ5RDtBekJnakU3RDs7QUVqaEVRO0V5QjVISTtJSGdIUixlQ25CeUQ7RXpCcWpFM0Q7RTJCbHBFVTtJSGdIUixnQkNuQnlEO0V6QndqRTNEO0UyQnJwRVU7SUhnSFIsVUNuQnlEO0V6QjJqRTNEO0UyQnhwRVU7SUhnSFIsZ0JDbkJ5RDtFekI4akUzRDtFMkIzcEVVO0lIZ0hSLGdCQ25CeUQ7RXpCaWtFM0Q7RTJCOXBFVTtJSGdIUixVQ25CeUQ7RXpCb2tFM0Q7RTJCanFFVTtJSGdIUixnQkNuQnlEO0V6QnVrRTNEO0UyQnBxRVU7SUhnSFIsZ0JDbkJ5RDtFekIwa0UzRDtFMkJ2cUVVO0lIZ0hSLFVDbkJ5RDtFekI2a0UzRDtFMkIxcUVVO0lIZ0hSLGdCQ25CeUQ7RXpCZ2xFM0Q7RTJCN3FFVTtJSGdIUixnQkNuQnlEO0V6Qm1sRTNEO0UyQmhyRVU7SUhnSFIsV0NuQnlEO0V6QnNsRTNEO0FBQ0Y7O0FFeGpFUTtFeUI1SEk7SUhnSFIsZUNuQnlEO0V6QjRsRTNEO0UyQnpyRVU7SUhnSFIsZ0JDbkJ5RDtFekIrbEUzRDtFMkI1ckVVO0lIZ0hSLFVDbkJ5RDtFekJrbUUzRDtFMkIvckVVO0lIZ0hSLGdCQ25CeUQ7RXpCcW1FM0Q7RTJCbHNFVTtJSGdIUixnQkNuQnlEO0V6QndtRTNEO0UyQnJzRVU7SUhnSFIsVUNuQnlEO0V6QjJtRTNEO0UyQnhzRVU7SUhnSFIsZ0JDbkJ5RDtFekI4bUUzRDtFMkIzc0VVO0lIZ0hSLGdCQ25CeUQ7RXpCaW5FM0Q7RTJCOXNFVTtJSGdIUixVQ25CeUQ7RXpCb25FM0Q7RTJCanRFVTtJSGdIUixnQkNuQnlEO0V6QnVuRTNEO0UyQnB0RVU7SUhnSFIsZ0JDbkJ5RDtFekIwbkUzRDtFMkJ2dEVVO0lIZ0hSLFdDbkJ5RDtFekI2bkUzRDtBQUNGOztBRS9sRVE7RXlCNUhJO0lIZ0hSLGVDbkJ5RDtFekJtb0UzRDtFMkJodUVVO0lIZ0hSLGdCQ25CeUQ7RXpCc29FM0Q7RTJCbnVFVTtJSGdIUixVQ25CeUQ7RXpCeW9FM0Q7RTJCdHVFVTtJSGdIUixnQkNuQnlEO0V6QjRvRTNEO0UyQnp1RVU7SUhnSFIsZ0JDbkJ5RDtFekIrb0UzRDtFMkI1dUVVO0lIZ0hSLFVDbkJ5RDtFekJrcEUzRDtFMkIvdUVVO0lIZ0hSLGdCQ25CeUQ7RXpCcXBFM0Q7RTJCbHZFVTtJSGdIUixnQkNuQnlEO0V6QndwRTNEO0UyQnJ2RVU7SUhnSFIsVUNuQnlEO0V6QjJwRTNEO0UyQnh2RVU7SUhnSFIsZ0JDbkJ5RDtFekI4cEUzRDtFMkIzdkVVO0lIZ0hSLGdCQ25CeUQ7RXpCaXFFM0Q7RTJCOXZFVTtJSGdIUixXQ25CeUQ7RXpCb3FFM0Q7QUFDRjs7QUVqb0VRO0V5QmpJSTtJSGdIUixlQ25CeUQ7RXpCMHFFM0Q7RTJCdndFVTtJSGdIUixnQkNuQnlEO0V6QjZxRTNEO0UyQjF3RVU7SUhnSFIsVUNuQnlEO0V6QmdyRTNEO0UyQjd3RVU7SUhnSFIsZ0JDbkJ5RDtFekJtckUzRDtFMkJoeEVVO0lIZ0hSLGdCQ25CeUQ7RXpCc3JFM0Q7RTJCbnhFVTtJSGdIUixVQ25CeUQ7RXpCeXJFM0Q7RTJCdHhFVTtJSGdIUixnQkNuQnlEO0V6QjRyRTNEO0UyQnp4RVU7SUhnSFIsZ0JDbkJ5RDtFekIrckUzRDtFMkI1eEVVO0lIZ0hSLFVDbkJ5RDtFekJrc0UzRDtFMkIveEVVO0lIZ0hSLGdCQ25CeUQ7RXpCcXNFM0Q7RTJCbHlFVTtJSGdIUixnQkNuQnlEO0V6QndzRTNEO0UyQnJ5RVU7SUhnSFIsV0NuQnlEO0V6QjJzRTNEO0FBQ0Y7O0FFeHFFUTtFeUJqSUk7SUhnSFIsZUNuQnlEO0V6Qml0RTNEO0UyQjl5RVU7SUhnSFIsZ0JDbkJ5RDtFekJvdEUzRDtFMkJqekVVO0lIZ0hSLFVDbkJ5RDtFekJ1dEUzRDtFMkJwekVVO0lIZ0hSLGdCQ25CeUQ7RXpCMHRFM0Q7RTJCdnpFVTtJSGdIUixnQkNuQnlEO0V6QjZ0RTNEO0UyQjF6RVU7SUhnSFIsVUNuQnlEO0V6Qmd1RTNEO0UyQjd6RVU7SUhnSFIsZ0JDbkJ5RDtFekJtdUUzRDtFMkJoMEVVO0lIZ0hSLGdCQ25CeUQ7RXpCc3VFM0Q7RTJCbjBFVTtJSGdIUixVQ25CeUQ7RXpCeXVFM0Q7RTJCdDBFVTtJSGdIUixnQkNuQnlEO0V6QjR1RTNEO0UyQnowRVU7SUhnSFIsZ0JDbkJ5RDtFekIrdUUzRDtFMkI1MEVVO0lIZ0hSLFdDbkJ5RDtFekJrdkUzRDtBQUNGOztBcUJ2cEVNO0VNN0tFLGVBQTBCO0VBQTFCLGNBQTBCO0EzQnkwRWxDOztBMkJ0MEVNO0VBRUksZ0JBQTRCO0VBQTVCLGVBQTRCO0EzQnkwRXRDOztBRTl0RVE7RW1CdURGO0lNOU1FLGVBQTBCO0lBQTFCLGNBQTBCO0UzQjIzRWhDO0UyQngzRUk7SUFFSSxlQUEwQjtJQUExQixjQUEwQjtFM0IwM0VsQztBQUNGOztBRXp1RVE7RXlCcklJO0lIeUhSLGVDbkJ5RDtFekI2d0UzRDtFMkJuM0VVO0lIeUhSLGdCQ25CeUQ7RXpCZ3hFM0Q7RTJCdDNFVTtJSHlIUixVQ25CeUQ7RXpCbXhFM0Q7RTJCejNFVTtJSHlIUixnQkNuQnlEO0V6QnN4RTNEO0UyQjUzRVU7SUh5SFIsZ0JDbkJ5RDtFekJ5eEUzRDtFMkIvM0VVO0lIeUhSLFVDbkJ5RDtFekI0eEUzRDtFMkJsNEVVO0lIeUhSLGdCQ25CeUQ7RXpCK3hFM0Q7RTJCcjRFVTtJSHlIUixnQkNuQnlEO0V6Qmt5RTNEO0UyQng0RVU7SUh5SFIsVUNuQnlEO0V6QnF5RTNEO0UyQjM0RVU7SUh5SFIsZ0JDbkJ5RDtFekJ3eUUzRDtFMkI5NEVVO0lIeUhSLGdCQ25CeUQ7RXpCMnlFM0Q7RTJCajVFVTtJSHlIUixXQ25CeUQ7RXpCOHlFM0Q7QUFDRjs7QUVoeEVRO0V5QjVISTtJSGdIUixlQ25CeUQ7RXpCb3pFM0Q7RTJCajVFVTtJSGdIUixnQkNuQnlEO0V6QnV6RTNEO0UyQnA1RVU7SUhnSFIsVUNuQnlEO0V6QjB6RTNEO0UyQnY1RVU7SUhnSFIsZ0JDbkJ5RDtFekI2ekUzRDtFMkIxNUVVO0lIZ0hSLGdCQ25CeUQ7RXpCZzBFM0Q7RTJCNzVFVTtJSGdIUixVQ25CeUQ7RXpCbTBFM0Q7RTJCaDZFVTtJSGdIUixnQkNuQnlEO0V6QnMwRTNEO0UyQm42RVU7SUhnSFIsZ0JDbkJ5RDtFekJ5MEUzRDtFMkJ0NkVVO0lIZ0hSLFVDbkJ5RDtFekI0MEUzRDtFMkJ6NkVVO0lIZ0hSLGdCQ25CeUQ7RXpCKzBFM0Q7RTJCNTZFVTtJSGdIUixnQkNuQnlEO0V6QmsxRTNEO0UyQi82RVU7SUhnSFIsV0NuQnlEO0V6QnExRTNEO0FBQ0Y7O0FFdnpFUTtFeUI1SEk7SUhnSFIsZUNuQnlEO0V6QjIxRTNEO0UyQng3RVU7SUhnSFIsZ0JDbkJ5RDtFekI4MUUzRDtFMkIzN0VVO0lIZ0hSLFVDbkJ5RDtFekJpMkUzRDtFMkI5N0VVO0lIZ0hSLGdCQ25CeUQ7RXpCbzJFM0Q7RTJCajhFVTtJSGdIUixnQkNuQnlEO0V6QnUyRTNEO0UyQnA4RVU7SUhnSFIsVUNuQnlEO0V6QjAyRTNEO0UyQnY4RVU7SUhnSFIsZ0JDbkJ5RDtFekI2MkUzRDtFMkIxOEVVO0lIZ0hSLGdCQ25CeUQ7RXpCZzNFM0Q7RTJCNzhFVTtJSGdIUixVQ25CeUQ7RXpCbTNFM0Q7RTJCaDlFVTtJSGdIUixnQkNuQnlEO0V6QnMzRTNEO0UyQm45RVU7SUhnSFIsZ0JDbkJ5RDtFekJ5M0UzRDtFMkJ0OUVVO0lIZ0hSLFdDbkJ5RDtFekI0M0UzRDtBQUNGOztBRTkxRVE7RXlCNUhJO0lIZ0hSLGVDbkJ5RDtFekJrNEUzRDtFMkIvOUVVO0lIZ0hSLGdCQ25CeUQ7RXpCcTRFM0Q7RTJCbCtFVTtJSGdIUixVQ25CeUQ7RXpCdzRFM0Q7RTJCcitFVTtJSGdIUixnQkNuQnlEO0V6QjI0RTNEO0UyQngrRVU7SUhnSFIsZ0JDbkJ5RDtFekI4NEUzRDtFMkIzK0VVO0lIZ0hSLFVDbkJ5RDtFekJpNUUzRDtFMkI5K0VVO0lIZ0hSLGdCQ25CeUQ7RXpCbzVFM0Q7RTJCai9FVTtJSGdIUixnQkNuQnlEO0V6QnU1RTNEO0UyQnAvRVU7SUhnSFIsVUNuQnlEO0V6QjA1RTNEO0UyQnYvRVU7SUhnSFIsZ0JDbkJ5RDtFekI2NUUzRDtFMkIxL0VVO0lIZ0hSLGdCQ25CeUQ7RXpCZzZFM0Q7RTJCNy9FVTtJSGdIUixXQ25CeUQ7RXpCbTZFM0Q7QUFDRjs7QUVoNEVRO0V5QmpJSTtJSGdIUixlQ25CeUQ7RXpCeTZFM0Q7RTJCdGdGVTtJSGdIUixnQkNuQnlEO0V6QjQ2RTNEO0UyQnpnRlU7SUhnSFIsVUNuQnlEO0V6Qis2RTNEO0UyQjVnRlU7SUhnSFIsZ0JDbkJ5RDtFekJrN0UzRDtFMkIvZ0ZVO0lIZ0hSLGdCQ25CeUQ7RXpCcTdFM0Q7RTJCbGhGVTtJSGdIUixVQ25CeUQ7RXpCdzdFM0Q7RTJCcmhGVTtJSGdIUixnQkNuQnlEO0V6QjI3RTNEO0UyQnhoRlU7SUhnSFIsZ0JDbkJ5RDtFekI4N0UzRDtFMkIzaEZVO0lIZ0hSLFVDbkJ5RDtFekJpOEUzRDtFMkI5aEZVO0lIZ0hSLGdCQ25CeUQ7RXpCbzhFM0Q7RTJCamlGVTtJSGdIUixnQkNuQnlEO0V6QnU4RTNEO0UyQnBpRlU7SUhnSFIsV0NuQnlEO0V6QjA4RTNEO0FBQ0Y7O0FFdjZFUTtFeUJqSUk7SUhnSFIsZUNuQnlEO0V6Qmc5RTNEO0UyQjdpRlU7SUhnSFIsZ0JDbkJ5RDtFekJtOUUzRDtFMkJoakZVO0lIZ0hSLFVDbkJ5RDtFekJzOUUzRDtFMkJuakZVO0lIZ0hSLGdCQ25CeUQ7RXpCeTlFM0Q7RTJCdGpGVTtJSGdIUixnQkNuQnlEO0V6QjQ5RTNEO0UyQnpqRlU7SUhnSFIsVUNuQnlEO0V6Qis5RTNEO0UyQjVqRlU7SUhnSFIsZ0JDbkJ5RDtFekJrK0UzRDtFMkIvakZVO0lIZ0hSLGdCQ25CeUQ7RXpCcStFM0Q7RTJCbGtGVTtJSGdIUixVQ25CeUQ7RXpCdytFM0Q7RTJCcmtGVTtJSGdIUixnQkNuQnlEO0V6QjIrRTNEO0UyQnhrRlU7SUhnSFIsZ0JDbkJ5RDtFekI4K0UzRDtFMkIza0ZVO0lIZ0hSLFdDbkJ5RDtFekJpL0UzRDtBQUNGOztBRW45RVE7RW1CNkRGO0lNN0tFLGVBQTBCO0lBQTFCLGNBQTBCO0UzQnlrRmhDO0UyQnRrRkk7SUFFSSxnQkFBNEI7SUFBNUIsZUFBNEI7RTNCd2tGcEM7QUFDRjs7QUU5OUVRO0VtQnVERjtJTTlNRSxlQUEwQjtJQUExQixjQUEwQjtFM0IybkZoQztFMkJ4bkZJO0lBRUksZUFBMEI7SUFBMUIsY0FBMEI7RTNCMG5GbEM7QUFDRjs7QUV6K0VRO0V5QnJJSTtJSHlIUixlQ25CeUQ7RXpCNmdGM0Q7RTJCbm5GVTtJSHlIUixnQkNuQnlEO0V6QmdoRjNEO0UyQnRuRlU7SUh5SFIsVUNuQnlEO0V6Qm1oRjNEO0UyQnpuRlU7SUh5SFIsZ0JDbkJ5RDtFekJzaEYzRDtFMkI1bkZVO0lIeUhSLGdCQ25CeUQ7RXpCeWhGM0Q7RTJCL25GVTtJSHlIUixVQ25CeUQ7RXpCNGhGM0Q7RTJCbG9GVTtJSHlIUixnQkNuQnlEO0V6QitoRjNEO0UyQnJvRlU7SUh5SFIsZ0JDbkJ5RDtFekJraUYzRDtFMkJ4b0ZVO0lIeUhSLFVDbkJ5RDtFekJxaUYzRDtFMkIzb0ZVO0lIeUhSLGdCQ25CeUQ7RXpCd2lGM0Q7RTJCOW9GVTtJSHlIUixnQkNuQnlEO0V6QjJpRjNEO0UyQmpwRlU7SUh5SFIsV0NuQnlEO0V6QjhpRjNEO0FBQ0Y7O0FFaGhGUTtFeUJySUk7SUh5SFIsZUNuQnlEO0V6Qm9qRjNEO0UyQjFwRlU7SUh5SFIsZ0JDbkJ5RDtFekJ1akYzRDtFMkI3cEZVO0lIeUhSLFVDbkJ5RDtFekIwakYzRDtFMkJocUZVO0lIeUhSLGdCQ25CeUQ7RXpCNmpGM0Q7RTJCbnFGVTtJSHlIUixnQkNuQnlEO0V6QmdrRjNEO0UyQnRxRlU7SUh5SFIsVUNuQnlEO0V6Qm1rRjNEO0UyQnpxRlU7SUh5SFIsZ0JDbkJ5RDtFekJza0YzRDtFMkI1cUZVO0lIeUhSLGdCQ25CeUQ7RXpCeWtGM0Q7RTJCL3FGVTtJSHlIUixVQ25CeUQ7RXpCNGtGM0Q7RTJCbHJGVTtJSHlIUixnQkNuQnlEO0V6QitrRjNEO0UyQnJyRlU7SUh5SFIsZ0JDbkJ5RDtFekJrbEYzRDtFMkJ4ckZVO0lIeUhSLFdDbkJ5RDtFekJxbEYzRDtBQUNGOztBRXZqRlE7RXlCNUhJO0lIZ0hSLGVDbkJ5RDtFekIybEYzRDtFMkJ4ckZVO0lIZ0hSLGdCQ25CeUQ7RXpCOGxGM0Q7RTJCM3JGVTtJSGdIUixVQ25CeUQ7RXpCaW1GM0Q7RTJCOXJGVTtJSGdIUixnQkNuQnlEO0V6Qm9tRjNEO0UyQmpzRlU7SUhnSFIsZ0JDbkJ5RDtFekJ1bUYzRDtFMkJwc0ZVO0lIZ0hSLFVDbkJ5RDtFekIwbUYzRDtFMkJ2c0ZVO0lIZ0hSLGdCQ25CeUQ7RXpCNm1GM0Q7RTJCMXNGVTtJSGdIUixnQkNuQnlEO0V6QmduRjNEO0UyQjdzRlU7SUhnSFIsVUNuQnlEO0V6Qm1uRjNEO0UyQmh0RlU7SUhnSFIsZ0JDbkJ5RDtFekJzbkYzRDtFMkJudEZVO0lIZ0hSLGdCQ25CeUQ7RXpCeW5GM0Q7RTJCdHRGVTtJSGdIUixXQ25CeUQ7RXpCNG5GM0Q7QUFDRjs7QUU5bEZRO0V5QjVISTtJSGdIUixlQ25CeUQ7RXpCa29GM0Q7RTJCL3RGVTtJSGdIUixnQkNuQnlEO0V6QnFvRjNEO0UyQmx1RlU7SUhnSFIsVUNuQnlEO0V6QndvRjNEO0UyQnJ1RlU7SUhnSFIsZ0JDbkJ5RDtFekIyb0YzRDtFMkJ4dUZVO0lIZ0hSLGdCQ25CeUQ7RXpCOG9GM0Q7RTJCM3VGVTtJSGdIUixVQ25CeUQ7RXpCaXBGM0Q7RTJCOXVGVTtJSGdIUixnQkNuQnlEO0V6Qm9wRjNEO0UyQmp2RlU7SUhnSFIsZ0JDbkJ5RDtFekJ1cEYzRDtFMkJwdkZVO0lIZ0hSLFVDbkJ5RDtFekIwcEYzRDtFMkJ2dkZVO0lIZ0hSLGdCQ25CeUQ7RXpCNnBGM0Q7RTJCMXZGVTtJSGdIUixnQkNuQnlEO0V6QmdxRjNEO0UyQjd2RlU7SUhnSFIsV0NuQnlEO0V6Qm1xRjNEO0FBQ0Y7O0FFaG9GUTtFeUJqSUk7SUhnSFIsZUNuQnlEO0V6QnlxRjNEO0UyQnR3RlU7SUhnSFIsZ0JDbkJ5RDtFekI0cUYzRDtFMkJ6d0ZVO0lIZ0hSLFVDbkJ5RDtFekIrcUYzRDtFMkI1d0ZVO0lIZ0hSLGdCQ25CeUQ7RXpCa3JGM0Q7RTJCL3dGVTtJSGdIUixnQkNuQnlEO0V6QnFyRjNEO0UyQmx4RlU7SUhnSFIsVUNuQnlEO0V6QndyRjNEO0UyQnJ4RlU7SUhnSFIsZ0JDbkJ5RDtFekIyckYzRDtFMkJ4eEZVO0lIZ0hSLGdCQ25CeUQ7RXpCOHJGM0Q7RTJCM3hGVTtJSGdIUixVQ25CeUQ7RXpCaXNGM0Q7RTJCOXhGVTtJSGdIUixnQkNuQnlEO0V6Qm9zRjNEO0UyQmp5RlU7SUhnSFIsZ0JDbkJ5RDtFekJ1c0YzRDtFMkJweUZVO0lIZ0hSLFdDbkJ5RDtFekIwc0YzRDtBQUNGOztBRXZxRlE7RXlCaklJO0lIZ0hSLGVDbkJ5RDtFekJndEYzRDtFMkI3eUZVO0lIZ0hSLGdCQ25CeUQ7RXpCbXRGM0Q7RTJCaHpGVTtJSGdIUixVQ25CeUQ7RXpCc3RGM0Q7RTJCbnpGVTtJSGdIUixnQkNuQnlEO0V6Qnl0RjNEO0UyQnR6RlU7SUhnSFIsZ0JDbkJ5RDtFekI0dEYzRDtFMkJ6ekZVO0lIZ0hSLFVDbkJ5RDtFekIrdEYzRDtFMkI1ekZVO0lIZ0hSLGdCQ25CeUQ7RXpCa3VGM0Q7RTJCL3pGVTtJSGdIUixnQkNuQnlEO0V6QnF1RjNEO0UyQmwwRlU7SUhnSFIsVUNuQnlEO0V6Qnd1RjNEO0UyQnIwRlU7SUhnSFIsZ0JDbkJ5RDtFekIydUYzRDtFMkJ4MEZVO0lIZ0hSLGdCQ25CeUQ7RXpCOHVGM0Q7RTJCMzBGVTtJSGdIUixXQ25CeUQ7RXpCaXZGM0Q7QUFDRjs7QUVudEZRO0VtQjZERjtJTTdLRSxlQUEwQjtJQUExQixjQUEwQjtFM0J5MEZoQztFMkJ0MEZJO0lBRUksZ0JBQTRCO0lBQTVCLGVBQTRCO0UzQncwRnBDO0FBQ0Y7O0FFOXRGUTtFbUJ1REY7SU05TUUsZUFBMEI7SUFBMUIsY0FBMEI7RTNCMjNGaEM7RTJCeDNGSTtJQUVJLGVBQTBCO0lBQTFCLGNBQTBCO0UzQjAzRmxDO0FBQ0Y7O0FFenVGUTtFeUJySUk7SUh5SFIsZUNuQnlEO0V6QjZ3RjNEO0UyQm4zRlU7SUh5SFIsZ0JDbkJ5RDtFekJneEYzRDtFMkJ0M0ZVO0lIeUhSLFVDbkJ5RDtFekJteEYzRDtFMkJ6M0ZVO0lIeUhSLGdCQ25CeUQ7RXpCc3hGM0Q7RTJCNTNGVTtJSHlIUixnQkNuQnlEO0V6Qnl4RjNEO0UyQi8zRlU7SUh5SFIsVUNuQnlEO0V6QjR4RjNEO0UyQmw0RlU7SUh5SFIsZ0JDbkJ5RDtFekIreEYzRDtFMkJyNEZVO0lIeUhSLGdCQ25CeUQ7RXpCa3lGM0Q7RTJCeDRGVTtJSHlIUixVQ25CeUQ7RXpCcXlGM0Q7RTJCMzRGVTtJSHlIUixnQkNuQnlEO0V6Qnd5RjNEO0UyQjk0RlU7SUh5SFIsZ0JDbkJ5RDtFekIyeUYzRDtFMkJqNUZVO0lIeUhSLFdDbkJ5RDtFekI4eUYzRDtBQUNGOztBRWh4RlE7RXlCcklJO0lIeUhSLGVDbkJ5RDtFekJvekYzRDtFMkIxNUZVO0lIeUhSLGdCQ25CeUQ7RXpCdXpGM0Q7RTJCNzVGVTtJSHlIUixVQ25CeUQ7RXpCMHpGM0Q7RTJCaDZGVTtJSHlIUixnQkNuQnlEO0V6QjZ6RjNEO0UyQm42RlU7SUh5SFIsZ0JDbkJ5RDtFekJnMEYzRDtFMkJ0NkZVO0lIeUhSLFVDbkJ5RDtFekJtMEYzRDtFMkJ6NkZVO0lIeUhSLGdCQ25CeUQ7RXpCczBGM0Q7RTJCNTZGVTtJSHlIUixnQkNuQnlEO0V6QnkwRjNEO0UyQi82RlU7SUh5SFIsVUNuQnlEO0V6QjQwRjNEO0UyQmw3RlU7SUh5SFIsZ0JDbkJ5RDtFekIrMEYzRDtFMkJyN0ZVO0lIeUhSLGdCQ25CeUQ7RXpCazFGM0Q7RTJCeDdGVTtJSHlIUixXQ25CeUQ7RXpCcTFGM0Q7QUFDRjs7QUV2ekZRO0V5QnJJSTtJSHlIUixlQ25CeUQ7RXpCMjFGM0Q7RTJCajhGVTtJSHlIUixnQkNuQnlEO0V6QjgxRjNEO0UyQnA4RlU7SUh5SFIsVUNuQnlEO0V6QmkyRjNEO0UyQnY4RlU7SUh5SFIsZ0JDbkJ5RDtFekJvMkYzRDtFMkIxOEZVO0lIeUhSLGdCQ25CeUQ7RXpCdTJGM0Q7RTJCNzhGVTtJSHlIUixVQ25CeUQ7RXpCMDJGM0Q7RTJCaDlGVTtJSHlIUixnQkNuQnlEO0V6QjYyRjNEO0UyQm45RlU7SUh5SFIsZ0JDbkJ5RDtFekJnM0YzRDtFMkJ0OUZVO0lIeUhSLFVDbkJ5RDtFekJtM0YzRDtFMkJ6OUZVO0lIeUhSLGdCQ25CeUQ7RXpCczNGM0Q7RTJCNTlGVTtJSHlIUixnQkNuQnlEO0V6QnkzRjNEO0UyQi85RlU7SUh5SFIsV0NuQnlEO0V6QjQzRjNEO0FBQ0Y7O0FFOTFGUTtFeUI1SEk7SUhnSFIsZUNuQnlEO0V6Qms0RjNEO0UyQi85RlU7SUhnSFIsZ0JDbkJ5RDtFekJxNEYzRDtFMkJsK0ZVO0lIZ0hSLFVDbkJ5RDtFekJ3NEYzRDtFMkJyK0ZVO0lIZ0hSLGdCQ25CeUQ7RXpCMjRGM0Q7RTJCeCtGVTtJSGdIUixnQkNuQnlEO0V6Qjg0RjNEO0UyQjMrRlU7SUhnSFIsVUNuQnlEO0V6Qmk1RjNEO0UyQjkrRlU7SUhnSFIsZ0JDbkJ5RDtFekJvNUYzRDtFMkJqL0ZVO0lIZ0hSLGdCQ25CeUQ7RXpCdTVGM0Q7RTJCcC9GVTtJSGdIUixVQ25CeUQ7RXpCMDVGM0Q7RTJCdi9GVTtJSGdIUixnQkNuQnlEO0V6QjY1RjNEO0UyQjEvRlU7SUhnSFIsZ0JDbkJ5RDtFekJnNkYzRDtFMkI3L0ZVO0lIZ0hSLFdDbkJ5RDtFekJtNkYzRDtBQUNGOztBRWg0RlE7RXlCaklJO0lIZ0hSLGVDbkJ5RDtFekJ5NkYzRDtFMkJ0Z0dVO0lIZ0hSLGdCQ25CeUQ7RXpCNDZGM0Q7RTJCemdHVTtJSGdIUixVQ25CeUQ7RXpCKzZGM0Q7RTJCNWdHVTtJSGdIUixnQkNuQnlEO0V6Qms3RjNEO0UyQi9nR1U7SUhnSFIsZ0JDbkJ5RDtFekJxN0YzRDtFMkJsaEdVO0lIZ0hSLFVDbkJ5RDtFekJ3N0YzRDtFMkJyaEdVO0lIZ0hSLGdCQ25CeUQ7RXpCMjdGM0Q7RTJCeGhHVTtJSGdIUixnQkNuQnlEO0V6Qjg3RjNEO0UyQjNoR1U7SUhnSFIsVUNuQnlEO0V6Qmk4RjNEO0UyQjloR1U7SUhnSFIsZ0JDbkJ5RDtFekJvOEYzRDtFMkJqaUdVO0lIZ0hSLGdCQ25CeUQ7RXpCdThGM0Q7RTJCcGlHVTtJSGdIUixXQ25CeUQ7RXpCMDhGM0Q7QUFDRjs7QUV2NkZRO0V5QmpJSTtJSGdIUixlQ25CeUQ7RXpCZzlGM0Q7RTJCN2lHVTtJSGdIUixnQkNuQnlEO0V6Qm05RjNEO0UyQmhqR1U7SUhnSFIsVUNuQnlEO0V6QnM5RjNEO0UyQm5qR1U7SUhnSFIsZ0JDbkJ5RDtFekJ5OUYzRDtFMkJ0akdVO0lIZ0hSLGdCQ25CeUQ7RXpCNDlGM0Q7RTJCempHVTtJSGdIUixVQ25CeUQ7RXpCKzlGM0Q7RTJCNWpHVTtJSGdIUixnQkNuQnlEO0V6QmsrRjNEO0UyQi9qR1U7SUhnSFIsZ0JDbkJ5RDtFekJxK0YzRDtFMkJsa0dVO0lIZ0hSLFVDbkJ5RDtFekJ3K0YzRDtFMkJya0dVO0lIZ0hSLGdCQ25CeUQ7RXpCMitGM0Q7RTJCeGtHVTtJSGdIUixnQkNuQnlEO0V6QjgrRjNEO0UyQjNrR1U7SUhnSFIsV0NuQnlEO0V6QmkvRjNEO0FBQ0Y7O0FFbjlGUTtFbUI2REY7SU03S0UsZUFBMEI7SUFBMUIsY0FBMEI7RTNCeWtHaEM7RTJCdGtHSTtJQUVJLGdCQUE0QjtJQUE1QixlQUE0QjtFM0J3a0dwQztBQUNGOztBRXo5RlE7RW1Ca0RGO0lNOU1FLGVBQTBCO0lBQTFCLGNBQTBCO0UzQjJuR2hDO0UyQnhuR0k7SUFFSSxlQUEwQjtJQUExQixjQUEwQjtFM0IwbkdsQztBQUNGOztBRXArRlE7RXlCMUlJO0lIeUhSLGVDbkJ5RDtFekI2Z0czRDtFMkJubkdVO0lIeUhSLGdCQ25CeUQ7RXpCZ2hHM0Q7RTJCdG5HVTtJSHlIUixVQ25CeUQ7RXpCbWhHM0Q7RTJCem5HVTtJSHlIUixnQkNuQnlEO0V6QnNoRzNEO0UyQjVuR1U7SUh5SFIsZ0JDbkJ5RDtFekJ5aEczRDtFMkIvbkdVO0lIeUhSLFVDbkJ5RDtFekI0aEczRDtFMkJsb0dVO0lIeUhSLGdCQ25CeUQ7RXpCK2hHM0Q7RTJCcm9HVTtJSHlIUixnQkNuQnlEO0V6QmtpRzNEO0UyQnhvR1U7SUh5SFIsVUNuQnlEO0V6QnFpRzNEO0UyQjNvR1U7SUh5SFIsZ0JDbkJ5RDtFekJ3aUczRDtFMkI5b0dVO0lIeUhSLGdCQ25CeUQ7RXpCMmlHM0Q7RTJCanBHVTtJSHlIUixXQ25CeUQ7RXpCOGlHM0Q7QUFDRjs7QUUzZ0dRO0V5QjFJSTtJSHlIUixlQ25CeUQ7RXpCb2pHM0Q7RTJCMXBHVTtJSHlIUixnQkNuQnlEO0V6QnVqRzNEO0UyQjdwR1U7SUh5SFIsVUNuQnlEO0V6QjBqRzNEO0UyQmhxR1U7SUh5SFIsZ0JDbkJ5RDtFekI2akczRDtFMkJucUdVO0lIeUhSLGdCQ25CeUQ7RXpCZ2tHM0Q7RTJCdHFHVTtJSHlIUixVQ25CeUQ7RXpCbWtHM0Q7RTJCenFHVTtJSHlIUixnQkNuQnlEO0V6QnNrRzNEO0UyQjVxR1U7SUh5SFIsZ0JDbkJ5RDtFekJ5a0czRDtFMkIvcUdVO0lIeUhSLFVDbkJ5RDtFekI0a0czRDtFMkJsckdVO0lIeUhSLGdCQ25CeUQ7RXpCK2tHM0Q7RTJCcnJHVTtJSHlIUixnQkNuQnlEO0V6QmtsRzNEO0UyQnhyR1U7SUh5SFIsV0NuQnlEO0V6QnFsRzNEO0FBQ0Y7O0FFbGpHUTtFeUIxSUk7SUh5SFIsZUNuQnlEO0V6QjJsRzNEO0UyQmpzR1U7SUh5SFIsZ0JDbkJ5RDtFekI4bEczRDtFMkJwc0dVO0lIeUhSLFVDbkJ5RDtFekJpbUczRDtFMkJ2c0dVO0lIeUhSLGdCQ25CeUQ7RXpCb21HM0Q7RTJCMXNHVTtJSHlIUixnQkNuQnlEO0V6QnVtRzNEO0UyQjdzR1U7SUh5SFIsVUNuQnlEO0V6QjBtRzNEO0UyQmh0R1U7SUh5SFIsZ0JDbkJ5RDtFekI2bUczRDtFMkJudEdVO0lIeUhSLGdCQ25CeUQ7RXpCZ25HM0Q7RTJCdHRHVTtJSHlIUixVQ25CeUQ7RXpCbW5HM0Q7RTJCenRHVTtJSHlIUixnQkNuQnlEO0V6QnNuRzNEO0UyQjV0R1U7SUh5SFIsZ0JDbkJ5RDtFekJ5bkczRDtFMkIvdEdVO0lIeUhSLFdDbkJ5RDtFekI0bkczRDtBQUNGOztBRXpsR1E7RXlCMUlJO0lIeUhSLGVDbkJ5RDtFekJrb0czRDtFMkJ4dUdVO0lIeUhSLGdCQ25CeUQ7RXpCcW9HM0Q7RTJCM3VHVTtJSHlIUixVQ25CeUQ7RXpCd29HM0Q7RTJCOXVHVTtJSHlIUixnQkNuQnlEO0V6QjJvRzNEO0UyQmp2R1U7SUh5SFIsZ0JDbkJ5RDtFekI4b0czRDtFMkJwdkdVO0lIeUhSLFVDbkJ5RDtFekJpcEczRDtFMkJ2dkdVO0lIeUhSLGdCQ25CeUQ7RXpCb3BHM0Q7RTJCMXZHVTtJSHlIUixnQkNuQnlEO0V6QnVwRzNEO0UyQjd2R1U7SUh5SFIsVUNuQnlEO0V6QjBwRzNEO0UyQmh3R1U7SUh5SFIsZ0JDbkJ5RDtFekI2cEczRDtFMkJud0dVO0lIeUhSLGdCQ25CeUQ7RXpCZ3FHM0Q7RTJCdHdHVTtJSHlIUixXQ25CeUQ7RXpCbXFHM0Q7QUFDRjs7QUVob0dRO0V5QmpJSTtJSGdIUixlQ25CeUQ7RXpCeXFHM0Q7RTJCdHdHVTtJSGdIUixnQkNuQnlEO0V6QjRxRzNEO0UyQnp3R1U7SUhnSFIsVUNuQnlEO0V6QitxRzNEO0UyQjV3R1U7SUhnSFIsZ0JDbkJ5RDtFekJrckczRDtFMkIvd0dVO0lIZ0hSLGdCQ25CeUQ7RXpCcXJHM0Q7RTJCbHhHVTtJSGdIUixVQ25CeUQ7RXpCd3JHM0Q7RTJCcnhHVTtJSGdIUixnQkNuQnlEO0V6QjJyRzNEO0UyQnh4R1U7SUhnSFIsZ0JDbkJ5RDtFekI4ckczRDtFMkIzeEdVO0lIZ0hSLFVDbkJ5RDtFekJpc0czRDtFMkI5eEdVO0lIZ0hSLGdCQ25CeUQ7RXpCb3NHM0Q7RTJCanlHVTtJSGdIUixnQkNuQnlEO0V6QnVzRzNEO0UyQnB5R1U7SUhnSFIsV0NuQnlEO0V6QjBzRzNEO0FBQ0Y7O0FFdnFHUTtFeUJqSUk7SUhnSFIsZUNuQnlEO0V6Qmd0RzNEO0UyQjd5R1U7SUhnSFIsZ0JDbkJ5RDtFekJtdEczRDtFMkJoekdVO0lIZ0hSLFVDbkJ5RDtFekJzdEczRDtFMkJuekdVO0lIZ0hSLGdCQ25CeUQ7RXpCeXRHM0Q7RTJCdHpHVTtJSGdIUixnQkNuQnlEO0V6QjR0RzNEO0UyQnp6R1U7SUhnSFIsVUNuQnlEO0V6Qit0RzNEO0UyQjV6R1U7SUhnSFIsZ0JDbkJ5RDtFekJrdUczRDtFMkIvekdVO0lIZ0hSLGdCQ25CeUQ7RXpCcXVHM0Q7RTJCbDBHVTtJSGdIUixVQ25CeUQ7RXpCd3VHM0Q7RTJCcjBHVTtJSGdIUixnQkNuQnlEO0V6QjJ1RzNEO0UyQngwR1U7SUhnSFIsZ0JDbkJ5RDtFekI4dUczRDtFMkIzMEdVO0lIZ0hSLFdDbkJ5RDtFekJpdkczRDtBQUNGOztBRTlzR1E7RW1Cd0RGO0lNN0tFLGVBQTBCO0lBQTFCLGNBQTBCO0UzQnkwR2hDO0UyQnQwR0k7SUFFSSxnQkFBNEI7SUFBNUIsZUFBNEI7RTNCdzBHcEM7QUFDRjs7QUV6dEdRO0VtQmtERjtJTTlNRSxlQUEwQjtJQUExQixjQUEwQjtFM0IyM0doQztFMkJ4M0dJO0lBRUksZUFBMEI7SUFBMUIsY0FBMEI7RTNCMDNHbEM7QUFDRjs7QUVwdUdRO0V5QjFJSTtJSHlIUixlQ25CeUQ7RXpCNndHM0Q7RTJCbjNHVTtJSHlIUixnQkNuQnlEO0V6Qmd4RzNEO0UyQnQzR1U7SUh5SFIsVUNuQnlEO0V6Qm14RzNEO0UyQnozR1U7SUh5SFIsZ0JDbkJ5RDtFekJzeEczRDtFMkI1M0dVO0lIeUhSLGdCQ25CeUQ7RXpCeXhHM0Q7RTJCLzNHVTtJSHlIUixVQ25CeUQ7RXpCNHhHM0Q7RTJCbDRHVTtJSHlIUixnQkNuQnlEO0V6Qit4RzNEO0UyQnI0R1U7SUh5SFIsZ0JDbkJ5RDtFekJreUczRDtFMkJ4NEdVO0lIeUhSLFVDbkJ5RDtFekJxeUczRDtFMkIzNEdVO0lIeUhSLGdCQ25CeUQ7RXpCd3lHM0Q7RTJCOTRHVTtJSHlIUixnQkNuQnlEO0V6QjJ5RzNEO0UyQmo1R1U7SUh5SFIsV0NuQnlEO0V6Qjh5RzNEO0FBQ0Y7O0FFM3dHUTtFeUIxSUk7SUh5SFIsZUNuQnlEO0V6Qm96RzNEO0UyQjE1R1U7SUh5SFIsZ0JDbkJ5RDtFekJ1ekczRDtFMkI3NUdVO0lIeUhSLFVDbkJ5RDtFekIwekczRDtFMkJoNkdVO0lIeUhSLGdCQ25CeUQ7RXpCNnpHM0Q7RTJCbjZHVTtJSHlIUixnQkNuQnlEO0V6QmcwRzNEO0UyQnQ2R1U7SUh5SFIsVUNuQnlEO0V6Qm0wRzNEO0UyQno2R1U7SUh5SFIsZ0JDbkJ5RDtFekJzMEczRDtFMkI1NkdVO0lIeUhSLGdCQ25CeUQ7RXpCeTBHM0Q7RTJCLzZHVTtJSHlIUixVQ25CeUQ7RXpCNDBHM0Q7RTJCbDdHVTtJSHlIUixnQkNuQnlEO0V6QiswRzNEO0UyQnI3R1U7SUh5SFIsZ0JDbkJ5RDtFekJrMUczRDtFMkJ4N0dVO0lIeUhSLFdDbkJ5RDtFekJxMUczRDtBQUNGOztBRWx6R1E7RXlCMUlJO0lIeUhSLGVDbkJ5RDtFekIyMUczRDtFMkJqOEdVO0lIeUhSLGdCQ25CeUQ7RXpCODFHM0Q7RTJCcDhHVTtJSHlIUixVQ25CeUQ7RXpCaTJHM0Q7RTJCdjhHVTtJSHlIUixnQkNuQnlEO0V6Qm8yRzNEO0UyQjE4R1U7SUh5SFIsZ0JDbkJ5RDtFekJ1MkczRDtFMkI3OEdVO0lIeUhSLFVDbkJ5RDtFekIwMkczRDtFMkJoOUdVO0lIeUhSLGdCQ25CeUQ7RXpCNjJHM0Q7RTJCbjlHVTtJSHlIUixnQkNuQnlEO0V6QmczRzNEO0UyQnQ5R1U7SUh5SFIsVUNuQnlEO0V6Qm0zRzNEO0UyQno5R1U7SUh5SFIsZ0JDbkJ5RDtFekJzM0czRDtFMkI1OUdVO0lIeUhSLGdCQ25CeUQ7RXpCeTNHM0Q7RTJCLzlHVTtJSHlIUixXQ25CeUQ7RXpCNDNHM0Q7QUFDRjs7QUV6MUdRO0V5QjFJSTtJSHlIUixlQ25CeUQ7RXpCazRHM0Q7RTJCeCtHVTtJSHlIUixnQkNuQnlEO0V6QnE0RzNEO0UyQjMrR1U7SUh5SFIsVUNuQnlEO0V6Qnc0RzNEO0UyQjkrR1U7SUh5SFIsZ0JDbkJ5RDtFekIyNEczRDtFMkJqL0dVO0lIeUhSLGdCQ25CeUQ7RXpCODRHM0Q7RTJCcC9HVTtJSHlIUixVQ25CeUQ7RXpCaTVHM0Q7RTJCdi9HVTtJSHlIUixnQkNuQnlEO0V6Qm81RzNEO0UyQjEvR1U7SUh5SFIsZ0JDbkJ5RDtFekJ1NUczRDtFMkI3L0dVO0lIeUhSLFVDbkJ5RDtFekIwNUczRDtFMkJoZ0hVO0lIeUhSLGdCQ25CeUQ7RXpCNjVHM0Q7RTJCbmdIVTtJSHlIUixnQkNuQnlEO0V6Qmc2RzNEO0UyQnRnSFU7SUh5SFIsV0NuQnlEO0V6Qm02RzNEO0FBQ0Y7O0FFaDRHUTtFeUIxSUk7SUh5SFIsZUNuQnlEO0V6Qnk2RzNEO0UyQi9nSFU7SUh5SFIsZ0JDbkJ5RDtFekI0NkczRDtFMkJsaEhVO0lIeUhSLFVDbkJ5RDtFekIrNkczRDtFMkJyaEhVO0lIeUhSLGdCQ25CeUQ7RXpCazdHM0Q7RTJCeGhIVTtJSHlIUixnQkNuQnlEO0V6QnE3RzNEO0UyQjNoSFU7SUh5SFIsVUNuQnlEO0V6Qnc3RzNEO0UyQjloSFU7SUh5SFIsZ0JDbkJ5RDtFekIyN0czRDtFMkJqaUhVO0lIeUhSLGdCQ25CeUQ7RXpCODdHM0Q7RTJCcGlIVTtJSHlIUixVQ25CeUQ7RXpCaThHM0Q7RTJCdmlIVTtJSHlIUixnQkNuQnlEO0V6Qm84RzNEO0UyQjFpSFU7SUh5SFIsZ0JDbkJ5RDtFekJ1OEczRDtFMkI3aUhVO0lIeUhSLFdDbkJ5RDtFekIwOEczRDtBQUNGOztBRXY2R1E7RXlCaklJO0lIZ0hSLGVDbkJ5RDtFekJnOUczRDtFMkI3aUhVO0lIZ0hSLGdCQ25CeUQ7RXpCbTlHM0Q7RTJCaGpIVTtJSGdIUixVQ25CeUQ7RXpCczlHM0Q7RTJCbmpIVTtJSGdIUixnQkNuQnlEO0V6Qnk5RzNEO0UyQnRqSFU7SUhnSFIsZ0JDbkJ5RDtFekI0OUczRDtFMkJ6akhVO0lIZ0hSLFVDbkJ5RDtFekIrOUczRDtFMkI1akhVO0lIZ0hSLGdCQ25CeUQ7RXpCaytHM0Q7RTJCL2pIVTtJSGdIUixnQkNuQnlEO0V6QnErRzNEO0UyQmxrSFU7SUhnSFIsVUNuQnlEO0V6QncrRzNEO0UyQnJrSFU7SUhnSFIsZ0JDbkJ5RDtFekIyK0czRDtFMkJ4a0hVO0lIZ0hSLGdCQ25CeUQ7RXpCOCtHM0Q7RTJCM2tIVTtJSGdIUixXQ25CeUQ7RXpCaS9HM0Q7QUFDRjs7QUU5OEdRO0VtQndERjtJTTdLRSxlQUEwQjtJQUExQixjQUEwQjtFM0J5a0hoQztFMkJ0a0hJO0lBRUksZ0JBQTRCO0lBQTVCLGVBQTRCO0UzQndrSHBDO0FBQ0Y7O0FxQm41R007RU92TUYsZUFBNkI7QTVCOGxIakM7O0FxQm41R007RU8zTUYsK0JBQTZCO0E1QmttSGpDOztBcUIzNUdNO0VPdk1GLHFCQUE2QjtBNUJzbUhqQzs7QXFCMzVHTTtFTzNNRixxQ0FBNkI7QTVCMG1IakM7O0FxQm42R007RU92TUYsc0JBQTZCO0E1QjhtSGpDOztBcUJuNkdNO0VPM01GLHNDQUE2QjtBNUJrbkhqQzs7QXFCMzZHTTtFT3ZNRixnQkFBNkI7QTVCc25IakM7O0FxQjM2R007RU8zTUYsZ0NBQTZCO0E1QjBuSGpDOztBcUJuN0dNO0VPdk1GLHNCQUE2QjtBNUI4bkhqQzs7QXFCbjdHTTtFTzNNRixzQ0FBNkI7QTVCa29IakM7O0FxQjM3R007RU92TUYsc0JBQTZCO0E1QnNvSGpDOztBcUIzN0dNO0VPM01GLHNDQUE2QjtBNUIwb0hqQzs7QXFCbjhHTTtFT3ZNRixnQkFBNkI7QTVCOG9IakM7O0FxQm44R007RU8zTUYsZ0NBQTZCO0E1QmtwSGpDOztBcUIzOEdNO0VPdk1GLHNCQUE2QjtBNUJzcEhqQzs7QXFCMzhHTTtFTzNNRixzQ0FBNkI7QTVCMHBIakM7O0FxQm45R007RU92TUYsc0JBQTZCO0E1QjhwSGpDOztBcUJuOUdNO0VPM01GLHNDQUE2QjtBNUJrcUhqQzs7QXFCMzlHTTtFT3ZNRixnQkFBNkI7QTVCc3FIakM7O0FxQjM5R007RU8zTUYsZ0NBQTZCO0E1QjBxSGpDOztBcUJuK0dNO0VPdk1GLHNCQUE2QjtBNUI4cUhqQzs7QXFCbitHTTtFTzNNRixzQ0FBNkI7QTVCa3JIakM7O0FxQjMrR007RU92TUYsc0JBQTZCO0E1QnNySGpDOztBcUIzK0dNO0VPM01GLHNDQUE2QjtBNUIwckhqQzs7QUU5akhRO0VtQjJFRjtJT3ZNRixlQUE2QjtFNUIrckgvQjtFcUJwL0dJO0lPM01GLGlDQUE2QjtFNUJrc0gvQjtFcUIzL0dJO0lPdk1GLHFCQUE2QjtFNUJxc0gvQjtFcUIxL0dJO0lPM01GLHVDQUE2QjtFNUJ3c0gvQjtFcUJqZ0hJO0lPdk1GLHNCQUE2QjtFNUIyc0gvQjtFcUJoZ0hJO0lPM01GLHdDQUE2QjtFNUI4c0gvQjtFcUJ2Z0hJO0lPdk1GLGdCQUE2QjtFNUJpdEgvQjtFcUJ0Z0hJO0lPM01GLGtDQUE2QjtFNUJvdEgvQjtFcUI3Z0hJO0lPdk1GLHNCQUE2QjtFNUJ1dEgvQjtFcUI1Z0hJO0lPM01GLHdDQUE2QjtFNUIwdEgvQjtFcUJuaEhJO0lPdk1GLHNCQUE2QjtFNUI2dEgvQjtFcUJsaEhJO0lPM01GLHdDQUE2QjtFNUJndUgvQjtFcUJ6aEhJO0lPdk1GLGdCQUE2QjtFNUJtdUgvQjtFcUJ4aEhJO0lPM01GLGtDQUE2QjtFNUJzdUgvQjtFcUIvaEhJO0lPdk1GLHNCQUE2QjtFNUJ5dUgvQjtFcUI5aEhJO0lPM01GLHdDQUE2QjtFNUI0dUgvQjtFcUJyaUhJO0lPdk1GLHNCQUE2QjtFNUIrdUgvQjtFcUJwaUhJO0lPM01GLHdDQUE2QjtFNUJrdkgvQjtFcUIzaUhJO0lPdk1GLGdCQUE2QjtFNUJxdkgvQjtFcUIxaUhJO0lPM01GLGtDQUE2QjtFNUJ3dkgvQjtFcUJqakhJO0lPdk1GLHNCQUE2QjtFNUIydkgvQjtFcUJoakhJO0lPM01GLHdDQUE2QjtFNUI4dkgvQjtFcUJ2akhJO0lPdk1GLHNCQUE2QjtFNUJpd0gvQjtFcUJ0akhJO0lPM01GLHdDQUE2QjtFNUJvd0gvQjtBQUNGOztBRXpvSFE7RW1CMkVGO0lPdk1GLGVBQTZCO0U1QjB3SC9CO0VxQi9qSEk7SU8zTUYsaUNBQTZCO0U1QjZ3SC9CO0VxQnRrSEk7SU92TUYscUJBQTZCO0U1Qmd4SC9CO0VxQnJrSEk7SU8zTUYsdUNBQTZCO0U1Qm14SC9CO0VxQjVrSEk7SU92TUYsc0JBQTZCO0U1QnN4SC9CO0VxQjNrSEk7SU8zTUYsd0NBQTZCO0U1Qnl4SC9CO0VxQmxsSEk7SU92TUYsZ0JBQTZCO0U1QjR4SC9CO0VxQmpsSEk7SU8zTUYsa0NBQTZCO0U1Qit4SC9CO0VxQnhsSEk7SU92TUYsc0JBQTZCO0U1Qmt5SC9CO0VxQnZsSEk7SU8zTUYsd0NBQTZCO0U1QnF5SC9CO0VxQjlsSEk7SU92TUYsc0JBQTZCO0U1Qnd5SC9CO0VxQjdsSEk7SU8zTUYsd0NBQTZCO0U1QjJ5SC9CO0VxQnBtSEk7SU92TUYsZ0JBQTZCO0U1Qjh5SC9CO0VxQm5tSEk7SU8zTUYsa0NBQTZCO0U1Qml6SC9CO0VxQjFtSEk7SU92TUYsc0JBQTZCO0U1Qm96SC9CO0VxQnptSEk7SU8zTUYsd0NBQTZCO0U1QnV6SC9CO0VxQmhuSEk7SU92TUYsc0JBQTZCO0U1QjB6SC9CO0VxQi9tSEk7SU8zTUYsd0NBQTZCO0U1QjZ6SC9CO0VxQnRuSEk7SU92TUYsZ0JBQTZCO0U1QmcwSC9CO0VxQnJuSEk7SU8zTUYsa0NBQTZCO0U1Qm0wSC9CO0VxQjVuSEk7SU92TUYsc0JBQTZCO0U1QnMwSC9CO0VxQjNuSEk7SU8zTUYsd0NBQTZCO0U1QnkwSC9CO0VxQmxvSEk7SU92TUYsc0JBQTZCO0U1QjQwSC9CO0VxQmpvSEk7SU8zTUYsd0NBQTZCO0U1QiswSC9CO0FBQ0Y7O0FFcHRIUTtFbUIyRUY7SU92TUYsZUFBNkI7RTVCcTFIL0I7RXFCMW9ISTtJTzNNRixpQ0FBNkI7RTVCdzFIL0I7RXFCanBISTtJT3ZNRixxQkFBNkI7RTVCMjFIL0I7RXFCaHBISTtJTzNNRix1Q0FBNkI7RTVCODFIL0I7RXFCdnBISTtJT3ZNRixzQkFBNkI7RTVCaTJIL0I7RXFCdHBISTtJTzNNRix3Q0FBNkI7RTVCbzJIL0I7RXFCN3BISTtJT3ZNRixnQkFBNkI7RTVCdTJIL0I7RXFCNXBISTtJTzNNRixrQ0FBNkI7RTVCMDJIL0I7RXFCbnFISTtJT3ZNRixzQkFBNkI7RTVCNjJIL0I7RXFCbHFISTtJTzNNRix3Q0FBNkI7RTVCZzNIL0I7RXFCenFISTtJT3ZNRixzQkFBNkI7RTVCbTNIL0I7RXFCeHFISTtJTzNNRix3Q0FBNkI7RTVCczNIL0I7RXFCL3FISTtJT3ZNRixnQkFBNkI7RTVCeTNIL0I7RXFCOXFISTtJTzNNRixrQ0FBNkI7RTVCNDNIL0I7RXFCcnJISTtJT3ZNRixzQkFBNkI7RTVCKzNIL0I7RXFCcHJISTtJTzNNRix3Q0FBNkI7RTVCazRIL0I7RXFCM3JISTtJT3ZNRixzQkFBNkI7RTVCcTRIL0I7RXFCMXJISTtJTzNNRix3Q0FBNkI7RTVCdzRIL0I7RXFCanNISTtJT3ZNRixnQkFBNkI7RTVCMjRIL0I7RXFCaHNISTtJTzNNRixrQ0FBNkI7RTVCODRIL0I7RXFCdnNISTtJT3ZNRixzQkFBNkI7RTVCaTVIL0I7RXFCdHNISTtJTzNNRix3Q0FBNkI7RTVCbzVIL0I7RXFCN3NISTtJT3ZNRixzQkFBNkI7RTVCdTVIL0I7RXFCNXNISTtJTzNNRix3Q0FBNkI7RTVCMDVIL0I7QUFDRjs7QUUxeEhRO0VtQnNFRjtJT3ZNRixlQUE2QjtFNUJnNkgvQjtFcUJydEhJO0lPM01GLGlDQUE2QjtFNUJtNkgvQjtFcUI1dEhJO0lPdk1GLHFCQUE2QjtFNUJzNkgvQjtFcUIzdEhJO0lPM01GLHVDQUE2QjtFNUJ5NkgvQjtFcUJsdUhJO0lPdk1GLHNCQUE2QjtFNUI0NkgvQjtFcUJqdUhJO0lPM01GLHdDQUE2QjtFNUIrNkgvQjtFcUJ4dUhJO0lPdk1GLGdCQUE2QjtFNUJrN0gvQjtFcUJ2dUhJO0lPM01GLGtDQUE2QjtFNUJxN0gvQjtFcUI5dUhJO0lPdk1GLHNCQUE2QjtFNUJ3N0gvQjtFcUI3dUhJO0lPM01GLHdDQUE2QjtFNUIyN0gvQjtFcUJwdkhJO0lPdk1GLHNCQUE2QjtFNUI4N0gvQjtFcUJudkhJO0lPM01GLHdDQUE2QjtFNUJpOEgvQjtFcUIxdkhJO0lPdk1GLGdCQUE2QjtFNUJvOEgvQjtFcUJ6dkhJO0lPM01GLGtDQUE2QjtFNUJ1OEgvQjtFcUJod0hJO0lPdk1GLHNCQUE2QjtFNUIwOEgvQjtFcUIvdkhJO0lPM01GLHdDQUE2QjtFNUI2OEgvQjtFcUJ0d0hJO0lPdk1GLHNCQUE2QjtFNUJnOUgvQjtFcUJyd0hJO0lPM01GLHdDQUE2QjtFNUJtOUgvQjtFcUI1d0hJO0lPdk1GLGdCQUE2QjtFNUJzOUgvQjtFcUIzd0hJO0lPM01GLGtDQUE2QjtFNUJ5OUgvQjtFcUJseEhJO0lPdk1GLHNCQUE2QjtFNUI0OUgvQjtFcUJqeEhJO0lPM01GLHdDQUE2QjtFNUIrOUgvQjtFcUJ4eEhJO0lPdk1GLHNCQUE2QjtFNUJrK0gvQjtFcUJ2eEhJO0lPM01GLHdDQUE2QjtFNUJxK0gvQjtBQUNGOztBRXIySFE7RW1Cc0VGO0lPdk1GLGVBQTZCO0U1QjIrSC9CO0VxQmh5SEk7SU8zTUYsaUNBQTZCO0U1QjgrSC9CO0VxQnZ5SEk7SU92TUYscUJBQTZCO0U1QmkvSC9CO0VxQnR5SEk7SU8zTUYsdUNBQTZCO0U1Qm8vSC9CO0VxQjd5SEk7SU92TUYsc0JBQTZCO0U1QnUvSC9CO0VxQjV5SEk7SU8zTUYsd0NBQTZCO0U1QjAvSC9CO0VxQm56SEk7SU92TUYsZ0JBQTZCO0U1QjYvSC9CO0VxQmx6SEk7SU8zTUYsa0NBQTZCO0U1QmdnSS9CO0VxQnp6SEk7SU92TUYsc0JBQTZCO0U1Qm1nSS9CO0VxQnh6SEk7SU8zTUYsd0NBQTZCO0U1QnNnSS9CO0VxQi96SEk7SU92TUYsc0JBQTZCO0U1QnlnSS9CO0VxQjl6SEk7SU8zTUYsd0NBQTZCO0U1QjRnSS9CO0VxQnIwSEk7SU92TUYsZ0JBQTZCO0U1QitnSS9CO0VxQnAwSEk7SU8zTUYsa0NBQTZCO0U1QmtoSS9CO0VxQjMwSEk7SU92TUYsc0JBQTZCO0U1QnFoSS9CO0VxQjEwSEk7SU8zTUYsd0NBQTZCO0U1QndoSS9CO0VxQmoxSEk7SU92TUYsc0JBQTZCO0U1QjJoSS9CO0VxQmgxSEk7SU8zTUYsd0NBQTZCO0U1QjhoSS9CO0VxQnYxSEk7SU92TUYsZ0JBQTZCO0U1QmlpSS9CO0VxQnQxSEk7SU8zTUYsa0NBQTZCO0U1Qm9pSS9CO0VxQjcxSEk7SU92TUYsc0JBQTZCO0U1QnVpSS9CO0VxQjUxSEk7SU8zTUYsd0NBQTZCO0U1QjBpSS9CO0VxQm4ySEk7SU92TUYsc0JBQTZCO0U1QjZpSS9CO0VxQmwySEk7SU8zTUYsd0NBQTZCO0U1QmdqSS9CO0FBQ0Y7O0FxQjcvSGdCO0VFdEVkLGFBQWE7RUFDYix3QkFINkI7QXZCMGtJL0I7O0FxQnoxSEU7RUcxSUEsWUFBbUI7RUFDbkIsZ0JBQTJCO0F4QnUrSDdCOztBcUI5MUhFO0VHN0dFLFlBbEZZO0F4QmlpSWhCOztBcUJsMkhFO0VHN0dFLFlBbEZZO0F4QnFpSWhCOztBcUJ0MkhFO0VBMkJNLGdCQUFnQjtBckIrMEh4Qjs7QUUzOEhRO0VtQmlHTjtJQTJCTSxnQkFBZ0I7RXJCbzFIdEI7QUFDRjs7QUVqOUhRO0VtQmlHTjtJQTJCTSxnQkFBZ0I7RXJCMDFIdEI7QUFDRjs7QUV2OUhRO0VtQmlHTjtJQTJCTSxnQkFBZ0I7RXJCZzJIdEI7QUFDRjs7QUV4OUhRO0VtQjRGTjtJQTJCTSxnQkFBZ0I7RXJCczJIdEI7QUFDRjs7QUU5OUhRO0VtQjRGTjtJQTJCTSxnQkFBZ0I7RXJCNDJIdEI7QUFDRjs7QXFCeDRIRTtFR3hKQSxjQUFNO0F4Qm9pSVI7O0FxQjU0SEU7RUc3R0UsZ0JDbkJ5RDtBekJnaEk3RDs7QXFCaDVIRTtFRzdHRSxpQkNuQnlEO0F6Qm9oSTdEOztBcUJwNUhFO0VHN0dFLFdDbkJ5RDtBekJ3aEk3RDs7QXFCeDVIRTtFRzdHRSxpQkNuQnlEO0F6QjRoSTdEOztBcUI1NUhFO0VHN0dFLGlCQ25CeUQ7QXpCZ2lJN0Q7O0FxQmg2SEU7RUc3R0UsV0NuQnlEO0F6Qm9pSTdEOztBcUJwNkhFO0VHN0dFLGlCQ25CeUQ7QXpCd2lJN0Q7O0FxQng2SEU7RUc3R0UsaUJDbkJ5RDtBekI0aUk3RDs7QXFCNTZIRTtFRzdHRSxXQ25CeUQ7QXpCZ2pJN0Q7O0FxQmg3SEU7RUc3R0UsaUJDbkJ5RDtBekJvakk3RDs7QXFCcDdIRTtFRzdHRSxpQkNuQnlEO0F6QndqSTdEOztBcUJ4N0hFO0VHN0dFLFlDbkJ5RDtBekI0akk3RDs7QUU3aElRO0VtQmlHTjtJR3hKQSxhQUFNO0lBMkNKLFlBbEZZO0V4QmlvSWQ7RXFCbDhIQTtJR3hKQSxjQUFNO0V4QjZsSU47RXFCcjhIQTtJRzdHRSxZQWxGWTtFeEJ1b0lkO0VxQng4SEE7SUc3R0UsZ0JDbkJ5RDtFekIya0kzRDtFcUIzOEhBO0lHN0dFLGlCQ25CeUQ7RXpCOGtJM0Q7RXFCOThIQTtJRzdHRSxXQ25CeUQ7RXpCaWxJM0Q7RXFCajlIQTtJRzdHRSxpQkNuQnlEO0V6Qm9sSTNEO0VxQnA5SEE7SUc3R0UsaUJDbkJ5RDtFekJ1bEkzRDtFcUJ2OUhBO0lHN0dFLFdDbkJ5RDtFekIwbEkzRDtFcUIxOUhBO0lHN0dFLGlCQ25CeUQ7RXpCNmxJM0Q7RXFCNzlIQTtJRzdHRSxpQkNuQnlEO0V6QmdtSTNEO0VxQmgrSEE7SUc3R0UsV0NuQnlEO0V6Qm1tSTNEO0VxQm4rSEE7SUc3R0UsaUJDbkJ5RDtFekJzbUkzRDtFcUJ0K0hBO0lHN0dFLGlCQ25CeUQ7RXpCeW1JM0Q7RXFCeitIQTtJRzdHRSxZQ25CeUQ7RXpCNG1JM0Q7QUFDRjs7QUU5a0lRO0VtQmlHTjtJR3hKQSxhQUFNO0lBMkNKLFlBbEZZO0V4QmtySWQ7RXFCbi9IQTtJR3hKQSxjQUFNO0V4QjhvSU47RXFCdC9IQTtJRzdHRSxZQWxGWTtFeEJ3cklkO0VxQnovSEE7SUc3R0UsZ0JDbkJ5RDtFekI0bkkzRDtFcUI1L0hBO0lHN0dFLGlCQ25CeUQ7RXpCK25JM0Q7RXFCLy9IQTtJRzdHRSxXQ25CeUQ7RXpCa29JM0Q7RXFCbGdJQTtJRzdHRSxpQkNuQnlEO0V6QnFvSTNEO0VxQnJnSUE7SUc3R0UsaUJDbkJ5RDtFekJ3b0kzRDtFcUJ4Z0lBO0lHN0dFLFdDbkJ5RDtFekIyb0kzRDtFcUIzZ0lBO0lHN0dFLGlCQ25CeUQ7RXpCOG9JM0Q7RXFCOWdJQTtJRzdHRSxpQkNuQnlEO0V6QmlwSTNEO0VxQmpoSUE7SUc3R0UsV0NuQnlEO0V6Qm9wSTNEO0VxQnBoSUE7SUc3R0UsaUJDbkJ5RDtFekJ1cEkzRDtFcUJ2aElBO0lHN0dFLGlCQ25CeUQ7RXpCMHBJM0Q7RXFCMWhJQTtJRzdHRSxZQ25CeUQ7RXpCNnBJM0Q7QUFDRjs7QUUvbklRO0VtQmlHTjtJR3hKQSxhQUFNO0lBMkNKLFlBbEZZO0V4Qm11SWQ7RXFCcGlJQTtJR3hKQSxjQUFNO0V4QitySU47RXFCdmlJQTtJRzdHRSxZQWxGWTtFeEJ5dUlkO0VxQjFpSUE7SUc3R0UsZ0JDbkJ5RDtFekI2cUkzRDtFcUI3aUlBO0lHN0dFLGlCQ25CeUQ7RXpCZ3JJM0Q7RXFCaGpJQTtJRzdHRSxXQ25CeUQ7RXpCbXJJM0Q7RXFCbmpJQTtJRzdHRSxpQkNuQnlEO0V6QnNySTNEO0VxQnRqSUE7SUc3R0UsaUJDbkJ5RDtFekJ5ckkzRDtFcUJ6aklBO0lHN0dFLFdDbkJ5RDtFekI0ckkzRDtFcUI1aklBO0lHN0dFLGlCQ25CeUQ7RXpCK3JJM0Q7RXFCL2pJQTtJRzdHRSxpQkNuQnlEO0V6QmtzSTNEO0VxQmxrSUE7SUc3R0UsV0NuQnlEO0V6QnFzSTNEO0VxQnJrSUE7SUc3R0UsaUJDbkJ5RDtFekJ3c0kzRDtFcUJ4a0lBO0lHN0dFLGlCQ25CeUQ7RXpCMnNJM0Q7RXFCM2tJQTtJRzdHRSxZQ25CeUQ7RXpCOHNJM0Q7QUFDRjs7QUUzcUlRO0VtQjRGTjtJR3hKQSxhQUFNO0lBMkNKLFlBbEZZO0V4Qm94SWQ7RXFCcmxJQTtJR3hKQSxjQUFNO0V4Qmd2SU47RXFCeGxJQTtJRzdHRSxZQWxGWTtFeEIweElkO0VxQjNsSUE7SUc3R0UsZ0JDbkJ5RDtFekI4dEkzRDtFcUI5bElBO0lHN0dFLGlCQ25CeUQ7RXpCaXVJM0Q7RXFCam1JQTtJRzdHRSxXQ25CeUQ7RXpCb3VJM0Q7RXFCcG1JQTtJRzdHRSxpQkNuQnlEO0V6QnV1STNEO0VxQnZtSUE7SUc3R0UsaUJDbkJ5RDtFekIwdUkzRDtFcUIxbUlBO0lHN0dFLFdDbkJ5RDtFekI2dUkzRDtFcUI3bUlBO0lHN0dFLGlCQ25CeUQ7RXpCZ3ZJM0Q7RXFCaG5JQTtJRzdHRSxpQkNuQnlEO0V6Qm12STNEO0VxQm5uSUE7SUc3R0UsV0NuQnlEO0V6QnN2STNEO0VxQnRuSUE7SUc3R0UsaUJDbkJ5RDtFekJ5dkkzRDtFcUJ6bklBO0lHN0dFLGlCQ25CeUQ7RXpCNHZJM0Q7RXFCNW5JQTtJRzdHRSxZQ25CeUQ7RXpCK3ZJM0Q7QUFDRjs7QUU1dElRO0VtQjRGTjtJR3hKQSxhQUFNO0lBMkNKLFlBbEZZO0V4QnEwSWQ7RXFCdG9JQTtJR3hKQSxjQUFNO0V4Qml5SU47RXFCem9JQTtJRzdHRSxZQWxGWTtFeEIyMElkO0VxQjVvSUE7SUc3R0UsZ0JDbkJ5RDtFekIrd0kzRDtFcUIvb0lBO0lHN0dFLGlCQ25CeUQ7RXpCa3hJM0Q7RXFCbHBJQTtJRzdHRSxXQ25CeUQ7RXpCcXhJM0Q7RXFCcnBJQTtJRzdHRSxpQkNuQnlEO0V6Qnd4STNEO0VxQnhwSUE7SUc3R0UsaUJDbkJ5RDtFekIyeEkzRDtFcUIzcElBO0lHN0dFLFdDbkJ5RDtFekI4eEkzRDtFcUI5cElBO0lHN0dFLGlCQ25CeUQ7RXpCaXlJM0Q7RXFCanFJQTtJRzdHRSxpQkNuQnlEO0V6Qm95STNEO0VxQnBxSUE7SUc3R0UsV0NuQnlEO0V6QnV5STNEO0VxQnZxSUE7SUc3R0UsaUJDbkJ5RDtFekIweUkzRDtFcUIxcUlBO0lHN0dFLGlCQ25CeUQ7RXpCNnlJM0Q7RXFCN3FJQTtJRzdHRSxZQ25CeUQ7RXpCZ3pJM0Q7QUFDRjs7QXFCam5JSTtFQ2pUSSxvQkFBNkQ7RUFBN0QsdUJBQTZEO0F0QnU2SXJFOztBRXZ4SVE7RW1CaUtKO0lDalRJLHNCQUE2RDtJQUE3RCx5QkFBNkQ7RXRCNjZJbkU7QUFDRjs7QXFCN25JSTtFQ2pUSSxvQkFBNkQ7RUFBN0QsdUJBQTZEO0F0Qm03SXJFOztBRW55SVE7RW1CaUtKO0lDalRJLHNCQUE2RDtJQUE3RCx5QkFBNkQ7RXRCeTdJbkU7QUFDRjs7QXFCbjFJRTtFQ3ZHTSxvQkFBNkQ7RUFBN0QsdUJBQTZEO0F0Qis3SXJFOztBRS95SVE7RW1CekNOO0lDdkdNLHNCQUE2RDtJQUE3RCx5QkFBNkQ7RXRCcThJbkU7QUFDRjs7QXFCLzFJRTtFRzZCRSwyQkF0RDhGO0VGckU1RixtQkFBNkQ7RUFBN0Qsc0JBQTZEO0F0Qm04SW5FOztBRTV6SVE7RW1CekNOO0lHNkJFLDZCQXREOEY7SUZyRTVGLHFCQUE2RDtJQUE3RCx3QkFBNkQ7RXRCMDhJakU7QUFDRjs7QXFCcjRJRTtFR3FERSxZQWxGWTtBeEJzNkloQjs7QXFCcjRJRTtFR2lERSxZQWxGWTtBeEIwNkloQjs7QXFCajRJSTtFR3lDQSwrQkF0RDhGO0F4Qms1SWxHOztBcUJyNElJO0VHeUNBLGdDQXREOEY7QXhCczVJbEc7O0FxQno0SUk7RUd5Q0EsMEJBdEQ4RjtBeEIwNUlsRzs7QXFCNzRJSTtFR3lDQSxnQ0F0RDhGO0F4Qjg1SWxHOztBcUJqNUlJO0VHeUNBLGdDQXREOEY7QXhCazZJbEc7O0FxQnI1SUk7RUd5Q0EsMEJBdEQ4RjtBeEJzNklsRzs7QXFCejVJSTtFR3lDQSxnQ0F0RDhGO0F4QjA2SWxHOztBcUI3NUlJO0VHeUNBLGdDQXREOEY7QXhCODZJbEc7O0FxQmo2SUk7RUd5Q0EsMEJBdEQ4RjtBeEJrN0lsRzs7QXFCcjZJSTtFR3lDQSxnQ0F0RDhGO0F4QnM3SWxHOztBcUJ6NklJO0VHeUNBLGdDQXREOEY7QXhCMDdJbEc7O0FxQjc2SUk7RUd5Q0EsMkJBdEQ4RjtBeEI4N0lsRzs7QUU1M0lRO0VtQmpFTjtJR3FERSxZQWxGWTtFeEIrOUlkO0VxQjk3SUE7SUdpREUsWUFsRlk7RXhCaytJZDtFcUJ6N0lFO0lHeUNBLGlDQXREOEY7RXhCeThJaEc7RXFCNTdJRTtJR3lDQSxrQ0F0RDhGO0V4QjQ4SWhHO0VxQi83SUU7SUd5Q0EsNEJBdEQ4RjtFeEIrOEloRztFcUJsOElFO0lHeUNBLGtDQXREOEY7RXhCazlJaEc7RXFCcjhJRTtJR3lDQSxrQ0F0RDhGO0V4QnE5SWhHO0VxQng4SUU7SUd5Q0EsNEJBdEQ4RjtFeEJ3OUloRztFcUIzOElFO0lHeUNBLGtDQXREOEY7RXhCMjlJaEc7RXFCOThJRTtJR3lDQSxrQ0F0RDhGO0V4Qjg5SWhHO0VxQmo5SUU7SUd5Q0EsNEJBdEQ4RjtFeEJpK0loRztFcUJwOUlFO0lHeUNBLGtDQXREOEY7RXhCbytJaEc7RXFCdjlJRTtJR3lDQSxrQ0F0RDhGO0V4QnUrSWhHO0VxQjE5SUU7SUd5Q0EsNkJBdEQ4RjtFeEIwK0loRztFcUJ6K0lBO0lHcURFLFlBbEZZO0V4QnlnSmQ7RXFCeCtJQTtJR2lERSxZQWxGWTtFeEI0Z0pkO0VxQm4rSUU7SUd5Q0EsaUNBdEQ4RjtFeEJtL0loRztFcUJ0K0lFO0lHeUNBLGtDQXREOEY7RXhCcy9JaEc7RXFCeitJRTtJR3lDQSw0QkF0RDhGO0V4QnkvSWhHO0VxQjUrSUU7SUd5Q0Esa0NBdEQ4RjtFeEI0L0loRztFcUIvK0lFO0lHeUNBLGtDQXREOEY7RXhCKy9JaEc7RXFCbC9JRTtJR3lDQSw0QkF0RDhGO0V4QmtnSmhHO0VxQnIvSUU7SUd5Q0Esa0NBdEQ4RjtFeEJxZ0poRztFcUJ4L0lFO0lHeUNBLGtDQXREOEY7RXhCd2dKaEc7RXFCMy9JRTtJR3lDQSw0QkF0RDhGO0V4QjJnSmhHO0VxQjkvSUU7SUd5Q0Esa0NBdEQ4RjtFeEI4Z0poRztFcUJqZ0pFO0lHeUNBLGtDQXREOEY7RXhCaWhKaEc7RXFCcGdKRTtJR3lDQSw2QkF0RDhGO0V4Qm9oSmhHO0FBQ0Y7O0FFbjlJUTtFbUJqRU47SUdxREUsWUFsRlk7RXhCc2pKZDtFcUJyaEpBO0lHaURFLFlBbEZZO0V4QnlqSmQ7RXFCaGhKRTtJR3lDQSxpQ0F0RDhGO0V4QmdpSmhHO0VxQm5oSkU7SUd5Q0Esa0NBdEQ4RjtFeEJtaUpoRztFcUJ0aEpFO0lHeUNBLDRCQXREOEY7RXhCc2lKaEc7RXFCemhKRTtJR3lDQSxrQ0F0RDhGO0V4QnlpSmhHO0VxQjVoSkU7SUd5Q0Esa0NBdEQ4RjtFeEI0aUpoRztFcUIvaEpFO0lHeUNBLDRCQXREOEY7RXhCK2lKaEc7RXFCbGlKRTtJR3lDQSxrQ0F0RDhGO0V4QmtqSmhHO0VxQnJpSkU7SUd5Q0Esa0NBdEQ4RjtFeEJxakpoRztFcUJ4aUpFO0lHeUNBLDRCQXREOEY7RXhCd2pKaEc7RXFCM2lKRTtJR3lDQSxrQ0F0RDhGO0V4QjJqSmhHO0VxQjlpSkU7SUd5Q0Esa0NBdEQ4RjtFeEI4akpoRztFcUJqakpFO0lHeUNBLDZCQXREOEY7RXhCaWtKaEc7QUFDRjs7QUVoZ0pRO0VtQmpFTjtJR3FERSxZQWxGWTtFeEJtbUpkO0VxQmxrSkE7SUdpREUsWUFsRlk7RXhCc21KZDtFcUI3akpFO0lHeUNBLGlDQXREOEY7RXhCNmtKaEc7RXFCaGtKRTtJR3lDQSxrQ0F0RDhGO0V4QmdsSmhHO0VxQm5rSkU7SUd5Q0EsNEJBdEQ4RjtFeEJtbEpoRztFcUJ0a0pFO0lHeUNBLGtDQXREOEY7RXhCc2xKaEc7RXFCemtKRTtJR3lDQSxrQ0F0RDhGO0V4QnlsSmhHO0VxQjVrSkU7SUd5Q0EsNEJBdEQ4RjtFeEI0bEpoRztFcUIva0pFO0lHeUNBLGtDQXREOEY7RXhCK2xKaEc7RXFCbGxKRTtJR3lDQSxrQ0F0RDhGO0V4QmttSmhHO0VxQnJsSkU7SUd5Q0EsNEJBdEQ4RjtFeEJxbUpoRztFcUJ4bEpFO0lHeUNBLGtDQXREOEY7RXhCd21KaEc7RXFCM2xKRTtJR3lDQSxrQ0F0RDhGO0V4QjJtSmhHO0VxQjlsSkU7SUd5Q0EsNkJBdEQ4RjtFeEI4bUpoRztBQUNGOztBRXhpSlE7RW1CdEVOO0lHcURFLFlBbEZZO0V4QmdwSmQ7RXFCL21KQTtJR2lERSxZQWxGWTtFeEJtcEpkO0VxQjFtSkU7SUd5Q0EsaUNBdEQ4RjtFeEIwbkpoRztFcUI3bUpFO0lHeUNBLGtDQXREOEY7RXhCNm5KaEc7RXFCaG5KRTtJR3lDQSw0QkF0RDhGO0V4QmdvSmhHO0VxQm5uSkU7SUd5Q0Esa0NBdEQ4RjtFeEJtb0poRztFcUJ0bkpFO0lHeUNBLGtDQXREOEY7RXhCc29KaEc7RXFCem5KRTtJR3lDQSw0QkF0RDhGO0V4QnlvSmhHO0VxQjVuSkU7SUd5Q0Esa0NBdEQ4RjtFeEI0b0poRztFcUIvbkpFO0lHeUNBLGtDQXREOEY7RXhCK29KaEc7RXFCbG9KRTtJR3lDQSw0QkF0RDhGO0V4QmtwSmhHO0VxQnJvSkU7SUd5Q0Esa0NBdEQ4RjtFeEJxcEpoRztFcUJ4b0pFO0lHeUNBLGtDQXREOEY7RXhCd3BKaEc7RXFCM29KRTtJR3lDQSw2QkF0RDhGO0V4QjJwSmhHO0FBQ0Y7O0FFcmxKUTtFbUJ0RU47SUdxREUsWUFsRlk7RXhCNnJKZDtFcUI1cEpBO0lHaURFLFlBbEZZO0V4QmdzSmQ7RXFCdnBKRTtJR3lDQSxpQ0F0RDhGO0V4QnVxSmhHO0VxQjFwSkU7SUd5Q0Esa0NBdEQ4RjtFeEIwcUpoRztFcUI3cEpFO0lHeUNBLDRCQXREOEY7RXhCNnFKaEc7RXFCaHFKRTtJR3lDQSxrQ0F0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aUtsRzs7QXFCemhLSTtFR3lDQSxnQ0F0RDhGO0F4QjBpS2xHOztBcUI3aEtJO0VHeUNBLDBCQXREOEY7QXhCOGlLbEc7O0FxQmppS0k7RUd5Q0EsZ0NBdEQ4RjtBeEJraktsRzs7QXFCcmlLSTtFR3lDQSxnQ0F0RDhGO0F4QnNqS2xHOztBcUJ6aUtJO0VHeUNBLDBCQXREOEY7QXhCMGpLbEc7O0FxQjdpS0k7RUd5Q0EsZ0NBdEQ4RjtBeEI4aktsRzs7QXFCampLSTtFR3lDQSxnQ0F0RDhGO0F4QmtrS2xHOztBcUJyaktJO0VHeUNBLDBCQXREOEY7QXhCc2tLbEc7O0FxQnpqS0k7RUd5Q0EsZ0NBdEQ4RjtBeEIwa0tsRzs7QXFCN2pLSTtFR3lDQSxnQ0F0RDhGO0F4QjhrS2xHOztBcUJqa0tJO0VHeUNBLDJCQXREOEY7QXhCa2xLbEc7O0FFaGhLUTtFbUJqRU47SUdxREUsWUFsRlk7RXhCbW5LZDtFcUJsbEtBO0lHaURFLFlBbEZZO0V4QnNuS2Q7RXFCN2tLRTtJR3lDQSxpQ0F0RDhGO0V4QjZsS2hHO0VxQmhsS0U7SUd5Q0Esa0NBdEQ4RjtFeEJnbUtoRztFcUJubEtFO0lHeUNBLDRCQXREOEY7RXhCbW1LaEc7RXFCdGxLRTtJR3lDQSxrQ0F0RDhGO0V4QnNtS2hHO0VxQnpsS0U7SUd5Q0Esa0NBdEQ4RjtFeEJ5bUtoRztFcUI1bEtFO0lHeUNBLDRCQXREOEY7RXhCNG1LaEc7RXFCL2xLRTtJR3lDQSxrQ0F0RDhGO0V4QittS2hHO0VxQmxtS0U7SUd5Q0Esa0NBdEQ4RjtFeEJrbktoRztFcUJybUtFO0lHeUNBLDRCQXREOEY7RXhCcW5LaEc7RXFCeG1LRTtJR3lDQSxrQ0F0RDhGO0V4QnduS2hHO0VxQjNtS0U7SUd5Q0Esa0NBdEQ4RjtFeEIybktoRztFcUI5bUtFO0lHeUNBLDZCQXREOEY7RXhCOG5LaEc7RXFCN25LQTtJR3FERSxZQWxGWTtFeEI2cEtkO0VxQjVuS0E7SUdpREUsWUFsRlk7RXhCZ3FLZDtFcUJ2bktFO0lHeUNBLGlDQXREOEY7RXhCdW9LaEc7RXFCMW5LRTtJR3lDQSxrQ0F0RDhGO0V4QjBvS2hHO0VxQjduS0U7SUd5Q0EsNEJBdEQ4RjtFeEI2b0toRztFcUJob0tFO0lHeUNBLGtDQXREOEY7RXhCZ3BLaEc7RXFCbm9LRTtJR3lDQSxrQ0F0RDhGO0V4Qm1wS2hHO0VxQnRvS0U7SUd5Q0EsNEJBdEQ4RjtFeEJzcEtoRztFcUJ6b0tFO0lHeUNBLGtDQXREOEY7RXhCeXBLaEc7RXFCNW9LRTtJR3lDQSxrQ0F0RDhGO0V4QjRwS2hHO0VxQi9vS0U7SUd5Q0EsNEJBdEQ4RjtFeEIrcEtoRztFcUJscEtFO0lHeUNBLGtDQXREOEY7RXhCa3FLaEc7RXFCcnBLRTtJR3lDQSxrQ0F0RDhGO0V4QnFxS2hHO0VxQnhwS0U7SUd5Q0EsNkJBdEQ4RjtFeEJ3cUtoRztBQUNGOztBRXZtS1E7RW1CakVOO0lHcURFLFlBbEZZO0V4QjBzS2Q7RXFCenFLQTtJR2lERSxZQWxGWTtFeEI2c0tkO0VxQnBxS0U7SUd5Q0EsaUNBdEQ4RjtFeEJvcktoRztFcUJ2cUtFO0lHeUNBLGtDQXREOEY7RXhCdXJLaEc7RXFCMXFLRTtJR3lDQSw0QkF0RDhGO0V4QjByS2hHO0VxQjdxS0U7SUd5Q0Esa0NBdEQ4RjtFeEI2cktoRztFcUJocktFO0lHeUNBLGtDQXREOEY7RXhCZ3NLaEc7RXFCbnJLRTtJR3lDQSw0QkF0RDhGO0V4Qm1zS2hHO0VxQnRyS0U7SUd5Q0Esa0NBdEQ4RjtFeEJzc0toRztFcUJ6cktFO0lHeUNBLGtDQXREOEY7RXhCeXNLaEc7RXFCNXJLRTtJR3lDQSw0QkF0RDhGO0V4QjRzS2hHO0VxQi9yS0U7SUd5Q0Esa0NBdEQ4RjtFeEIrc0toRztFcUJsc0tFO0lHeUNBLGtDQXREOEY7RXhCa3RLaEc7RXFCcnNLRTtJR3lDQSw2QkF0RDhGO0V4QnF0S2hHO0FBQ0Y7O0FFcHBLUTtFbUJqRU47SUdxREUsWUFsRlk7RXhCdXZLZDtFcUJ0dEtBO0lHaURFLFlBbEZZO0V4QjB2S2Q7RXFCanRLRTtJR3lDQSxpQ0F0RDhGO0V4Qml1S2hHO0VxQnB0S0U7SUd5Q0Esa0NBdEQ4RjtFeEJvdUtoRztFcUJ2dEtFO0lHeUNBLDRCQXREOEY7RXhCdXVLaEc7RXFCMXRLRTtJR3lDQSxrQ0F0RDhGO0V4QjB1S2hHO0VxQjd0S0U7SUd5Q0Esa0NBdEQ4RjtFeEI2dUtoRztFcUJodUtFO0lHeUNBLDRCQXREOEY7RXhCZ3ZLaEc7RXFCbnVLRTtJR3lDQSxrQ0F0RDhGO0V4Qm12S2hHO0VxQnR1S0U7SUd5Q0Esa0NBdEQ4RjtFeEJzdktoRztFcUJ6dUtFO0lHeUNBLDRCQXREOEY7RXhCeXZLaEc7RXFCNXVLRTtJR3lDQSxrQ0F0RDhGO0V4QjR2S2hHO0VxQi91S0U7SUd5Q0Esa0NBdEQ4RjtFeEIrdktoRztFcUJsdktFO0lHeUNBLDZCQXREOEY7RXhCa3dLaEc7QUFDRjs7QUU1cktRO0VtQnRFTjtJR3FERSxZQWxGWTtFeEJveUtkO0VxQm53S0E7SUdpREUsWUFsRlk7RXhCdXlLZDtFcUI5dktFO0lHeUNBLGlDQXREOEY7RXhCOHdLaEc7RXFCandLRTtJR3lDQSxrQ0F0RDhGO0V4Qml4S2hHO0VxQnB3S0U7SUd5Q0EsNEJBdEQ4RjtFeEJveEtoRztFcUJ2d0tFO0lHeUNBLGtDQXREOEY7RXhCdXhLaEc7RXFCMXdLRTtJR3lDQSxrQ0F0RDhGO0V4QjB4S2hHO0VxQjd3S0U7SUd5Q0EsNEJBdEQ4RjtFeEI2eEtoRztFcUJoeEtFO0lHeUNBLGtDQXREOEY7RXhCZ3lLaEc7RXFCbnhLRTtJR3lDQSxrQ0F0RDhGO0V4Qm15S2hHO0VxQnR4S0U7SUd5Q0EsNEJBdEQ4RjtFeEJzeUtoRztFcUJ6eEtFO0lHeUNBLGtDQXREOEY7RXhCeXlLaEc7RXFCNXhLRTtJR3lDQSxrQ0F0RDhGO0V4QjR5S2hHO0VxQi94S0U7SUd5Q0EsNkJBdEQ4RjtFeEIreUtoRztBQUNGOztBRXp1S1E7RW1CdEVOO0lHcURFLFlBbEZZO0V4QmkxS2Q7RXFCaHpLQTtJR2lERSxZQWxGWTtFeEJvMUtkO0VxQjN5S0U7SUd5Q0EsaUNBdEQ4RjtFeEIyektoRztFcUI5eUtFO0lHeUNBLGtDQXREOEY7RXhCOHpLaEc7RXFCanpLRTtJR3lDQSw0QkF0RDhGO0V4QmkwS2hHO0VxQnB6S0U7SUd5Q0Esa0NBdEQ4RjtFeEJvMEtoRztFcUJ2ektFO0lHeUNBLGtDQXREOEY7RXhCdTBLaEc7RXFCMXpLRTtJR3lDQSw0QkF0RDhGO0V4QjAwS2hHO0VxQjd6S0U7SUd5Q0Esa0NBdEQ4RjtFeEI2MEtoRztFcUJoMEtFO0lHeUNBLGtDQXREOEY7RXhCZzFLaEc7RXFCbjBLRTtJR3lDQSw0QkF0RDhGO0V4Qm0xS2hHO0VxQnQwS0U7SUd5Q0Esa0NBdEQ4RjtFeEJzMUtoRztFcUJ6MEtFO0lHeUNBLGtDQXREOEY7RXhCeTFLaEc7RXFCNTBLRTtJR3lDQSw2QkF0RDhGO0V4QjQxS2hHO0FBQ0Y7O0FxQjVoS0k7RVE1WUksNEJBQW1DO0E3QjQ2SzNDOztBRS94S1E7RW1CK1BKO0lRNVlJLDhCQUFtQztFN0JpN0t6QztBQUNGOztBRXJ5S1E7RW1CK1BKO0lRNVlJLDhCQUFtQztFN0J1N0t6QztBQUNGOztBRTN5S1E7RW1CK1BKO0lRNVlJLDhCQUFtQztFN0I2N0t6QztBQUNGOztBRTV5S1E7RW1CMFBKO0lRNVlJLDhCQUFtQztFN0JtOEt6QztBQUNGOztBRWx6S1E7RW1CMFBKO0lRNVlJLDhCQUFtQztFN0J5OEt6QztBQUNGOztBRTd6S1E7RW1CbVFGO0lRaFpFLDhCQUFtQztFN0IrOEt6QztBQUNGOztBRW4wS1E7RW1CbVFGO0lRaFpFLDhCQUFtQztFN0JxOUt6QztBQUNGOztBRXowS1E7RW1CbVFGO0lRaFpFLDhCQUFtQztFN0IyOUt6QztBQUNGOztBRTEwS1E7RW1COFBGO0lRaFpFLDhCQUFtQztFN0JpK0t6QztBQUNGOztBRWgxS1E7RW1COFBGO0lRaFpFLDhCQUFtQztFN0J1K0t6QztBQUNGOztBOEIvcktFO0VBMU9BLHFCQUFxQjtFQUNyQixzQkFBc0I7RUFDdEIsa0J4Qm1Oa0M7RXdCek1oQyxzQnhCd000QjtFd0JyTTlCLDZCQTlEbUM7RUErRG5DLGdCeEJyQmU7RXdCc0JmLDJGeEIrTmlHO0V3QjlOakcsb0J4QmlNMEI7RXdCaE0xQixleEI2TWU7RXdCM01mLHdCQUF3QjtFQUN4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MWlMRTtFQUNFLHlCQWJvRjtFQWNwRixjeEI1SFc7QU55cUxmOztBOEJ2akxFO0VBSUUseUJ4QmhJa0I7RXdCaUlsQixjeEJ4SFc7QU4rcUxmOztBOEJwakxFO0VBQ0UseUJBYm9GO0VBY3BGLGN4QjdIVztBTm9yTGY7O0E4Qi9pTEk7RUFDRSw2QkFBNkI7QTlCa2pMbkM7O0E4QmppTEU7RUFJRSx5QnhCNUplO0V3QjZKZixjeEI3SmU7QU44ckxuQjs7QThCOWhMRTtFQUNFLHFCQVo2RDtFQWE3RCxjQWI2RDtBOUI4aUxqRTs7QThCM2lMRTtFQUlFLHlCeEIwRmdCO0V3QnpGaEIsY3hCeUZnQjtBTms5S3BCOztBOEJ4aUxFO0VBQ0UscUJBWjZEO0VBYTdELGNBYjZEO0E5QndqTGpFOztBOEJyakxFO0VBSUUseUJ4QjJGa0I7RXdCMUZsQixjeEIwRmtCO0FOMjlLdEI7O0E4QmxqTEU7RUFDRSxxQkFaNkQ7RUFhN0QsY0FiNkQ7QTlCa2tMakU7O0E4Qi9qTEU7RUFJRSx5QnhCNEZnQjtFd0IzRmhCLGN4QjJGZ0I7QU5vK0twQjs7QThCNWpMRTtFQUNFLHFCQVo2RDtFQWE3RCxjQWI2RDtBOUI0a0xqRTs7QThCemtMRTtFQUlFLHlCeEI2RmdCO0V3QjVGaEIsY3hCNEZnQjtBTjYrS3BCOztBOEJ0a0xFO0VBQ0UscUJBWjZEO0VBYTdELGNBYjZEO0E5QnNsTGpFOztBOEJubExFO0VBSUUseUJ4QjhGYztFd0I3RmQsY3hCNkZjO0FOcy9LbEI7O0E4QmhsTEU7RUFDRSxxQkFaNkQ7RUFhN0QsY0FiNkQ7QTlCZ21MakU7O0E4QjdsTEU7RUFJRSx5QnhCcEtrQjtFd0JxS2xCLGN4QnJLa0I7QU5rd0x0Qjs7QThCMWxMRTtFQUNFLHFCQVo2RDtFQWE3RCxjQWI2RDtBOUIwbUxqRTs7QThCcmxMSTtFQUNFLHlCQUF5QjtFQUN6Qiw2QkFBNkI7QTlCd2xMbkM7O0E4QnprTEU7RUFJRSxjeEIvTGU7QU53d0xuQjs7QThCdGtMRTtFQUNFLGNBWDZEO0E5Qm9sTGpFOztBOEJqbExFO0VBSUUsY3hCdURnQjtBTjBoTHBCOztBOEI5a0xFO0VBQ0UsY0FYNkQ7QTlCNGxMakU7O0E4QnpsTEU7RUFJRSxjeEJ3RGtCO0FOaWlMdEI7O0E4QnRsTEU7RUFDRSxjQVg2RDtBOUJvbUxqRTs7QThCam1MRTtFQUlFLGN4QnlEZ0I7QU53aUxwQjs7QThCOWxMRTtFQUNFLGNBWDZEO0E5QjRtTGpFOztBOEJ6bUxFO0VBSUUsY3hCMERnQjtBTitpTHBCOztBOEJ0bUxFO0VBQ0UsY0FYNkQ7QTlCb25MakU7O0E4QmpuTEU7RUFJRSxjeEIyRGM7QU5zakxsQjs7QThCOW1MRTtFQUNFLGNBWDZEO0E5QjRuTGpFOztBOEJ6bkxFO0VBSUUsY3hCdk1rQjtBTmcwTHRCOztBOEJ0bkxFO0VBQ0UsY0FYNkQ7QTlCb29MakU7O0E4QmprTEU7RUEvQ0EsYXhCa0Q0QjtFd0JqRDVCLG1CQUFtQjtBOUJvbkxyQjs7QThCeG1MRTtFdkJoUUEsY0FBYztFQUNkLFFBQVE7RUFDUixTQUFTO0VBRVQsbUJ1QndQWTtFdkJ0UFosV0FBVztFQUdULHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsNkNBQXFEO0V1QnVQckQsa0JBQWtCO0VBQ2xCLFVBQVU7RUFFVixxQkFBcUI7RUFDckIsWUFBTztFQUNQLGdCeEJLNEI7QU40bUxoQzs7QThCdGxMRTtFQW9FUSx5QnhCL1RTO0FOcTFMbkI7O0E4QjFsTEU7RUEwRVkseUJ4Qi9FTTtBTm1tTHBCOztBOEI5bExFO0VBMEVZLHlCeEI5RVE7QU5zbUx0Qjs7QThCbG1MRTtFQTBFWSx5QnhCN0VNO0FOeW1McEI7O0E4QnRtTEU7RUEwRVkseUJ4QjVFTTtBTjRtTHBCOztBOEIxbUxFO0VBMEVZLHlCeEIzRUk7QU4rbUxsQjs7QThCOW1MRTtFQTBFWSx5QnhCN1VRO0FOcTNMdEI7O0E4QmxuTEU7RUFtRkksV0FBVztFQUNYLFdBQVc7RUFDWCxjQUFnQztBOUJtaUx0Qzs7QThCL2hMRTtFQUdJLHFCQUFxQjtBOUJnaUwzQjs7QStCaHZMRTtFQXBMQSxtQnpCb1R1QjtFeUJqVHJCLGFBQWE7RUFDYixlQUFlO0VBQ2Ysb0JBQW9CO0VBQ3BCLFlBQVk7QS9CczZMaEI7O0FPdnlMRTtFQUVFLGNBQWM7RUFDZCxZQUFZO0VBR1YsYUFBYTtFQUNiLFFBQVE7QVB1eUxkOztBT255TEU7RUFDRSxXQUFXO0FQc3lMZjs7QU9sekxFO0V3QjNISSxhQUFhO0EvQmk3TG5COztBK0IxNkxFO0VBQ0UsU0FBUztFQUNULGlCekJrU3FCO0V5QmpTckIsa0J6QmlTcUI7RXlCaFNyQixlekJ5UWE7RXlCdFFYLGNBQWM7QS9CMjZMcEI7O0ErQng2TEk7RUFDRSxlQUFpQztBL0IyNkx2Qzs7QStCbnhMRTtFQU1NLGlCekJrR1E7QU4rcUxoQjs7QStCdnhMRTtFQU1NLGtCekJtR1U7QU5rckxsQjs7QStCM3hMRTtFQU1NLG9CekJxR1k7QU5vckxwQjs7QStCcDRMRTtFQUVJLGFBQWE7RUFDYixlQUFlO0EvQnM0THJCOztBOEJ2ekxFO0VBSUUseUJ4QjhIZ0I7RXdCN0hoQixjeEJ2SFc7QU44NkxmOztBOEJwekxFO0VBQ0UseUJBYm9GO0VBY3BGLGN4QjVIVztBTm03TGY7O0E4QmowTEU7RUFJRSx5QnhCK0hrQjtFd0I5SGxCLGN4QnhIVztBTnk3TGY7O0E4Qjl6TEU7RUFDRSx5QkFib0Y7RUFjcEYsY3hCN0hXO0FOODdMZjs7QThCMzBMRTtFQUlFLHlCeEJnSWdCO0V3Qi9IaEIsY3hCeEhXO0FObThMZjs7QThCeDBMRTtFQUNFLHlCQWJvRjtFQWNwRixjeEI3SFc7QU53OExmOztBOEJyMUxFO0VBSUUseUJ4QmlJZ0I7RXdCaEloQixjeEJ2SFc7QU40OExmOztBOEJsMUxFO0VBQ0UseUJBYm9GO0VBY3BGLGN4QjVIVztBTmk5TGY7O0E4Qi8xTEU7RUFJRSx5QnhCa0ljO0V3QmpJZCxjeEJ2SFc7QU5zOUxmOztBOEI1MUxFO0VBQ0UseUJBYm9GO0VBY3BGLGN4QjVIVztBTjI5TGY7O0E4QnoyTEU7RUFJRSx5QnhCaElrQjtFd0JpSWxCLGN4QnhIVztBTmkrTGY7O0E4QnQyTEU7RUFDRSx5QkFib0Y7RUFjcEYsY3hCN0hXO0FOcytMZjs7QThCajJMSTtFQUNFLDZCQUE2QjtBOUJvMkxuQzs7QThCbjFMRTtFQUlFLHlCeEI1SmU7RXdCNkpmLGN4QjdKZTtBTmcvTG5COztBOEJoMUxFO0VBQ0UscUJBWjZEO0VBYTdELGNBYjZEO0E5QmcyTGpFOztBOEI3MUxFO0VBSUUseUJ4QjBGZ0I7RXdCekZoQixjeEJ5RmdCO0FOb3dMcEI7O0E4QjExTEU7RUFDRSxxQkFaNkQ7RUFhN0QsY0FiNkQ7QTlCMDJMakU7O0E4QnYyTEU7RUFJRSx5QnhCMkZrQjtFd0IxRmxCLGN4QjBGa0I7QU42d0x0Qjs7QThCcDJMRTtFQUNFLHFCQVo2RDtFQWE3RCxjQWI2RDtBOUJvM0xqRTs7QThCajNMRTtFQUlFLHlCeEI0RmdCO0V3QjNGaEIsY3hCMkZnQjtBTnN4THBCOztBOEI5MkxFO0VBQ0UscUJBWjZEO0VBYTdELGNBYjZEO0E5QjgzTGpFOztBOEIzM0xFO0VBSUUseUJ4QjZGZ0I7RXdCNUZoQixjeEI0RmdCO0FOK3hMcEI7O0E4QngzTEU7RUFDRSxxQkFaNkQ7RUFhN0QsY0FiNkQ7QTlCdzRMakU7O0E4QnI0TEU7RUFJRSx5QnhCOEZjO0V3QjdGZCxjeEI2RmM7QU53eUxsQjs7QThCbDRMRTtFQUNFLHFCQVo2RDtFQWE3RCxjQWI2RDtBOUJrNUxqRTs7QThCLzRMRTtFQUlFLHlCeEJwS2tCO0V3QnFLbEIsY3hCcktrQjtBTm9qTXRCOztBOEI1NExFO0VBQ0UscUJBWjZEO0VBYTdELGNBYjZEO0E5QjQ1TGpFOztBOEJ2NExJO0VBQ0UseUJBQXlCO0VBQ3pCLDZCQUE2QjtBOUIwNExuQzs7QThCMzNMRTtFQUlFLGN4Qi9MZTtBTjBqTW5COztBOEJ4M0xFO0VBQ0UsY0FYNkQ7QTlCczRMakU7O0E4Qm40TEU7RUFJRSxjeEJ1RGdCO0FONDBMcEI7O0E4Qmg0TEU7RUFDRSxjQVg2RDtBOUI4NExqRTs7QThCMzRMRTtFQUlFLGN4QndEa0I7QU5tMUx0Qjs7QThCeDRMRTtFQUNFLGNBWDZEO0E5QnM1TGpFOztBOEJuNUxFO0VBSUUsY3hCeURnQjtBTjAxTHBCOztBOEJoNUxFO0VBQ0UsY0FYNkQ7QTlCODVMakU7O0E4QjM1TEU7RUFJRSxjeEIwRGdCO0FOaTJMcEI7O0E4Qng1TEU7RUFDRSxjQVg2RDtBOUJzNkxqRTs7QThCbjZMRTtFQUlFLGN4QjJEYztBTncyTGxCOztBOEJoNkxFO0VBQ0UsY0FYNkQ7QTlCODZMakU7O0E4QjM2TEU7RUFJRSxjeEJ2TWtCO0FOa25NdEI7O0E4Qng2TEU7RUFDRSxjQVg2RDtBOUJzN0xqRTs7QStCdG1NRTtFQUNFLHdCdEJGcUQ7QVQybU16RDs7QStCdm1NSTtFQUNFLDhCQUFzRDtBL0IwbU01RDs7QStCLytMRTtFQWhFRSxlQUFlO0EvQm1qTW5COztBK0Joak1FO0VBRUksY0FBYztBL0Jrak1wQjs7QStCNWlNSTtFQUNFLGdCQUFnQjtBL0IraU10Qjs7QStCaG1NRTtFQUVJLGFBQWE7RUFDYixlQUFlO0EvQmttTXJCOztBRXhpTVE7RTZCYU47SUFFSSxjQUFjO0lBS2hCLGdCQUFnQjtFL0IwaE1sQjtBQUNGOztBRS9pTVE7RTZCYU47SUFFSSxjQUFjO0lBS2hCLGdCQUFnQjtFL0JpaU1sQjtBQUNGOztBRXRqTVE7RTZCd0NOO0lBbUVNLGNBQWM7RS9CZzlMcEI7RStCbmhNQTtJQXNFUSxjQUFjO0lBQ2QsZUFBaUM7RS9CZzlMekM7QUFDRjs7QUVoa01RO0U2QndDTjtJQThFTSxjQUFjO0UvQis4THBCO0UrQjdoTUE7SUFpRlEsY0FBYztJQUNkLGVBQWlDO0UvQis4THpDO0FBQ0Y7O0FnQy9vTUU7RUFaQSxrQkFBa0I7RUFDbEIsV0FsRnNCO0VBbUZ0QixjMUJoQmlCO0UwQmlCakIsZUFBZTtBaEMrcE1qQjs7QUFFQTtFT3pqTUksVUFBVTtBUDJqTWQ7O0FnQ2pxTUU7RUFFRSxjMUJwQlc7QU51ck1mOztBZ0M5cE1FO0VBeEJBLGMxQnlTZ0I7RTBCeFNoQixXMUI0U2U7RTBCM1NmLGdCMUIrU2M7RTBCOVNkLGMxQmlUd0I7QU55NEwxQjs7QWdDcnFNRTtFQXhCQSxXMUIwU2M7RTBCelNkLFcxQjZTZ0I7RTBCNVNoQixjMUJnVGE7RTBCL1NiLGMxQmlUd0I7QU5nNUwxQjs7QWlDcnVNRTtFQVpBLHFCQUFxQjtFQUNyQiwwQjNCMGMrQjtFMkJ4Yy9CLGdCM0JvRGU7RTJCbERmLGlCM0JxY3NCO0UyQnBjdEIsY0FBYztFQUNkLG1CQUFtQjtFQUNuQixlQUFlO0VBT2IsbUIzQm1CZ0I7RTJCbEJoQixjM0I2Qlc7QU5ndE1mOztBaUNqdk1FO0VBUU0sbUIzQmNZO0UyQmJaLGMzQnVCTztBTnN0TWY7O0FpQ3R2TUU7RUFRTSxtQjNCZWM7RTJCZGQsYzNCdUJPO0FOMnRNZjs7QWlDM3ZNRTtFQVFNLG1CM0JnQlk7RTJCZlosYzNCdUJPO0FOZ3VNZjs7QWlDaHdNRTtFQVFNLG1CM0JpQlk7RTJCaEJaLGMzQndCTztBTm91TWY7O0FpQ3J3TUU7RUFRTSxtQjNCa0JVO0UyQmpCVixjM0J3Qk87QU55dU1mOztBa0MzZ01FO0VBOUdBLHlCQUF5QjtFQUN6QixXQUFXO0VBQ1gsbUI1QjdHa0I7RTRCOEdsQixnQjVCekdlO0FOc3VNakI7O0FrQ3J0TUU7OztFQUdFLHlCQ25CNkM7RURvQjdDLHlCNUIvQlc7QU51dk1mOztBa0NwdE1FO0VBQ0UsaUN6Qi9CcUQ7RXlCZ0NyRCxpQjVCNUJxQjtBTm12TXpCOztBb0J6d01JO0VjdURBLG1CQy9CNkM7RURnQzdDLGM1QjVDVztBTmt3TWY7O0FrQ2x0TUU7RUFDRSxtQkNyQzZDO0VEc0M3QyxjNUJsRFc7QU51d01mOztBa0NqdE1FOztFQUlJLHVCQUF1QjtBbENrdE03Qjs7QWtDdHRNRTs7OztFQVVJLGlDekIxRG1EO0V5QjJEbkQsaUI1QnZEbUI7RTRCd0RuQixnQkFBWTtBbENtdE1sQjs7QWtDOXNNRTs7RUFHSSxpQ3pCcEVtRDtBVG94TXpEOztBa0N0eE1NO0VBQ0UsZ0JBQWdCO0VBQ2hCLHlCQ015QztBbkNteE1qRDs7QWtDMXNNTTtFQUVFLHlCNUJ0Rk87QU5reU1mOztBa0Mvd01FO0VBQ0UsZ0JBQWdCO0VBQ2hCLGdDQ1Y2QztFRFc3Qyx5QjVCdEJXO0FOd3lNZjs7QUUzc01RO0VnQzRHSjtJQUNFLGFBQWE7RWxDbW1NakI7RWtDL2xNQTtJQUNFLGFBQWE7RWxDaW1NZjtFa0M5bE1BOzs7SUFHRSxjQUFjO0VsQ2dtTWhCO0VrQzdsTUE7SUFDRSxhQUFhO0VsQytsTWY7QUFDRjs7QWtDamxNRTtFQXZHQSxjQUFjO0VBQ2QsV0FBVztFQUNYLGdCQUFnQjtBbEM0ck1sQjs7QWtDcnJNSTtFQUNFLHlCNUJ3Ym1FO0FOZ3dMekU7O0FrQ2xyTUk7RUFDRSx5QjVCbWJtRTtBTmt3THpFOztBa0MvcU1JO0VBQ0UseUI1Qm9heUQ7QU44d0wvRDs7QWtDM3FNTTtFQUNFLHlCNUI2Wm1GO0FOaXhMM0Y7O0FrQy9sTUU7RUFDRSxnQkFBZ0I7QWxDa21NcEI7O0FvQ3h6TUU7RUE3Q0Esa0I5QnFPdUM7RThCcE92QyxnQkFBZ0I7QXBDeTJNbEI7O0FPbHdNRTtFQUVFLGNBQWM7RUFDZCxZQUFZO0VBR1YsYUFBYTtFQUNiLFFBQVE7QVBrd01kOztBTzl2TUU7RUFDRSxXQUFXO0FQaXdNZjs7QW9DajNNRTtFQUNFLFdBQU87RUFFUCxvQjNCZ0JxRDtFMkJmckQsYzlCU1c7RThCUlgsZUFBZTtBcENtM01uQjs7QW9DeDJNUTtFQUNFLGtCQUFrQjtFQUNsQixpQjlCb051QjtFOEJuTnZCLFVBQVU7RUFDVixZOUJxTjJCO0U4QnBOM0IsYzlCUks7QU5tM01mOztBb0NqMk1FO0VBQ0UsYzlCN0JnQjtBTmk0TXBCOztBb0NsMk1JO0VBQ0UsMEJBQTBCO0FwQ3EyTWhDOztBb0MvMU1FO0VBSUksYzlCbkNlO0U4Qm9DZixtQkFBbUI7QXBDKzFNekI7O0FxQ3QzTUU7RUExQ0Esa0JBQWtCO0VBQ2xCLGtCL0JpVHlCO0UrQmhUekIsYUF4QmE7RUEwQmIscUMvQjRCYTtFK0IzQmIsZ0IvQnNDZTtFK0JyQmYsdUJBRnNFO0VBR3RFLGMvQlNhO0FOMDRNZjs7QXFDbDZNRTtFQUNFLGFBQWE7QXJDcTZNakI7O0FxQ2w2TUU7RUFDRSxnQkFBZ0I7QXJDcTZNcEI7O0FxQ3g0TUU7RUFwQkEseUJBRnNFO0VBR3RFLGMvQlNhO0FOdTVNZjs7QXFDNzRNRTtFQXBCQSx5QkFGc0U7RUFHdEUsYy9CU2E7QU40NU1mOztBcUNsNU1FO0VBcEJBLHlCQUZzRTtFQUd0RSxjL0JTYTtBTmk2TWY7O0FxQ3Y1TUU7RUFwQkEseUJBRnNFO0VBR3RFLGMvQlNhO0FOczZNZjs7QXFDNTVNRTtFQXBCQSx5QkFGc0U7RUFHdEUsYy9CU2E7QU4yNk1mOztBcUNqNk1FO0VBZkEsbUJBbERhO0VBbURiLHFCQW5EYTtFQW9EYixzQkFwRGE7RUFxRGIsb0JBckRhO0FyQ3krTWY7O0FxQ3g2TUU7RUFmQSxpQkFoRFc7RUFpRFgsbUJBakRXO0VBa0RYLG9CQWxEVztFQW1EWCxrQkFuRFc7QXJDOCtNYjs7QXNDNTVNRTtFQXZERSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLFlBQVk7RUFHZCxtQmhDMkJrQjtFZ0N6QmxCLHlCaENla0I7RWdDZGxCLGdCaEM2QmU7RWdDM0JmLG1CaENpQmE7RWdDaEJiLGdCaEMrU2dCO0VnQzdTaEIsZ0JBQWdCO0VBQ2hCLGNoQ1lhO0FOczhNZjs7QXNDaDlNRTtFQUNFLGdCQUFnQjtBdENtOU1wQjs7QXNDejZNRTtFQWhDRSxhQUFhO0VBQ2IsY0FBYztFQUdoQixhaENFbUI7RWdDRG5CLG1CaENWa0I7QU5xOU1wQjs7QXNDejhNRTtFQUNFLGdCQUFnQjtBdEM0OE1wQjs7QXNDaDdNRTtFQW5CRSxjQUFjO0VBR2hCLGFoQ2RtQjtBTm05TXJCOztBc0NuOE1FO0VBQ0UsZ0JBQWdCO0F0Q3M4TXBCOztBc0NuN01FO0VBQ0UsZUFBZTtBdENzN01uQjs7QXVDOStNRTtFQTVCQSxrQkFBa0I7RUFDbEIsV0FBVztFQUVYLGFBQWE7RUFFYixZakNnWG9CO0VpQy9XcEIsYWpDMldxQjtFaUN6V3JCLGtCQUFrQjtFQUNsQix5QmpDNEJtQjtFaUMzQm5CLGdCakN5Q2U7RWlDeENmLHlCakM4QmE7RWlDNUJiLGVqQ3VXdUI7QU5tcU16Qjs7QXVDdGdORTtFQUNFLGNBQWM7QXZDeWdObEI7O0F1Q3RnTkU7RUFDRSxjQUFjO0VBQ2QsbUJBQW1CO0F2Q3lnTnZCOztBdUMvL01JO0VBRUksWWpDcVZPO0FONHFNZjs7QXVDbmdOSTtFQUVJLFlqQ3NWUTtBTitxTWhCOztBdUN2Z05JO0VBRUksWWpDdVZRO0FOa3JNaEI7O0F3Qzc2TUU7RUFuRkEsY0FBZ0M7RUFDaEMsbUJsQ0NrQjtBTm1nTnBCOztBT2w3TUU7RUFFRSxjQUFjO0VBQ2QsWUFBWTtFQUdWLGFBQWE7RUFDYixRQUFRO0FQazdNZDs7QU85Nk1FO0VBQ0UsV0FBVztBUGk3TWY7O0F3QzVnTkU7RUFDRSx1Qi9CSHFEO0UrQklyRCxnQmxDQ2E7RWtDQWIsbUIvQkxxRDtFK0JXbkQsYUFBYTtBeEMwZ05uQjs7QXdDeGdOTTtFQUVFLHFCQUFxQjtBeEMwZ043Qjs7QUVqOE1RO0VzQ3RGTjtJQXVCTSxxQkFBcUI7RXhDcWdOM0I7QUFDRjs7QXdDaGdORTs7RUFFRSxjQUFjO0VBQ2QsMkIvQmxDcUQ7RStCbUNyRCxnQmxDOUJhO0VrQytCYixjbEMxQ1c7QU42aU5mOztBd0NqZ05JOztFQUNFLGdCbENtY2lDO0FOa2tNdkM7O0F3QzM5TUU7RUEvQkEsMkIvQmxEdUQ7RStCbUR2RCxtQmxDekRhO0VrQzBEYixjbEN6RGE7RWtDMERiLGVBQWU7QXhDOC9NakI7O0F3Q2wrTUU7RUFwQkEsMkIvQjdEdUQ7RStCOER2RCxjbEN2RW1CO0VrQ3dFbkIsbUJBQW1CO0F4QzAvTXJCOztBd0N4L01FO0VBQ0UsdUJBQXVCO0F4QzIvTTNCOztBd0M1K01FO0VBTkEsMkIvQjNFdUQ7RStCNEV2RCxnQkFBZ0I7RUFDaEIsY2xDbkZhO0FOeWtOZjs7QXdDaitNSTs7RUFFRSxxQkFBcUI7RUFDckIsb0JBQXNDO0VBQ3RDLFlBekg2QjtBeEM2bE5uQzs7QXdDaitNSTs7RUFFRSxxQkFBcUI7RUFDckIsbUJBQXFDO0VBQ3JDLFlBNUh5QjtBeENnbU4vQjs7QXlDcmhORTtFQXhGQSxjQUFnQztFQUNoQyxtQm5Dc0JhO0VtQ3JCYixxQkFBcUI7QXpDaW5OdkI7O0F5QzltTkk7RUFDRSxtQkFBbUI7QXpDaW5OekI7O0F5QzFtTkU7RUFDRSxzQkFBZ0Q7QXpDNm1OcEQ7O0F5QzFtTkU7RUFDRSxzQm5DZWE7QU44bE5qQjs7QXlDL2hORTtFQWxFQSxrQkFBa0I7RUFDbEIsY0FBYztFQUNkLHFCbkNzS21DO0VtQ3BLbkMsWW5Dc0s2QjtFbUNySzdCLGdCQUFnQjtFQUVoQixpQmhDVHVEO0VnQ1V2RCxjQUFjO0VBQ2QsY25DM0JrQjtBTjhuTnBCOztBeUNqbU5FO0VBQ0UsbUJuQzhKMkI7RW1DN0ozQixzQm5DVmE7QU44bU5qQjs7QXlDam1ORTtFQUVFLDZCbkNxSnlDO0FOODhNN0M7O0F5Qy9pTkU7RUEzQkEsYUFBYTtFQUNiLGFuQ2dJOEI7RW1DOUg5QixZbkM0SDZCO0VtQzNIN0IsZ0JBQWdCO0VBQ2hCLHlCbkN2RGE7RW1DeURiLGNuQzFEYTtBTnNvTmY7O0F5QzFrTkU7RUFDRSxtQm5DcUgyQjtBTnc5TS9COztBMENsbk5FO0VBcEZBLGFBQWlDO0VBQ2pDLG1CcENpRWtCO0VvQzlEaEIsaUJBQWlCO0ExQ3dzTnJCOztBMENyc05FO0VBQ0UsZUFBZTtBMUN3c05uQjs7QUV0ak5RO0V3QzlJSjtJQUVJLGVBQWU7RTFDdXNOckI7QUFDRjs7QTBDOW5ORTtFQWhFRSxjQUFjO0ExQ2tzTmxCOztBMEMzck5FO0VBQ0UsbUJwQ21DaUI7QU4ycE5yQjs7QTBDM3JORTtFQUNFLGtCcEMrQmlCO0FOK3BOckI7O0EwQzNyTkU7RUFDRSxnQkFBZ0I7QTFDOHJOcEI7O0FFNWtOUTtFd0MvR047SUF3QkEsVUFBVTtJQUNWLG9CcENEbUI7SW9DSWpCLGdCQUFnQjtJQUNoQixlQUFlO0UxQ3NxTmpCO0UwQ25zTkE7SUFvQ0UsV3BDb1prQztFTjh3TXBDO0FBQ0Y7O0EwQ2hzTkk7RUFDRSxhQUFhO0ExQ21zTm5COztBMkM3bk5FO0VBakZBLFNyQ21tQlk7RXFDbG1CWix5QnJDZWtCO0VxQ2RsQixtQnJDbUJhO0VxQ2xCYixxQkFBcUI7QTNDa3ROdkI7O0FPMW1ORTtFQUVFLGNBQWM7RUFDZCxZQUFZO0VBR1YsYUFBYTtFQUNiLFFBQVE7QVAwbU5kOztBT3RtTkU7RUFDRSxXQUFXO0FQeW1OZjs7QTJDeHRORTtFQUNFLGNBQWM7RUFDZCxXQUFXO0VBQ1gsV0FBVztBM0MydE5mOztBMkMzb05FO0VBRUksVUFBVTtBM0M2b05oQjs7QTJDL29ORTtFQUtNLHVCQUF1QjtBM0M4b04vQjs7QTJDeG9ORTtFQUNFLG1CckM3RmdCO0FOd3VOcEI7O0EyQzVvTkU7RUFJSSxjckN0RlM7QU5rdU5mOztBMkNocE5FO0VBUU0sbUJSOUV5QztBbkMwdE5qRDs7QTJDdm9ORTtFQTNGQSxXQUFPO0EzQ3N1TlQ7O0EyQ3B1TkU7RUFFRSxjQUFjO0VBQ2Qsb0JyQzZrQjBCO0VxQzVrQjFCLGtCbENKcUQ7RWtDS3JELGNBQWM7RUFDZCxjckNaVztBTmt2TmY7O0FBRUE7RU81bk5JLFVBQVU7QVA4bk5kOztBMkN4dU5JO0VBQ0UsbUJyQ2RTO0VxQ2VULFlBQTRDO0EzQzJ1TmxEOztBMkN4dU5JO0VBRUUsdUJyQzZqQjZCO0VxQzVqQjdCLGNyQ3RCUztBTmd3TmY7O0EyQzdwTkU7RUFsRUEseUJyQ3JDa0I7RXFDc0NsQixhQUFhO0VBQ2IsbUJyQ2xDYTtFcUNtQ2IsY3JDcENhO0VxQ3FDYix5QkFBeUI7QTNDbXVOM0I7O0EyQ2pxTkU7RUEzREEseUJyQ2hEa0I7RXFDaURsQixjQUFnQztBM0NndU5sQzs7QTJDbHFORTtFQXZEQSxhQUFhO0VBQ2IsVXJDcWlCcUI7QU53ck12Qjs7QTJDM3RORTtFQUNFLGNBQWM7QTNDOHRObEI7O0E0Q2hnTkU7RUEvU0EsVUFBVTtFQUNWLFNBQVM7RUFDVCxnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBR2hCLGFBQWE7RUFDYixlQUFlO0E1Q2l6Tm5COztBQUVBO0VPenFOSSxVQUFVO0FQMnFOZDs7QTRDOXlORTs7RUFFRSxjQUFjO0VBQ2QscUJBQXFCO0VBQ3JCLGNBQWM7RUFDZCxvQnRDa0I2QjtBTit4TmpDOztBNEM3eU5FOzs7O0VBSUUsZ0JBQWdCO0E1Q2d6TnBCOztBNEM3eU5FO0VBQ0UscUJBQXFCO0E1Q2d6TnpCOztBNENoaU5FO0VBcExJLGVBQWU7RUFDZixtQkFBbUI7QTVDd3ROekI7O0E0Q3JpTkU7RUF6S0ksaUJBQWlCO0VBQ2pCLHNCQUFzQjtBNUNrdE41Qjs7QTRDbnpOSTtFQUNFLGFBQWE7QTVDc3pObkI7O0E0QzlpTkU7RUF0SkUsbUJBQW1CO0E1Q3dzTnZCOztBNENyc05FO0VBQ0UsaUJ0QzJTcUI7QU42NU16Qjs7QTRDcnNORTtFQUNFLFVBQVU7QTVDd3NOZDs7QUVsdk5RO0UwQ3dMTjtJQXBMSSxlQUFlO0lBQ2YsbUJBQW1CO0U1Q212TnZCO0U0Q2hrTkE7SUF6S0ksaUJBQWlCO0lBQ2pCLHNCQUFzQjtFNUM0dU4xQjtFNEM3ME5FO0lBQ0UsYUFBYTtFNUMrME5qQjtFNENoMU5FO0lBQ0UsYUFBYTtFNUNrMU5qQjtBQUNGOztBRW53TlE7RTBDd0xOO0lBcExJLGVBQWU7SUFDZixtQkFBbUI7RTVDb3dOdkI7RTRDamxOQTtJQXpLSSxpQkFBaUI7SUFDakIsc0JBQXNCO0U1QzZ2TjFCO0U0QzkxTkU7SUFDRSxhQUFhO0U1Q2cyTmpCO0U0Q2oyTkU7SUFDRSxhQUFhO0U1Q20yTmpCO0FBQ0Y7O0FFcHhOUTtFMEN3TE47SUFwTEksZUFBZTtJQUNmLG1CQUFtQjtFNUNxeE52QjtFNENsbU5BO0lBektJLGlCQUFpQjtJQUNqQixzQkFBc0I7RTVDOHdOMUI7RTRDLzJORTtJQUNFLGFBQWE7RTVDaTNOakI7RTRDbDNORTtJQUNFLGFBQWE7RTVDbzNOakI7QUFDRjs7QUVoeU5RO0UwQ21MTjtJQXBMSSxlQUFlO0lBQ2YsbUJBQW1CO0U1Q3N5TnZCO0U0Q25uTkE7SUF6S0ksaUJBQWlCO0lBQ2pCLHNCQUFzQjtFNUMreE4xQjtFNENoNE5FO0lBQ0UsYUFBYTtFNUNrNE5qQjtFNENuNE5FO0lBQ0UsYUFBYTtFNUNxNE5qQjtBQUNGOztBRWp6TlE7RTBDbUxOO0lBcExJLGVBQWU7SUFDZixtQkFBbUI7RTVDdXpOdkI7RTRDcG9OQTtJQXpLSSxpQkFBaUI7SUFDakIsc0JBQXNCO0U1Q2d6TjFCO0U0Q2o1TkU7SUFDRSxhQUFhO0U1Q201TmpCO0U0Q3A1TkU7SUFDRSxhQUFhO0U1Q3M1TmpCO0FBQ0Y7O0E0Qy9vTkU7RUE5SEUsZUFBaUM7RUFDakMsaUJ0QzVJNEI7QU42NU5oQzs7QTRDendOSTtFQUNFLGFBQWE7QTVDNHdObkI7O0E0Qzd3Tkk7RUFDRSxhQUFhO0E1Q2d4Tm5COztBNEM3dk5JO0VBRUkscUJBQXFCO0E1Qyt2TjdCOztBNEM1dk5NOzs7RUFHRSxxQnRDcVBtQjtBTjBnTjNCOztBNEN0dk5JO0VBRUkscUJBQXFCO0E1Q3d2TjdCOztBNENydk5NOzs7RUFHRSxvQnRDb09tQjtBTm9oTjNCOztBNEMvdU5JO0VBRUksd0JBQXdCO0E1Q2l2TmhDOztBNEMzdU5NOzs7RUFRSSxtQkFBbUI7RUFDbkIsc0J0QzBNaUI7RXNDek1qQixrQkFBa0I7QTVDeXVONUI7O0E0Q251Tkk7RUFFSSx3QkFBd0I7QTVDcXVOaEM7O0E0Qy90Tk07OztFQVFJLG1CQUFtQjtFQUNuQixzQnRDa0xpQjtFc0NqTGpCLGtCQUFrQjtBNUM2dE41Qjs7QTRDeHNORTtFQUxBLG1CdEMzUmtCO0VzQzRSbEIsY3RDbFJhO0FObStOZjs7QTRDN3NORTtFQUxBLG1CdEMzUmtCO0VzQzRSbEIsY3RDbFJhO0FOdytOZjs7QTRDbHRORTtFQXRQSSwyQkFBMkI7QTVDNDhOakM7O0E0Q3A4Tk07RUFDRSxhQUFhO0VBQ2IseUJBQXlCO0E1Q3U4TmpDOztBNENyOE5RO0VBQ0UsMkJBQTJCO0E1Q3c4TnJDOztBNENwOE5NO0VBQ0UsY0FBYztFQUNkLGlCdkNWb0Q7QUxpOU41RDs7QTRDcjhOUTtFQUNFLGlCdkNia0Q7QUxxOU41RDs7QTRDeHVORTtFQWxJRSxrQnRDdkk0QjtFc0N3STVCLGNBQWdDO0E1QzgyTnBDOztBNEN6N05NO0VBQ0UsYUFBYTtFQUNiLHVCQUF1QjtBNUM0N04vQjs7QTRDMTdOUTtFQUNFLDJCQUEyQjtBNUM2N05yQzs7QTRDdHZORTtFQWJBLG9CdEM3UCtCO0VzQytQL0IsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxjQUFjO0E1Q3N3TmhCOztBNEN0b05JO0VBR00sdUJBQXVCO0E1Q3VvTmpDOztBNEM3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TjY3T2Y7O0FnRHoxT0U7RUFDRSwwQkFBMEI7QWhENDFPOUI7O0FnRHJrT0U7RUF2VEUsa0JBQWtCO0VBSXBCLFcxQ3NZd0I7RTBDL1h4QiwrQjFDbVlnQztFMENsWWhDLDJCQUEyQjtFQUUzQixtQjFDdkZrQjtBTjY4T3BCOztBQUVBO0VPbjFPSSxVQUFVO0FQcTFPZDs7QWdEajRPRTtFQUNFLFcxQ2tZc0I7QU5rZ08xQjs7QWdEMzNPRTtFQUNFLGtCQUFrQjtBaEQ4M090Qjs7QWdEMTNPRTtFQUNFLFcxQ29YeUI7QU55Z083Qjs7QWdEMzNPSTtFQUNFLHVDMUMvRlM7QU42OU9mOztBZ0R6M09FO0VBQ0UsMEJBQTBCO0FoRDQzTzlCOztBZ0RobU9FO0VBalJFLE1BQU07RUFDTixPQUFPO0VBQ1AsWUFBWTtFQUNaLGdCQUFnQjtFQUlaLFkxQzhVUTtFMEM3VVIsNkJBQTZCO0FoRGszT3JDOztBZ0Q3Mk9ZO0VBSUYsNkJBQTZCO0FoRDYyT3ZDOztBZ0RqM09ZO0VBUUosMEJBQTBCO0FoRDYyT2xDOztBZ0R4Mk9ZO0VBSUEsNEJBQTRCO0FoRHcyT3hDOztBZ0Rqdk9JO0V6QzdUQSx3RER3RFc7QU4wL09mOztBZ0R4bk9FO0VBN09FLE1BQU07RUFDTixRQUFRO0VBQ1IsWUFBWTtFQUNaLGdCQUFnQjtFQUlaLFkxQ3lTUTtFMEN4U1IsNEJBQTRCO0FoRHMyT3BDOztBZ0RqMk9ZO0VBSUYsNEJBQTRCO0FoRGkyT3RDOztBZ0RyMk9ZO0VBUUosMEJBQTBCO0FoRGkyT2xDOztBZ0Q1MU9ZO0VBSUEsNkJBQTZCO0FoRDQxT3pDOztBZ0Qxd09JO0V6Qy9UQSx1REQwRFc7QU5taFBmOztBZ0RocE9FO0VBek1FLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLGdCQUFnQjtFQUlaLGExQ3VRUTtFMEN0UVIsNkJBQTZCO0FoRDAxT3JDOztBZ0RyMU9ZO0VBR0YsNkJBQTZCO0FoRHMxT3ZDOztBZ0R6MU9ZO0VBT0osMEJBQTBCO0FoRHMxT2xDOztBZ0RqMU9ZO0VBSUEsNEJBQTRCO0FoRGkxT3hDOztBZ0RueU9JO0V6QzNUQSx3RERzRFc7QU40aVBmOztBZ0R4cU9FO0VBdEtFLFNBQVM7RUFDVCxPQUFPO0VBQ1AsV0FBVztFQUNYLGdCQUFnQjtFQUlaLGExQ21PUTtFMENsT1IsNEJBQTRCO0FoRCswT3BDOztBZ0QxME9ZO0VBR0YsNEJBQTRCO0FoRDIwT3RDOztBZ0Q5ME9ZO0VBT0osMEJBQTBCO0FoRDIwT2xDOztBZ0R0ME9ZO0VBSUEsNkJBQTZCO0FoRHMwT3pDOztBZ0Q1ek9JO0V6Q2pVQSx1REQ0RFc7QU5xa1BmOztBZ0Qvck9FO0VBN0dBLGVBQWU7RUFDZiwyQkFBMkI7QWhEZ3pPN0I7O0FnRDd5T0U7RUFFRSwrQjFDb0w4QjtBTjJuT2xDOztBZ0QzeU9FO0VBQ0UsMEJBQTBCO0FoRDh5TzlCOztBZ0QxeU9FO0VBQ0UsMEJBQTBCO0FoRDZ5TzlCOztBRXgvT1E7RThDZ1RBO0lBMUZOLGVBQWU7SUFDZixXMUM0SjBCO0kwQzNKMUIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtFaER1eU9uQjtFZ0RqeU9BO0lBQ0UsYUFBYTtFaERteU9mO0VnRC94T0E7SUFDRSxlQUFlO0VoRGl5T2pCO0VnRDl4T1E7SUFDTixrQjFDOEhZO0VOa3FPZDtFZ0Q1eE9BO0lBQ0Usa0IxQ3lIWTtFTnFxT2Q7RWdEeHRPTTtJQTlGTixlQUFlO0lBQ2YsVzFDNEowQjtJMEMzSjFCLGdCQUFnQjtJQUNoQixtQkFBbUI7RWhEeXpPbkI7RWdEbnpPQTtJQUNFLGFBQWE7RWhEcXpPZjtFZ0Rqek9BO0lBQ0UsZUFBZTtFaERtek9qQjtFZ0Roek9RO0lBQ04sbUIxQzhIWTtFTm9yT2Q7RWdEOXlPQTtJQUNFLG1CMUN5SFk7RU51ck9kO0VnRHR1T007SUFsR04sZUFBZTtJQUNmLFcxQzRKMEI7STBDM0oxQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0VoRDIwT25CO0VnRHIwT0E7SUFDRSxhQUFhO0VoRHUwT2Y7RWdEbjBPQTtJQUNFLGVBQWU7RWhEcTBPakI7RWdEbDBPUTtJQUNOLGlCMUM4SFk7RU5zc09kO0VnRGgwT0E7SUFDRSxpQjFDeUhZO0VOeXNPZDtFZ0Rwdk9NO0lBdEdOLGVBQWU7SUFDZixXMUM0SjBCO0kwQzNKMUIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtFaEQ2MU9uQjtFZ0R2MU9BO0lBQ0UsYUFBYTtFaER5MU9mO0VnRHIxT0E7SUFDRSxlQUFlO0VoRHUxT2pCO0VnRHAxT1E7SUFDTixvQjFDOEhZO0VOd3RPZDtFZ0RsMU9BO0lBQ0Usb0IxQ3lIWTtFTjJ0T2Q7QUFDRjs7QUVua1BRO0U4Q2dUQTtJQTFGTixlQUFlO0lBQ2YsVzFDNEowQjtJMEMzSjFCLGdCQUFnQjtJQUNoQixtQkFBbUI7RWhEazNPbkI7RWdENTJPQTtJQUNFLGFBQWE7RWhEODJPZjtFZ0QxMk9BO0lBQ0UsZUFBZTtFaEQ0Mk9qQjtFZ0R6Mk9RO0lBQ04sa0IxQzhIWTtFTjZ1T2Q7RWdEdjJPQTtJQUNFLGtCMUN5SFk7RU5ndk9kO0VnRG55T007SUE5Rk4sZUFBZTtJQUNmLFcxQzRKMEI7STBDM0oxQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0VoRG80T25CO0VnRDkzT0E7SUFDRSxhQUFhO0VoRGc0T2Y7RWdENTNPQTtJQUNFLGVBQWU7RWhEODNPakI7RWdEMzNPUTtJQUNOLG1CMUM4SFk7RU4rdk9kO0VnRHozT0E7SUFDRSxtQjFDeUhZO0VOa3dPZDtFZ0Rqek9NO0lBbEdOLGVBQWU7SUFDZixXMUM0SjBCO0kwQzNKMUIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtFaERzNU9uQjtFZ0RoNU9BO0lBQ0UsYUFBYTtFaERrNU9mO0VnRDk0T0E7SUFDRSxlQUFlO0VoRGc1T2pCO0VnRDc0T1E7SUFDTixpQjFDOEhZO0VOaXhPZDtFZ0QzNE9BO0lBQ0UsaUIxQ3lIWTtFTm94T2Q7RWdEL3pPTTtJQXRHTixlQUFlO0lBQ2YsVzFDNEowQjtJMEMzSjFCLGdCQUFnQjtJQUNoQixtQkFBbUI7RWhEdzZPbkI7RWdEbDZPQTtJQUNFLGFBQWE7RWhEbzZPZjtFZ0RoNk9BO0lBQ0UsZUFBZTtFaERrNk9qQjtFZ0QvNU9RO0lBQ04sb0IxQzhIWTtFTm15T2Q7RWdENzVPQTtJQUNFLG9CMUN5SFk7RU5zeU9kO0FBQ0Y7O0FFOW9QUTtFOENnVEE7SUExRk4sZUFBZTtJQUNmLFcxQzRKMEI7STBDM0oxQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0VoRDY3T25CO0VnRHY3T0E7SUFDRSxhQUFhO0VoRHk3T2Y7RWdEcjdPQTtJQUNFLGVBQWU7RWhEdTdPakI7RWdEcDdPUTtJQUNOLGtCMUM4SFk7RU53ek9kO0VnRGw3T0E7SUFDRSxrQjFDeUhZO0VOMnpPZDtFZ0Q5Mk9NO0lBOUZOLGVBQWU7SUFDZixXMUM0SjBCO0kwQzNKMUIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtFaEQrOE9uQjtFZ0R6OE9BO0lBQ0UsYUFBYTtFaEQyOE9mO0VnRHY4T0E7SUFDRSxlQUFlO0VoRHk4T2pCO0VnRHQ4T1E7SUFDTixtQjFDOEhZO0VOMDBPZDtFZ0RwOE9BO0lBQ0UsbUIxQ3lIWTtFTjYwT2Q7RWdENTNPTTtJQWxHTixlQUFlO0lBQ2YsVzFDNEowQjtJMEMzSjFCLGdCQUFnQjtJQUNoQixtQkFBbUI7RWhEaStPbkI7RWdEMzlPQTtJQUNFLGFBQWE7RWhENjlPZjtFZ0R6OU9BO0lBQ0UsZUFBZTtFaEQyOU9qQjtFZ0R4OU9RO0lBQ04saUIxQzhIWTtFTjQxT2Q7RWdEdDlPQTtJQUNFLGlCMUN5SFk7RU4rMU9kO0VnRDE0T007SUF0R04sZUFBZTtJQUNmLFcxQzRKMEI7STBDM0oxQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0VoRG0vT25CO0VnRDcrT0E7SUFDRSxhQUFhO0VoRCsrT2Y7RWdEMytPQTtJQUNFLGVBQWU7RWhENitPakI7RWdEMStPUTtJQUNOLG9CMUM4SFk7RU44Mk9kO0VnRHgrT0E7SUFDRSxvQjFDeUhZO0VOaTNPZDtBQUNGOztBRXB0UFE7RThDMlNBO0lBMUZOLGVBQWU7SUFDZixXMUM0SjBCO0kwQzNKMUIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtFaER3Z1BuQjtFZ0RsZ1BBO0lBQ0UsYUFBYTtFaERvZ1BmO0VnRGhnUEE7SUFDRSxlQUFlO0VoRGtnUGpCO0VnRC8vT1E7SUFDTixrQjFDOEhZO0VObTRPZDtFZ0Q3L09BO0lBQ0Usa0IxQ3lIWTtFTnM0T2Q7RWdEejdPTTtJQTlGTixlQUFlO0lBQ2YsVzFDNEowQjtJMEMzSjFCLGdCQUFnQjtJQUNoQixtQkFBbUI7RWhEMGhQbkI7RWdEcGhQQTtJQUNFLGFBQWE7RWhEc2hQZjtFZ0RsaFBBO0lBQ0UsZUFBZTtFaERvaFBqQjtFZ0RqaFBRO0lBQ04sbUIxQzhIWTtFTnE1T2Q7RWdEL2dQQTtJQUNFLG1CMUN5SFk7RU53NU9kO0VnRHY4T007SUFsR04sZUFBZTtJQUNmLFcxQzRKMEI7STBDM0oxQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0VoRDRpUG5CO0VnRHRpUEE7SUFDRSxhQUFhO0VoRHdpUGY7RWdEcGlQQTtJQUNFLGVBQWU7RWhEc2lQakI7RWdEbmlQUTtJQUNOLGlCMUM4SFk7RU51Nk9kO0VnRGppUEE7SUFDRSxpQjFDeUhZO0VOMDZPZDtFZ0RyOU9NO0lBdEdOLGVBQWU7SUFDZixXMUM0SjBCO0kwQzNKMUIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtFaEQ4alBuQjtFZ0R4alBBO0lBQ0UsYUFBYTtFaEQwalBmO0VnRHRqUEE7SUFDRSxlQUFlO0VoRHdqUGpCO0VnRHJqUFE7SUFDTixvQjFDOEhZO0VOeTdPZDtFZ0RualBBO0lBQ0Usb0IxQ3lIWTtFTjQ3T2Q7QUFDRjs7QUUveFBRO0U4QzJTQTtJQTFGTixlQUFlO0lBQ2YsVzFDNEowQjtJMEMzSjFCLGdCQUFnQjtJQUNoQixtQkFBbUI7RWhEbWxQbkI7RWdEN2tQQTtJQUNFLGFBQWE7RWhEK2tQZjtFZ0Qza1BBO0lBQ0UsZUFBZTtFaEQ2a1BqQjtFZ0Qxa1BRO0lBQ04sa0IxQzhIWTtFTjg4T2Q7RWdEeGtQQTtJQUNFLGtCMUN5SFk7RU5pOU9kO0VnRHBnUE07SUE5Rk4sZUFBZTtJQUNmLFcxQzRKMEI7STBDM0oxQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0VoRHFtUG5CO0VnRC9sUEE7SUFDRSxhQUFhO0VoRGltUGY7RWdEN2xQQTtJQUNFLGVBQWU7RWhEK2xQakI7RWdENWxQUTtJQUNOLG1CMUM4SFk7RU5nK09kO0VnRDFsUEE7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QkYsMkJBckR5RDtBbkQweVEzRDs7QWtEM3RRSTtFQzFCRix5QkFwRDBEO0FuRDZ5UTVEOztBa0QvdFFJO0VDMUJGLHVCQW5Ea0I7QW5EZ3pRcEI7O0FrRHh0UUk7RUNwQ0YsdUJBMUNpQjtBbkQweVFuQjs7QWtEeHRRSTtFQ3hCRixzQkExRGlCO0FuRDh5UW5COztBa0RodVFJO0VDcENGLHFCQXpDa0I7QW5EaXpRcEI7O0FrRGh1UUk7RUN4QkYsb0JBekRrQjtBbkRxelFwQjs7QWtEeHVRSTtFQ3BDRixtQkF4Q2dCO0FuRHd6UWxCOztBa0R4dVFJO0VDeEJGLGtCQXhEZ0I7QW5ENHpRbEI7O0FrRGh2UUk7RUNwQ0Ysb0JBdkNrQjtBbkQrelFwQjs7QWtEaHZRSTtFQ3hCRixtQkF2RGtCO0FuRG0wUXBCOztBa0Q5dVFFO0VDL0NBLHVCQW5Ea0I7RUFvRGxCLG1CQXhDZ0I7RUR3RmQscUJBQXFCO0FsRGt2UXpCOztBa0Q1dVFNO0VDaENKLFFEK0JnQjtBbERpdlFsQjs7QWtEaHZRTTtFQ2hDSixRRCtCZ0I7QWxEcXZRbEI7O0FrRHB2UU07RUNoQ0osUUQrQmdCO0FsRHl2UWxCOztBa0R4dlFNO0VDaENKLFFEK0JnQjtBbEQ2dlFsQjs7QWtENXZRTTtFQ2hDSixRRCtCZ0I7QWxEaXdRbEI7O0FrRGh3UU07RUNoQ0osUUQrQmdCO0FsRHF3UWxCOztBRWxzUVE7RWdEbEVGO0lDaENKLFFEK0JnQjtFbEQwd1FoQjtFa0R6d1FJO0lDaENKLFFEK0JnQjtFbEQ2d1FoQjtFa0Q1d1FJO0lDaENKLFFEK0JnQjtFbERneFFoQjtFa0Qvd1FJO0lDaENKLFFEK0JnQjtFbERteFFoQjtFa0RseFFJO0lDaENKLFFEK0JnQjtFbERzeFFoQjtFa0RyeFFJO0lDaENKLFFEK0JnQjtFbER5eFFoQjtBQUNGOztBRXZ0UVE7RWdEbEVGO0lDaENKLFFEK0JnQjtFbEQreFFoQjtFa0Q5eFFJO0lDaENKLFFEK0JnQjtFbERreVFoQjtFa0RqeVFJO0lDaENKLFFEK0JnQjtFbERxeVFoQjtFa0RweVFJO0lDaENKLFFEK0JnQjtFbER3eVFoQjtFa0R2eVFJO0lDaENKLFFEK0JnQjtFbEQyeVFoQjtFa0QxeVFJO0lDaENKLFFEK0JnQjtFbEQ4eVFoQjtBQUNGOztBRTV1UVE7RWdEbEVGO0lDaENKLFFEK0JnQjtFbERvelFoQjtFa0RuelFJO0lDaENKLFFEK0JnQjtFbER1elFoQjtFa0R0elFJO0lDaENKLFFEK0JnQjtFbEQwelFoQjtFa0R6elFJO0lDaENKLFFEK0JnQjtFbEQ2elFoQjtFa0Q1elFJO0lDaENKLFFEK0JnQjtFbERnMFFoQjtFa0QvelFJO0lDaENKLFFEK0JnQjtFbERtMFFoQjtBQUNGOztBRTV2UVE7RWdEdkVGO0lDaENKLFFEK0JnQjtFbER5MFFoQjtFa0R4MFFJO0lDaENKLFFEK0JnQjtFbEQ0MFFoQjtFa0QzMFFJO0lDaENKLFFEK0JnQjtFbEQrMFFoQjtFa0Q5MFFJO0lDaENKLFFEK0JnQjtFbERrMVFoQjtFa0RqMVFJO0lDaENKLFFEK0JnQjtFbERxMVFoQjtFa0RwMVFJO0lDaENKLFFEK0JnQjtFbER3MVFoQjtBQUNGOztBRWp4UVE7RWdEdkVGO0lDaENKLFFEK0JnQjtFbEQ4MVFoQjtFa0Q3MVFJO0lDaENKLFFEK0JnQjtFbERpMlFoQjtFa0RoMlFJO0lDaENKLFFEK0JnQjtFbERvMlFoQjtFa0RuMlFJO0lDaENKLFFEK0JnQjtFbER1MlFoQjtFa0R0MlFJO0lDaENKLFFEK0JnQjtFbEQwMlFoQjtFa0R6MlFJO0lDaENKLFFEK0JnQjtFbEQ2MlFoQjtBQUNGOztBa0QxOFFFO0VDWUEsYUFBYTtBbkRrOFFmOztBa0QxOFFFO0VBQ0UsY0FBYztBbEQ2OFFsQjs7QWtEMThRRTtFQUNFLGNBQWM7QWxENjhRbEI7O0FrRDE4UUU7RUFDRSxjQUFjO0FsRDY4UWxCOztBa0R6OFFJO0VDc0RGLG1CQW5FVTtBbkQwOVFaOztBa0Q3OFFJO0VDc0RGLDJCQWxFMEI7QW5ENjlRNUI7O0FrRGo5UUk7RUNzREYsc0JBakVnQjtBbkRnK1FsQjs7QWtEcjlRSTtFQ3NERiw4QkFoRWdDO0FuRG0rUWxDOztBRTMwUVE7RWdEcElFO0lDZlIsYUFBYTtFbkRtK1FiO0VrRGg5UVE7SUFDRSxjQUFjO0VsRGs5UXhCO0VrRC84UVE7SUFDRSxjQUFjO0VsRGk5UXhCO0VrRDk4UVE7SUFDRSxjQUFjO0VsRGc5UXhCO0VrRDU4UVU7SUMyQlYsbUJBbkVVO0VuRHUvUVY7RWtELzhRVTtJQzJCViwyQkFsRTBCO0VuRHkvUTFCO0VrRGw5UVU7SUMyQlYsc0JBakVnQjtFbkQyL1FoQjtFa0RyOVFVO0lDMkJWLDhCQWhFZ0M7RW5ENi9RaEM7QUFDRjs7QUV0MlFRO0VnRHBJRTtJQ2ZSLGFBQWE7RW5EOC9RYjtFa0QzK1FRO0lBQ0UsY0FBYztFbEQ2K1F4QjtFa0QxK1FRO0lBQ0UsY0FBYztFbEQ0K1F4QjtFa0R6K1FRO0lBQ0UsY0FBYztFbEQyK1F4QjtFa0R2K1FVO0lDMkJWLG1CQW5FVTtFbkRraFJWO0VrRDErUVU7SUMyQlYsMkJBbEUwQjtFbkRvaFIxQjtFa0Q3K1FVO0lDMkJWLHNCQWpFZ0I7RW5Ec2hSaEI7RWtEaC9RVTtJQzJCViw4QkFoRWdDO0VuRHdoUmhDO0FBQ0Y7O0FFajRRUTtFZ0RwSUU7SUNmUixhQUFhO0VuRHloUmI7RWtEdGdSUTtJQUNFLGNBQWM7RWxEd2dSeEI7RWtEcmdSUTtJQUNFLGNBQWM7RWxEdWdSeEI7RWtEcGdSUTtJQUNFLGNBQWM7RWxEc2dSeEI7RWtEbGdSVTtJQzJCVixtQkFuRVU7RW5ENmlSVjtFa0RyZ1JVO0lDMkJWLDJCQWxFMEI7RW5EK2lSMUI7RWtEeGdSVTtJQzJCVixzQkFqRWdCO0VuRGlqUmhCO0VrRDNnUlU7SUMyQlYsOEJBaEVnQztFbkRtalJoQztBQUNGOztBRXY1UVE7RWdEeklFO0lDZlIsYUFBYTtFbkRvalJiO0VrRGppUlE7SUFDRSxjQUFjO0VsRG1pUnhCO0VrRGhpUlE7SUFDRSxjQUFjO0VsRGtpUnhCO0VrRC9oUlE7SUFDRSxjQUFjO0VsRGlpUnhCO0VrRDdoUlU7SUMyQlYsbUJBbkVVO0VuRHdrUlY7RWtEaGlSVTtJQzJCViwyQkFsRTBCO0VuRDBrUjFCO0VrRG5pUlU7SUMyQlYsc0JBakVnQjtFbkQ0a1JoQjtFa0R0aVJVO0lDMkJWLDhCQWhFZ0M7RW5EOGtSaEM7QUFDRjs7QUVsN1FRO0VnRHpJRTtJQ2ZSLGFBQWE7RW5EK2tSYjtFa0Q1alJRO0lBQ0UsY0FBYztFbEQ4alJ4QjtFa0QzalJRO0lBQ0UsY0FBYztFbEQ2alJ4QjtFa0QxalJRO0lBQ0UsY0FBYztFbEQ0alJ4QjtFa0R4alJVO0lDMkJWLG1CQW5FVTtFbkRtbVJWO0VrRDNqUlU7SUMyQlYsMkJBbEUwQjtFbkRxbVIxQjtFa0Q5alJVO0lDMkJWLHNCQWpFZ0I7RW5EdW1SaEI7RWtEamtSVTtJQzJCViw4QkFoRWdDO0VuRHltUmhDO0FBQ0Y7O0FvRGxrUkU7RUFDRSx3QkFBd0I7QXBEcWtSNUI7O0FvRGxrUkU7RUFDRSxrQkFBa0I7QXBEcWtSdEI7O0FFMTlRUTtFa0Q1Rko7SUExQkEsd0JBQXdCO0VwRHFsUjFCO0FBQ0Y7O0FvRHptUkk7RUFpREE7SUFoREUsd0JBQXdCO0VwRDZtUjVCO0FBQ0Y7O0FFdCtRUTtFa0RyR0Y7SUF6QkYsd0JBQXdCO0VwRHltUjFCO0FBQ0Y7O0FFditRUTtFa0R0R0Y7SUFqRUYsd0JBQXdCO0VwRG1wUjFCO0FBQ0Y7O0FFbC9RUTtFa0Q1Rko7SUExQkEsd0JBQXdCO0VwRDZtUjFCO0FBQ0Y7O0FvRGpvUkk7RUFpREE7SUFoREUsd0JBQXdCO0VwRHFvUjVCO0FBQ0Y7O0FFOS9RUTtFa0RyR0Y7SUF6QkYsd0JBQXdCO0VwRGlvUjFCO0FBQ0Y7O0FFLy9RUTtFa0R0R0Y7SUFqRUYsd0JBQXdCO0VwRDJxUjFCO0FBQ0Y7O0FFMWdSUTtFa0Q1Rko7SUExQkEsd0JBQXdCO0VwRHFvUjFCO0FBQ0Y7O0FvRHpwUkk7RUFpREE7SUFoREUsd0JBQXdCO0VwRDZwUjVCO0FBQ0Y7O0FFdGhSUTtFa0RyR0Y7SUF6QkYsd0JBQXdCO0VwRHlwUjFCO0FBQ0Y7O0FFdmhSUTtFa0R0R0Y7SUFqRUYsd0JBQXdCO0VwRG1zUjFCO0FBQ0Y7O0FFbGlSUTtFa0Q1Rko7SUExQkEsd0JBQXdCO0VwRDZwUjFCO0FBQ0Y7O0FvRGpyUkk7RUFpREE7SUFoREUsd0JBQXdCO0VwRHFyUjVCO0FBQ0Y7O0FFemlSUTtFa0QxR0Y7SUF6QkYsd0JBQXdCO0VwRGlyUjFCO0FBQ0Y7O0FFL2lSUTtFa0R0R0Y7SUFqRUYsd0JBQXdCO0VwRDJ0UjFCO0FBQ0Y7O0FFcmpSUTtFa0RqR0o7SUExQkEsd0JBQXdCO0VwRHFyUjFCO0FBQ0Y7O0FvRHpzUkk7RUFpREE7SUFoREUsd0JBQXdCO0VwRDZzUjVCO0FBQ0Y7O0FFamtSUTtFa0QxR0Y7SUF6QkYsd0JBQXdCO0VwRHlzUjFCO0FBQ0Y7O0FFdmtSUTtFa0R0R0Y7SUFqRUYsd0JBQXdCO0VwRG12UjFCO0FBQ0Y7O0FFN2tSUTtFa0RqR0o7SUExQkEsd0JBQXdCO0VwRDZzUjFCO0FBQ0Y7O0FvRHh1Ukk7RUF3REE7SUF2REUsd0JBQXdCO0VwRDR1UjVCO0FBQ0Y7O0FvRC9xUkU7O0U3Q3lIQSw2QkFBZ0M7RUFDaEMscUJBQXdCO0VBQ3hCLHNCQUF5QjtFQUN6QixxQkFBd0I7RUFDeEIsMkJBQThCO0VBQzlCLGlDQUFpQztFQUNqQyw4QkFBaUM7RUFDakMsb0JBQXVCO0FQMmpSekI7O0FvRHJyUkU7RTdDb0lBLDJCQUE4QjtFQUM5QixzQkFBeUI7RUFDekIsdUJBQTBCO0VBQzFCLDRCQUErQjtFQUMvQixxQkFBd0I7RUFDeEIsOEJBQWlDO0FQcWpSbkM7O0FvRHRyUkU7O0VBRUUseUJBQXlCO0FwRHlyUjdCOztBRW5uUlE7RWtEeEVOOztJQUtJLHlCQUF5QjtFcEQ0clI3QjtBQUNGOztBRTFuUlE7RWtEeEVOOztJQVNJLHdCQUF3QjtFcEQrclI1QjtBQUNGOztBb0Q1clJFOztFQUVFLHdCQUF3QjtBcEQrclI1Qjs7QUV0b1JRO0VrRDNETjs7SUFLSSx3QkFBd0I7RXBEa3NSNUI7QUFDRjs7QUU3b1JRO0VrRDNETjs7SUFTSSx5QkFBeUI7RXBEcXNSN0I7QUFDRjs7QXFEejBSQTtFQUNJLG1CL0NrRlc7RStDakZYLHFDL0NnRlc7QU40dlJmOztBRTlwUlE7RW1EaExSO0lBSVEsc0MvQzhFTztJK0M1RVAsV0FBVztJQUNYLFdBQVc7SUFDWCxNQUFNO0VyRDgwUlo7QUFDRjs7QXFEdjFSQTtFQVdRLFk1QzZFaUQ7RTBDakN2RCx5QkFwRDBEO0FuRHkxUjVEOztBRTVxUlE7RW1EaExSO0lBY1ksYTVDMEU2QztJNEN6RTdDLG9CNUN5RTZDO0kwQ2pDdkQsOEJBbEQwQjtFbkQ4MVIxQjtBQUNGOztBcURwMlJBO0VBb0JRLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsZTVDa0VpRDtBVGt4UnpEOztBcUQxMlJBO0VBd0JZLGM1Q2dFNkM7RTRDL0Q3QyxZQUFZO0FyRHMxUnhCOztBRS9yUlE7RW1EaExSO0lBNkJZLFk1QzJENkM7RVQ0eFJ2RDtFcURwM1JGO0lBK0JnQixlNUN5RHlDO0k0Q3hEekMsZTVDd0R5QztFVGd5UnZEO0FBQ0Y7O0FFenNSUTtFbURoTFI7SUFvQ1ksVTVDb0Q2QztFVHN5UnZEO0FBQ0Y7O0FxRC8zUkE7RUF3Q1Esa0JBQWtCO0FyRDIxUjFCOztBc0RuNFJBO0VBQ0kseUJoRHdFa0I7RWdEdkVsQixrQkFBa0I7QXREczRSdEI7O0FzRHg0UkE7RUFVUSxpQkFBaUI7RUFDakIsYUFBYTtFQUNiLDBCQUEwQjtFQUMxQiwrQkFBK0I7RUFDL0IsOEJBQThCO0VBQzlCLG1DQUFtQztFQUNuQyxvQ2hEMHVCdUU7QU53cFEvRTs7QUVsdVJRO0VvRGhMUjtJaENnQ1Esc0JBQTZEO0lBQTdELHFCQUE2RDtJQ2RuRSxnQmRzRXVEO0ljckV2RCxpQkFBaUI7SUFDakIsa0JBQWtCO0V2QnU0UmxCO0FBQ0Y7O0FFNXVSUTtFb0RoTFI7SWhDZ0NRLHVCQUE2RDtJQUE3RCxzQkFBNkQ7RXRCazRSbkU7QUFDRjs7QUVudlJRO0VvRGhMUjtJaENnQ1Esd0JBQTZEO0lBQTdELHVCQUE2RDtFdEJ5NFJuRTtBQUNGOztBc0QxNlJBO0VBUVksd0I3Q2dGNkM7QVRzMVJ6RDs7QUU5dlJRO0VvRGhMUjtJQW9CWSxrQmhEd3VCbUU7SWdEdnVCbkUsbUJoRHV1Qm1FO0lnRHR1Qm5FLDhCQUE4QjtJQUM5QixtQ0FBbUM7SUFDbkMs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LGlCQUFpQjtBMUQ4NlNqQzs7QTBEeGlUQTtFQTZIZ0IsdUJBQXVCO0VBQ3ZCLGlCQUFpQjtBMUQrNlNqQzs7QTBEN2lUQTtFQWdJb0IsaUJBQWlCO0ExRGk3U3JDOztBMERqalRBO0VBbUlvQixjQUFjO0VBQ2QscUJBQXFCO0VBQ3JCLHlCQUF5QjtBMURrN1M3Qzs7QTBEdmpUQTtFQTBJWSxtQmpEbEQ2QztBVG0rU3pEOztBMEQzalRBO0VBNElnQixjQUFjO0VBQ2QsaUJBQWlCO0ExRG03U2pDOztBMERoa1RBO0VBZ0pnQixvQkFBdUI7RUFDdkIsZ0NBQWdDO0ExRG83U2hEOztBMERya1RBO0VBb0pvQiwwQkFBMEI7QTFEcTdTOUM7O0EyRHZrVEE7RUFDSSxnQmxEcUZxRDtFa0RwRnJELGlCbERvRnFEO0FUcy9TekQ7O0FFOTVTUTtFeUQ5S1I7SUFJUSxlbERrRmlEO0lrRGpGakQsZ0JsRGlGaUQ7RVQ0L1N2RDtBQUNGOztBMkQza1RBO0VBRVEsZ0JBQWdCO0VBQ2hCLGVsRDJFaUQ7RWtEMUVqRCxRQUFRO0VBQ1IsWUFBWTtBM0Q2a1RwQjs7QTJEbGxUQTtFQU9ZLFlBQVk7RUFDWixnQmxEc0U2QztFa0RyRTdDLGlCbERxRTZDO0VrRHBFN0MsZ0NyRDR0Qks7QU5tM1JqQjs7QTJEemxUQTtFQVlnQixtQmxEa0V5QztFa0RqRXpDLG9DckR5dEJDO0FOdzNSakI7O0EyRDlsVEE7RUFtQmdCLGFBQWE7RUFDYixTQUFTO0VBQ1QsUUFBUTtBM0Qra1R4Qjs7QUU5N1NRO0V5RHRLUjtJQTJCWSxNQUFNO0UzRDhrVGhCO0FBQ0Y7O0EyRDNrVEE7RUFDSSxrQkFBa0I7QTNEOGtUdEI7O0EyRC9rVEE7RUFHUSxrQkFBa0I7RUFDbEIsV3JENnNCdUU7RXFENXNCdkUsY2xEMENpRDtFa0R6Q2pELFVBQVU7QTNEZ2xUbEI7O0FFLzhTUTtFeUR2SVI7SUFRWSxXckQwc0JxRTtFTnk0Ui9FO0FBQ0Y7O0FFcjlTUTtFeUR2SVI7SUFXWSxXckR3c0JtRTtJcUR2c0JuRSxhbERtQzZDO0VUbWpUdkQ7QUFDRjs7QTJEbm1UQTtFQWVZLGdCbERnQzZDO0VrRC9CN0MsaUJsRCtCNkM7RWtEOUI3QyxTQUFTO0VBQ1QsVUFBVTtFQUNWLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osZ0NyRGtyQks7QU5zNlJqQjs7QTJEN21UQTtFQXVCZ0IsV0FBVztFQUNYLDZCQUE2QjtFQUM3Qix3QmxEc0J5QztFa0RyQnpDLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsU0FBUztFQUNULE9BQU87RUFDUCx1Q3JEeXFCQztBTmk3UmpCOztBRWovU1E7RXlEdklSO0lBZ0NvQix5QmxEZXFDO0lrRGRyQyx1QmxEY3FDO0VUK2tUdkQ7QUFDRjs7QTJEL25UQTtFQXFDZ0IscUJyRE5JO0VxRE9KLHVDckRpcUJDO0FONjdSakI7O0FFNy9TUTtFeUR2SVI7SUEwQ2dCLGVsREt5QztJa0RKekMsZ0JsREl5QztFVDJsVHZEO0FBQ0Y7O0EyRDNvVEE7RUFnRGdCLG1CckRqQkk7QU5nblRwQjs7QTJEL29UQTtFQW1Eb0IsY3JEVEw7QU55bVRmOztBMkRucFRBO0VBMERnQixjQUFjO0VBQ2QsY3JEbEJEO0VxRG1CQyxtQmxEYnlDO0FUMG1UekQ7O0FFbGhUUTtFeUR2SVI7SUErRG9CLG9CbERoQnFDO0lrRGlCckMsb0NyRHVvQkg7RU53OVJmO0FBQ0Y7O0EyRHpsVEE7RUFDSSxtQnJEekNnQjtFcUQwQ2hCLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFDckIsUUFBUTtFQUNSLHlCQUF5QjtFQUN6Qiw2QkFBd0M7RUFDeEMsWUFBWTtFQUNaLHFDbERoQ3FEO0VrRGlDckQsYUFBYTtBM0Q0bFRqQjs7QUVyaVRRO0V5RGhFUjtJQVdRLHFDbERuQ2lEO0lrRG9DakQsMEJBQTBCO0UzRCtsVGhDO0FBQ0Y7O0FFNWlUUTtFeURoRVI7SUFlUSxxQkFBcUI7SUFDckIscUNsRHhDaUQ7SWtEeUNqRCx5QkFBeUI7RTNEa21UL0I7QUFDRjs7QTJEcG5UQTtFQXFCUSxvQmxEN0NpRDtFa0Q4Q2pELHNCbEQ5Q2lEO0VrRCtDakQsWUFBWTtFQUNaLGlCbERoRGlEO0VrRGlEakQsbUJsRGpEaUQ7QVRvcFR6RDs7QTJENW5UQTtFQTJCWSxZQUFZO0VBQ1osaUJBQWlCO0EzRHFtVDdCOztBMkRqb1RBO0VBZ0NZLFlBQVk7RUFDWixrQkFBa0I7QTNEcW1UOUI7O0FFdGtUUTtFeURoRVI7SUFxQ1ksb0JsRDdENkM7SWtEOEQ3QyxnQmxEOUQ2QztJa0QrRDdDLHFCbEQvRDZDO0lrRGdFN0Msb0JsRGhFNkM7RVRzcVR2RDtFMkQ5b1RGO0lBMkNnQixjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLG9CbERyRXlDO0VUMnFUdkQ7QUFDRjs7QTJEcHBUQTtFQW1EUSxTQUFTO0EzRHFtVGpCOztBMkR4cFRBO0VBdURRLG9CbEQvRWlEO0VrRGdGakQsVUFBVTtFQUNWLFlBQVk7RUFDWixnQmxEbEZpRDtFa0RtRmpELGlCbERuRmlEO0FUd3JUekQ7O0EyRGhxVEE7RUE4RFksbUJyRDdGTztFcUQ4RlAsY3JEdkdRO0FONnNUcEI7O0EyRHJxVEE7RUFrRVksc0JsRDFGNkM7QVRpc1R6RDs7QUV6bVRRO0V5RGhFUjtJQXNFWSxvQmxEOUY2QztJa0QrRjdDLGVsRC9GNkM7SWtEZ0c3QyxnQmxEaEc2QztJa0RpRzdDLHFCbERqRzZDO0VUeXNUdkQ7RTJEanJURjtJQTJFZ0IscUJsRG5HeUM7RVQ0c1R2RDtBQUNGOztBMkRyclRBO0VBbUZZLDBCQUEwQjtBM0RzbVR0Qzs7QTJEenJUQTtFQXFGZ0IscUJBQXFCO0EzRHdtVHJDOztBMkQ3clRBO0VBMEZRLGtCbERsSGlEO0VrRG1IakQscUJBQXFCO0EzRHVtVDdCOztBRWxvVFE7RXlEaEVSO0lBNkZZLG9CbERySDZDO0lrRHNIN0Msb0JsRHRINkM7RVRndVR2RDtBQUNGOztBMkR6c1RBO0VBbUdRLHFCQUFxQjtFQUNyQixlbEQ1SGlEO0VrRDZIakQsaUJBQWlCO0EzRDBtVHpCOztBMkQvc1RBO0VBd0dZLGlCQUFpQjtFQUNqQixxQkFBcUI7QTNEMm1UakM7O0FFcHBUUTtFeURoRVI7SUE0R1ksbUJsRHBJNkM7SWtEcUk3QyxxQmxEckk2QztJa0RzSTdDLHdCbER0STZDO0VU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Qix3QkFBd0I7RUFDeEIsb0JBQW9CO0E1RDQzVDVDOztBRTkyVFE7RTBEaExSO0lBb0s0QixvQm5ENUU2QjtJbUQ2RTdCLGdCQUFnQjtFNUQrM1QxQztBQUNGOztBNERyaVVBO0VBeUt3QixrQkFBa0I7RUFDbEIsd0JBQXdCO0VBQ3hCLG9CQUFvQjtBNURnNFQ1Qzs7QTREM2lVQTtFQTZLNEIsY0FBYztFQUNkLGdCQUFnQjtFQUNoQixrQkFBa0I7QTVEazRUOUM7O0E0RGpqVUE7RUFtTHdCLE1BQU07QTVEazRUOUI7O0E0RHJqVUE7RUEyTGdCLDBCQUEwQjtBNUQ4M1QxQzs7QTZEempVQTtFQUNJLDhEQUE4RDtFQUM5RCxzQkFBc0I7RUFDdEIsbUJBQXVCO0E3RDRqVTNCOztBRS80VFE7RTJEaExSO0lBS1EscUJwRG1GaUQ7RVQ0K1R2RDtBQUNGOztBRWg1VFE7RTJEckxSO0lBUVEsb0JBQXVCO0U3RGtrVTdCO0FBQ0Y7O0E2RDNrVUE7RUFXUSxrQkFBa0I7RUFDbEIsbUJ2RHVFTztFdUR0RVAsc0JwRDJFaUQ7RW9EMURqRCwyQ3ZEa3RCUztFdURqdEJULGdCcER5RGlEO0VvRHhEakQsY0FBYztFQUNkLFdBQVc7QTdEb2pVbkI7O0FFcjZUUTtFMkRoTFI7SUFnQmdCLHdCcER3RXlDO0VUa2dVdkQ7QUFDRjs7QUUzNlRRO0UyRGhMUjtJQW9CWSx1QnBEb0U2QztFVHdnVXZEO0U2RGhtVUY7SUFzQmdCLGdCQUFnQjtFN0Q2a1U5QjtBQUNGOztBRS82VFE7RTJEckxSO0lBMkJnQixnQkFBZ0I7RTdEOGtVOUI7QUFDRjs7QTZEMW1VQTtFQW1DWSxpQ3ZENnNCSztBTjgzU2pCOztBNkQ5bVVBO0VBcUNnQixnQkFBZ0I7QTdENmtVaEM7O0FFNzdUUTtFMkRyTFI7SUF1Q29CLGdCQUFnQjtJQUNoQixxQnBEZ0RxQztFVGdpVXZEO0FBQ0Y7O0E2RHpuVUE7RUE0Q2dCLGFBQWE7QTdEaWxVN0I7O0FFeDhUUTtFMkRyTFI7SUE4Q29CLGNBQWM7RTdEb2xVaEM7QUFDRjs7QTZEbm9VQTtFQW1EWSxtQnZEcUJRO0FO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bEIsTUFBTTtFQUNOLFdBQVc7RUFDWCxvQnZEc0NpRDtFdURyQ2pELHVCdkRxQ2lEO0FUczNVekQ7O0FFOXhVUTtFOERwSVI7O0lBU1kscUJ2RG1DNkM7SXVEbEM3Qyx3QnZEa0M2QztFVDYzVXZEO0FBQ0Y7O0FFdHlVUTtFOERwSVI7O0lBYVksc0J2RCtCNkM7SXVEOUI3QyxvQnZEOEI2QztFVHE0VXZEO0FBQ0Y7O0FnRWw3VUE7Ozs7RUFrQlksWUFBWTtBaEV1NlV4Qjs7QWdFejdVQTs7RUFzQlEscUJBQXFCO0FoRXc2VTdCOztBRTF6VVE7RThEcElSOztJQXdCWSxrQkFBa0I7SUFDbEIsY0FBYztFaEU0NlV4QjtBQUNGOztBZ0V0OFVBOztFQTZCWSxvQnZEZTZDO0V1RGQ3QyxZQUFZO0VBQ1osc0J2RGE2QztFdURaN0MsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtBaEU4NlU3Qjs7QUUzMFVRO0U4RHBJUjs7SUFtQ2dCLG1CdkRTeUM7RVR5NlV2RDtBQUNGOztBZ0V0OVVBOztFQXNDZ0IsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQiwrQ0FBK0M7QWhFcTdVL0Q7O0FnRTc5VUE7O0VBNENvQixrQnZEQXFDO0V1RENyQyxrQkFBa0I7RUFDbEIsZXZERnFDO0V1REdyQyxvQnZESHFDO0FUeTdVekQ7O0FFajJVUTtFOERwSVI7O0lBaUR3QixvQnZETGlDO0l1RE1qQyxhdkROaUM7RVRnOFV2RDtBQUNGOztBZ0U3K1VBOztFQXdEWSxvQnZEWjZDO0V1RGE3QyxnQkFBZ0I7RUFDaEIseUJ2RGQ2QztBVHc4VXpEOztBRWgzVVE7RThEcElSOztJQTREZ0Isb0J2RGhCeUM7RVQ4OFV2RDtBQUNGOztBZ0UzL1VBOztFQStEZ0IsYzFEeEJEO0FOeTlVZjs7QWdFNTdVQTtFQUNJLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsY0FBYztBaEUrN1VsQjs7QWdFNzdVQTtFQUNJLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1Qsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixjMUQzQ2lCO0UwRDRDakIsZUFBZTtBaEVnOFVuQjs7QWdF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RUFDZixrQkFBa0I7RUFDbEIsV0FBVztBbEU0MlZuQjs7QUUzc1ZRO0VnRWhMUjtJQWlCWSxlQUFlO0lBQ2YsZ0JBQWdCO0VsRSsyVjFCO0FBQ0Y7O0FtRWw0VkE7RUFDSSxzQjFEdUZxRDtBVDh5VnpEOztBRXR0VlE7RWlFaExSO0lBR1EscUIxRHFGaUQ7RVRtelZ2RDtBQUNGOztBbUU1NFZBO0VBTVEsMEJBQTBCO0FuRTA0VmxDOztBbUVoNVZBO0VBU1kscUJBQXFCO0FuRTI0VmpDOztBbUVwNVZBO0VBYVEsc0IxRDJFaUQ7QVRnMFZ6RDs7QW1FeDVWQTtFQWVZLGM3RG1FRztFNkRsRUgseUI3RGtFRztFNkRqRUgsZTFEdUU2QztFMER0RTdDLHFDQUE0QztFQUM1QyxrQkFBa0I7RUFDbEIscUJBQXFCO0FuRTY0VmpDOztBbUVqNlZBO0VBdUJnQiwwQkFBMEI7QW5FODRWMUM7O0FFcnZWUTtFaUVoTFI7SUEwQmdCLGtDQUE0QztFbkVnNVYxRDtBQUNGOztBbUUzNlZBO0VBK0JnQixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixRQUFRO0VBQ1IsVUFBVTtFQUNWLFlBQVk7RUFDWixlMURtRHlDO0UwRGxEekMsZ0NBQW9DO0VBQ3BDLG1CN0QwQ0c7RTZEekNILGtCQUFrQjtFQUNsQixjN0QwQ0Q7RTZEekNDLG1CMUQ4Q3lDO0FUazJWekQ7O0FFMXdWUTtFaUVoTFI7SUE0Q29CLG9CMUQ0Q3FDO0kwRDNDckMsZTFEMkNxQztJMEQxQ3JDLGdDQUFvQztFbkVtNVZ0RDtBQUNGOztBbUVsOFZBO0VBa0RnQixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0FuRW81VmhDOztBRXZ4VlE7RWlFaExSO0lBdURvQixpQjFEaUNxQztFVG8zVnZEO0FBQ0Y7O0FtRTc4VkE7RUE0RFksbUIxRDRCNkM7QVR5M1Z6RDs7QW1FajlWQTtFQThEZ0IsMkM3RGdyQjRCO0FOdXVVNUM7O0FtRXI5VkE7RUFnRW9CLG1CMUR3QnFDO0FUaTRWekQ7O0FtRXo5VkE7RUFvRWdCLGlCQUFpQjtFQUNqQixhQUFhO0VBQ2IscUJBQXFC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QWdCO0FuRSs3VmhDOztBbUU1cVdBO0VBK09vQix1QjFEdkpxQztBVHdsV3pEOztBbUVocldBO0VBb1BnQixpQjFENUp5QztBVDRsV3pEOztBRXBnV1E7RWlFaExSO0lBc1BvQixnQjFEOUpxQztFVGltV3ZEO0FBQ0Y7O0FtRTFyV0E7RUEwUGdCLDBCMURsS3lDO0FUc21XekQ7O0FFOWdXUTtFaUVoTFI7SUE0UG9CLHdCMURwS3FDO0VUMm1XdkQ7QUFDRjs7QW1FcHNXQTtFQStQb0Isa0JBQWtCO0FuRXk4VnRDOztBbUV4c1dBO0VBbVFnQiwyQkFBMkI7RUFDM0IsdUJBQXVCO0VBQ3ZCLGVBQWU7RUFDZixXQUFXO0FuRXk4VjNCOztBbUUvc1dBO0VBd1FvQixzQjFEaExxQztBVDJuV3pEOztBbUVudFdBO0VBMlFvQixlQUFlO0VBQ2YsV0FBVztBbkU0OFYvQjs7QUV4aVdRO0VpRWhMUjtJQThRd0IsZ0JBQWdCO0VuRSs4VnRDO0FBQ0Y7O0FtRTl0V0E7RUF5UlksdUIxRGpNNkM7QVQwb1d6RDs7QUVsaldRO0VpRWhMUjtJQTJSZ0IsdUIxRG5NeUM7RVQrb1d2RDtBQUNGOztBbUV4dVdBO0VBaVNZLHVCMUR6TTZDO0FUb3BXekQ7O0FtRTV1V0E7RUF5U1ksaUJBQWlCO0VBQ2pCLHNCQUFzQjtFQUN0QixtQkFBbUI7QW5FdThWL0I7O0FtRWx2V0E7RUErU1EsZ0JBQWdCO0VBQ2hCLHVCMUR4TmlEO0UwRHlOakQsY0FBYztBbkV1OFZ0Qjs7QUV4a1dRO0VpRWhMUjtJQW1UWSxxQjFEM042QztFVHFxV3ZEO0FBQ0Y7O0FtRTl2V0E7RUFzVFksa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQixzQjFEaE82QztBVDRxV3pEOztBRXBsV1E7RWlFaExSO0lBMFRnQixrQkFBa0I7RW5FKzhWaEM7QUFDRjs7QW1FMXdXQTtFQStUZ0IsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixPQUFPO0VBQ1AsZTFEMU95QztFMEQyT3pDLGdCQUFnQjtBbkUrOFZoQzs7QUVsbVdRO0VpRWhMUjtJQXFVb0IsY0FBYztJQUNkLGlCMUQ5T3FDO0VUZ3NXdkQ7QUFDRjs7QW1FenhXQTtFQTRVUSxpQkFBaUI7QW5FaTlWekI7O0FvRTd4V0E7RUFDRSxlQUFlO0VBQ2YsZ0I5RHNGa0I7QU4wc1dwQjs7QUVsbldRO0VrRWhMUjtJQUtJLGVBQWU7RXBFa3lXakI7QUFDRjs7QUV4bldRO0VrRWhMUjtJQVNJLGVBQWU7RXBFb3lXakI7QUFDRjs7QW9FanlXQTtFQUNFLG1CQUFtQjtFQUNuQixtQjlEeUVrQjtFOER4RWxCLHFCM0R3RXVEO0FUNHRXekQ7O0FvRXZ5V0E7RUFLSSx1QjNEc0VxRDtBVGd1V3pEOztBb0UzeVdBO0VBUUksb0IzRG1FcUQ7QVRvdVd6RDs7QXFFNXpXQTtFQUNJLGtCQUFrQjtBckUreld0Qjs7QXFFN3pXQTtFQUNJLHdCNURvRnFEO0FUNHVXekQ7O0FFcHBXUTtFbUU3S1I7SUFJUSx3QjVEaUZpRDtFVGl2V3ZEO0FBQ0Y7O0FxRXYwV0E7RUFRUSxlQUFlO0FyRW0wV3ZCOztBcUUzMFdBO0VBWVEsc0JBQXNCO0FyRW0wVzlCOztBcUUvMFdBO0VBZVksb0JBQW9CO0VBQ3BCLHFCQUFxQjtFQUNyQixpQkFBaUI7QXJFbzBXN0I7O0FxRXIxV0E7RUFxQlkseUJBQXlCO0VBQ3pCLHFCQUFxQjtFQUNyQixpQkFBaUI7RUFDakIsbUJBQW1CO0FyRW8wVy9COztBcUU1MVdBO0VBNEJRLGtCQUFrQjtBckVvMFcxQjs7QXFFaDJXQTtFQThCWSxXQUFXO0VBQ1gsT0FBTztBckVzMFduQjs7QXFFajBXQTtFQUNJLG1CNURnRHFEO0U0RC9DckQsZ0I1RCtDcUQ7RTREOUNyRCxVQUFVO0VBQ1Ysa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixrQjVEMkNxRDtFNEQxQ3JELDJDL0Rnc0J3QztFK0QvckJ4QyxpQkFBaUI7RUFDakIsWTVEd0NxRDtFNER2Q3JELFlBQVk7QXJFbzBXaEI7O0FFaHNXUTtFbUU5SVI7SUE2QlEsbUI1RG9CaUQ7STREbkJqRCxlNURtQmlEO0k0RGxCakQsbUI1RGtCaUQ7RVRveVd2RDtFcUVyMVdGO0lBY1ksZ0JBQWdCO0Vy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QXVCO0VBQ3ZCLHNCbkVxRXlDO0FUNHJZekQ7O0FFcG1ZUTtFMEU1S1I7SUFpQm9CLFdBQVc7RTVFb3dZN0I7QUFDRjs7QUUxbVlRO0UwRTVLUjtJQXFCZ0IsV0FBVztFNUVzd1l6QjtBQUNGOztBNEU1eFlBO0VBd0JnQixrQkFBa0I7RUFDbEIsZUFBZTtFQUNmLGdCQUFnQjtBNUV3d1loQzs7QUV0bllRO0UwRTVLUjtJQTRCb0Isa0JBQWtCO0lBQ2xCLG1CQUFtQjtFNUUyd1lyQztBQUNGOztBNEV6eVlBO0VBb0NZLDhCQUE4QjtFQUM5QixpQkFBaUI7QTVFeXdZN0I7O0E0RTl5WUE7RUF3Q1ksZUFBZTtFQUNmLG1CQUFtQjtBNUUwd1kvQjs7QTRFdHdZQTtFQUVRLFlBQVk7QTVFd3dZcEI7O0E0RTF3WUE7RUFLZ0IsVUFBVTtBNUV5d1kxQjs7QTRFOXdZQTtFQVFnQixVQUFVO0E1RTB3WTFCOztBNEVseFlBO0VBV2dCLG1CQUFtQjtFQUNuQixVQUFVO0VBQ1Ysc0JuRTBCeUM7QVRpdll6RDs7QTRFeHhZQTtFQWdCZ0IsdUJuRXVCeUM7QVRxdll6RDs7QTRFNXhZQTtFQWtCb0Isb0JuRXFCcUM7RW1FcEJyQyxtQm5Fb0JxQztFbUVuQnJDLDJCQUEyQjtBNUU4d1kvQzs7QTRFbHlZQTtFQXdCZ0Isa0JBQWtCO0VBQ2xCLDZCdEVNSDtFc0VMRyx1Qm5FYXlDO0FUaXdZekQ7O0E0RXh5WUE7RUE0Qm9CLE9BQU87RUFDUCxZQUFZO0VBQ1osc0JuRVNxQztBVHV3WXpEOztBNEU5eVlBO0VBaUNvQixxQkFBcUI7RUFDckIsbUJBQW1CO0E1RWl4WXZDOztBNEVuellBO0VBb0N3QiwwQkFBMEI7QTVFbXhZbEQ7O0E0RXZ6WUE7RUF5Q29CLHNCbkVGcUM7RW1FR3JDLHVCbkVIcUM7QVRxeFl6RDs7QUU3cllRO0UwRS9IUjtJQTZDNEIsVUFBVTtFNUVveFlwQztBQUNGOztBNEVsMFlBO0VBZ0Q0QixnQkFBZ0I7QTVFc3hZNUM7O0E0RXQwWUE7RUFzRG9CLGNuRWZxQztFbUVnQnJDLGlCQUFpQjtBNUVveFlyQzs7QTRFMzBZQTtFQTBEb0IsY0FBYztFQUNkLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIscUJuRXRCcUM7RW1FdUJyQyxrQkFBa0I7QTVFcXhZdEM7O0E0RW4xWUE7RUFpRXdCLDBCQUEwQjtBNUVzeFlsRDs7QTRFdjFZQTtFQW9Fd0Isa0JBQWtCO0VBQ2xCLFFBQVE7RUFHUixpQm5FakNpQztFbUVrQ2pDLHNCQUFzQjtBNUVxeFk5Qzs7QTRFOTFZQTs7RUErRWdCLHVCbkV4Q3lDO0VtRXlDekMsa0JBQWtCO0VBQ2xCLHdCbkUxQ3lDO0FUOHpZekQ7O0E0RXIyWUE7O0VBcUZvQixrQkFBa0I7RUFDbEIsaUJuRS9DcUM7RW1FZ0RyQyxpQkFBaUI7RUFDakIsV0FBVztFQUNYLGFBQWE7QTVFcXhZakM7O0E0RTkyWUE7RUE2RmdCLGtCQUFrQjtBNUVxeFlsQzs7QTRFbDNZQTtFQWdHd0IsY0FBYztBNUVzeFl0Qzs7QTRFdDNZQTtFQW1Hd0Isa0JBQWtCO0E1RXV4WTFDOztBNEUxM1lBO0VyRVBFLGNBQWM7RUFDZCxRQUFRO0VBQ1IsU0FBUztFQUVULG9CcUV3R3NEO0VyRXRHdEQsV0FBVztFQUdULHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsNkNBQXFEO0VxRWtHN0Isa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixZQUFZO0E1RWd5WXhDOztBNEV4NFlBO0VBOEdnQixrQkFBa0I7RUFDbEIsY0FBYztFQUNkLG1CdEUvRUQ7RXNFZ0ZDLGN0RS9FRDtFc0VnRkMsWUFBWTtFQUNaLHFCQUFxQjtFdERwSTdCLHNCQUE2RDtFQUE3RCxxQkFBNkQ7RUNkbkUsZ0Jkc0V1RDtFY3JFdkQsaUJBQWlCO0VBQ2pCLGtCQUFrQjtBdkJtN1lwQjs7QUV2eFlRO0UwRS9IUjtJdERqQlEsdUJBQTZEO0lBQTdELHNCQUE2RDtFdEI2NlluRTtBQUNGOztBRTl4WVE7RTBFL0hSO0l0RGpCUSx3QkFBNkQ7SUFBN0QsdUJBQTZEO0V0Qm83WW5FO0FBQ0Y7O0FFcnlZUTtFMEUvSFI7SUFzSG9CLFNBQVM7SUFDVCxvQm5FaEZxQztJbUVpRnJDLDRCbkVqRnFDO0VUbzRZdkQ7QUFDRjs7QTRFNTZZQTtFQTJIb0IsYUFBYTtBNUVxellqQzs7QTRFaDdZQTtFQThIb0Isb0JuRXZGcUM7RW1Fd0ZyQyxtQkFBbUI7QTVFc3pZdkM7O0E0RXI3WUE7RUFpSXdCLHFCQUFxQjtBNUV3elk3Qzs7QTRFejdZQTtFQXFJb0IsY3RFbkdMO0VzRW9HSyxlbkUvRnFDO0VtRWdHckMsbUJBQW1CO0E1RXd6WXZDOztBNEUvN1lBO0VBNElZLGdCbkVyRzZDO0FUNDVZekQ7O0E2RXAvWUE7RUFDSSxnQnBFdUZxRDtFb0V0RnJELG1CcEVzRnFEO0FUaTZZekQ7O0E2RXovWUE7RUFJUSxtQnZFb0VZO0V1RW5FWixpQnBFbUZpRDtBVHM2WXpEOztBNkU5L1lBO0VBUVEsdUJwRWdGaUQ7QVQwNll6RDs7QTZFbGdaQTtFQVdRLGtCQUFrQjtFQUNsQiw2QkFBNkI7QTdFMi9ZckM7O0E2RXZnWkE7RUFjWSxnQ0FBZ0M7QTdFNi9ZNUM7O0E2RTNnWkE7RUFrQlEsaUNBQXFDO0E3RTYvWTdDOztBNkUvZ1pBO0VBcUJZLDBCQUEwQjtBN0U4L1l0Qzs7QThFbmhaQTtFQUNJLHNCckV1RnFEO0FUKzdZekQ7O0FFdjJZUTtFNEVoTFI7SUFHUSxxQnJFcUZpRDtFVG84WXZEO0FBQ0Y7O0E4RTdoWkE7RUFNUSxtQnhFbUVjO0FOdzlZdEI7O0E4RWppWkE7RUFRWSxvQnJFcUZDO0FUdzhZYjs7QUVyM1lRO0U0RWhMUjtJQVVnQixpQnJFOEV5QztFVGs5WXZEO0FBQ0Y7O0E4RTNpWkE7RUFlUSxnQkFBZ0I7QTlFZ2laeEI7O0E4RS9pWkE7RUFrQlEsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsV0FBVztFQUNYLHFCckVrRWlEO0VxRWpFakQsZ0JBQWdCO0E5RWlpWnhCOztBRXg0WVE7RTRFaExSO0lBeUJZLG9CckUrRDZDO0lxRTlEN0MsYUFBYTtFOUVvaVp2QjtBQUNGOztBOEUvalpBO0VBK0JZLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsaUJyRXVENkM7RXFF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QUE2QjtBaEYrdFp6Qzs7QWdGMXRaQTtFQUNJLGVBQWU7QWhGNnRabkI7O0FpRjl3WkE7RUFDSSxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLG9CQUEwQjtBakZpeFo5Qjs7QUVwbVpRO0UrRWhMUjtJQUtRLHNCQUEwQjtFakZveFpoQztBQUNGOztBaUYxeFpBO0VBUVEsZUFBZTtBakZzeFp2Qjs7QUU5bVpRO0UrRWhMUjtJQVVZLG1CeEU4RTZDO0VUMnNadkQ7QUFDRjs7QWlGcHlaQTtFQWNZLGV4RTBFNkM7QVRndFp6RDs7QWlGeHlaQTtFQWtCUSxxQnhFc0VpRDtBVG90WnpEOztBR3pwWkU7RStFbEpFLDBCQUEwQjtBbEYreVo5Qjs7QWtGN3laQTtFQUNJLFVBQVU7RUFDVixZQUFZO0VBQ1oscUJ6RWtGcUQ7QVQ4dFp6RDs7QUV0b1pRO0VnRjdLUjtJQUtRLG1CQUFtQjtJQUNuQiwyQkFBMkI7RWxGbXpaakM7QUFDRjs7QWtGMXpaQTtFQVNRLGFBQWE7QWxGcXpackI7O0FrRjl6WkE7RUFZUSxrQkFBa0I7QWxGc3paMUI7O0FrRmwwWkE7RUFlUSxtQjVFc0RZO0FOaXdacEI7O0FrRnQwWkE7RUFpQlksa0J6RW9FNkM7RXlFbkU3QyxpQkFBaUI7QWxGeXpaN0I7O0FrRjMwWkE7RUFzQlEseUJ6RStEaUQ7QVQwdlp6RDs7QUVscVpRO0VnRjdLUjtJQXdCWSwwQnpFNkQ2QztFVCt2WnZEO0FBQ0Y7O0FrRnIxWkE7RUEyQlksZ0JBQWdCO0VBQ2hCLG9CekV5RDZDO0V5RXhEN0MsdUJ6RXdENkM7QVRzd1p6RDs7QW1GOTFaQTtFQUVRLGdCQUFnQjtFQUNoQixjQUFjO0FuRmcyWnRCOztBbUZuMlpBO0VBS1ksbUJBQW1CO0FuRmsyWi9COztBbUZ2MlpBO0VBUVksa0JBQWtCO0FuRm0yWjlCOztBbUYzMlpBO0VBVWdCLGlCQUFzQjtFQUN0QixjQUFjO0VBQ2QsZ0JBQWdCO0FuRnEyWmhDOztBRWpzWlE7RWlGaExSO0lBY29CLGdDN0VrRVA7RU5zeVpYO0FBQ0Y7O0FtRnYzWkE7RUFvQlEsZ0JBQWdCO0FuRnUyWnhCOztBbUYzM1pBO0VBc0JZLGlCQUFpQjtBbkZ5Mlo3Qjs7QUUvc1pRO0VpRmhMUjtJQTJCWSxpQkFBaUI7RW5GeTJaM0I7QUFDRjs7QW1GcjRaQTs7RUFpQ1ksaUJBQWlCO0FuRnkyWjdCOztBRTF0WlE7RWlGaExSO0lBNEZZLFNBQVM7RW5GbXpabkI7RW1GLzRaRjtJQXVDZ0IsaUJBQWlCO0lBQ2pCLGFBQWE7SUFFYiw2QkFBNkI7SUFDN0Isa0NBQWtDO0VuRjAyWmhEO0VtRnI1WkY7SUFnRDRCLGdDN0VnQ2Y7RU53MFpYO0VtRng1WkY7O0lBcURnQyxnQzdFMkJuQjtJNkUxQm1CLGtCQUFrQjtFbkZ1MlpoRDtFbUY3NVpGOztJQXdEb0MsUUFBUTtJQUNSLFFBQVE7SUFDUiw4QkFBOEI7SUFDOUIsV0FBVztJQUNYLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osWUFBWTtJQUNaLGVBQWU7RW5GeTJaakQ7RW1GeDZaRjtJQXVFd0IsbUJBQW1CO0VuRm8yWnpDO0VtRjM2WkY7SUEwRXdCLG9CQUFvQjtFbkZvMloxQztFbUY5NlpGO0lBOEV3QixXQUFXO0lBQ1gsY0FBYztJQUNkLGtCQUFrQjtJQUNsQixTQUFTO0lBQ1QsZ0M3RUZYO0k2RUdXLFdBQVc7RW5GbTJaakM7RW1GdDdaRjtJQXVGb0Isa0JBQWtCO0lBQ2xCLGNBQWM7SUFDZCxvQjFFRHFDO0VUbTJadkQ7RW1GMzdaRjtJQThGZ0IsaUJBQWlCO0lBQ2pCLGFBQWE7SUFDYix5QkFBeUI7SUFDekIsOEJBQThCO0VuRmcyWjVDO0FBQ0Y7O0FvRmw4WkE7RUFFUSxxQjNFc0ZpRDtBVDgyWnpEOztBb0Z0OFpBO0VBS1EscUIzRW1GaUQ7QVRrM1p6RDs7QW9GMThaQTtFQVFRLHVCM0VnRmlEO0FUczNaekQ7O0FvRjk4WkE7RUFXUSxtQjlFOERjO0U4RTdEZCwyQjNFNEVpRDtFMkUzRWpELG1CM0UyRWlEO0FUNDNaekQ7O0FvRnA5WkE7RUFlWSxxQjNFeUU2QztBVGc0WnpEOztBcUZ4OVpBO0VBRVEsdUI1RXNGaUQ7QVRvNFp6RDs7QXFGNTlaQTtFQUlZLHVCNUVvRjZDO0FUdzRaekQ7O0FxRmgrWkE7RUFPWSxzQjVFaUY2QztBVDQ0WnpEOztBcUZ4OVpBO0VBQ0ksY0FBYztBckYyOVpsQjs7QUV4elpRO0VtRnBLUjtJQUdRLFNBQVM7RXJGODlaZjtBQUNGOztBcUZsK1pBO0VBTVEsb0I1RXNFaUQ7RTRFckVqRCx3QjVFcUVpRDtBVDI1WnpEOztBcUZ2K1pBO0VBVVEsbUI1RWtFaUQ7QVQrNVp6RDs7QUV2MFpRO0VtRnBLUjtJQVlZLG1CNUVnRTZDO0k0RS9EN0MsZ0JBQWdCO0VyRm8rWjFCO0FBQ0Y7O0FFOTBaUTtFbUZwS1I7SUFnQlksb0I1RTRENkM7RVQyNlp2RDtBQUNGOztBRXAxWlE7RW1GcEtSO0lBcUJvQixXQUFXO0VyRncrWjdCO0FBQ0Y7O0FFMTFaUTtFb0ZoTFI7SUFHWSxZQUFZO0V0RjRnYXRCO0FBQ0Y7O0FzRmhoYUE7RUFPUSxjQUFhO0VBQ2IscUI3RWdGaUQ7QVQ2N1p6RDs7QUVyMlpRO0VvRmhMUjtJQVlZLHNCN0U0RTZDO0VUazhadkQ7QUFDRjs7QXNGM2hhQTtFQWdCUSxxQjdFd0VpRDtBVHU4WnpEOztBc0YvaGFBO0VBb0JZLHdCN0VvRTZDO0FUMjhaekQ7O0F1Rm5pYUE7RUFDSSxzQjlFdUZxRDtBVCs4WnpEOztBRXYzWlE7RXFGaExSO0lBR1EscUI5RXFGaUQ7RVRvOVp2RDtBQUNGOztBdUY3aWFBO0VBTVEsa0JBQWtCO0F2RjJpYTFCOztBdUZqamFBO0VBUVksTUFBTTtBdkY2aWFsQjs7QXVGcmphQTs7RUFlZ0IsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLFFBQVE7RUFDUixTQUFTO0VBQ1QsY0FBYztFQUNkLHVCOUVrRXlDO0U4RWpFekMsVUFBVTtBdkYyaWExQjs7QXVGbGthQTtFQTRCUSxnQkFBZ0I7QXZGMGlheEI7O0F1RnRrYUE7RUErQlEsZ0I5RXlEaUQ7QVRrL1p6RDs7QXVGMWthQTs7RUFrQ1ksV0FBVztBdkY2aWF2Qjs7QXVGL2thQTtFQXFDWSxvQjlFbUQ2QztBVDIvWnpEOztBdUZubGFBO0VBd0NZLFdBQVc7RUFDWCxZQUFZO0F2RitpYXhCOztBdUZ4bGFBO0VBNENZLGtCQUFrQjtBdkZnamE5Qjs7QXVGNWxhQTs7RUFtRGdCLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsY0FBYztFQUNkLFdBQVc7RUFDWCxZQUFZO0VBQ1osdUJBQXVCO0VBQ3ZCLDJDakZ1ckJDO0FOdTNZakI7O0F1RnZtYUE7O0VBNERnQix3QkFBd0I7RUFDeEIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsU0FBUztFQUNULFdBQVc7RUFDWCxVQUFVO0F2RmdqYTFCOztBdUZsbmFBOzs7RUF1RWdCLHdDakZDSTtFaUZBSiwyQ2pGd3FCQztBTnk0WWpCOztBdUZ6bmFBOzs7RUEyRWdCLFVBQVU7RUFDVixrQ2pGb3FCQztBTmc1WWpCOztBd0Zob2FBO0VBR1ksY0FBYztFQUNkLHdCL0VvRjZDO0FUNmlhekQ7O0F3RnJvYUE7RUFPWSxvQkFBb0I7RUFDcEIsZUFBZTtBeEZrb2EzQjs7QUUxOVpRO0VzRmhMUjtJQVdvQixXQUFXO0lBQ1gsdUIvRTRFcUM7RVR3amF2RDtFd0ZocGFGO0lBZW9CLFlBQVk7SUFDWixzQi9Fd0VxQztFVDRqYXZEO0FBQ0Y7O0F3RnJwYUE7RUFxQlkscUJBQXFCO0VBQ3JCLDBCQUEwQjtBeEZvb2F0Qzs7QXdGMXBhQTtFQXlCWSw0Qi9FK0Q2QztBVHNrYXpEOztBd0Y5cGFBO0VBNkJRLG1CQUFtQjtBeEZxb2EzQjs7QXdGbHFhQTtFQStCWSxrQkFBa0I7RUFDbEIsU0FBUztFQUNULGdDbEYrQ0M7QU53bGFiOztBd0Z4cWFBO0VBbUNnQiw2QmxGNkNIO0FONGxhYjs7QXdGNXFhQTtFQXNDZ0IsdUIvRWtEeUM7QVR3bGF6RDs7QXdGaHJhQTtFQXlDZ0IsaUNBQXFDO0VBQ3JDLGNBQWM7QXhGMm9hOUI7O0F3RnJyYUE7RUE0Q29CLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsV0FBVztFQUNYLGlCQUFpQjtBeEY2b2FyQzs7QXdGdm9hQTtFQUNJLHVCL0VrQ3FEO0UrRWpDckQsb0IvRWlDcUQ7QVR5bWF6RDs7QXdGNW9hQTtFQUlRLGdCQUFnQjtBeEY0b2F4Qjs7QXlGcnNhQTtFQUNJLDJDbkY2dUJ3QztFbUY1dUJ4Qyx1QmhGc0ZxRDtBVGtuYXpEOztBeUYxc2FBO0VBSVEsaUJoRm9GaUQ7RWdGbkZqRCxXQUFXO0VBQ1gsaUJBQWlCO0F6RjBzYXpCOztBeUZodGFBO0VBU1EsMEJoRitFaUQ7QVQ0bmF6RDs7QXlGcHRhQTtFQVdZLGNBQWM7RUFDZCx3QmhGNEU2QztBVGlvYXpEOztBeUZ6c2FBO0VBQ0ksdUJoRnVFcUQ7QVRxb2F6RDs7QTBGN3RhQTtFQUVRLHdCakZzRmlEO0FUeW9hekQ7O0EwRmp1YUE7RUFLUSx3QmpGbUZpRDtBVDZvYXpEOztBMEZydWFBO0VBUVEsbUJwRmlFYztFb0ZoRWQsdUJqRitFaUQ7RWlGOUVqRCx3QmpGOEVpRDtBVG1wYXpEOztBMEYzdWFBO0VBWVksb0JqRjRFNkM7QVR1cGF6RDs7QTBGL3VhQTtFQWVZLGdCQUFnQjtBMUZvdWE1Qjs7QTBGbnZhQTtFQW1CUSx3QmpGcUVpRDtBVCtwYXpEOztBMkZ2dmFBO0VBQ0ksaUJBQXlCO0EzRjB2YTdCOztBRTNrYVE7RXlGaExSO0lBR1Esc0JBQTBCO0UzRjZ2YWhDO0FBQ0Y7O0EyRmp3YUE7RUFNUSx1QmxGa0ZpRDtBVDZxYXpEOztBRXJsYVE7RXlGaExSO0lBUVksc0JsRmdGNkM7RVRrcmF2RDtBQUNGOztBMkYzd2FBO0VBWVEsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtBM0Ztd2EzQjs7QTJGaHhhQTtFQWVZLHdCbEZ5RTZDO0FUNHJhekQ7O0E0RnB4YUE7RUFDSSxrQkFBa0I7RUFDbEIsWUFBWTtBNUZ1eGFoQjs7QTRGenhhQTtFQU9ZLG1CbkZpRjZDO0VtRmhGN0MsZ0JBQWdCO0VBQ2hCLHVCbkYrRTZDO0FUdXNhekQ7O0E0Ri94YUE7RUFlUSxrQkFBa0I7RUFDbEIsa0JuRndFaUQ7QVQ0c2F6RDs7QTRGcHlhQTtFQW1CUSxrQ3RGK0RPO0VzRjlEUCwyQ3RGMHRCb0M7QU4yalo1Qzs7QTRGenlhQTtFQXdCZ0Isb0R0RndESDtBTjZ0YWI7O0E0Rjd5YUE7RUE0Qlksd0JuRjRENkM7QVR5dGF6RDs7QTRGanphQTtFQStCWSx1Qm5GeUQ2QztBVDZ0YXpEOztBNEZyemFBO0VBa0NZLGVuRnNENkM7RW1GckQ3QyxnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLDBCbkZtRDZDO0VtRmxEN0MsZ0JBQWdCO0E1RnV4YTVCOztBNEY3emFBO0VBMENnQixtQnRGb0NJO0FObXZhcEI7O0E0RmowYUE7RUFpRFEscUJuRnVDaUQ7QVQ2dWF6RDs7QTRGcjBhQTs7O0VBZ0V3Qix5QkFBeUI7RUFDekIsaUJuRnVCaUM7RW1GdEJqQyxzQm5Gc0JpQztFbUZyQmpDLGFuRnFCaUM7RW1GcEJqQyxxQkFBcUI7QTVGMndhN0M7O0E0Ri8wYUE7RUE2RVkseUJBQXlCO0VBQ3pCLGlCbkZVNkM7RW1GVDdDLHNCbkZTNkM7RW1GUjdDLGFuRlE2QztFbUZQN0MscUJBQXFCO0E1RnN3YWpDOztBNEZ2MWFBOztFQTJGZ0IsdUJBQXVCO0VBQ3ZCLGlCbkZKeUM7RW1GS3pDLHNCbkZMeUM7RW1GTXpDLFduRk55QztFbUZPekMsYW5GUHlDO0VtRlF6QyxxQkFBcUI7RUFDckIsYW5GVHlDO0FUMHdhekQ7O0E0RmwyYUE7RUF1R1EseUJBQXlCO0VBQ3pCLFdBQVc7RUFDWCxZbkZqQmlEO0FUZ3hhekQ7O0E0RngyYUE7O0VBOEdRLGN0RjVCTztFc0Y2QlAsbUJ0RnZDWTtBTnN5YXBCOztBNEY5MmFBOzs7RUFtSFksbUJ0RjNDUTtFc0Y0Q1IsY3RGbENHO0FObXlhZjs7QTZGcjNhQTtFQUdRLHFCcEZxRmlEO0VvRnBGakQsb0JwRm9GaUQ7QVRreWF6RDs7QUUxc2FRO0UyRmhMUjtJQVVnQixnQkFBZ0I7RTdGcTNhOUI7QUFDRjs7QThGaDRhQTtFQUVRLG9CckZzRmlEO0FUNHlhekQ7O0E4RnA0YUE7RUFLZ0Isb0JBQW9CO0E5Rm00YXBDOztBOEZ4NGFBO0VBU1ksZUFBZTtFQUNmLGNBQWM7RUFDZCxXQUFXO0VBQ1gsOEJBQThCO0VBQzlCLG9CQUFvQjtBOUZtNGFoQzs7QThGaDVhQTtFQW1CWSxvQnJGcUU2QztFcUZwRTdDLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsV0FBVztBOUZpNGF2Qjs7QThGdjVhQTtFQTBCUSxnQkFBZ0I7RUFDaEIsY3hGdURPO0V3RnREUCxpQkFBaUI7QTlGaTRhekI7O0FFN3VhUTtFNEZoTFI7SUErQmdCLGVBQWU7SUFDZixjQUFjO0lBQ2QsV0FBVztJQUNYLDhCQUE4QjtJQUM5QixvQkFBb0I7RTlGbTRhbEM7QUFDRjs7QStGdjZhQTtFQUNJLDBCQUEwQjtFQUMxQixlQUFlO0VBQ2YsTUFBTTtFQUNOLE9BQU87RUFDUCxRQUFRO0VBQ1IsU0FBUztFQUNULHVCQUF1QjtFQUN2QixXQUFXO0EvRjA2YWY7O0ErRng2YUk7RUFDSSwwQkFBMEI7RUFDMUIsOEJ6RnNFTztFeUZyRVAsWUFBWTtFQUNaLHFFekZrdUJTO0FOeXNaakI7O0ErRnY2YUE7RUFDSSxnQnRGcUVxRDtFc0ZwRXJELGlCdEZvRXFEO0VzRm5FckQsbUJ6RjZEVztFeUY1RFgsa0JBQWtCO0VBQ2xCLGVBQWU7RUFDZixjdEZnRXFEO0VzRi9EckQsY3RGK0RxRDtFc0Y5RHJELFlBQVk7RUFDWixlQUFlO0EvRjA2YW5COztBK0ZuN2FBO0VBY1EsY0FBYztFQUNkLFlBQVk7RUFDWixlQUFlO0VBQ2Ysb0J0RnFEaUQ7QVRvM2F6RDs7QUU1eGFRO0U2RjlKUjtJQXlCUSxnQnRGNkNpRDtJc0Y1Q2pELGlCdEY0Q2lEO0VUMDNhdkQ7RStGaDhhRjtJQTZCWSxvQnRGeUM2QztJc0Z4QzdDLGdCdEZ3QzZDO0VUODNhdkQ7QUFDRjs7QStGbDZhQTtFQUNJLGVBQWU7RUFDZixhQUFhO0VBQ2IsTUFBTTtFQUNOLFlBQVk7RUFDWixXQUFXO0VBQ1gsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQixtQnpGV2dCO0FOMDVhcEI7O0ErRm42YUk7RUFDSSxRQUFRO0VBQ1IsZ0N6RitxQlM7QU51dlpqQjs7QUV2emFRO0U2RjNIUjtJQWdCUSxxQnRGbUJpRDtFVG81YXZEO0FBQ0Y7O0ErRng3YUE7RUFvQlEsV0FBVztBL0Z3NmFuQjs7QStGNTdhQTtFQXVCWSxzQnRGWTZDO0VzRlg3Qyx5QnRGVzZDO0VzRlY3QyxzQnRGVTZDO0VzRlQ3QyxrQkFBa0I7QS9GeTZhOUI7O0ErRm44YUE7O0VBK0JZLGtEekZGRztBTjI2YWY7O0ErRng4YUE7O0VBbUNvQixtQnpGaEJBO0FOMDdhcEI7O0ErRjc4YUE7RUF5Q1ksc0J0Rk42QztFc0ZPN0MscUJ6RmJHO0FOcTdhZjs7QStGbDlhQTtFQStDUSxpQkFBaUI7RUFDakIscUJ0RmJpRDtFc0ZjakQsd0J0RmRpRDtBVHE3YXpEOztBK0Z4OWFBO0VBeURnQixtQnRGdEJ5QztFc0Z1QnpDLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QsV0FBVztFQUNYLHFCQUFxQjtBL0ZtNmFyQzs7QStGaCthQTtFQW1FUSxnQkFBZ0I7RUFDaEIsbUJ0RmpDaUQ7QVRrOGF6RDs7QStGcithQTtFQXdFUSxtQnpGckRZO0V5RnNEWiwyQnRGdENpRDtFc0Z1Q2pELHFDekY3Q087QU44OGFmOztBK0YzK2FBO0VBNkVZLDZDdEYxQzZDO0VzRjJDN0MsbUJ0RjNDNkM7RXNGNEM3QyxnQkFBZ0I7QS9GazZhNUI7O0ErRmovYUE7RUFvRmdCLGlCdEZqRHlDO0VzRmtEekMsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxldEZwRHlDO0VzRnFEekMscUJBQXFCO0EvRmk2YXJDOztBK0Z6L2FBO0VBK0ZZLG1CQUFtQjtBL0Y4NWEvQjs7QStGNy9hQTtFQW1HWSxVQUFVO0VBQ1YscUJBQXFCO0VBQ3JCLGdCQUFnQjtBL0Y4NWE1Qjs7QStGbmdiQTtFQXlHUSxhQUFhO0EvRjg1YXJCOztBK0YxNWFBO0VBQ0ksc0N6RmpGVztBTjgrYWY7O0ErRjk1YUE7RUFJUSxrQnRGOUVpRDtFc0YrRWpELFlBQVk7RUFDWixrQnRGaEZpRDtBVDgrYXpEOztBK0ZwL2FXO0VBMkZQLHVCdEZyRnFEO0VzRnNGckQsd0J0RnRGcUQ7QVRtL2F6RDs7QStGLzVhQTtFQVNZLFdBQVc7RUFDWCxhQUFhO0VBQ2IsUUFBUTtFQUNSLFNB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SSxnQkFBZ0I7QWxHOHVicEI7O0FrRzV1YkE7RUFDSSxnQkFBZ0I7QWxHK3VicEI7O0FrRzd1YkE7RUFDSSxnQkFBZ0I7QWxHZ3ZicEI7O0FrRzl1YkE7OztFQUNJLGdCQUFnQjtBbEdtdmJwQjs7QWtHanZiQTtFQUNJLGdCQUFnQjtBbEdvdmJwQjs7QWtHbHZiQTtFQUNJLGdCQUFnQjtBbEdxdmJwQjs7QWtHbnZiQTtFQUNJLGdCQUFnQjtBbEdzdmJwQjs7QWtHcHZiQTtFQUNJLGdCQUFnQjtBbEd1dmJwQjs7QWtHcnZiQTtFQUNJLGdCQUFnQjtBbEd3dmJwQjs7QWtHdHZiQTtFQUNJLGdCQUFnQjtBbEd5dmJwQjs7QWtHdnZiQTtFQUNJLGdCQUFnQjtBbEcwdmJwQjs7QWtHeHZiQTs7RUFDSSxnQkFBZ0I7QWxHNHZicEI7O0FrRzF2YkE7O0VBQ0ksZ0JBQWdCO0FsRzh2YnBCOztBa0c1dmJBO0VBQ0ksZ0JBQWdCO0FsRyt2YnBCOztBa0c3dmJBO0VBQ0ksZ0JBQWdCO0FsR2d3YnBCOztBa0c5dmJBO0VBQ0ksZ0JBQWdCO0FsR2l3YnBCOztBa0cvdmJBO0VBQ0ksZ0JBQWdCO0FsR2t3YnBCOztBa0dod2JBO0VBQ0ksZ0JBQWdCO0FsR213YnBCOztBa0dqd2JBO0VBQ0ksZ0JBQWdCO0FsR293YnBCOztBa0dsd2JBO0VBQ0ksZ0JBQWdCO0FsR3F3YnBCOztBa0dud2JBO0VBQ0ksZ0JBQWdCO0FsR3N3YnBCOztBa0dwd2JBO0VBQ0ksZ0JBQWdCO0FsR3V3YnBCOztBa0dyd2JBO0VBQ0ksZ0JBQWdCO0FsR3d3YnBCOztBOEJ6cmJFO0VxRTFNTSxxQjdGb1VZO0U2Rm5VWixjN0ZtVVk7QU5va2JwQjs7QThCOXJiRTtFcUVwTVUscUI3RjhUUTtFNkY3VFIsYzdGNlRRO0U2RjVUUixpQkFDSjtBbkdxNGJSOztBbUdqNWJBO0VBZVEsYzdGbUVPO0FObTBiZjs7QThCeHNiRTtFcUUzTFUscUI3RnNUVTtFNkZyVFYsYzdGcVRVO0U2RnBUVixpQkFDSjtBbkdzNGJSOztBbUczNWJBO0VBd0JRLFlBQVk7QW5HdTRicEI7O0E4Qmx0YkU7RXFFbExVLHFCN0ZnVE07RTZGL1NOLGM3RitTTTtFNkY5U04saUJBQ0o7QW5HdTRiUjs7QW1HcjZiQTtFQWlDUSxZQUFZO0FuR3c0YnBCOztBOEI1dGJFO0VxRXpLVSxxQjdGcVNRO0U2RnBTUixjN0ZvU1E7RTZGblNSLGlCQUNKO0FuR3c0YlI7O0FtRy82YkE7RUEwQ1EsWUFBWTtBbkd5NGJwQjs7QThCdHViRTtFcUVoS1UscUI3RjZSUTtFNkY1UlIsYzdGNFJRO0U2RjNSUixpQkFDSjtBbkd5NGJSOztBbUd6N2JBO0VBc0RZLFlBQVc7RUFDWCxtQjdGZ1JRO0FOdW5icEI7O0E4QjdzYkU7RXFFcExVLFlBQVc7RUFDWCxtQjdGMFFVO0U2RnpRVixxQjdGeVFVO0FONG5idEI7O0E4QnhuYkU7RXFFelFNLG1CMUZxQmlEO0UwRnBCakQsVUFBVTtFQUNWLGdCMUZtQmlEO0UwRmxCakQsb0IxRmtCaUQ7QVRtM2J6RDs7QUUzeGJRO0U0QjRKTjtJcUVwUVUsZTFGZ0I2QztJMEZmN0MscUIxRmU2QztFVHkzYnZEO0FBQ0Y7O0FtR2w5YkE7RUE0RVksdUIxRlk2QztFMEZYN0Msa0JBQWtCO0VBQ2xCLGExRlU2QztBVGc0YnpEOztBbUd4OWJBO0VBaUZZLG9CMUZPNkM7RTBGTjdDLGMxRk02QztBVHE0YnpEOztBbUdyNGJBO0VBQ0ksdUIxRkRxRDtBVHk0YnpEOztBbUd0NGJBO0VBQ0ksZTFGQ1M7QVR3NGJiOztBbUd2NGJBOztFQUVJLG1CN0Z4QmdCO0U2RnlCaEIsWUFBWTtBbkcwNGJoQjs7QW9HeCtiQTtFQUNJLHVCM0ZvRnFEO0FUdTViekQ7O0FFL3piUTtFa0c3S1I7SUFJUSx1QjNGaUZpRDtFVDQ1YnZEO0FBQ0Y7O0FvR2wvYkE7RUFVUSx3QkFBd0I7RUFDeEIscUJBQXFCO0VBQ3JCLGVBQWU7QXBHNCtidkI7O0FFMzBiUTtFa0c3S1I7SUFlWSxtQkFBbUI7RXBHOCtiN0I7QUFDRjs7QW9HMStiQTs7RUFFSSxzQjNGK0RxRDtBVDg2YnpEOztBRXQxYlE7RWtHekpSOztJQUtRLHdCM0Y0RGlEO0VUbzdidkQ7QUFDRjs7QUU3MWJRO0VrR3pKUjs7SUFTUSx3QjNGd0RpRDtFVDI3YnZEO0FBQ0Y7O0FvR2gvYkE7RUFDSSxtQkFBbUI7QXBHbS9idkI7O0FvR2gvYkE7RUFDSSxrQkFBa0I7QXBHbS9idEI7O0FvR2gvYkE7RUFDSSx1QjNGMkNxRDtBVHc4YnpEOztBRWgzYlE7RWtHcElSO0lBR1Esc0IzRnlDaUQ7RVQ2OGJ2RDtBQUNGOztBb0duL2JBO0VBQ0ksbUJBQW1CO0FwR3MvYnZCOztBaUN4L2JFO0VtRU1FLGtCQUFrQjtFQUNsQixjOUZ5Qlc7RThGeEJYLHlCOUZjZ0I7RThGYmhCLGVBQWU7RUFDZixXQUFXO0VBQ1gsUUFBUTtFQUNSLG9CM0YwQnFEO0UyRnpCckQsb0IzRnlCcUQ7QVQ2OWJ6RDs7QUVyNGJRO0UrQjlITjtJbUVnQk0sZTNGc0JpRDtJMkZyQmpELG9CM0ZxQmlEO0VUbStidkQ7RW9HcGdjRjtJQWVZLG9CM0ZrQjZDO0kyRmpCN0Msb0IzRmlCNkM7RVR1K2J2RDtBQUNGOztBb0dwL2JBO0VBSVEsa0JBQWtCO0VBQ2xCLHFCQUFxQjtFQUNyQixxQkFBcUI7QXBHby9iN0I7O0FvR2gvYkE7RUFDSSxXQUFXO0FwR20vYmY7O0FvR3AvYkE7RUFJUSxZQUFZO0FwR28vYnBCOztBb0doL2JBO0VBR0ksaUJBQWlCO0VBQ2pCLDJCQUEyQjtBcEdpL2IvQjs7QW9HOStiQTtFQUNJLGtCQUFrQjtBcEdpL2J0Qjs7QW9HOStiQTtFQUNJLHdCM0ZsQnFEO0FUbWdjekQ7O0FvR2wvYkE7RUFNUSxpQkFBaUI7RUFDakIsY0FBYztFQUNkLHNCQUFzQjtFQUN0QixrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLHFCQUFxQjtBcEdnL2I3Qjs7QW9HMy9iQTtFQWdCUSwwQkFBMEI7QXBHKytibEM7O0FpQnhxYkU7RW1GbFVFLG1COUYrRDBCO0FOKzZiOUI7O0FFNTdiUTtFa0duRFI7SUFNWSxVQUFVO0VwRzgrYnBCO0VvR3AvYkY7SUFTZ0IsV0FBVztFcEc4K2J6QjtFb0d2L2JGO0lBY1ksc0JB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QXdCO0FyR3VzYzVCOztBcUdwOWNBO0VBaVJJLGNBQWM7RUFDZCxnQjVGNVJxRDtFNEY2UnJELG1CL0Y3U2dCO0UrRjhTaEIsa0JBQWtCO0VBQ2xCLG9CNUYvUnFEO0U0RmdTckQsZ0JBQWdCO0FyR3VzY3BCOztBcUdsOWNBO0VBK1FJLDBCNUZwU3FEO0U0RnFTckQsa0I1RnJTcUQ7QVQ0K2N6RDs7QXFHcHNjQTtFQUNJLDRCNUZ6U3FEO0FUZy9jekQ7O0FxR3hzY0E7RUFJUSxjQUFjO0VBQ2QsVUFBVTtBckd3c2NsQjs7QXFHN3NjQTtFQVFZLG9CNUZoVDZDO0FUeS9jekQ7O0FxRzk3Y0E7RUEyUEksZ0JBQWdCO0VBQ2hCLDJDL0YrVndDO0UrRjlWeEMsbUI1RnhUcUQ7RTRGeVRyRCxpQkFBaUI7RUFDakIsYzVGMVRxRDtBVGlnZHpEOztBcUd0NmNBO0VBbU9JLFNBQVM7QXJHdXNjYjs7QXFHOTZjQTtFQTJPSSxVQUFVO0VBQ1YsMEJBQTBCO0FyR3VzYzlCOztBRWw3Y1E7RW1Hd0xSO0lBd0RRLG1CNUZ4VWlEO0VUK2dkdkQ7RXFHcmdkRjtJQWtVUSxxQjVGNVVpRDtJNEY2VWpELHdCNUY3VWlEO0k0RjhVakQsb0I1RjlVaUQ7RVRvaGR2RDtFcUcvL2NGO0lBNlRRLG1CNUZsVmlEO0VUdWhkdkQ7QUFDRjs7QXFHanNjQTtFQWhRQTtJQW1RUSx3QkFBd0I7RXJHbXNjOUI7RXFHN3djRjtJQThFUSxrQjVGOVZpRDtJNEYrVmpELGU1Ri9WaUQ7RVRpaWR2RDtFcUd2aGRGO0lBeVZRLGtCNUZuV2lEO0k0Rm9XakQsa0I1RnBXaUQ7RVRxaWR2RDtFcUdoaGRGO0lBbVZRLDhCNUZ4V2lEO0k0RnlXakQsZTVGeldpRDtFVHlpZHZEO0VxR2p3Y0Y7SUFxRVEsOEI1RjdXaUQ7RVQ0aWR2RDtBQUNGOztBc0dyb2RBO0VBQ0k7SUFDSSxXQUFXO0V0R3dvZGpCO0VzR3BvZEU7Ozs7O0lBS0ksd0JBQXdCO0V0R3NvZDlCO0VzR2xvZEU7SUFDSSxvQ0FBb0M7SUFDcEMsdUJBQXVCO0lBQ3ZCLDhCQUE4QjtJQUM5Qiwy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QUFrQjtBQTYwZXBCOztBc0Qvd2dCQTtFdER1OEJFLG1CQUFtQjtBQTQwZXJCIiwiZmlsZSI6ImNzcy45MzYxZDJiMi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8vIEltcG9ydHMgLy8vL1xuQGltcG9ydCAnfnRlbXBsYXRlcy9zcmMvYXNzZXRzL3Njc3MvYXBwJztcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcblxuXG5cbi8vLy8gSW5jbHVkZXMgLy8vL1xuQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtY2xhc3NlcztcblxuXG5cbi8vLy8gSGVscGVycyAvLy8vXG4uaHIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGJvdGg7XG4gIG1heC13aWR0aDogJGhyLXdpZHRoO1xuICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMTApO1xuICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxMCk7XG4gIGJvcmRlci1ib3R0b206ICRoci1ib3JkZXI7XG59XG5cbi5iZy1saWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tbGlnaHQtZ3JheTtcbn1cblxuXG5cbi8vLy8gRW5oYW5jZW1lbnQgZm9yIGRlZmF1bHRzIGZyb20gdGVtcGxhdGUgLy8vL1xuLm5ld3MgLmNvbnRlbnQgZGF0ZSB7XG4gIG1hcmdpbi1ib3R0b206IHVuc2V0ICFpbXBvcnRhbnQ7XG59XG5cbi50aWxlLWdyaWQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnNldDtcbn1cblxuLnZpcnR1YWwtY2F0YWxvZ3VlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gIHBhZGRpbmc6IHVuc2V0O1xufVxuXG5zZWN0aW9uLm1vZHVsZSB7XG4gIG1hcmdpbi1ib3R0b206IHVuc2V0O1xuICBtYXJnaW4tdG9wOiB1bnNldDtcbiAgcGFkZGluZzogcmVtLWNhbGMoMzApIDA7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgcGFkZGluZzogcmVtLWNhbGMoNjApIDA7XG4gIH1cbn1cblxuc2VjdGlvbi5tb2R1bGUuaGVyby1zbGlkZXIgKyBzZWN0aW9uLm1vZHVsZSB7XG4gIHBhZGRpbmctdG9wOiByZW0tY2FsYygzMCkgIWltcG9ydGFudDtcbn1cblxuLm5ld3Mge1xuICAuY29udGVudCB7XG4gICAgLm5ld3Mtd3JhcCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5kYXRlID4gdGltZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAtbXMtZ3JpZC1jb2x1bW46IDE7XG4gICAgICAtbXMtZ3JpZC1jb2x1bW4tc3RhcnQ6IDE7XG4gICAgICBncmlkLWNvbHVtbi1zdGFydDogMTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyNSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5oZXJvLXNsaWRlciB7XG4gIG1hcmdpbjogMCAwIDJyZW0gMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiB1bnNldCAhaW1wb3J0YW50O1xufVxuXG4uZXZlbnQtc2xpZGVyLnBhZ2UtaGVybyAuc2xpY2stc2xpZGUgaW1nIHtcbiAgbWF4LWhlaWdodDogMzAwcHg7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4ucGFnaW5hdGlvbiAuY3VycmVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbn1cbi5wYWdpbmF0aW9uIC5jdXJyZW50OjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5uZXdzIC5jb250ZW50IC5ldmVudHMgbGkgYSAud3JhcCAudGltZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG5cbmgzIHtcbiAgbWFyZ2luLWJvdHRvbTogMC45cmVtO1xufVxuXG4vLy8vLyBDYWxlbmRhclxuLmNhbGVuZGFyLW9wZW4ge1xuICAmLmhpZGUtZm9yLWxhcmdlIHtcbiAgICAuY2FsZW5kYXIge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuLnBpZ25vc2UtY2FsZW5kYXIgLnBpZ25vc2UtY2FsZW5kYXItdW5pdC5pcy1hY3RpdmUgYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xufVxuXG4ucmVzdWx0LXRhZ3Mge1xuICBtYXJnaW4tdG9wOiByZW0tY2FsYyg4MCk7XG4gIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDgwKTtcbn1cblxuLm1hcCB7XG4gIHBhZGRpbmctdG9wOiB1bnNldCAhaW1wb3J0YW50O1xufVxuLm1hcCBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uZGF0ZXMtYnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uZGF0ZXMtYnV0dG9uICoge1xuICBmbGV4LWdyb3c6IDE7XG4gIG1hcmdpbjogMTBweDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpXG57XG4gIC8vLy8gRmlsdGVyIFdpZGdldCAvLy8vXG4gIC5maWx0ZXItd2lkZ2V0LXdyYXAgc2VjdGlvbi5maWx0ZXItY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vLy8vIEFjY29yZGlvblxuLmFjY29yZGlvbi1zcGVjaWFsIC5hY2NvcmRpb24taG9yaXpvbnRhbCAuYWNjLXRhYnMgLnRhYi1saW5rcyB7XG4gIC1tcy13cml0aW5nLW1vZGU6IHRiLWxyO1xufVxuXG4vLyDDnGJlcnNjaGlyZnRlbiBBcnRpa2VsIERvd25sb2Fkc1xuLmNlbGwgaDMge1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBmb250LXNpemU6IDEuOHJlbTtcbn1cblxuLy8gw5xiZXJzY2hyaWZ0ZW4gQXJ0aWtlbCBLb250ZXh0Ym94XG4uY2VsbCBoNCB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpXG57XG4gIC5ncmlkLW1hcmdpbi14Pi5zbWFsbC02IHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICB9XG59XG5cbi5hY2NvcmRpb24tY29udGVudCBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLy8gRGFyc3RlbGx1bmcgSW5saW5lbGlua3Mgb2huZSBVbWJydWNoXG51bCBsaSBhLmxpbmstZXh0ZXJuYWwge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cblxuLy8gRGFyc3RlbGx1bmcgRGF0dW1zZ3LDtsOfZSBTdGFydHNlaXRlIGluIGtsZWluXG4uZXZlbnRzIGxpIHRpbWUge1xuICBmb250LXNpemU6IDEuNTYyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vLyBEYXJzdGVsbHVuZyBOYWNocmljaHRlbiBhdWYgU3RhbmRvcnRzZWl0ZW46IEVsZW1lbnQgdG9wLW5ld3NcbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5uZXdzIC50ZXh0IHtcbiAgICBoZWlnaHQ6IDExcmVtO1xuICB9XG5cbiAgLm5ld3MtbG9jYXRpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIH1cblxuICAubmV3cy1sb2NhdGlvbiAudG9wLW5ld3Mge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuODc1cmVtKTtcbiAgfVxuXG4gIC5uZXdzLWxvY2F0aW9uIC5sYWJlbC5zbWFsbCB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xuICB9XG5cbiAgLm5ld3MtbG9jYXRpb24gLnRleHQge1xuICAgIGhlaWdodDogMTFyZW07XG4gIH1cblxuICAubmV3cy1sb2NhdGlvbiAudG9wLW5ld3MgLnRleHQgdGltZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS4zcmVtO1xuICB9XG5cbiAgLm5ld3MtbG9jYXRpb24gLmNvbnRlbnQgLm1lZGlhLW9iamVjdC50b3AtbmV3cyAubWVkaWEtb2JqZWN0LXNlY3Rpb246Zmlyc3Qtb2YtdHlwZSAudGh1bWJuYWlsIHtcbiAgICBoZWlnaHQ6IDE5ZW07XG4gICAgd2lkdGg6IDIwcmVtO1xuICB9XG5cbiAgLm5ld3MtbG9jYXRpb24gLmNvbnRlbnQgLm1lZGlhLW9iamVjdC50b3AtbmV3cyAubWVkaWEtb2JqZWN0LXNlY3Rpb24gLnRleHQge1xuICAgIHBhZGRpbmc6IDJyZW0gMXJlbSAxLjc1cmVtIDMuM3JlbTtcbiAgfVxuXG4gIC5uZXdzLWxvY2F0aW9uIC5jb250ZW50IC5tZWRpYS1vYmplY3QubGFyZ2UtNiAubWVkaWEtb2JqZWN0LXNlY3Rpb24gLnRodW1ibmFpbCB7XG4gICAgaGVpZ2h0OiA5Ljc1cmVtO1xuICB9XG5cbiAgLm5ld3MtbG9jYXRpb24gaDQge1xuICAgIG1hcmdpbi10b3A6IC0wLjNyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogLTAuNXJlbTtcbiAgfVxuXG4gIGg0Lm5vZGF0ZSB7XG4gICAgbWFyZ2luLXRvcDogMi42cmVtO1xuICB9XG5cbiAgLm5ld3MtbG9jYXRpb24gaDQubm9kYXRlIHtcbiAgICBtYXJnaW4tdG9wOiAyLjZyZW07XG4gIH1cblxuICBoNC5kYXRlIHtcbiAgICBtYXJnaW4tdG9wOiAtMC4ycmVtO1xuICB9XG59XG5cblxuLy8gRGFyc3RlbGx1bmcgTmFjaHJpY2h0ZW4gYXVmIFN0YW5kb3J0c2VpdGVuOiBBbGxlIGFuZGVyZW4gRWxlbWVudGVcbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5uZXdzLWxvY2F0aW9uIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTYge1xuICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTtcbiAgfVxuXG4gIC5oZXJvLXNsaWRlciAubWFpbi1zbGlkZXIgLmhlcm8taGVhZGluZyBoMS5oMCwgLmhlcm8taW1hZ2UgLmhlcm8taGVhZGluZyBoMS5oMCB7XG4gICAgbWF4LWhlaWdodDogMjQwcHg7XG4gIH1cbn1cblxuLy8gTEFCV1MtNTogQW5wYXNzdW5nIGRlciBMaW5raWNvbnMgdm9yIGRlbSBUZXh0XG5hLmxpbmstbW9yZTphZnRlcixcbmEubGluay1kb3dubG9hZDphZnRlcixcbmEubGluay1leHRlcm5hbDphZnRlcixcbmxpLmxpbmstZG93bmxvYWQ6OmJlZm9yZSxcbmxpLmxpbmstZG93bmxvYWQgPiBhOmFmdGVyLFxuLmxpbmstbW9yZSA+IGE6YWZ0ZXIsXG4ubGluay1leHRlcm5hbCBhOmFmdGVyXG57XG4gIGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuYS5saW5rLW1vcmU6OmJlZm9yZSxcbi5saW5rLW1vcmUgPiBhOmJlZm9yZVxue1xuICBjb250ZW50OiBcIlxcZTkxNVwiO1xufVxuXG5hLmxpbmstZG93bmxvYWQ6OmJlZm9yZSxcbmxpLmxpbmstZG93bmxvYWQgPiBhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA3XCI7XG59XG5cbmEubGluay1leHRlcm5hbDpiZWZvcmUsXG4ubGluay1leHRlcm5hbCBhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA4XCI7XG59XG5cbmEubGluay1tb3JlOjpiZWZvcmUsXG4ubGluay1tb3JlID4gYTpiZWZvcmUsXG5hLmxpbmstZG93bmxvYWQ6OmJlZm9yZSxcbmEubGluay1leHRlcm5hbDpiZWZvcmUsXG5saS5saW5rLWRvd25sb2FkID4gYTpiZWZvcmUsXG4ubGluay1leHRlcm5hbCA+IGE6YmVmb3JlXG57XG4gIGZvbnQtZmFtaWx5OiBcImxhYnctaWNvblwiICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIHNwZWFrOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuXG5hLmxpbmstbW9yZTpiZWZvcmUsXG4ubGluay1tb3JlID4gYTpiZWZvcmUsXG5hLmxpbmstZG93bmxvYWQ6YmVmb3JlXG57XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0b3A6IDAuM3JlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjJyZW07XG59XG5cblxubGkubGluay1kb3dubG9hZCA+IGE6YmVmb3JlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRvcDogMC4zcmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuMnJlbTtcbn1cblxuXG5hLmxpbmstZXh0ZXJuYWw6YmVmb3JlLFxuLmxpbmstZXh0ZXJuYWwgYTpiZWZvcmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdG9wOiAwLjNyZW07XG4gIG1hcmdpbi1yaWdodDogMC4zcmVtO1xufVxuXG5cbi8vIExBQldTLTU1OiBBbnBhc3N1bmcgU2NocmlmdGdyw7bDn2VuIFN0YW5kb3J0IMOcYmVyc2ljaHRzc2VpdGVcbmRpdi5zdGFuZG9ydCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5cbmRpdi5zdGFuZG9ydCAuY2FyZC1zZWN0aW9uIHtcbiAgZm9udC1zaXplOiAwLjg4cmVtO1xuICBoZWlnaHQ6IDE1cmVtO1xufVxuXG4vLyBMQUJXUy0xMDA6IEtvcnJla3R1ciBEYXJzdGVsbHVuZyBpbiBMaW5rcyBpbiBFbGVtZW50ZW4gbWl0IGRlciBLbGFzc2UgLmNlbGwgZWxlbWVudGVuICh6LkIuIFRleHQgUmFuZHNwYWx0ZSBBdXNzdGVsbHVuZ2VuKVxuLmVkZ2UtY29sdW1uIGE6bGluayxcbi5lZGdlLWNvbHVtbiBhOnZpc2l0ZWQsXG4uZWRnZS1jb2x1bW4gYTphY3RpdmVcbntcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5lZGdlLWNvbHVtbiBhOmhvdmVyXG57XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmVkZ2UtY29sdW1uIGEubGluay1tb3JlOmxpbmssXG4uZWRnZS1jb2x1bW4gYS5saW5rLW1vcmU6dmlzaXRlZCxcbi5lZGdlLWNvbHVtbiBhLmxpbmstbW9yZTphY3RpdmUsXG4uZWRnZS1jb2x1bW4gYS5saW5rLWRvd25sb2FkOmxpbmssXG4uZWRnZS1jb2x1bW4gYS5saW5rLWRvd25sb2FkOnZpc2l0ZWQsXG4uZWRnZS1jb2x1bW4gYS5saW5rLWRvd25sb2FkOmFjdGl2ZSxcbi5lZGdlLWNvbHVtbiBhLmxpbmstZXh0ZXJuYWw6bGluayxcbi5lZGdlLWNvbHVtbiBhLmxpbmstZXh0ZXJuYWw6dmlzaXRlZCxcbi5lZGdlLWNvbHVtbiBhLmxpbmstZXh0ZXJuYWw6YWN0aXZlXG57XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmVkZ2UtY29sdW1uIGEubGluay1tb3JlOmhvdmVyLFxuLmVkZ2UtY29sdW1uIGEubGluay1kb3dubG9hZDpob3Zlcixcbi5lZGdlLWNvbHVtbiBhLmxpbmstZXh0ZXJuYWw6aG92ZXJcbntcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cblxuLypcbiAgICBEYXJzdGVsbHVuZyBEZWZhdWx0IFRhYmVsbGUgaW4gVmVyZ2FiZXZlcmZhaHJlblxuKi9cbi50aXMgdGFibGUge1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xufVxuXG4udGlzIHRhYmxlIHRoOm50aC1jaGlsZCgzKSB7XG4gIHdpZHRoOiA0MCVcbn1cblxuLnRpcyB0YWJsZSB0ZDpudGgtY2hpbGQoMykge1xuICB3aWR0aDogNDAlXG59XG5cbi8qXG4gICAgU3RhcnRzZWl0ZTogSMO2aGUgU2xpZGVyIFN0YW5kb3J0ZVxuKi9cblxuLnNsaWNrLXNsaWRlIC5pdGVtLXRvcCBpbWcge1xuICBtYXJnaW4tbGVmdDogMXB4O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubmF2LXNsaWRlci13cmFwIC5uYXYtc2xpZGVyIHtcbiAgICBoZWlnaHQ6IDI4cmVtO1xuICB9XG5cbiAgLm5hdi1zbGlkZXIgLmJ1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgfVxuXG4gIC5oZXJvLXNsaWRlciAubmF2LXNsaWRlciB7XG4gICAgbWFyZ2luLXRvcDogLTIzcmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG4gIC5uYXYtc2xpZGVyLXdyYXAgLm5hdi1zbGlkZXIge1xuICAgIGhlaWdodDogMjRyZW07XG4gIH1cblxuICAubmF2LXNsaWRlci13cmFwIC5uYXYtc2xpZGVyIC5idXR0b24ge1xuICAgIG1hcmdpbi10b3A6IDEyLjRlbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbn1cblxuLypcbiAgICBTdGFuZG9ydCDDnGJlcnNpY2h0XG4qL1xuLnN0YW5kb3J0Y2VsbCB7XG4gIG1hcmdpbjogMCA3cHggIWltcG9ydGFudDtcbiAgd2lkdGg6IDIyNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5zdGFuZG9ydGRpdiB7XG4gIHBhZGRpbmc6IDEuMnJlbSAwLjdyZW07XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cblxuXG5cblxuLypcbiAgICBWZXJnYWJldmVyZmFocmVuOiBEYXJzdGVsbHVuZyByZXNwb3NuaXZlIFRhYmVsbGVcbiovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAudGlzIHRhYmxlIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnRpcyB0YWJsZSB0ZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cblxuICAudGlzIHRhYmxlIHRkOm50aC1jaGlsZCgzKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAudGlzIHRhYmxlIHRkOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1sYWJlbCk7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDFlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBtYXJnaW46IC0xZW0gMWVtIC0xZW0gLTFlbTtcbiAgfVxuXG4gIC50aXMgdGFibGUgdGQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogYXR0cihkYXRhLWxhYmVsKTsgLyogSW5oYWx0IGRlcyBEYXRhLUF0dHJpYnV0cyBlaW5mw7xnZW4gKi9cbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOyAgICAvKiBCZWkgenUgbGFuZ2VuIEF0dHJpYnV0ZW4gVW1icsO8Y2hlIGVyendpbmdlbiAqL1xuICB9XG59XG5cbi8qXG4gICAgU3RhcnRzZWl0ZTogRmlyZWZveCBmaXggc2Nod2FyemVyIEhpbnRlcmdydW5kXG4qL1xuaDEuaDEtc3RhcnQge1xuICBwYWRkaW5nOiAwcHggMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbnNwYW4uaDEtc3RhcnQge1xuICBwYWRkaW5nOiAwLjNyZW0gMC41cmVtIDAuNDVyZW0gMC40cmVtO1xuICBib3gtZGVjb3JhdGlvbi1icmVhazogY2xvbmU7XG59XG5cbi8qXG4gICAgVGVybWluZSB1bmQgU3RhbmRvcnRlOiBTbGlkZXJcbiovXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLnN5bmNlZC1zbGlkZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnN5bmNlZC1zbGlkZXIgLnNsaWRlci1pdGVtLWFzaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuXG4uc3luY2VkLXNsaWRlciAuc2xpZGVyLWl0ZW0tYXNpZGU6bnRoLWNoaWxkKDEpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5zeW5jZWQtc2xpZGVyIC5zbGlkZXItaW1nIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTcuMTg3NXJlbTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cblxuLyogQWIgaGllciBrYW5uIGRhcyB2ZXJtdXRsaWNoIHJhdXMuIERlciBTdGFuZCBpc3Qgbm9jaCBuaWNodCBvbmxpbmUgKi9cbi5zeW5jZWQtc2xpZGVyIC5zbGlkZXItaXRlbS1hc2lkZSBlbSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbn1cblxuLnN5bmNlZC1zbGlkZXIgLnBhZ2UtaGVyby1zbGlkZXItc2hvdyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLnN5bmNlZC1zbGlkZXIgLnNsaWRlci1pbWc6bnRoLWNoaWxkKDEpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5zeW5jZWQtc2xpZGVyIC5idXR0b24tYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5zeW5jZWQtc2xpZGVyLWRlc2t0b3Age1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyM3B4KSB7XG4gIC5zeW5jZWQtc2xpZGVyLW1vYmlsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uc3luY2VkLXNsaWRlci1kZXNrdG9wIC5zbGlkZXItaXRlbS1hc2lkZS1kZXNrdG9wIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuXG4uc3luY2VkLXNsaWRlci1kZXNrdG9wIC5zbGlkZXItaXRlbS1hc2lkZS1kZXNrdG9wOm50aC1jaGlsZCgxKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uc3luY2VkLXNsaWRlci1kZXNrdG9wIC5zbGlkZXItaW1nIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTcuMTg3NXJlbTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5zeW5jZWQtc2xpZGVyLW1vYmlsZSAuc2xpZGVyLWl0ZW0tYXNpZGUtbW9iaWxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnN5bmNlZC1zbGlkZXItbW9iaWxlIC5zbGlkZXItaXRlbS1hc2lkZS1tb2JpbGU6bnRoLWNoaWxkKDEpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5zeW5jZWQtc2xpZGVyLW1vYmlsZSAuc2xpZGVyLWltZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDE3LjE4NzVyZW07XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4vKlxuICAgIEdlbmVyaXNjaGUgSW5oYWx0ZTogTGlua3MgYWxzIEthY2hlbG5cbiovXG4uYmlubmVubmF2aWdhdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cblxuLypcbiAgICBHZW5lcmlzY2hlIEluaGFsdGU6IFNsaWRlclxuKi9cbi5zbGlja3NsaWRlcl9hYnNhdHogaDIge1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbi5zbGlja3NsaWRlcl9hYnNhdHogLnNsaWNrLXNsaWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIGJhY2tncm91bmQ6ICNmOGY5ZmM7XG4gIHBhZGRpbmc6IDFyZW0gMCAxcmVtIDA7XG59XG5cbi5zbGlja3NsaWRlcl9hYnNhdHogLnNsaWNrIGRpdi5pdGVtIHtcbiAgcGFkZGluZzogMXJlbSAxcmVtIDAgMXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG59XG5cbi5zbGlja3NsaWRlcl9hYnNhdHogLnNsaWNrIGRpdi5pdGVtIGltZyB7XG4gIGhlaWdodDogNDUwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zbGlja3NsaWRlcl9hYnNhdHogLmxpbmstZG93bmxvYWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAgMXB4IDRweCA1cHg7XG4gIHRvcDogLTY1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGxlZnQ6IDE1cHg7XG4gIGJhY2tncm91bmQ6ICNFREVERUM7XG59XG5cbi5zbGlja3NsaWRlcl9hYnNhdHogLml0ZW0tY2FwdGlvbiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNhcHRpb247XG4gIGNhcHRpb24tc2lkZTogYm90dG9tO1xuICBwYWRkaW5nOiAwIDFyZW0gMCAxcmVtO1xuICBtYXJnaW4tdG9wOiAtMS4ycmVtO1xufVxuXG4uc2xpY2tzbGlkZXJfYWJzYXR6IC5zbGljay1hcnJvdyB7XG4gIG1hcmdpbi1ib3R0b206IDAuN3JlbTtcbn1cblxuI3VkX2xpZ2h0Ym94X292ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6MTAwMDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jdWRfbGlnaHRib3hfaW5oYWx0IHtcbiAgdG9wOiA1JTtcbiAgaGVpZ2h0OiA4MCU7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiBGRkZGRkY7XG59XG5cbiN1ZF9saWdodGJveF9pbmhhbHQgaW1nIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMCAwLjVyZW0gMCAwLjVyZW07XG59XG5cbiN1ZF9saWdodGJveF9pbmhhbHQgI3VkX2ltYWdlIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4jdWRfbGlnaHRib3hfaW5oYWx0ICN1ZF9pbWFnZSBwIHtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGRpc3BsYXk6IHRhYmxlLWNhcHRpb247XG4gIGNhcHRpb24tc2lkZTogYm90dG9tO1xufVxuXG4jdWRfbGlnaHRib3hfaW5oYWx0ICN1ZF9pbWFnZSBwLmJ0bkRvd25sb2FkIHtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuXG4jdWRfbGlnaHRib3hfaW5oYWx0ICN1ZF9pbWFnZSAubGluay1kb3dubG9hZC1saWdodGJveCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cblxuI3VkX2xpZ2h0Ym94X2luaGFsdCAuY2FwdGlvbiB7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiAwIDAuNXJlbSAwIDAuNXJlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4jdWRfbGlnaHRib3hfaW5oYWx0IC5saWdodGJveC1jbG9zZSBhLFxuI3VkX2xpZ2h0Ym94X2luaGFsdCAubGlnaHRib3gtY2xvc2UgYTpMSU5LLFxuI3VkX2xpZ2h0Ym94X2luaGFsdCAubGlnaHRib3gtY2xvc2UgYTpWSVNJVEVELFxuI3VkX2xpZ2h0Ym94X2luaGFsdCAubGlnaHRib3gtY2xvc2UgYTpIT1ZFUixcbiN1ZF9saWdodGJveF9pbmhhbHQgLmxpZ2h0Ym94LWNsb3NlIGE6QUNUSVZFIHtcbiAgY29sb3I6ICNGRkY7XG59XG5cbiN1ZF9saWdodGJveF9pbmhhbHQgLmxpbmstZG93bmxvYWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAgMXB4IDRweCA1cHg7XG4gIHRvcDogLTY1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGxlZnQ6IDE1cHg7XG4gIGJhY2tncm91bmQ6ICNFREVERUM7XG59XG5cbiN1ZF9saWdodGJveF9pbmhhbHQgI3VkX25hdiB7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBmb250LXNpemU6IDMwcHg7XG4gIG1hcmdpbjogMCAwIDIwcHggMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuLmNvcHktYXJlYSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luOiAwIDAgMTVweCAxNXB4O1xuICBwYWRkaW5nOiA1cHg7XG4gIGJhY2tncm91bmQ6ICNGRkVBNzY7XG59XG5cbi5jb3B5LWFyZWEgLmNvcHktaW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTBweDtcbiAgbGVmdDogMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cblxuLmNvcHktYXJlYSAuY29weS1idXR0b24ge1xuICBib3gtc2hhZG93OiAwIDAgM3B4ICNBQUE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogI0VBRUFFQTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgcGFkZGluZzogIDEwcHggMTJweCA4cHggMTBweDtcbn1cblxuLmNvcHktYXJlYSAuY29weS11cmwge1xuICBwYWRkaW5nOiAwIDFyZW0gMCAwLjhyZW07XG59XG5cbi8qXG4gICAgQU5GQU5HOiBQc2V1ZG9rbGFzc2VuIGZ1ZXIgSGVhZGxpbmVzIFNFTyBPcHRpbWllcnVuZ1xuKi9cbmgxLmhlYWRsaW5lLWFydGljbGUge1xuICBmb250LXNpemU6IDIuMTg3NXJlbTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMi4xODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG5oMS5oZWFkbGluZS1hcnRpY2xlOmFmdGVyIHtcbiAgY29udGVudDogbm9uZTtcbn1cblxuaDIuaGVhZGxpbmUtYXJ0aWNsZSB7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjlyZW07XG59XG5cbi5oZWFkbGluZS1hcnRpY2xlLXNtYWxsIHtcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctdG9wOiAxLjJyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuODc1cmVtO1xuICBtYXJnaW4tdG9wOiAwcmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLmhlYWRsaW5lLWFydGljbGUtc21hbGwtYmlubmVuIHtcbiAgcGFkZGluZy10b3A6IDQwJTtcbiAgbWFyZ2luLWJvdHRvbTogMi41cmVtO1xufVxuXG4uaGVhZGxpbmUtZm9vdGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMC40cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4uaGVhZGxpbmUtYXJ0aWNsZXR5cCB7XG4gIGZvbnQtc2l6ZTogMy4xMjVyZW07XG4gIG1hcmdpbi10b3A6IC0wLjY1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjRyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5oZWFkbGluZS1hcnRpY2xldHlwOmFmdGVyIHtcbiAgZm9udC1mYW1pbHk6IFwibGFidy1pY29uXCIgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjYyNXJlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG4gIG1hcmdpbi1sZWZ0OiAwLjYyNXJlbTtcbiAgY29udGVudDogXCJcXGU5MjBcIjtcbn1cblxuLmhlYWRsaW5lLWJveCB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luLWJvdHRvbTogMi4xODc1cmVtO1xuICBmb250LXNpemU6IDIuMTg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLyogSGVhZGxpbmUgS2xhcHBlbiAqL1xuLmFjY29yZGlvbi1pdGVtIGgyLmhlYWRsaW5lLWFydGljbGUge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLyogQW5nbGVpY2h1bmcgSGVhZGxpbmUgVWViZXJzY2hyaWZ0ZW4gb2huZSBVbmRlcmxpbmUgaW4gbGluaywgdmlzaXRlZCB1bmQgYWN0aXZlICovXG4uYWNjb3JkaW9uLWl0ZW0gYS5hY2NvcmRpb24tdGl0bGU6aG92ZXJcbntcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5hY2NvcmRpb24taXRlbSBhLmFjY29yZGlvbi10aXRsZTpsaW5rLFxuLmFjY29yZGlvbi1pdGVtIGEuYWNjb3JkaW9uLXRpdGxlOnZpc2l0ZWQsXG4uYWNjb3JkaW9uLWl0ZW0gYS5hY2NvcmRpb24tdGl0bGU6YWN0aXZlXG57XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uY2FyZC1uZXdzIGgzIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIHBhZGRpbmctdG9wOiAxLjc1cmVtO1xufVxuXG4uY2FyZC1sb2NhdGlvbiBoMyB7XG4gIG1hcmdpbi10b3A6IDByZW07XG4gIG1hcmdpbi1ib3R0b206IDByZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLmNhcmQtbG9jYXRpb24gaDMubm9kYXRlIHtcbiAgbWFyZ2luLXRvcDogMi42cmVtO1xufVxuXG4uYWNjb3JkaW9uLXNwZWNpYWwgaDMge1xuICBmb250LXNpemU6IDIuMTg3NXJlbTtcbiAgbWFyZ2luLXRvcDogMHJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMi4xODc1cmVtO1xufVxuXG4uYWNjb3JkaW9uLXNwZWNpYWwgaDUge1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbi5hY2NvcmRpb24tc3BlY2lhbCAuaGVhZGxpbmUtdGhlbWVzIHtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5oMS5zdGFydC1oZWFkbGluZSB7XG4gIGZvbnQtc2l6ZTogMi4xODc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjE4NzVyZW07XG59XG5cbmgxLnN0YXJ0LWhlYWRsaW5lOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuaDIuc3RhcnQtaGVhZGxpbmUge1xuICBmb250LXNpemU6IDMuMTI1cmVtO1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzMHB4O1xufVxuXG5oMi5zdGFydC1oZWFkbGluZSBzcGFuLnN0YXJ0LWhlYWRsaW5lLXRleHQge1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgbGluZS1oZWlnaHQ6IDQuOXJlbTtcbiAgcGFkZGluZzogMC4xcmVtIDAuNXJlbSAwLjI1cmVtIDAuNHJlbTtcbiAgLXdlYmtpdC1ib3gtZGVjb3JhdGlvbi1icmVhazogY2xvbmU7XG4gIGJveC1kZWNvcmF0aW9uLWJyZWFrOiBjbG9uZTtcbiAgYm94LXNoYWRvdzogLTEwcHggMCAwIDAgYmxhY2ssIDEwcHggMCAwIDAgYmxhY2s7XG59XG5cbmgyLnN0YXJ0LWhlYWRsaW5lIHNwYW4uc3RhcnQtaGVhZGxpbmUtdGV4dDphZnRlciB7XG4gIGZvbnQtZmFtaWx5OiBcImxhYnctaWNvblwiICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB0b3A6IC0xMHB4O1xuICBzcGVhazogbm9uZTtcbiAgY29udGVudDogXCJcXGU5MjBcIjtcbn1cblxuLnNtYWxsIHtcbiAgZm9udC1zaXplOiAxLjFyZW0gIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwLjZyZW07XG59XG5cbmgzLmNhcmQtaGVhZGxpbmUge1xuICBmb250LXNpemU6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgcGFkZGluZy10b3A6IDEuNzVyZW07XG59XG5cbmgzLnRlcm1pbmUtaGVhZGxpbmUge1xuICBmb250LXNpemU6IDFyZW07XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuaDMuYm94aGVhZGxpbmUge1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbmRpdi5zaG93bGluayBoMy5oZWFkbGluZS1hcnRpY2xlIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuaDQuZmlsdGVyLWJveCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC45Mzc1cmVtO1xufVxuXG5saS5pdGVtLW1hIGRpdi5hY2NvcmRpb24tY29udGVudCB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgaDIuc3RhcnQtaGVhZGxpbmUge1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICB9XG5cbiAgaDIuc3RhcnQtaGVhZGxpbmUgc3Bhbi5zdGFydC1oZWFkbGluZS10ZXh0IHtcbiAgICBsaW5lLWhlaWdodDogMi43cmVtICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogLTdweCAwIDAgMCBibGFjaywgN3B4IDAgMCAwIGJsYWNrO1xuICB9XG5cbiAgaDIuc3RhcnQtaGVhZGxpbmUgc3Bhbi5zdGFydC1oZWFkbGluZS10ZXh0OmFmdGVyIHtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICB0b3A6IC02cHg7XG4gIH1cbn1cbi8qXG4gICAgRU5ERTogUHNldWRva2xhc3NlbiBmdWVyIEhlYWRsaW5lcyBiZWkgU0VPIE9wdGltaWVydW5nXG4qL1xuXG4vLyBBbnBhc3N1bmcgU3VibWVuw7wgbmF2aWdhdGlvblxuLm5hdi1kZXNrdG9wIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgbWF4LXdpZHRoOiAyMy4ycmVtO1xufVxuXG4vLyBBbnBhc3N1bmcgRm9vdGVyXG4jZm9vdGVyIC5mb290ZXItbWVudSAubWVudSBsaSBhIHtcbiAgbGluZS1oZWlnaHQ6IDEuMXJlbTtcbn0iLCIvKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4gKiBWZXJzaW9uIDYuNi4zXG4gKiBodHRwczovL2dldC5mb3VuZGF0aW9uXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuXG4vLyAtLS0gRGVwZW5kZW5jaWVzIC0tLVxuQGltcG9ydCAndmVuZG9yL25vcm1hbGl6ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvbWlzc2luZy1kZXBlbmRlbmNpZXMnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL3RydWUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvY29udGFpbic7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9wdXJnZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZW1vdmUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVwbGFjZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy90by1saXN0JztcblxuLy8gLS0tIFNldHRpbmdzIC0tLVxuLy8gaW1wb3J0IHlvdXIgb3duIGBzZXR0aW5nc2AgaGVyZSBvclxuLy8gaW1wb3J0IGFuZCBtb2RpZnkgdGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhyb3VnaFxuLy8gQGltcG9ydCAnc2V0dGluZ3Mvc2V0dGluZ3MnO1xuXG4vLyAtLS0gQ29tcG9uZW50cyAtLS1cbi8vIFV0aWxpdGllc1xuQGltcG9ydCAndXRpbC91dGlsJztcbi8vIEdsb2JhbCBzdHlsZXNcbkBpbXBvcnQgJ2dsb2JhbCc7XG5AaW1wb3J0ICdmb3Jtcy9mb3Jtcyc7XG5AaW1wb3J0ICd0eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuXG4vLyBHcmlkc1xuQGltcG9ydCAnZ3JpZC9ncmlkJztcbkBpbXBvcnQgJ3h5LWdyaWQveHktZ3JpZCc7XG4vLyBHZW5lcmljIGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2xvc2UtYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbGFiZWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zbGlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zd2l0Y2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJsZSc7XG4vLyBCYXNpYyBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL2JhZGdlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYWxsb3V0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FyZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFnaW5hdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2x0aXAnO1xuXG4vLyBDb250YWluZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLW9iamVjdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL29yYml0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1lbWJlZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90aHVtYm5haWwnO1xuLy8gTWVudS1iYXNlZCBjb250YWluZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51LWljb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2RyaWxsZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duLW1lbnUnO1xuXG4vLyBMYXlvdXQgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9vZmYtY2FudmFzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmV2ZWFsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3RpY2t5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGl0bGUtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9wLWJhcic7XG5cbi8vIEhlbHBlcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxvYXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbGV4JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdwcm90b3R5cGUvcHJvdG90eXBlJztcblxuXG5AbWl4aW4gZm91bmRhdGlvbi1ldmVyeXRoaW5nKFxuICAkZmxleDogdHJ1ZSxcbiAgJHByb3RvdHlwZTogZmFsc2UsXG4gICR4eS1ncmlkOiAkeHktZ3JpZFxuKSB7XG4gIEBpZiAkZmxleCB7XG4gICAgJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICBAaWYgJHh5LWdyaWQge1xuICAgICR4eS1ncmlkOiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICAvLyBHbG9iYWwgc3R5bGVzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuXG4gIC8vIEdyaWRzXG4gIEBpZiBub3QgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICR4eS1ncmlkIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgICB9XG4gIH1cblxuICAvLyBHZW5lcmljIGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbiAgLy8gQmFzaWMgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG5cbiAgLy8gQ29udGFpbmVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbiAgLy8gTWVudS1iYXNlZCBjb250YWluZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcblxuICAvLyBMYXlvdXQgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcblxuICAvLyBIZWxwZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcztcbiAgQGlmICRmbGV4IHsgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7IH1cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG4gIEBpZiAkcHJvdG90eXBlIHsgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtY2xhc3NlczsgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIEhpRFBJIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzIGZvciByZXNvbHV0aW9ucy5cbi8vLyBWYWx1ZXMgbXVzdCByZXByZXNlbnQgdGhlIGRldmljZSBwaXhlbHMgLyB3ZWIgcGl4ZWxzIHJhdGlvbiBhbmQgYmUgdW5pdGxlc3Mgb3IgaW4gRFBQWC5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50cy1oaWRwaTogKFxuICBoaWRwaS0xOiAxLFxuICBoaWRwaS0xLTU6IDEuNSxcbiAgaGlkcGktMjogMixcbiAgcmV0aW5hOiAyLFxuICBoaWRwaS0zOiAzXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxhcmdlc3QgbmFtZWQgYnJlYWtwb2ludCBpbiB3aGljaCB0byBpbmNsdWRlIHByaW50IGFzIGEgbWVkaWEgdHlwZVxuLy8vIEB0eXBlIEtleXdvcmRcbiRwcmludC1icmVha3BvaW50OiBsYXJnZSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG4kLXpmLWJyZWFrcG9pbnRzLWtleXM6IG1hcC10by1saXN0KCRicmVha3BvaW50cywgJ2tleXMnKTtcblxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xuICBAZXJyb3IgJ1RoZSBmaXJzdCBrZXkgaW4gdGhlICRicmVha3BvaW50cyBtYXAgbXVzdCBoYXZlIGEgdmFsdWUgb2YgXCIwXCIuJztcbn1cbkBlbHNlIHtcbiAgJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IG50aChtYXAta2V5cygkYnJlYWtwb2ludHMpLCAxKTtcbn1cblxuLy8vIEFsbCBvZiB0aGUgbmFtZXMgaW4gdGhpcyBsaXN0IHdpbGwgYmUgb3V0cHV0IGFzIGNsYXNzZXMgaW4geW91ciBDU1MsIGxpa2UgYC5zbWFsbC0xMmAsIGAubWVkaXVtLTZgLCBhbmQgc28gb24uIEVhY2ggdmFsdWUgaW4gdGhpcyBsaXN0IG11c3QgYWxzbyBiZSBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLlxuLy8vIEB0eXBlIExpc3RcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgc3RyaW5nIG1hdGNoaW5nIHRoZSBpbnB1dCB2YWx1ZS4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBzZWUgd2hhdCB0aGUgcG9zc2libGUgaW5wdXRzIGFyZS5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWwgW3NtYWxsXSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gIC8vIFdlYiBzdGFuZGFyZCBQaXhlbHMgcGVyIGluY2guICgxZGRweCAvICRzdGQtd2ViLWRwaSkgPSAxZHBpXG4gIC8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXZhbHVlcy0zLyNhYnNvbHV0ZS1sZW5ndGhzXG4gICRzdGQtd2ViLWRwaTogOTY7XG5cbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBvZiB0aGUgZm9sbG93aW5nIGJyZWFrcG9pbnRcbiAgJGJwLW5leHQ6IG51bGw7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWluOiBudWxsO1xuICAvLyBWYWx1ZSBmb3IgbWluLXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogbnVsbDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIElmIG5hbWVkLCBuYW1lIG9mIHRoZSBicmVha3BvaW50XG4gICRuYW1lOiBudWxsO1xuICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBhIEhpRFBJIGJyZWFrcG9pbnRcbiAgJGhpZHBpOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cblxuICAvLyBJZiBhIGJyZWFrcG9pbnQgbmFtZSBpcyBnaXZlbiwgZ2V0IGl0cyB2YWx1ZSBmcm9tIHRoZSAkYnJlYWtwb2ludHMvJGJyZWFrcG9pbnRzLWhpZHBpIG1hcC5cbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICAkbmFtZTogJGJwO1xuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgICAgJGJwLW5leHQ6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICB9XG4gICAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLWhpZHBpLCAkYnApIHtcbiAgICAgICRuYW1lOiAkYnA7XG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLWhpZHBpLCAkbmFtZSk7XG4gICAgICAkYnAtbmV4dDogLXpmLW1hcC1uZXh0LW51bWJlcigkYnJlYWtwb2ludHMtaGlkcGksICRicCk7XG4gICAgICAkaGlkcGk6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgYCRicmVha3BvaW50c2Agb3IgYCRicmVha3BvaW50cy1oaWRwaWAgc2V0dGluZy4nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBub3QgJG5hbWUgYW5kICRkaXIgPT0gJ29ubHknIHtcbiAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gYG9ubHlgIHJhbmdlLic7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gT25seSAnb25seScgYW5kICd1cCcgaGF2ZSBhIG1pbiBsaW1pdC5cbiAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ3VwJyB7XG4gICAgJGJwLW1pbjogaWYoJGhpZHBpLCBzdHJpcC11bml0KCRicCksIC16Zi1icC10by1lbSgkYnApKTtcbiAgfVxuICAvLyBPbmx5ICdvbmx5JyBhbmQgJ2Rvd24nIGhhdmUgYSBtYXggbGltaXQuXG4gIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgYSB2YWx1ZSwgdXNlIGl0IGFzIG1heCBsaW1pdC5cbiAgICBAaWYgbm90ICRuYW1lIHtcbiAgICAgICRicC1tYXg6IGlmKCRoaWRwaSwgc3RyaXAtdW5pdCgkYnApLCAtemYtYnAtdG8tZW0oJGJwKSk7XG4gICAgfVxuICAgIC8vIElmIHRoZSBicmVha3BvaW50IGlzIG5hbWVkLCB0aGUgbWF4IGxpbWl0IGlzIHRoZSBmb2xsb3dpbmcgYnJlYWtwb2ludCAtIDFweC5cbiAgICBAZWxzZSBpZiAkYnAtbmV4dCB7XG4gICAgICAvLyBNYXggdmFsdWUgaXMgMC4ycHggdW5kZXIgdGhlIG5leHQgYnJlYWtwb2ludCAoMC4wMiAvIDE2ID0gMC4wMDEyNSkuXG4gICAgICAvLyBVc2UgYSBwcmVjaXNpb24gdW5kZXIgMXB4IHRvIHN1cHBvcnQgYnJvd3NlciB6b29tLCBidXQgbm90IHRvIGxvdyB0byBhdm9pZCByb3VuZGluZy5cbiAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMTMxM1xuICAgICAgJGJwLW1heDogaWYoJGhpZHBpLCAkYnAtbmV4dCAtICgxLyRzdGQtd2ViLWRwaSksIC16Zi1icC10by1lbSgkYnAtbmV4dCkgLSAwLjAwMTI1KTtcbiAgICB9XG4gIH1cblxuICAvLyBHZW5lcmF0ZSB0aGUgbWVkaWEgcXVlcnkgc3RyaW5nIGZyb20gbWluIGFuZCBtYXggbGltaXRzLlxuICBAaWYgJGhpZHBpIHtcbiAgICAvLyBHZW5lcmF0ZSB2YWx1ZXMgaW4gRFBJIGluc3RlYWQgb2YgRFBQWCBmb3IgYW4gSUU5LTExL09wZXJhIG1pbmkgY29tcGF0aWJpbGl0eS5cbiAgICAvLyBTZWUgaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1jc3MtbWVkaWEtcmVzb2x1dGlvblxuICAgICRicC1taW4tZHBpOiBpZigkYnAtbWluLCAkYnAtbWluICogJHN0ZC13ZWItZHBpICogMWRwaSwgJGJwLW1pbik7XG4gICAgJGJwLW1heC1kcGk6IGlmKCRicC1tYXgsICRicC1tYXggKiAkc3RkLXdlYi1kcGkgKiAxZHBpLCAkYnAtbWF4KTtcbiAgICBAcmV0dXJuIHpmLXN0ci1qb2luKFxuICAgICAgLXpmLWJwLWpvaW4oJGJwLW1pbiwgJGJwLW1heCwgJy13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbycsICctd2Via2l0LW1heC1kZXZpY2UtcGl4ZWwtcmF0aW8nKSxcbiAgICAgIC16Zi1icC1qb2luKCRicC1taW4tZHBpLCAkYnAtbWF4LWRwaSwgJ21pbi1yZXNvbHV0aW9uJywgJ21heC1yZXNvbHV0aW9uJyksXG4gICAgICAnLCAnKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAtemYtYnAtam9pbigkYnAtbWluLCAkYnAtbWF4KTtcbiAgfVxufVxuXG4vLy8gV3JhcHMgYSBtZWRpYSBxdWVyeSBhcm91bmQgdGhlIGNvbnRlbnQgeW91IHB1dCBpbnNpZGUgdGhlIG1peGluLiBUaGlzIG1peGluIGFjY2VwdHMgYSBudW1iZXIgb2YgdmFsdWVzOlxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIGFuZCBgJGJyZWFrcG9pbnRzLWhpZHBpYCBtYXBzLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gSWYgbXVsdGlwbGUgdmFsdWVzIGFyZSBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGdlbmVyYXRlIGEgbWVkaWEgcXVlcnkgZm9yIGVhY2ggb2YgdGhlbSBhcyBkZXNjcmliZWQgYWJvdmUuXG4vLy8gU2luY2UgdGhlIGNvbnRlbnQgaXMgZHVwbGljYXRlZCBmb3IgZWFjaCBicmVha3BvaW50LCB0aGlzIG1peGluIHNob3VsZCBvbmx5IGJlIHVzZWQgd2l0aCBwcm9wZXJ0aWVzIHRoYXRcbi8vLyBjaGFuZ2UgYWNyb3NzIGJyZWFrcG9pbnRzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlcy4uLiAtIEJyZWFrcG9pbnQgbmFtZSBvciBweC9yZW0vZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vL1xuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlcy4uLikge1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkdmFsdWVzKSB7XG4gICAgJHZhbHVlOiBudGgoJHZhbHVlcywgJGkpO1xuICAgICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgbnRoKCR2YWx1ZSwgMSkpO1xuICAgICRwYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHByaW50LWJyZWFrcG9pbnQpO1xuICAgIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICAgJGRpcjogaWYobGVuZ3RoKCR2YWx1ZSkgPiAxLCBudGgoJHZhbHVlLCAyKSwgdXApO1xuXG4gICAgJG9sZC16Zi1zaXplOiBudWxsO1xuXG4gICAgLy8gTWFrZSBicmVha3BvaW50IHNpemUgYXZhaWxhYmxlIGFzIGEgdmFyaWFibGVcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gICAgfVxuICAgICQtemYtc2l6ZTogbnRoKCR2YWx1ZSwgMSkgIWdsb2JhbDsgLy8gZ2V0IHRoZSBmaXJzdCB2YWx1ZSB0byBhY2NvdW50IGZvciBgb25seWAgYW5kIGBkb3duYCBrZXl3b3Jkc1xuXG4gICAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICAgIEBpZiAkc3RyID09ICcnIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gICAgQGVsc2Uge1xuICAgICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgICAgLy8gZ2VuZXJhdGUgcHJpbnQgaWYgdGhlIGJyZWFrcG9pbnQgYWZmZWN0cyB0aGUgcHJpbnQtYnJlYWtwb2ludCAob3Igc21hbGxlcikuXG4gICAgICAvLyBUaGlzIG1lYW5zIHRoZSBjdXJyZW50IGNvbmRpdGlvbiBvbmx5IG5lZWRzIHRvIGJlIGV4dGVuZGVkIHNvICdkb3duJyBhbHdheXMgZ2VuZXJhdGVzIHByaW50LlxuICAgICAgQGlmICRicCAhPSBudWxsIGFuZCAoJGJwIDw9ICRwYnAgb3IgJGRpciA9PSBkb3duKSB7XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH1cbn1cblxuLy8vIENvbnZlcnRzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IG51bWJlciBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRudW1iZXIgLSBOdW1iZXIgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSBudW1iZXIgZm9sbG93aW5nIGAkbnVtYmVyYCwgaWYgYCRudW1iZXJgIHdhcyBmb3VuZC4gSWYgYCRudW1iZXJgIHdhcyBub3QgZm91bmQsIG9yIGAkbnVtYmVyYCB3YXMgdGhlIGJpZ2dlc3QgbnVtYmVyIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dC1udW1iZXIoJG1hcCwgJG51bWJlcikge1xuXG4gICRuZXh0X251bWJlcjogbnVsbDtcblxuICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgQGlmIHR5cGUtb2YoJHYpID09ICdudW1iZXInIGFuZCAkdiA+ICRudW1iZXIgYW5kICgkbmV4dF9udW1iZXIgPT0gbnVsbCBvciAkdiA8ICRuZXh0X251bWJlcikge1xuICAgICAgJG5leHRfbnVtYmVyOiAkdjtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRuZXh0X251bWJlcjtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleSAtIEtleSB0byB1c2UgYXMgbGFzdCBicmVha3BvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJGtleSkge1xuICAkbGlzdDogKCk7XG4gICRmb3VuZF9rZXk6IGZhbHNlO1xuXG4gIEBlYWNoICRuYW1lIGluICQtemYtYnJlYWtwb2ludHMta2V5cyB7XG4gICAgQGlmICgkbmFtZSA9PSAka2V5KSB7XG4gICAgICAkZm91bmRfa2V5OiB0cnVlO1xuICAgIH1cbiAgICBAaWYgbm90ICRmb3VuZF9rZXkge1xuICAgICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJG5hbWUpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRsaXN0O1xufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCAtIGEgbmFtZWQgb3Igbm9uLW5hbWVkIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAkbGFzdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQ7XG4gICRmb3VuZDogZmFsc2U7XG5cbiAgJHZhbHVlOiB1bml0bGVzcy1jYWxjKCRicmVha3BvaW50LCAxcHgpO1xuICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgQGlmIHVuaXRsZXNzLWNhbGMoJHZhbCkgPiAkdmFsdWUge1xuICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJGxhc3Q6ICRrZXk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbGFzdDtcbn1cblxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXQgcmVnYXJkbGVzcyBvZiBgJHZhbHVlYC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gUmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcbiAgLy8gSWYgdGhlIGdpdmVuIG1hcCBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0XG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICRtYXA7XG4gIH1cblxuXG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAgICR2YWx1ZTogLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkdmFsdWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBpbiB0aGUgbG9jYWwgY29uZmlnIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkbWFwLCAkdmFsdWUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJHZhbHVlKTtcbiAgfVxuICAvLyBPdGhlcndpc2UsIGZpbmQgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgYW5kIHJldHVybiB0aGF0IHZhbHVlXG4gIEBlbHNlIHtcbiAgICAkYW5jaG9yOiBudWxsO1xuICAgICRmb3VuZDogZmFsc2U7XG5cbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KSB7XG4gICAgICAgICAgJGFuY2hvcjogJGtleTtcbiAgICAgICAgfVxuICAgICAgICBAaWYgJGtleSA9PSAkdmFsdWUge1xuICAgICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkYW5jaG9yKTtcbiAgfVxufVxuXG4vLy8gUmV0dXJuIHRoZSBiZXN0IGJyZWFrcG9pbnQgdG8gdXNlIGFjY29yZGluZyB0byB0aGUgY2FsbGluZyBjb250ZXh0LiBJdCByZXR1cm5zIGluIG9yZGVyOlxuLy8vIDEuIHRoZSBnaXZlbiBgJHZhbHVlYCBhcmd1bWVudCBpZiBpdCBpcyBub3QgbnVsbC5cbi8vLyAyLiB0aGUgZ2xvYmFsIGJyZWFrcG9pbnQgY29udGV4dCBgJC16Zi1zaXplYCBpZiBpdCBpcyBub3QgbnVsbCAobGlrZSBpZiBjYWxsZWQgaW5zaWRlIHRoZW4gYGJyZWFrcG9pbnQoKWAgbWl4aW4pXG4vLy8gMy4gdGhlIGdpdmVuIGAkZGVmYXVsdGAgYXJndW1lbnQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSBbbnVsbF0gLSBCcmVha3BvaW50IHRvIHVzZSBpbiBwcmlvcml0eSBpZiBub24tbnVsbC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkZWZhdWx0IFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGJ5IGRlZmF1bHQgaWYgbm8gb3RoZXIgdmFsdWUgY2FuIGJlIHVzZWQuXG4vLy9cbi8vLyBAcmV0dXJuIHtLZXl3b3JkfSBUaGUgcmVzb2x2ZWQgYnJlYWtwb2ludC5cbkBmdW5jdGlvbiAtemYtY3VycmVudC1icmVha3BvaW50KCR2YWx1ZTogbnVsbCwgJGRlZmF1bHQ6IG51bGwpIHtcbiAgQGlmICgkdmFsdWUgIT0gbnVsbCkge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIEBlbHNlIGlmICh2YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIGFuZCB0eXBlLW9mKCQtemYtc2l6ZSkgIT0gJ251bWJlcicpIGFuZCAkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgQHJldHVybiAkLXpmLXNpemU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJGRlZmF1bHQ7XG4gIH1cbn1cblxuLy8vIFJldHVybiBtZWRpYSBxdWVyeSBzdHJpbmcgZnJvbSB0aGUgZ2l2ZW4gbWluIGFuZC9vciBtYXggbGltaXRzLlxuLy8vIElmIGEgbGltaXQgaXMgZXF1YWwgdG8gYG51bGxgIG9yIGAwYCwgaXQgaXMgaWdub3JlZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWluIFswXSAtIE1pbiBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCBbMF0gLSBNYXggbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtaW4tbmFtZSBbJ21pbi13aWR0aCddIC0gTmFtZSBvZiB0aGUgbWluIG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGVsaW1pdGVyIFsnbWF4LXdpZHRoJ10gLSBOYW1lIG9mIHRoZSBtYXggbWVkaWEgcXVlcnkgbGltaXQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBNZWRpYSBRdWVyeSBzdHJpbmcuXG5AZnVuY3Rpb24gLXpmLWJwLWpvaW4oXG4gICRtaW46IDAsXG4gICRtYXg6IDAsXG4gICRtaW4tbmFtZTogJ21pbi13aWR0aCcsXG4gICRtYXgtbmFtZTogJ21heC13aWR0aCdcbikge1xuICBAcmV0dXJuIHpmLXN0ci1qb2luKFxuICAgIGlmKCRtaW4gYW5kICRtaW4gPiAwLCAnKCN7JG1pbi1uYW1lfTogI3skbWlufSknLCBudWxsKSxcbiAgICBpZigkbWF4IGFuZCAkbWF4ID4gMCwgJygjeyRtYXgtbmFtZX06ICN7JG1heH0pJywgbnVsbCksXG4gICAgJyBhbmQgJyk7XG59XG5cbiRzbWFsbC11cDogJyc7XG4kc21hbGwtb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbiRtZWRpdW0tdXA6ICcnO1xuJG1lZGl1bS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG4kbGFyZ2UtdXA6ICcnO1xuJGxhcmdlLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG4keGxhcmdlLXVwOiAnJztcbiR4bGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xuICAkeGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2UpfScpO1xuICAkeGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX0nKTtcbn1cblxuJHh4bGFyZ2UtdXA6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCByZXZlYWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2lkdGggb2YgYSBtb2RhbCwgd2l0aCBubyBjbGFzcyBhcHBsaWVkLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC13aWR0aDogNjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1heGltdW0gd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gei1pbmRleCBmb3IgbW9kYWxzLiBUaGUgb3ZlcmxheSB1c2VzIHRoaXMgdmFsdWUsIHdoaWxlIHRoZSBtb2RhbCBpdHNlbGYgdXNlcyB0aGlzIHZhbHVlIHBsdXMgb25lLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC16aW5kZXg6IDEwMDUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIG1vZGFsIG92ZXJsYXlzLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNDUpICFkZWZhdWx0O1xuXG5cbi8vIFBsYWNlaG9sZGVyIHNlbGVjdG9yIGZvciBtZWRpdW0tYW5kLXVwIG1vZGFsc1xuLy8gUHJldmVudHMgZHVwbGljYXRlIENTUyB3aGVuIGRlZmluaW5nIG11bHRpcGxlIFJldmVhbCBzaXplc1xuLy8gVGhpcyBzaG91bGQgYmUgaW4gdGhlIHNhbWUgYnJlYWtwb2ludCB0aGVuIGBAbWl4aW4gcmV2ZWFsLW1vZGFsLXdpZHRoYFxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgJXJldmVhbC1jZW50ZXJlZCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxufVxuXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtb2RhbCBvdmVybGF5LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBvdmVybGF5LlxuQG1peGluIHJldmVhbC1vdmVybGF5KCRiYWNrZ3JvdW5kOiAkcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZCkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXg7XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciBhIG1vZGFsLlxuQG1peGluIHJldmVhbC1tb2RhbC1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleCArIDE7XG4gIC8vIFdvcmthcm91bmQgYW5kcm9pZCBicm93c2VyIHotaW5kZXggYnVnXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcmV2ZWFsLXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkcmV2ZWFsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHJldmVhbC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRyZXZlYWwtYmFja2dyb3VuZDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgcm93cyBkb24ndCBoYXZlIGEgbWluLXdpZHRoIG9uIHRoZW1cbiAgLmNvbHVtbiB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gU3RyaXAgbWFyZ2lucyBmcm9tIHRoZSBsYXN0IGl0ZW0gaW4gdGhlIG1vZGFsXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkanVzdHMgdGhlIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBtb2RhbC4gR2VuZXJhbGx5IGEgcGVyY2VudGFnZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heC13aWR0aCBbJHJldmVhbC1tYXgtd2lkdGhdIC0gTWF4aW11bSB3aWR0aCBvZiB0aGUgbW9kYWwuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLXdpZHRoKFxuICAkd2lkdGg6ICRyZXZlYWwtd2lkdGgsXG4gICRtYXgtd2lkdGg6ICRyZXZlYWwtbWF4LXdpZHRoXG4pIHtcbiAgLy8gRXh0ZW5kcyBtdXN0IGJlIG1hZGUgb3V0c2lkZSBvZiBicmVha3BvaW50cyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5ld2VyIFNhc3MgdmVyc2lvbnMgKGxpYnNhc3MgdjMuNSlcbiAgQGV4dGVuZCAlcmV2ZWFsLWNlbnRlcmVkO1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC1zY3JlZW4gbW9kYWwsIHdoaWNoIHN0cmV0Y2hlcyB0aGUgZnVsbCB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSB3aW5kb3cuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW4ge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBtYXJnaW4tbGVmdDogMDtcblxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJldmVhbCB7XG5cbiAgLy8vIERpc2FibGVzIHRoZSBzY3JvbGwgd2hlbiBSZXZlYWwgaXMgc2hvd24gdG8gcHJldmVudCB0aGUgYmFja2dyb3VuZCBmcm9tIHNoaWZ0aW5nXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAmLnpmLWhhcy1zY3JvbGwge1xuICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIH1cblxuICAgIGJvZHkgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAvLyBPdmVybGF5XG4gIC5yZXZlYWwtb3ZlcmxheSB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW92ZXJsYXk7XG4gIH1cblxuICAvLyBNb2RhbCBjb250YWluZXJcbiAgLnJldmVhbCB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2U7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKCRyZXZlYWwtd2lkdGgpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDEwMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgLy8gUmVtb3ZlIHBhZGRpbmdcbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLy8gU2l6aW5nIGNsYXNzZXNcbiAgICAmLnRpbnkgIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDMwJSk7IH1cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDUwJSk7IH1cbiAgICAmLmxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDkwJSk7IH1cblxuICAgIC8vIEZ1bGwtc2NyZWVuIG1vZGVcbiAgICAmLmZ1bGwge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICAmLndpdGhvdXQtb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gZm91bmRhdGlvbi1ub3JtYWxpemUoKSB7XG4gIC8qISBub3JtYWxpemUuY3NzIHY4LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuICAvLyBEb2N1bWVudFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG5cbiAgaHRtbCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8vIDFcbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8vIDJcbiAgfVxuXG4gIC8vIFNlY3Rpb25zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgLy8gYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cblxuICBoMSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbWFyZ2luOiAwLjY3ZW0gMDtcbiAgfVxuXG4gIC8vIEdyb3VwaW5nIGNvbnRlbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAvLyAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cblxuICBociB7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8vIDFcbiAgICBoZWlnaHQ6IDA7IC8vIDFcbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLy8gMlxuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIHByZSB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvLyAxXG4gICAgZm9udC1zaXplOiAxZW07IC8vIDJcbiAgfVxuXG4gIC8vIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuXG4gIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLy8gMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAgLy8gMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cblxuICBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLy8gMVxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvLyAyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvLyAyXG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuXG4gIGIsXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cblxuICBjb2RlLFxuICBrYmQsXG4gIHNhbXAge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMWVtOyAvLyAyXG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cblxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiA4MCU7XG4gIH1cblxuICAvLyBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAgLy8gYWxsIGJyb3dzZXJzLlxuXG4gIHN1YixcbiAgc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgc3ViIHtcbiAgICBib3R0b206IC0wLjI1ZW07XG4gIH1cblxuICBzdXAge1xuICAgIHRvcDogLTAuNWVtO1xuICB9XG5cbiAgLy8gRW1iZWRkZWQgY29udGVudFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG5cbiAgaW1nIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIH1cblxuICAvLyBGb3Jtc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG5cbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvLyAxXG4gICAgZm9udC1zaXplOiAxMDAlOyAvLyAxXG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8vIDFcbiAgICBtYXJnaW46IDA7IC8vIDJcbiAgfVxuXG4gIC8vIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICAvLyAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuXG4gIGJ1dHRvbixcbiAgaW5wdXQgeyAvLyAxXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAgLy8gMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuXG4gIGJ1dHRvbixcbiAgc2VsZWN0IHsgLy8gMVxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cblxuICBidXR0b24sXG4gIFt0eXBlPVwiYnV0dG9uXCJdLFxuICBbdHlwZT1cInJlc2V0XCJdLFxuICBbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuXG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cblxuICBidXR0b246LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuXG4gIGZpZWxkc2V0IHtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gIC8vIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAgLy8gICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgbGVnZW5kIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyAxXG4gICAgY29sb3I6IGluaGVyaXQ7IC8vIDJcbiAgICBkaXNwbGF5OiB0YWJsZTsgLy8gMVxuICAgIG1heC13aWR0aDogMTAwJTsgLy8gMVxuICAgIHBhZGRpbmc6IDA7IC8vIDNcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvLyAxXG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuXG4gIHByb2dyZXNzIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cblxuICB0ZXh0YXJlYSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAvLyAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAgLy8gMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuXG4gIFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgICBwYWRkaW5nOiAwOyAvLyAyXG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG5cbiAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG5cbiAgW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyAxXG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8vIDJcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cblxuICBbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgLy8gMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuXG4gIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvLyAxXG4gICAgZm9udDogaW5oZXJpdDsgLy8gMlxuICB9XG5cbiAgLy8gSW50ZXJhY3RpdmVcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuXG4gIGRldGFpbHMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIHN1bW1hcnkge1xuICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgfVxuXG4gIC8vIE1pc2NcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG5cbiAgdGVtcGxhdGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cblxuICBbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vLyBAdHlwZSBNYXBcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwYWRkaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcG9zaXRpb25pbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcG9zaXRpb246IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIENhbiBiZSBvdmVyd3JpdHRlbiBhdCBpbmRpdmlkdWFsIG1lbnUgY29tcG9uZW50IGxldmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gTmVzdGVkIG1hcmdpbiBmb3Igc3VibWVudS5cbiRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIENTUy4gQ2FuIGJlIGVpdGhlciBgbHRyYCBvciBgcnRsYC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggZm9yIGNvbXBvbmVudHMgdGhhdCBzdXBwb3J0IGl0LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZWQgcmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcHJvdG90eXBlcyBpZiBhcHBsaWNhYmxlXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQnV0dG9uIGN1cnNvcidzIHZhbHVlLCBgYXV0b2AgYnkgZGVmYXVsdFxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtYnV0dG9uLWN1cnNvcjogYXV0byAhZGVmYXVsdDtcblxuQGlmIG5vdCBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gIEBlcnJvciAnSW4gJGZvdW5kYXRpb24tcGFsZXR0ZSwgeW91IG11c3QgaGF2ZSBhIGNvbG9yIG5hbWVkIFwicHJpbWFyeVwiLic7XG59XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxuJGdsb2JhbC1sZWZ0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgcmlnaHQsIGxlZnQpO1xuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGUgdGhhdCBjb250YWlucyB0aGUgZmxleCBqdXN0aWZ5aW5nIG9wdGlvbnNcbiQtemYtZmxleC1qdXN0aWZ5OiAtemYtZmxleC1qdXN0aWZ5KCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24pO1xuXG4vLy8gR2xvYmFsIHRvbGVyYW5jZSBmb3IgY29sb3IgcGljayBjb250cmFzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2U6IDAgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciBjb2xvcnNcbkBpbmNsdWRlIGFkZC1mb3VuZGF0aW9uLWNvbG9ycztcblxuQG1peGluIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcyB7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbm9ybWFsaXplO1xuXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuICAuZm91bmRhdGlvbi1tcSB7XG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xuICB9XG5cbiAgaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6ICRnbG9iYWwtYnV0dG9uLWN1cnNvcjtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIE1ha2UgcmVzZXQgaW5oZXJpdCBmb250LWZhbWlseSBpbnN0ZWFkIG9mIHNldHRpbmdzIHNhbnMtc2VyaWZcbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLy8gIEZvdW5kYXRpb24gZm9yIFNpdGVzIFNldHRpbmdzXHJcbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vL1xyXG4vLyAgVGFibGUgb2YgQ29udGVudHM6XHJcbi8vXHJcbi8vICAgMS4gR2xvYmFsXHJcbi8vICAgMi4gQnJlYWtwb2ludHNcclxuLy8gICAzLiBUaGUgR3JpZFxyXG4vLyAgIDQuIEJhc2UgVHlwb2dyYXBoeVxyXG4vLyAgIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xyXG4vLyAgIDYuIEFiaWRlXHJcbi8vICAgNy4gQWNjb3JkaW9uXHJcbi8vICAgOC4gQWNjb3JkaW9uIE1lbnVcclxuLy8gICA5LiBCYWRnZVxyXG4vLyAgMTAuIEJyZWFkY3J1bWJzXHJcbi8vICAxMS4gQnV0dG9uXHJcbi8vICAxMi4gQnV0dG9uIEdyb3VwXHJcbi8vICAxMy4gQ2FsbG91dFxyXG4vLyAgMTQuIENhcmRcclxuLy8gIDE1LiBDbG9zZSBCdXR0b25cclxuLy8gIDE2LiBEcmlsbGRvd25cclxuLy8gIDE3LiBEcm9wZG93blxyXG4vLyAgMTguIERyb3Bkb3duIE1lbnVcclxuLy8gIDE5LiBGbGV4Ym94IFV0aWxpdGllc1xyXG4vLyAgMjAuIEZvcm1zXHJcbi8vICAyMS4gTGFiZWxcclxuLy8gIDIyLiBNZWRpYSBPYmplY3RcclxuLy8gIDIzLiBNZW51XHJcbi8vICAyNC4gTWV0ZXJcclxuLy8gIDI1LiBPZmYtY2FudmFzXHJcbi8vICAyNi4gT3JiaXRcclxuLy8gIDI3LiBQYWdpbmF0aW9uXHJcbi8vICAyOC4gUHJvZ3Jlc3MgQmFyXHJcbi8vICAyOS4gUHJvdG90eXBlIEFycm93XHJcbi8vICAzMC4gUHJvdG90eXBlIEJvcmRlci1Cb3hcclxuLy8gIDMxLiBQcm90b3R5cGUgQm9yZGVyLU5vbmVcclxuLy8gIDMyLiBQcm90b3R5cGUgQm9yZGVyZWRcclxuLy8gIDMzLiBQcm90b3R5cGUgRGlzcGxheVxyXG4vLyAgMzQuIFByb3RvdHlwZSBGb250LVN0eWxpbmdcclxuLy8gIDM1LiBQcm90b3R5cGUgTGlzdC1TdHlsZS1UeXBlXHJcbi8vICAzNi4gUHJvdG90eXBlIE92ZXJmbG93XHJcbi8vICAzNy4gUHJvdG90eXBlIFBvc2l0aW9uXHJcbi8vICAzOC4gUHJvdG90eXBlIFJvdW5kZWRcclxuLy8gIDM5LiBQcm90b3R5cGUgU2VwYXJhdG9yXHJcbi8vICA0MC4gUHJvdG90eXBlIFNoYWRvd1xyXG4vLyAgNDEuIFByb3RvdHlwZSBTaXppbmdcclxuLy8gIDQyLiBQcm90b3R5cGUgU3BhY2luZ1xyXG4vLyAgNDMuIFByb3RvdHlwZSBUZXh0LURlY29yYXRpb25cclxuLy8gIDQ0LiBQcm90b3R5cGUgVGV4dC1UcmFuc2Zvcm1hdGlvblxyXG4vLyAgNDUuIFByb3RvdHlwZSBUZXh0LVV0aWxpdGllc1xyXG4vLyAgNDYuIFJlc3BvbnNpdmUgRW1iZWRcclxuLy8gIDQ3LiBSZXZlYWxcclxuLy8gIDQ4LiBTbGlkZXJcclxuLy8gIDQ5LiBTd2l0Y2hcclxuLy8gIDUwLiBUYWJsZVxyXG4vLyAgNTEuIFRhYnNcclxuLy8gIDUyLiBUaHVtYm5haWxcclxuLy8gIDUzLiBUaXRsZSBCYXJcclxuLy8gIDU0LiBUb29sdGlwXHJcbi8vICA1NS4gVG9wIEJhclxyXG4vLyAgNTYuIFh5IEdyaWRcclxuLy8gIDU3LiBDdXN0b21cclxuXHJcbkBpbXBvcnQgXCJ1dGlsL3V0aWxcIjtcclxuXHJcbi8vIDEuIEdsb2JhbFxyXG4vLyAtLS0tLS0tLS1cclxuXHJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlO1xyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKTtcclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjYyNTtcclxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxyXG4gICAgcHJpbWFyeTogI2ZmY2MwMCxcclxuICAgIHNlY29uZGFyeTogI2U4ZWJlYyxcclxuICAgIHN1Y2Nlc3M6ICM0NGFjMWIsXHJcbiAgICB3YXJuaW5nOiAjMWI3YmFjLFxyXG4gICAgYWxlcnQ6ICNhYzFiMWJcclxuKTtcclxuJGxpZ2h0LWdyYXk6ICNlOGViZWM7XHJcbiRtZWRpdW0tZ3JheTogIzk3OTc5NztcclxuJGdyYXk6I0I1QjVCNTtcclxuJGRhcmstZ3JheTogIzNhNDA0NDtcclxuJGJsYWNrOiAjMDAwMDAwO1xyXG4kd2hpdGU6ICNmZmZmZmY7XHJcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrO1xyXG4kYm9keS1mb250LWZhbWlseTogXCJCdWVub3MgQWlyZXNcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XHJcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlO1xyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbTtcclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtO1xyXG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtO1xyXG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbDtcclxuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZDtcclxuJGdsb2JhbC1yYWRpdXM6IDA7XHJcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbTtcclxuJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW46IDFyZW07XHJcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0cjtcclxuJGdsb2JhbC1mbGV4Ym94OiB0cnVlO1xyXG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2U7XHJcbiRnbG9iYWwtYnV0dG9uLWN1cnNvcjogYXV0bztcclxuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMDtcclxuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlO1xyXG5cclxuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xyXG4kcHJpbnQtaHJlZnM6IHRydWU7XHJcblxyXG4vLyAyLiBCcmVha3BvaW50c1xyXG4vLyAtLS0tLS0tLS0tLS0tLVxyXG5cclxuJGJyZWFrcG9pbnRzOiAoXHJcbiAgICBzbWFsbDogMCxcclxuICAgIG1lZGl1bTogNjQwcHgsXHJcbiAgICB4bWVkaXVtOiA3NjhweCxcclxuICAgIGxhcmdlOiAxMDI0cHgsXHJcbiAgICB4bGFyZ2U6IDEyMDBweCxcclxuICAgIHh4bGFyZ2U6IDE0NDBweFxyXG4pO1xyXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2U7XHJcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0geG1lZGl1bSBsYXJnZSB4bGFyZ2UgeHhsYXJnZSk7XHJcblxyXG4vLyAzLiBUaGUgR3JpZFxyXG4vLyAtLS0tLS0tLS0tLVxyXG5cclxuJGdyaWQtcm93LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xyXG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyO1xyXG4kZ3JpZC1jb2x1bW4tZ3V0dGVyOiAoXHJcbiAgICBzbWFsbDogMjBweCxcclxuICAgIG1lZGl1bTogMzBweFxyXG4pO1xyXG4kZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZTogdHJ1ZTtcclxuJGdyaWQtY29sdW1uLWFsaWFzOiBcImNvbHVtbnNcIjtcclxuJGJsb2NrLWdyaWQtbWF4OiA4O1xyXG5cclxuLy8gNC4gQmFzZSBUeXBvZ3JhcGh5XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XHJcbiRoZWFkZXItZm9udC13ZWlnaHQ6IDcwMDtcclxuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWw7XHJcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XHJcbiRoZWFkZXItY29sb3I6IGluaGVyaXQ7XHJcbiRoZWFkZXItbGluZWhlaWdodDogMS4yO1xyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxuJGhlYWRlci1zdHlsZXM6IChcclxuICAgIHNtYWxsOiAoXHJcbiAgICAgICAgXCJoMVwiOiAoXHJcbiAgICAgICAgICAgIFwiZm9udC1zaXplXCI6IDI2XHJcbiAgICAgICAgKSxcclxuICAgICAgICBcImgyXCI6IChcclxuICAgICAgICAgICAgXCJmb250LXNpemVcIjogMjNcclxuICAgICAgICApLFxyXG4gICAgICAgIFwiaDNcIjogKFxyXG4gICAgICAgICAgICBcImZvbnQtc2l6ZVwiOiAyM1xyXG4gICAgICAgICksXHJcbiAgICAgICAgXCJoNFwiOiAoXHJcbiAgICAgICAgICAgIFwiZm9udC1zaXplXCI6IDIwXHJcbiAgICAgICAgKSxcclxuICAgICAgICBcImg1XCI6IChcclxuICAgICAgICAgICAgXCJmb250LXNpemVcIjogMjBcclxuICAgICAgICApLFxyXG4gICAgICAgIFwiaDZcIjogKFxyXG4gICAgICAgICAgICBcImZvbnQtc2l6ZVwiOiAxNlxyXG4gICAgICAgIClcclxuICAgICksXHJcbiAgICBtZWRpdW06IChcclxuICAgICAgICBcImgxXCI6IChcclxuICAgICAgICAgICAgXCJmb250LXNpemVcIjogNTBcclxuICAgICAgICApLFxyXG4gICAgICAgIFwiaDJcIjogKFxyXG4gICAgICAgICAgICBcImZvbnQtc2l6ZVwiOiAzNVxyXG4gICAgICAgICksXHJcbiAgICAgICAgXCJoM1wiOiAoXHJcbiAgICAgICAgICAgIFwiZm9udC1zaXplXCI6IDM1XHJcbiAgICAgICAgKSxcclxuICAgICAgICBcImg0XCI6IChcclxuICAgICAgICAgICAgXCJmb250LXNpemVcIjogMjVcclxuICAgICAgICApLFxyXG4gICAgICAgIFwiaDVcIjogKFxyXG4gICAgICAgICAgICBcImZvbnQtc2l6ZVwiOiAyNVxyXG4gICAgICAgICksXHJcbiAgICAgICAgXCJoNlwiOiAoXHJcbiAgICAgICAgICAgIFwiZm9udC1zaXplXCI6IDE2XHJcbiAgICAgICAgKVxyXG4gICAgKVxyXG4pO1xyXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XHJcbiRzbWFsbC1mb250LXNpemU6IDgwJTtcclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXk7XHJcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW07XHJcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcclxuJGNvZGUtY29sb3I6ICRibGFjaztcclxuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XHJcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XHJcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKTtcclxuJGFuY2hvci1jb2xvcjogJGJsYWNrO1xyXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcclxuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lO1xyXG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGg7XHJcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkZ3JheTtcclxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG87XHJcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xyXG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xyXG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcclxuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW07XHJcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbTtcclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW07XHJcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xyXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheTtcclxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KTtcclxuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcclxuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXk7XHJcbiRjaXRlLXBzZXVkby1jb250ZW50OiBcIlxcMjAxNCBcXDAwMjBcIjtcclxuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xyXG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2s7XHJcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XHJcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApO1xyXG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2s7XHJcblxyXG4vLyA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kbGVhZC1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICogMS4yNTtcclxuJGxlYWQtbGluZWhlaWdodDogMS42O1xyXG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcclxuJHN1YmhlYWRlci1jb2xvcjogJGRhcmstZ3JheTtcclxuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbTtcclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW07XHJcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtO1xyXG5cclxuLy8gNi4gQWJpZGVcclxuLy8gLS0tLS0tLS1cclxuXHJcbiRhYmlkZS1pbnB1dHM6IHRydWU7XHJcbiRhYmlkZS1sYWJlbHM6IHRydWU7XHJcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCk7XHJcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCk7XHJcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KTtcclxuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xyXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcblxyXG4vLyA3LiBBY2NvcmRpb25cclxuLy8gLS0tLS0tLS0tLS0tXHJcblxyXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJGFjY29yZGlvbi1wbHVzbWludXM6IGZhbHNlO1xyXG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjQpO1xyXG4kYWNjb3JkaW9uLXRpdGxlLWJvcmRlcjogMXB4IHNvbGlkICR3aGl0ZTtcclxuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6IHRyYW5zcGFyZW50O1xyXG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtO1xyXG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiBub25lO1xyXG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XHJcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtO1xyXG5cclxuLy8gOC4gQWNjb3JkaW9uIE1lbnVcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRhY2NvcmRpb25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xyXG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nO1xyXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWU7XHJcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kOiBudWxsO1xyXG4kYWNjb3JkaW9ubWVudS1ib3JkZXI6IG51bGw7XHJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ6IG51bGw7XHJcbiRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XHJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoOiA0MHB4O1xyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1oZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xyXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplOiA2cHg7XHJcblxyXG4vLyA5LiBCYWRnZVxyXG4vLyAtLS0tLS0tLVxyXG5cclxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4kYmFkZ2UtY29sb3I6ICR3aGl0ZTtcclxuJGJhZGdlLWNvbG9yLWFsdDogJGJsYWNrO1xyXG4kYmFkZ2UtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcclxuJGJhZGdlLXBhZGRpbmc6IDAuM2VtO1xyXG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtO1xyXG4kYmFkZ2UtZm9udC1zaXplOiAwLjZyZW07XHJcblxyXG4vLyAxMC4gQnJlYWRjcnVtYnNcclxuLy8gLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcclxuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMyk7XHJcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuMjVyZW07XHJcbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogZmFsc2U7XHJcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogdHJ1ZTtcclxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW06IFwiL1wiO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGw6IFwiXFxcXFwiO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRibGFjaztcclxuXHJcbi8vIDExLiBCdXR0b25cclxuLy8gLS0tLS0tLS0tLVxyXG5cclxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdDtcclxuJGJ1dHRvbi1wYWRkaW5nOiByZW0tY2FsYyg5KSAxZW07XHJcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcclxuJGJ1dHRvbi1maWxsOiBzb2xpZDtcclxuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkZGFyay1ncmF5O1xyXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHdoaXRlO1xyXG4kYnV0dG9uLWNvbG9yOiAkd2hpdGU7XHJcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2s7XHJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoOiAxcHg7XHJcbiRidXR0b24tc2l6ZXM6IChcclxuICAgIHRpbnk6IDAuNnJlbSxcclxuICAgIHNtYWxsOiAwLjc1cmVtLFxyXG4gICAgZGVmYXVsdDogMXJlbSxcclxuICAgIGxhcmdlOiAxLjU2MjVyZW0sXHJcbiAgICAvLzI1XHJcbik7XHJcbiRidXR0b24tcGFsZXR0ZTogKFxyXG4gICAgcHJpbWFyeTogIzNhNDA0NCxcclxuICAgIHNlY29uZGFyeTogI2ZmY2MwMCxcclxuICAgIHN1Y2Nlc3M6ICM0NGFjMWIsXHJcbiAgICB3YXJuaW5nOiAjMWI3YmFjLFxyXG4gICAgYWxlcnQ6ICNhYzFiMWIsXHJcbiAgICBncmV5OiAkc2Vjb25kYXJ5LWNvbG9yLFxyXG4pO1xyXG4kYnV0dG9uLXBhbGV0dGU6ICRidXR0b24tcGFsZXR0ZTtcclxuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xyXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlO1xyXG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCU7XHJcbiRidXR0b24tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2Utb3V0LCBjb2xvciAwLjJzIGVhc2Utb3V0LCBib3JkZXItY29sb3IgMC4ycyBlYXNlLW91dDtcclxuJGJ1dHRvbi1yZXNwb25zaXZlLWV4cGFuZGVkOiB0cnVlO1xyXG5cclxuLy8gMTIuIEJ1dHRvbiBHcm91cFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtO1xyXG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4O1xyXG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6IFwiLmJ1dHRvblwiO1xyXG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNjtcclxuJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoOiB0cnVlO1xyXG5cclxuLy8gMTMuIENhbGxvdXRcclxuLy8gLS0tLS0tLS0tLS1cclxuXHJcbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSU7XHJcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KTtcclxuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwO1xyXG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtO1xyXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZDtcclxuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJGNhbGxvdXQtbGluay10aW50OiAzMCU7XHJcblxyXG4vLyAxNC4gQ2FyZFxyXG4vLyAtLS0tLS0tLVxyXG5cclxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kY2FyZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4kY2FyZC1kaXZpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4kY2FyZC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcclxuJGNhcmQtc2hhZG93OiBub25lO1xyXG4kY2FyZC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJGNhcmQtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xyXG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcclxuXHJcbi8vIDE1LiBDbG9zZSBCdXR0b25cclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3A7XHJcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxyXG4gICAgc21hbGw6IDAuNjZyZW0sXHJcbiAgICBtZWRpdW06IDFyZW1cclxuKTtcclxuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogKFxyXG4gICAgc21hbGw6IDAuMzNlbSxcclxuICAgIG1lZGl1bTogMC41cmVtXHJcbik7XHJcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXHJcbiAgICBzbWFsbDogMS41ZW0sXHJcbiAgICBtZWRpdW06IDJlbVxyXG4pO1xyXG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMTtcclxuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5O1xyXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjaztcclxuXHJcbi8vIDE2LiBEcmlsbGRvd25cclxuLy8gLS0tLS0tLS0tLS0tLVxyXG5cclxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyO1xyXG4kZHJpbGxkb3duLWFycm93czogZmFsc2U7XHJcbiRkcmlsbGRvd24tcGFkZGluZzogMjVweDtcclxuJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luOiAwO1xyXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4kZHJpbGxkb3duLXN1Ym1lbnUtcGFkZGluZzogJGRyaWxsZG93bi1wYWRkaW5nO1xyXG4kZHJpbGxkb3duLXN1Ym1lbnUtYmFja2dyb3VuZDogd2hpdGU7XHJcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4kZHJpbGxkb3duLWFycm93LXNpemU6IDZweDtcclxuXHJcbi8vIDE3LiBEcm9wZG93blxyXG4vLyAtLS0tLS0tLS0tLS1cclxuXHJcbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtO1xyXG4kZHJvcGRvd24tYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcclxuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbTtcclxuJGRyb3Bkb3duLXdpZHRoOiAzMDBweDtcclxuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRkcm9wZG93bi1zaXplczogKFxyXG4gICAgdGlueTogMTAwcHgsXHJcbiAgICBzbWFsbDogMjAwcHgsXHJcbiAgICBsYXJnZTogNDAwcHhcclxuKTtcclxuXHJcbi8vIDE4LiBEcm9wZG93biBNZW51XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kZHJvcGRvd25tZW51LWFycm93czogZmFsc2U7XHJcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3I7XHJcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xyXG4kZHJvcGRvd25tZW51LWFycm93LXBhZGRpbmc6IDEuNXJlbTtcclxuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDIwMHB4O1xyXG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6IG51bGw7XHJcbiRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRkcm9wZG93bm1lbnUtcGFkZGluZzogMTRweCAxOHB4O1xyXG4kZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW46IDA7XHJcbiRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmc7XHJcbi8vICRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xyXG4kZHJvcGRvd25tZW51LWJvcmRlcjogbm9uZTtcclxuJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICRibGFjaztcclxuJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpO1xyXG5cclxuLy8gMTkuIEZsZXhib3ggVXRpbGl0aWVzXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50OiA2O1xyXG4kZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzOiB0cnVlO1xyXG5cclxuLy8gMjAuIEZvcm1zXHJcbi8vIC0tLS0tLS0tLVxyXG5cclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRncmF5O1xyXG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApO1xyXG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKTtcclxuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpO1xyXG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygyNik7XHJcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrO1xyXG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XHJcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWM7XHJcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjaztcclxuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcclxuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkZ3JheTtcclxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtO1xyXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrO1xyXG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcclxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcclxuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXk7XHJcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJGlucHV0LWNvbG9yOiAkYmxhY2s7XHJcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJGdyYXk7XHJcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdDtcclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xyXG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcclxuJGlucHV0LWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XHJcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkc2Vjb25kYXJ5LWNvbG9yO1xyXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXk7XHJcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkZ3JheTtcclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXk7XHJcbiRpbnB1dC1wYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMjtcclxuJGlucHV0LXNoYWRvdzogbm9uZTtcclxuJGlucHV0LXNoYWRvdy1mb2N1czogbm9uZTtcclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQ7XHJcbiRpbnB1dC10cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XHJcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWU7XHJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuXHJcbi8vIDIxLiBMYWJlbFxyXG4vLyAtLS0tLS0tLS1cclxuXHJcbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcclxuJGxhYmVsLWNvbG9yOiAkd2hpdGU7XHJcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjaztcclxuJGxhYmVsLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XHJcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbTtcclxuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xyXG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuXHJcbi8vIDIyLiBNZWRpYSBPYmplY3RcclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xyXG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XHJcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlO1xyXG5cclxuLy8gMjMuIE1lbnVcclxuLy8gLS0tLS0tLS1cclxuXHJcbiRtZW51LW1hcmdpbjogMDtcclxuJG1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW47XHJcbiRtZW51LWl0ZW1zLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xyXG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtO1xyXG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlO1xyXG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSk7XHJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbTtcclxuJG1lbnUtc3RhdGUtYmFjay1jb21wYXQ6IHRydWU7XHJcbiRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0OiB0cnVlO1xyXG4kbWVudS1pY29ucy1iYWNrLWNvbXBhdDogdHJ1ZTtcclxuXHJcbi8vIDI0LiBNZXRlclxyXG4vLyAtLS0tLS0tLS1cclxuXHJcbiRtZXRlci1oZWlnaHQ6IDFyZW07XHJcbiRtZXRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kbWV0ZXItYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xyXG4kbWV0ZXItZmlsbC1nb29kOiAkc3VjY2Vzcy1jb2xvcjtcclxuJG1ldGVyLWZpbGwtbWVkaXVtOiAkd2FybmluZy1jb2xvcjtcclxuJG1ldGVyLWZpbGwtYmFkOiAkYWxlcnQtY29sb3I7XHJcblxyXG4vLyAyNS4gT2ZmLWNhbnZhc1xyXG4vLyAtLS0tLS0tLS0tLS0tLVxyXG5cclxuJG9mZmNhbnZhcy1zaXplczogKFxyXG4gICAgc21hbGw6IDI1MHB4XHJcbik7XHJcbiRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXM6IChcclxuICAgIHNtYWxsOiAyNTBweFxyXG4pO1xyXG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4kb2ZmY2FudmFzLXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssIDAuNyk7XHJcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDIwcHg7XHJcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSk7XHJcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExO1xyXG4kb2ZmY2FudmFzLXB1c2gtemluZGV4OiAxMjtcclxuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTM7XHJcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTI7XHJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXM7XHJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2U7XHJcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlO1xyXG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpO1xyXG4kbWFpbmNvbnRlbnQtY2xhc3M6IFwib2ZmLWNhbnZhcy1jb250ZW50XCI7XHJcblxyXG4vLyAyNi4gT3JiaXRcclxuLy8gLS0tLS0tLS0tXHJcblxyXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTogJGRhcmstZ3JheTtcclxuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtO1xyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtO1xyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbTtcclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW07XHJcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xyXG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtO1xyXG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KTtcclxuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbTtcclxuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMDtcclxuXHJcbi8vIDI3LiBQYWdpbmF0aW9uXHJcbi8vIC0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcclxuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjaztcclxuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKTtcclxuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKTtcclxuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiBub25lO1xyXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJGJsYWNrO1xyXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6ICR3aGl0ZTtcclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xyXG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrO1xyXG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlO1xyXG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZTtcclxuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlO1xyXG5cclxuLy8gMjguIFByb2dyZXNzIEJhclxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtO1xyXG4kcHJvZ3Jlc3MtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xyXG4kcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcclxuJHByb2dyZXNzLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcblxyXG4vLyA0Ni4gUmVzcG9uc2l2ZSBFbWJlZFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpO1xyXG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcclxuICAgIGRlZmF1bHQ6IDQgYnkgMyxcclxuICAgIHdpZGVzY3JlZW46IDE2IGJ5IDlcclxuKTtcclxuXHJcbi8vIDQ3LiBSZXZlYWxcclxuLy8gLS0tLS0tLS0tLVxyXG5cclxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRyZXZlYWwtd2lkdGg6IDYwMHB4O1xyXG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aDtcclxuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XHJcbi8vICRyZXZlYWwtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xyXG4kcmV2ZWFsLWJvcmRlcjogbm9uZTtcclxuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kcmV2ZWFsLXppbmRleDogMTAwNTtcclxuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjgpO1xyXG5cclxuLy8gNDguIFNsaWRlclxyXG4vLyAtLS0tLS0tLS0tXHJcblxyXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW07XHJcbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XHJcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW07XHJcbiRzbGlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XHJcbiRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XHJcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtO1xyXG4kc2xpZGVyLWhhbmRsZS13aWR0aDogMS40cmVtO1xyXG4kc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcclxuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xyXG4kc2xpZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcblxyXG4vLyA0OS4gU3dpdGNoXHJcbi8vIC0tLS0tLS0tLS1cclxuXHJcbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xyXG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvcjtcclxuJHN3aXRjaC1oZWlnaHQ6IDJyZW07XHJcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbTtcclxuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW07XHJcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW07XHJcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJHN3aXRjaC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luO1xyXG4kc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbTtcclxuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xyXG5cclxuLy8gNTAuIFRhYmxlXHJcbi8vIC0tLS0tLS0tLVxyXG5cclxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JTtcclxuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xyXG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCk7XHJcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiU7XHJcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcclxuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKTtcclxuJHRhYmxlLWlzLXN0cmlwZWQ6IHRydWU7XHJcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xyXG4kdGFibGUtc3RyaXBlOiBldmVuO1xyXG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlIC8gMik7XHJcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XHJcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xyXG4kdGFibGUtZm9vdC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtZm9vdC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xyXG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlO1xyXG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xyXG5cclxuLy8gNTEuIFRhYnNcclxuLy8gLS0tLS0tLS1cclxuXHJcbiR0YWItbWFyZ2luOiAwO1xyXG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJHRhYi1jb2xvcjogJGJsYWNrO1xyXG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiB0cmFuc3BhcmVudDtcclxuJHRhYi1hY3RpdmUtY29sb3I6ICRibGFjaztcclxuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xyXG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlO1xyXG4kdGFiLWl0ZW0tcGFkZGluZzogMXJlbSAxLjVyZW07XHJcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbi8vICR0YWItY29udGVudC1ib3JkZXI6IG5vbmU7XHJcbiR0YWItY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuJHRhYi1jb250ZW50LXBhZGRpbmc6IDA7XHJcblxyXG4vLyA1Mi4gVGh1bWJuYWlsXHJcbi8vIC0tLS0tLS0tLS0tLS1cclxuXHJcbiR0aHVtYm5haWwtYm9yZGVyOiA0cHggc29saWQgJHdoaXRlO1xyXG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xyXG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpO1xyXG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KTtcclxuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xyXG4kdGh1bWJuYWlsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcblxyXG4vLyA1My4gVGl0bGUgQmFyXHJcbi8vIC0tLS0tLS0tLS0tLS1cclxuXHJcbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2s7XHJcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlO1xyXG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtO1xyXG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZDtcclxuJHRpdGxlYmFyLWljb24tY29sb3I6ICR3aGl0ZTtcclxuJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXI6ICRtZWRpdW0tZ3JheTtcclxuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbTtcclxuXHJcbi8vIDU0LiBUb29sdGlwXHJcbi8vIC0tLS0tLS0tLS0tXHJcblxyXG4kaGFzLXRpcC1jdXJzb3I6IGhlbHA7XHJcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xyXG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXk7XHJcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjaztcclxuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZTtcclxuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbTtcclxuJHRvb2x0aXAtbWF4LXdpZHRoOiAxMHJlbTtcclxuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xyXG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW07XHJcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2O1xyXG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG5cclxuLy8gNTUuIFRvcCBCYXJcclxuLy8gLS0tLS0tLS0tLS1cclxuXHJcbiR0b3BiYXItcGFkZGluZzogMC41cmVtO1xyXG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kO1xyXG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwO1xyXG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcclxuJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bTtcclxuXHJcbi8vIDU2LiBYeSBHcmlkXHJcbi8vIC0tLS0tLS0tLS0tXHJcblxyXG4keHktZ3JpZDogdHJ1ZTtcclxuJGdyaWQtY29udGFpbmVyOiAkZ2xvYmFsLXdpZHRoO1xyXG4kZ3JpZC1jb2x1bW5zOiAxMjtcclxuJGdyaWQtbWFyZ2luLWd1dHRlcnM6IChcclxuICAgIHNtYWxsOiA0MHB4LFxyXG4gICAgbWVkaXVtOiAzMHB4XHJcbik7XHJcbiRncmlkLXBhZGRpbmctZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnM7XHJcbi8vICRncmlkLWNvbnRhaW5lci1wYWRkaW5nOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnM7XHJcbiRncmlkLWNvbnRhaW5lci1tYXg6ICRnbG9iYWwtd2lkdGg7XHJcbiR4eS1ibG9jay1ncmlkLW1heDogODtcclxuXHJcbi8vIDU3LiBDdXN0b21cclxuLy8gLS0tLS0tLS0tLS1cclxuXHJcbiRib3gtc2hhZG93OiAwcHggMHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xyXG4kZHVyYXRpb246IDAuMjVzO1xyXG4kZWFzaW5nOiBlYXNlLW91dDtcclxuJGRlbGF5OiAkZHVyYXRpb247XHJcblxyXG4kZ3JpZC1jb250YWluZXItcGFkZGluZy1jdXN0b206IChcclxuICAgIHNtYWxsOiA0MHB4LFxyXG4gICAgbWVkaXVtOiAxMDBweCxcclxuICAgIGxhcmdlOiAzMHB4XHJcbik7XHJcbiRncmlkLWNvbnRhaW5lci1wYWRkaW5nOiAkZ3JpZC1jb250YWluZXItcGFkZGluZy1jdXN0b207XHJcblxyXG4kZ3JpZC1jb250YWluZXItaW5uZXItc21hbGw6IG1hcC1nZXQoJGdyaWQtY29udGFpbmVyLXBhZGRpbmctY3VzdG9tLCBzbWFsbCkgLyAyO1xyXG4kZ3JpZC1jb250YWluZXItaW5uZXItbWVkaXVtOiBtYXAtZ2V0KCRncmlkLWNvbnRhaW5lci1wYWRkaW5nLWN1c3RvbSwgbWVkaXVtKSAvIDI7XHJcbiRncmlkLWNvbnRhaW5lci1pbm5lci1sYXJnZTogbWFwLWdldCgkZ3JpZC1jb250YWluZXItcGFkZGluZy1jdXN0b20sIGxhcmdlKSAvIDI7IiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhbiBpbm5lciBib3gtc2hhZG93IGZvciBvbmx5IG9uZSBzaWRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaWRlIC0gU2lkZSB0aGUgc2hhZG93IGlzIHN1cHBvc2VkIHRvIGFwcGVhci4gQ2FuIGJlIGB0b3BgLCBgbGVmdGAsIGByaWdodGAgb3IgYGJvdHRvbWAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIC0gV2lkdGggZm9yIHRoZSB0YXJnZXQgc2lkZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciBvZiB0aGUgc2hhZG93LlxuQG1peGluIGlubmVyLXNpZGUtc2hhZG93KFxuICAkc2lkZTogYm90dG9tLFxuICAkc2l6ZTogMjBweCxcbiAgJGNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSlcbikge1xuXG4gICRoZWxwZXI6IHJvdW5kKCRzaXplICogMC42NSk7XG5cbiAgQGlmICgkc2lkZSA9PSB0b3ApIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gbGVmdCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0ICRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSByaWdodCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0ICgtMSkqJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGJvdHRvbSkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgKC0xKSokaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBDU1MgdHJpYW5nbGUsIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBkcm9wZG93biBhcnJvd3MsIGRyb3Bkb3duIHBpcHMsIGFuZCBtb3JlLiBVc2UgdGhpcyBtaXhpbiBpbnNpZGUgYSBgJjo6YmVmb3JlYCBvciBgJjo6YWZ0ZXJgIHNlbGVjdG9yLCB0byBhdHRhY2ggdGhlIHRyaWFuZ2xlIHRvIGFuIGV4aXN0aW5nIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRyaWFuZ2xlLXNpemUgLSBXaWR0aCBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHRyaWFuZ2xlLWNvbG9yIC0gQ29sb3Igb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIERpcmVjdGlvbiB0aGUgdHJpYW5nbGUgcG9pbnRzLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG5AbWl4aW4gY3NzLXRyaWFuZ2xlKFxuICAkdHJpYW5nbGUtc2l6ZSxcbiAgJHRyaWFuZ2xlLWNvbG9yLFxuICAkdHJpYW5nbGUtZGlyZWN0aW9uXG4pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcblxuICBjb250ZW50OiAnJztcblxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gZG93bikge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG1lbnUgaWNvbiB3aXRoIGEgc2V0IHdpZHRoLCBoZWlnaHQsIG51bWJlciBvZiBiYXJzLCBhbmQgY29sb3JzLiBUaGUgbWl4aW4gdXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIHRoZSBiYXJzIHRvIGRldGVybWluZSBzcGFjaW5nLiA8ZGl2IGNsYXNzPVwiZG9jcy1leGFtcGxlLWJ1cmdlclwiPjwvZGl2PlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgWyRkYXJrLWdyYXldIC0gQ29sb3IgdG8gdXNlIHdoZW4gdGhlIGljb24gaXMgaG92ZXJlZCBvdmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzIwcHhdIC0gV2lkdGggb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzE2cHhdIC0gSGVpZ2h0IG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFsycHhdIC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgWzNdIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXG5AbWl4aW4gaGFtYnVyZ2VyKFxuICAkY29sb3I6ICRibGFjayxcbiAgJGNvbG9yLWhvdmVyOiAkZGFyay1ncmF5LFxuICAkd2lkdGg6IDIwcHgsXG4gICRoZWlnaHQ6IDE2cHgsXG4gICR3ZWlnaHQ6IDJweCxcbiAgJGJhcnM6IDNcbikge1xuICAvLyBib3gtc2hhZG93IENTUyBvdXRwdXRcbiAgJHNoYWRvdzogKCk7XG4gICRob3Zlci1zaGFkb3c6ICgpO1xuXG4gIC8vIFNwYWNpbmcgYmV0d2VlbiBiYXJzIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiBlYWNoIGJhclxuICAkc3BhY2luZzogKCRoZWlnaHQgLSAoJHdlaWdodCAqICRiYXJzKSkgLyAoJGJhcnMgLSAxKTtcblxuICBAaWYgdW5pdCgkc3BhY2luZykgPT0gJ3B4JyB7XG4gICAgJHNwYWNpbmc6IGZsb29yKCRzcGFjaW5nKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xuICB9XG5cbiAgLy8gSWNvbiBjb250YWluZXJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIEljb24gYmFyc1xuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gIEBpZiAkY29sb3ItaG92ZXIge1xuICAgIC8vIEdlbmVyYXRlIENTU1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRob3Zlci1zaGFkb3c6IGFwcGVuZCgkaG92ZXItc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3ItaG92ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaG92ZXI7XG4gICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRvd253YXJkLWZhY2luZyB0cmlhbmdsZSBhcyBhIGJhY2tncm91bmQgaW1hZ2UgdG8gYW4gZWxlbWVudC4gVGhlIGltYWdlIGlzIGZvcm1hdHRlZCBhcyBhbiBTVkcsIG1ha2luZyBpdCBlYXN5IHRvIGNoYW5nZSB0aGUgY29sb3IuIEJlY2F1c2UgSW50ZXJuZXQgRXhwbG9yZXIgZG9lc24ndCBzdXBwb3J0IGVuY29kZWQgU1ZHcyBhcyBiYWNrZ3JvdW5kIGltYWdlcywgYSBQTkcgZmFsbGJhY2sgaXMgYWxzbyBpbmNsdWRlZC5cbi8vLyBUaGVyZSBhcmUgdHdvIFBORyBmYWxsYmFja3M6IGEgYmxhY2sgdHJpYW5nbGUgYW5kIGEgd2hpdGUgdHJpYW5nbGUuIFRoZSBvbmUgdXNlZCBkZXBlbmRzIG9uIHRoZSBsaWdodG5lc3Mgb2YgdGhlIGlucHV0IGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgdHJpYW5nbGUuXG5AbWl4aW4gYmFja2dyb3VuZC10cmlhbmdsZSgkY29sb3I6ICRibGFjaykge1xuICAkcmdiOiAncmdiJTI4I3tyb3VuZChyZWQoJGNvbG9yKSl9LCAje3JvdW5kKGdyZWVuKCRjb2xvcikpfSwgI3tyb3VuZChibHVlKCRjb2xvcikpfSUyOSc7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiAjeyRyZ2J9Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MFxcMCkge1xuICAgIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA8IDYwJSB7XG4gICAgICAvLyBXaGl0ZSB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEJsYWNrIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTUJKUkVGVWVOckVsbHNPaENBTVJWc3pDOUlselU3S0NtVkhUSnNvTVdZTVV0cHl2OUJnYnVYUUI1WlNkZ0JZWVk0eWNnQml2azhLWUZzUU1mTWlUVEJQNG8zblV6Q0t6T2FiTEpiTHkyL2czMWV2R2tBZ2luUjQvWmVnS0g1cVgzYkpDc2NBM3QweDNrZ081dFFGeWhoRmY1MHhScUZMYnlNVU5KUXpneWpHUy93Z0Nwdktxa1JCcHVXckU0VjlkKzFFNGRQVVhxSWcxMDdTUU9FLzJEUlF4TXdURHlnSUluVkRFVDlUM2xDb2ovNmovVkNtR2paT2wybEtwWjhBQXdEUVA3eklpbURHRlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgdGhlIG1pY3JvIGNsZWFyZml4IGhhY2sgcG9wdWxhcml6ZWQgYnkgTmljb2xhcyBHYWxsYWdoZXIuIEluY2x1ZGUgdGhpcyBtaXhpbiBvbiBhIGNvbnRhaW5lciBpZiBpdHMgY2hpbGRyZW4gYXJlIGFsbCBmbG9hdGVkLCB0byBnaXZlIHRoZSBjb250YWluZXIgYSBwcm9wZXIgaGVpZ2h0LlxuLy8vIFRoZSBjbGVhcmZpeCBpcyBhdWdtZW50ZWQgd2l0aCBzcGVjaWZpYyBzdHlsZXMgdG8gcHJldmVudCBib3JkZXJzIGluIGZsZXhib3ggZW52aXJvbm1lbnRzXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcbi8vLyBAbGluayBodHRwOi8vZGFuaXNhZGVzaWduZXIuY29tL2Jsb2cvZmxleGJveC1jbGVhci1maXgtcHNldWRvLWVsZW1lbnRzLyBGbGV4Ym94IGZpeFxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vLyBBZGRzIENTUyBmb3IgYSBcInF1YW50aXR5IHF1ZXJ5XCIgc2VsZWN0b3IgdGhhdCBhdXRvbWF0aWNhbGx5IHNpemVzIGVsZW1lbnRzIGJhc2VkIG9uIGhvdyBtYW55IHRoZXJlIGFyZSBpbnNpZGUgYSBjb250YWluZXIuXG4vLy8gQGxpbmsgaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvcXVhbnRpdHktcXVlcmllcy1mb3ItY3NzIFF1YW50aXR5IFF1ZXJpZXMgZm9yIENTU1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggLSBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBkZXRlY3QuIFRoZSBoaWdoZXIgdGhpcyBudW1iZXIgaXMsIHRoZSBtb3JlIENTUyB0aGF0J3MgcmVxdWlyZWQgdG8gY292ZXIgZWFjaCBudW1iZXIgb2YgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZWxlbSBbbGldIC0gVGFnIHRvIHVzZSBmb3Igc2libGluZyBzZWxlY3RvcnMuXG5AbWl4aW4gYXV0by13aWR0aCgkbWF4LCAkZWxlbTogbGkpIHtcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbWF4IHtcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCxcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCB+ICN7JGVsZW19IHtcbiAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEgLyAkaSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRlbmZvcmNlIC0gSWYgYHRydWVgLCB1c2UgYCFpbXBvcnRhbnRgIG9uIGFwcGxpZWQgcHJvcGVydGllc1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlKFxuICAkZW5mb3JjZTogdHJ1ZVxuKSB7XG4gICRpbXBvcnRhbnQ6IGlmKCRlbmZvcmNlLCAnIWltcG9ydGFudCcsIG51bGwpO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAjeyRpbXBvcnRhbnR9O1xuICB3aWR0aDogMXB4ICN7JGltcG9ydGFudH07XG4gIGhlaWdodDogMXB4ICN7JGltcG9ydGFudH07XG4gIHBhZGRpbmc6IDAgI3skaW1wb3J0YW50fTtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAjeyRpbXBvcnRhbnR9O1xuICBjbGlwOiByZWN0KDAsMCwwLDApICN7JGltcG9ydGFudH07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgI3skaW1wb3J0YW50fTtcbiAgYm9yZGVyOiAwICN7JGltcG9ydGFudH07XG59XG5cbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBjcmVhdGVkIGJ5IHRoZSBgZWxlbWVudC1pbnZpc2libGUoKWAgbWl4aW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZW5mb3JjZSAtIElmIGB0cnVlYCwgdXNlIGAhaW1wb3J0YW50YCBvbiBhcHBsaWVkIHByb3BlcnRpZXNcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYoXG4gICRlbmZvcmNlOiB0cnVlXG4pIHtcbiAgJGltcG9ydGFudDogaWYoJGVuZm9yY2UsICchaW1wb3J0YW50JywgbnVsbCk7XG5cbiAgcG9zaXRpb246IHN0YXRpYyAjeyRpbXBvcnRhbnR9O1xuICB3aWR0aDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICBoZWlnaHQ6IGF1dG8gI3skaW1wb3J0YW50fTtcbiAgb3ZlcmZsb3c6IHZpc2libGUgI3skaW1wb3J0YW50fTtcbiAgY2xpcDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICN7JGltcG9ydGFudH07XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIGl0ZXJhdGUgb3ZlciBicmVha3BvaW50cyB3aXRob3V0IGRvaW5nIHRoZSBtZWRpYSBxdWVyeSBpdHNlbGYuIFVzZWZ1bCBmb3IgbW9yZSBjb21wbGV4IG1lZGlhIHF1ZXJ5IGdlbmVyYXRpb24gYXMgaW4gdGhlIG1hcmdpbiBncmlkLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoXG4gICRzbWFsbDogdHJ1ZSxcbiAgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludC1pbihhdXRvLCAtemYtYm9vbCgkc21hbGwpLCAtemYtYm9vbCgkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMpKSB7XG4gICAgQGNvbnRlbnRcbiAgfTtcbn1cblxuLy8vIEl0ZXJhdGVzIHdpdGggYEBjb250ZW50YCB0aHJvdWdoIHRoZSBnaXZlbiBsaXN0IG9mIGJyZWFrcG9pbnRzIGAkYnJlYWtwb2ludHNgLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TGlzdH0gJGJyZWFrcG9pbnRzIFthdXRvXSAtIEJyZWFrcG9pbnRzIHRvIGl0ZXJhdGVzIG9uLiBJdCBjYW4gYmUgYSBicmVha3BvaW50IG5hbWUsIGxpc3Qgb2YgYnJlYWtwb2ludHMgb3IgYGF1dG9gIGZvciBhbGwgYnJlYWtwb2ludHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufE51bGx9ICR6ZXJvLWJyZWFrcG9pbnQgW251bGxdIC0gV2hldGhlciB0aGUgemVyby1icmVha3BvaW50IChvZnRlbiBgc21hbGxgKSBtdXN0IGJlIGluY2x1ZGVkLiBJZiBgdHJ1ZWAsIGl0IHdpbGwgYWx3YXlzIGJlIGFkZGVkIHRvIHRoZSBsaXN0IGlmIG5vdCBhbHJlYWR5IHRoZXJlLiBJZiBgZmFsc2VgLCBpdCB3aWxsIGFsd2F5cyBiZSByZW1vdmVkLiBEb2VzIG5vdGhpbmcgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW58S2V5d29yZH0gJG1lZGlhLXF1ZXJpZXMgW3RydWVdIC0gV2hldGhlciBtZWRpYS1xdWVyaWVzIG11c3QgYmUgZ2VuZXJhdGVkLiBJZiBgZm9yLWxpc3RzYCwgb25seSBnZW5lcmF0ZSBtZWRpYS1xdWVyaWVzIHdoZW4gYCRicmVha3BvaW50c2AgaXMgYSBsaXN0LlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oXG4gICRicmVha3BvaW50czogYXV0byxcbiAgJHplcm8tYnJlYWtwb2ludDogbnVsbCxcbiAgJG1lZGlhLXF1ZXJpZXM6IHRydWVcbikge1xuICAkLWxpc3Q6ICgpO1xuICAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdDogdHJ1ZTtcblxuICAvLyBSZXRyaWV2ZSB0aGUgbGlzdCBvZiBicmVha3BvaW50KHMpIHRvIGl0ZXJhdGUgb24uXG4gIEBpZiAkYnJlYWtwb2ludHMgPT0gYXV0byB7XG4gICAgJC1saXN0OiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGJyZWFrcG9pbnRzKSA9PSAnbGlzdCcge1xuICAgICQtbGlzdDogJGJyZWFrcG9pbnRzO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGJyZWFrcG9pbnRzKSA9PSAnc3RyaW5nJyB7XG4gICAgJC1saXN0OiAoJGJyZWFrcG9pbnRzKTtcbiAgICAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdDogZmFsc2U7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBcIiRicmVha3BvaW50c1wiIGluIFwiLXpmLWVhY2gtYnJlYWtwb2ludC1pbigpXCIuIEdvdCBcIiN7JGJyZWFrcG9pbnRzfVwiICgje3R5cGUtb2YoJGJyZWFrcG9pbnRzKX0pLiBFeHBlY3RlZCBhIGJyZWFrcG9pbnQgbmFtZSwgYSBsaXN0IG9mIGJyZWFrcG9pbnRzIG9yIFwiYXV0b1wiJztcbiAgfVxuXG4gIC8vIEFkZCBvciByZW1vdmUgdGhlIHplcm8gYnJlYWtwb2ludCBhY2NvcmRpbmcgdG8gYCR6ZXJvLWJyZWFrcG9pbnRgXG4gIEBpZiAkemVyby1icmVha3BvaW50ID09IHRydWUge1xuICAgICQtbGlzdDogam9pbigoJC16Zi16ZXJvLWJyZWFrcG9pbnQpLCBzbC1yZW1vdmUoJC1saXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCkpO1xuICB9XG4gIEBlbHNlIGlmICR6ZXJvLWJyZWFrcG9pbnQgPT0gZmFsc2Uge1xuICAgICQtbGlzdDogc2wtcmVtb3ZlKCQtbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgLy8gSXRlcmF0ZSBvbiBicmVha3BvaW50KHMpXG4gIEBlYWNoICRicCBpbiAkLWxpc3Qge1xuICAgICRvbGQtemYtc2l6ZTogbnVsbDtcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gICAgfVxuICAgICQtemYtc2l6ZTogJGJwICFnbG9iYWw7XG5cbiAgICBAaWYgKCRtZWRpYS1xdWVyaWVzID09IHRydWVcbiAgICAgIG9yICgkbWVkaWEtcXVlcmllcyA9PSAnZm9yLWxpc3RzJyBhbmQgJC1icmVha3BvaW50cy1pcy1hLWxpc3QpKSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicCkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgJC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgdGhlIGBAY29udGVudGAgcGFzc2VkIHRvIHRoZSBtaXhpbiB3aXRoIGEgdmFsdWUgYCQtemYtYnAtdmFsdWVgIHJlbGF0ZWQgdG8gYSBicmVha3BvaW50LCBkZXBlbmRpbmcgb24gdGhlIGAkbmFtZWAgcGFyYW1ldGVyOlxuLy8vIC0gRm9yIGEgc2luZ2xlIHZhbHVlLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhpcyB2YWx1ZS5cbi8vLyAtIEZvciBhIGJyZWFrcG9pbnQgbmFtZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgLlxuLy8vIC0gRm9yIFwiYXV0b1wiLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAgYW5kIGlzIHBhc3NlZCB0byBgQGNvbnRlbnRgLCB3aGljaCBpcyBtYWRlIHJlc3BvbnNpdmUgZm9yIGVhY2ggYnJlYWtwb2ludCBvZiBgJG1hcGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8QXJyYXl8S2V5d29yZH0gJG5hbWUgW2F1dG9dIC0gU2luZ2xlIHZhbHVlLCBicmVha3BvaW50IG5hbWUsIG9yIGxpc3Qgb2YgYnJlYWtwb2ludCBuYW1lcyB0byB1c2UuIFwiYXV0b1wiIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gTWFwIG9mIGJyZWFrcG9pbnRzIGFuZCB2YWx1ZXMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS5cbkBtaXhpbiAtemYtYnJlYWtwb2ludC12YWx1ZShcbiAgJG5hbWU6IGF1dG8sXG4gICRtYXA6IG51bGxcbikge1xuICBAaWYgJG5hbWUgPT0gYXV0byBhbmQgdHlwZS1vZigkbWFwKSA9PSAnbWFwJyB7XG4gICAgLy8gXCJhdXRvXCJcbiAgICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRrKSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCR2LCAkbWFwKSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIGJyZWFrcG9pbnQgbmFtZVxuICAgIEBpZiB0eXBlLW9mKCRuYW1lKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkYnAtdmFsdWU6IC16Zi1nZXQtYnAtdmFsKCRtYXAsICRuYW1lKTtcbiAgICAgIEBpZiAkYnAtdmFsdWUgIT0gbnVsbCB7XG4gICAgICAgICRuYW1lOiAkYnAtdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYnJlYWtwb2ludCB2YWx1ZVxuICAgICQtemYtYnAtdmFsdWU6ICRuYW1lICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRm9udCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHBsYWNlaG9sZGVyIHRleHQgd2l0aGluIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEZvbnRcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBmb2N1c2VkIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBkaXNhYmxlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGZvY3VzZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBpbnNpZGUgdGV4dCBpbnB1dHMgd2hlbiBub3QgZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgb3V0c2lkZSB0ZXh0IGlucHV0cyB3aGVuIGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEN1cnNvciB0byB1c2Ugd2hlbiBob3ZlcmluZyBvdmVyIGEgZGlzYWJsZWQgdGV4dCBpbnB1dC5cbi8vLyBAdHlwZSBDdXJzb3JcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuXG4vLy8gUHJvcGVydGllcyB0byB0cmFuc2l0aW9uIG9uIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgdGhlIHVwL2Rvd24gYnV0dG9ucyB0aGF0IENocm9tZSBhbmQgRmlyZWZveCBhZGQgdG8gYDxpbnB1dCB0eXBlPSdudW1iZXInPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFJhZGl1cyBmb3IgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGZvcm0gYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdztcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXRleHQge1xuICAvLyBUZXh0IGlucHV0c1xuICAje3RleHQtaW5wdXRzKCl9LFxuICB0ZXh0YXJlYSB7XG4gICAgQGluY2x1ZGUgZm9ybS1lbGVtZW50O1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyBUZXh0IGFyZWFzXG4gIHRleHRhcmVhIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAmW3Jvd3NdIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cblxuICBpbnB1dCxcbiAgdGV4dGFyZWEge1xuICAgIC8vIERpc2FibGVkL3JlYWRvbmx5IHN0YXRlXG4gICAgJjpkaXNhYmxlZCxcbiAgICAmW3JlYWRvbmx5XSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb24gYnV0dG9uLWxpa2UgaW5wdXRzXG4gIFt0eXBlPSdzdWJtaXQnXSxcbiAgW3R5cGU9J2J1dHRvbiddIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLWJ1dHRvbi1yYWRpdXM7XG4gIH1cblxuICAvLyBSZXNldCBOb3JtYWxpemUgc2V0dGluZyBjb250ZW50LWJveCB0byBzZWFyY2ggZWxlbWVudHNcbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ10geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gTnVtYmVyIGlucHV0IHN0eWxlc1xuICBbdHlwZT0nbnVtYmVyJ10ge1xuICAgIEBpZiBub3QgJGlucHV0LW51bWJlci1zcGlubmVycyB7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcblxuICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQbGFjZWhvbGRlciB0ZXh0XG4gIDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBSZW1vdmVzIHRoZSB1bml0IChlLmcuIHB4LCBlbSwgcmVtKSBmcm9tIGEgdmFsdWUsIHJldHVybmluZyB0aGUgbnVtYmVyIG9ubHkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgc2FtZSBudW1iZXIsIHNhbnMgdW5pdC5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vLyBDb252ZXJ0cyBvbmUgb3IgbW9yZSBwaXhlbCB2YWx1ZXMgaW50byBtYXRjaGluZyByZW0gdmFsdWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gVGhlIGJhc2UgdmFsdWUgdG8gdXNlIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGByZW1gLiBJZiB5b3UncmUgdXNpbmcgRm91bmRhdGlvbiBvdXQgb2YgdGhlIGJveCwgdGhpcyBpcyAxNnB4LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBgbnVsbGAsIHRoZSBmdW5jdGlvbiB3aWxsIHJlZmVyZW5jZSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBVc2luZyByZW0gYXMgYmFzZSBhbGxvd3MgY29ycmVjdCBzY2FsaW5nXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cblxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSArICcgd2FzIHBhc3NlZCB0byByZW0tY2FsYygpLCB3aGljaCBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBlbSBpbnRvIHJlbSBpZiBzb21lb25lIGhhbmRzIG92ZXIgJ2VtJ3NcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFyZW07XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbSBvciBlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwsIHBlcmNlbnRhZ2UsIHJlbSBvciBlbSB2YWx1ZSB0byBhIHVuaXRsZXNzIHZhbHVlIGJhc2VkIG9uIGEgZ2l2ZW4gZm9udCBzaXplLiBJZGVhbCBmb3Igd29ya2luZyBvdXQgdW5pdGxlc3MgbGluZSBoZWlnaHRzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGNvbnZlcnQgdG8gYSB1bml0bGVzcyBsaW5lIGhlaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBmb250IHNpemUgdG8gdXNlIHRvIHdvcmsgb3V0IHRoZSBsaW5lIGhlaWdodCAtIGRlZmF1bHRzIHRvICRnbG9iYWwtZm9udC1zaXplXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gVW5pdGxlc3MgbnVtYmVyXG5AZnVuY3Rpb24gdW5pdGxlc3MtY2FsYygkdmFsdWUsICRiYXNlOiBudWxsKSB7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gRmlyc3QsIGxldHMgY29udmVydCBvdXIgJGJhc2UgdG8gcGl4ZWxzXG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ2VtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIC8vIE5vdyBsZXQncyBjb252ZXJ0IG91ciB2YWx1ZSB0byBwaXhlbHMgdG9vXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJyUnIHtcbiAgICAkdmFsdWU6ICgkdmFsdWUgLyAxMDAlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIC8vICdweCdcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIHtcbiAgICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpO1xuICB9XG5cbiAgLy8gYXNzdW1lIHRoYXQgbGluZS1oZWlnaHRzIGdyZWF0ZXIgdGhhbiAxMCBhcmUgbWVhbnQgdG8gYmUgYWJzb2x1dGUgaW4gJ3B4J1xuICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgKCR2YWx1ZSA+IDEwKSB7XG4gICAgQHJldHVybiAkdmFsdWUgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tY2hlY2tib3gge1xuICBbdHlwZT0nZmlsZSddLFxuICBbdHlwZT0nY2hlY2tib3gnXSxcbiAgW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0L2xhYmVsIHNpYmxpbmdzXG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAmW2Zvcl0ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXRzIGluc2lkZSBsYWJlbHNcbiAgbGFiZWwgPiBbdHlwZT0nY2hlY2tib3gnXSxcbiAgbGFiZWwgPiBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAvLyBOb3JtYWxpemUgZmlsZSBpbnB1dCB3aWR0aFxuICBbdHlwZT0nZmlsZSddIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBmb3JtIGxhYmVscy4gVGhlIGhpZ2hlciB0aGUgbnVtYmVyLCB0aGUgbW9yZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaXRzIGlucHV0IGZpZWxkLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuOCAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yO1xufVxuXG5AbWl4aW4gZm9ybS1sYWJlbC1taWRkbGUge1xuICAkaW5wdXQtYm9yZGVyLXdpZHRoOiBnZXQtYm9yZGVyLXZhbHVlKCRpbnB1dC1ib3JkZXIsIHdpZHRoKTtcblxuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHN0eWxlIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1oZWxwdGV4dCB7XG4gIC5oZWxwLXRleHQge1xuICAgICRtYXJnaW4tdG9wOiAoJGZvcm0tc3BhY2luZyAqIDAuNSkgKiAtMTtcblxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xuICAgIGZvbnQtc2l6ZTogJGhlbHB0ZXh0LWZvbnQtc2l6ZTtcbiAgICBmb250LXN0eWxlOiAkaGVscHRleHQtZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGVmdC9yaWdodCBwYWRkaW5nIG9mIGFuIHByZS9wb3N0Zml4ZWQgaW5wdXQgbGFiZWxcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiAkaW5wdXQtbGluZS1oZWlnaHQpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCB0YWJsZSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgJiwgJi5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDAsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgJiwgJi5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICVpbnB1dC1ncm91cC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmc6IDAgJGlucHV0LXByZWZpeC1wYWRkaW5nO1xuICAgIGJvcmRlcjogJGlucHV0LXByZWZpeC1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kO1xuXG4gICAgY29sb3I6ICRpbnB1dC1wcmVmaXgtY29sb3I7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC1wcmVmaXgtYm9yZGVyKSB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgYSxcbiAgICBpbnB1dCxcbiAgICBidXR0b24sXG4gICAgbGFiZWwge1xuICAgICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG5cbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIH1cbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNpdHkgYnVtcCBuZWVkZWQgdG8gcHJldmVudCBvdmVycmlkZSBieSBidXR0b25zXG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAuaW5wdXQtZ3JvdXAge1xuICAgICAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGJldHdlZW4gdGhlIGxlZ2VuZCB0ZXh0IGFuZCBmaWVsZHNldCBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMykgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmaWVsZHNldCB7XG4gIG1hcmdpbjogJGZpZWxkc2V0LW1hcmdpbjtcbiAgcGFkZGluZzogJGZpZWxkc2V0LXBhZGRpbmc7XG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlcjtcblxuICBsZWdlbmQge1xuICAgIC8vIENvdmVycyB1cCB0aGUgZmllbGRzZXQncyBib3JkZXIgdG8gY3JlYXRlIGFydGlmaWNpYWwgcGFkZGluZ1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiByZW0tY2FsYygtMyk7XG4gICAgcGFkZGluZzogJGxlZ2VuZC1wYWRkaW5nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZmllbGRzZXQge1xuICBmaWVsZHNldCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgbGVnZW5kIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC5maWVsZHNldCB7XG4gICAgQGluY2x1ZGUgZmllbGRzZXQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG5cbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcbiAgfVxuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG4gICY6bm90KFttdWx0aXBsZV0pIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXNlbGVjdCB7XG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhYmlkZVxuLy8vL1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGlucHV0cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtaW5wdXRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGxhYmVscy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtbGFiZWxzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciB0byB1c2UgZm9yIGludmFsaWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB0byB1c2UgZm9yIGxhYmVscyBvZiBpbnZhbGlkIGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtZXJyb3ItY29sb3I6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyIG9mIGFuIGlucHV0IGZpZWxkIHRvIGhhdmUgYW4gZXJyb3Igc3RhdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGFsZXJ0LWNvbG9yXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhY2tncm91bmQtbGlnaHRlbiBbMTAlXSAtIExpZ2h0bmVzcyBsZXZlbCBvZiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBmb3JtLWlucHV0LWVycm9yKFxuICAkYmFja2dyb3VuZDogJGlucHV0LWJhY2tncm91bmQtaW52YWxpZCxcbiAgJGJhY2tncm91bmQtbGlnaHRlbjogMTAlXG4pIHtcbiAgJjpub3QoOmZvY3VzKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtaXgoJGJhY2tncm91bmQsICR3aGl0ZSwgJGJhY2tncm91bmQtbGlnaHRlbik7XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktYmFzZVxuLy8vL1xuXG4vLyBCYXNlIFR5cG9ncmFwaHlcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4vLyBUaGVzZSBhcmUgc3R5bGVzIGFwcGxpZWQgdG8gYmFzaWMgSFRNTCB0YWdzLCBpbmNsdWRpbmc6XG4vLyAgIC0gUGFyYWdyYXBocyA8cD5cbi8vICAgLSBCb2xkL2l0YWxpY3MgPGI+IDxzdHJvbmc+IDxpPiA8ZW0+XG4vLyAgIC0gU21hbGwgdGV4dCA8c21hbGw+XG4vLyAgIC0gSGVhZGluZ3MgPGgxPi08aDY+XG4vLyAgIC0gQW5jaG9ycyA8YT5cbi8vICAgLSBEaXZpZGVycyA8aHI+XG4vLyAgIC0gTGlzdHMgPHVsPiA8b2w+IDxkbD5cbi8vICAgLSBCbG9ja3F1b3RlcyA8YmxvY2txdW90ZT5cbi8vICAgLSBDb2RlIGJsb2NrcyA8Y29kZT5cbi8vICAgLSBBYmJyZXZpYXRpb25zIDxhYmJyPlxuLy8gICAtIENpdGF0aW9ucyA8Y2l0ZT5cbi8vICAgLSBLZXlzdHJva2VzIDxrYmQ+XG5cbi8vLyBGb250IGZhbWlseSBmb3IgaGVhZGVyIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3R5bGUgKGUuZy4gaXRhbGljaXplZCkgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayB1c2VkIGZvciBlbGVtZW50cyB0aGF0IHVzZSBtb25vc3BhY2VkIHR5cGUsIHN1Y2ggYXMgY29kZSBzYW1wbGVzXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgZm9yIGhlYWRpbmdzIGF0IHZhcmlvdXMgc2NyZWVuIHNpemVzLiBFYWNoIGtleSBpcyBhIGJyZWFrcG9pbnQsIGFuZCBlYWNoIHZhbHVlIGlzIGEgbWFwIG9mIGhlYWRpbmcgc3R5bGVzLlxuLy8vIEB0eXBlIE1hcFxuJGhlYWRlci1zdHlsZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE5KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0OCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiA0MCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAzMSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNSksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4pICFkZWZhdWx0O1xuXG4vLyAkaGVhZGVyLXN0eWxlcyBtYXAgaXMgYnVpbHQgZnJvbSAkaGVhZGVyLXNpemVzIGluIG9yZGVyIHRvIGVuc3VyZSBkb3dud2FyZCBjb21wYXRpYmlsaXR5XG4vLyB3aGVuICRoZWFkZXItc2l6ZXMgaXMgZGVwcmVjaWF0ZWQsICRoZWFkZXItc3R5bGVzIG5lZWRzIHRvIGdldCAhZGVmYXVsdCB2YWx1ZXMgbGlrZSBzZXR0aW5ncy5zY3NzXG5AZnVuY3Rpb24gYnVpbGRfZnJvbV9oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcykge1xuICBAd2FybiAnTm90ZSwgdGhhdCAkaGVhZGVyLXNpemVzIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggJGhlYWRlci1zdHlsZXMuICRoZWFkZXItc2l6ZXMgc3RpbGwgd29ya3MsIGJ1dCBpdCBpcyBnb2luZyB0byBiZSBkZXByZWNpYXRlZC4nO1xuICAkaGVhZGVyLXN0eWxlczogKCk7XG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXNpemVzIHtcbiAgICAkaGVhZGVyLW1hcDogKCk7XG4gICAgQGVhY2ggJGhlYWRlciwgJGZvbnQtc2l6ZSBpbiAkaGVhZGVycyB7XG4gICAgICAkaGVhZGVyLW1hcDogbWFwLW1lcmdlKCRoZWFkZXItbWFwLCAoJGhlYWRlcjogKCdmb250LXNpemUnOiAkZm9udC1zaXplKSkpO1xuICAgIH1cbiAgICAkaGVhZGVyLXN0eWxlczogbWFwLW1lcmdlKCRoZWFkZXItc3R5bGVzLCAoJHNpemU6ICRoZWFkZXItbWFwKSk7XG4gIH1cbiAgQHJldHVybiAkaGVhZGVyLXN0eWxlcztcbn1cblxuLy8gSWYgaXQgZXhpc3RzICRoZWFkZXJzLXNpemVzIGlzIHVzZWQgdG8gYnVpbGQgJGhlYWRlci1zdHlsZXMuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoaGVhZGVyLXNpemVzKSB7XG4gICRoZWFkZXItc3R5bGVzOiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKTtcbn1cblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGA8c21hbGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGA8c21hbGw+YCBlbGVtZW50cyB3aGVuIHBsYWNlZCBpbnNpZGUgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGluc2lkZSBgPHA+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIGZvciBwYXJhZ3JhcGggdGV4dC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIFVzZSB0aGUgYC5jb2RlLWlubGluZWAgY29tcG9uZW50IGFzIGRlZmF1bHQgZm9yIGA8Y29kZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRlbmFibGUtY29kZS1pbmxpbmU6IHRydWU7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3MuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIExpc3RcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcblxuLy8vIEJ1bGxldCB0eXBlIHRvIHVzZSBmb3IgdW5vcmRlcmVkIGxpc3RzIChlLmcuLCBgc3F1YXJlYCwgYGNpcmNsZWAsIGBkaXNjYCkuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjICFkZWZhdWx0O1xuXG4vLy8gUG9zaXRpb25pbmcgZm9yIGJ1bGxldHMgb24gdW5vcmRlcmVkIGxpc3QgaXRlbXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGxpc3RzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBhIGxpc3QgaW5zaWRlIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGA8ZGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGA8ZHQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBgPGR0PmAgYW5kIGA8ZGQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSBgPGJsb2NrcXVvdGU+YCBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XG5cbi8vLyBTaWRlIGJvcmRlciBmb3IgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gVXNlIHRoZSBgLmNpdGUtYmxvY2tgIGNvbXBvbmVudCBhcyBkZWZhdWx0IGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZW5hYmxlLWNpdGUtYmxvY2s6IHRydWU7XG5cbi8vLyBGb250IGZhbWlseSBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIGJvcmRlciBzdHlsZSBmb3IgYDxhYmJyPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjayAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlIHtcbiAgLy8gVHlwb2dyYXBoeSByZXNldHNcbiAgZGl2LFxuICBkbCxcbiAgZHQsXG4gIGRkLFxuICB1bCxcbiAgb2wsXG4gIGxpLFxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwcmUsXG4gIGZvcm0sXG4gIHAsXG4gIGJsb2NrcXVvdGUsXG4gIHRoLFxuICB0ZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBQYXJhZ3JhcGhzXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuICB9XG5cbiAgLy8gRW1waGFzaXplZCB0ZXh0XG4gIGVtLFxuICBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTdHJvbmcgdGV4dFxuICBzdHJvbmcsXG4gIGIge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU21hbGwgdGV4dFxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSGVhZGluZ3NcbiAgaDEsIC5oMSxcbiAgaDIsIC5oMixcbiAgaDMsIC5oMyxcbiAgaDQsIC5oNCxcbiAgaDUsIC5oNSxcbiAgaDYsIC5oNiB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuXG4gICAgc21hbGwge1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBjb2xvcjogJGhlYWRlci1zbWFsbC1mb250LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgc3R5bGVzXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXN0eWxlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGhlYWRlciwgJGhlYWRlci1kZWZzIGluICRoZWFkZXJzIHtcbiAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiAxcmVtO1xuICAgICAgICAjeyRoZWFkZXJ9LCAuI3skaGVhZGVyfSB7XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmb250LXNpemUpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZzKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmcykpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxoKSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGgpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMoJGhlYWRlci1saW5laGVpZ2h0LCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG10KSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbXQpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1iKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWIpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRoZWFkZXItbWFyZ2luLWJvdHRvbSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGlua3NcbiAgYSB7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgY29sb3I6ICRhbmNob3ItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGFuY2hvci1jb2xvci1ob3ZlcjtcbiAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3Jpem9udGFsIHJ1bGVcbiAgaHIge1xuICAgIGNsZWFyOiBib3RoO1xuXG4gICAgbWF4LXdpZHRoOiAkaHItd2lkdGg7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbjogJGhyLW1hcmdpbjtcblxuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIGJvcmRlci1ib3R0b206ICRoci1ib3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cblxuICAvLyBMaXN0c1xuICB1bCxcbiAgb2wsXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGlzdC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtc1xuICBsaSB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gVW5vcmRlcmVkIGxpc3RzXG4gIHVsIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgICBsaXN0LXN0eWxlLXR5cGU6ICRsaXN0LXN0eWxlLXR5cGU7XG4gIH1cblxuICAvLyBPcmRlcmVkIGxpc3RzXG4gIG9sIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgfVxuXG4gIC8vIE5lc3RlZCB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0c1xuICB1bCwgb2wge1xuICAgICYgJiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmluaXRpb24gbGlzdHNcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmbmxpc3QtdGVybS13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2txdW90ZXNcbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xuXG4gICAgJiwgcCB7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIElubGluZSBDaXRhdGlvbnNcbiAgQGlmICgkZW5hYmxlLWNpdGUtYmxvY2sgPT0gdHJ1ZSkge1xuICAgIGNpdGUge1xuICAgICAgLy8gRXh0ZW5kaW5nIGEgY2xhc3MgaXMgbm90IHJlY29tbWVuZGVkLlxuICAgICAgLy8gVE9ETzogQnJlYWsgdGhlIHR5cG9ncmFwaHktYmFzZS90eXBvZ3JhcGh5LWhlbHBlcnMgc2VwYXJhdGlvblxuICAgICAgQGV4dGVuZCAuY2l0ZS1ibG9jaztcbiAgICB9XG4gIH1cblxuICAvLyBBYmJyZXZpYXRpb25zXG4gIGFiYnIsIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiAkYWJici11bmRlcmxpbmU7XG4gICAgY3Vyc29yOiBoZWxwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIEZpZ3VyZXNcbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBDb2RlXG4gIEBpZiAoJGVuYWJsZS1jb2RlLWlubGluZSA9PSB0cnVlKSB7XG4gICAgY29kZSB7XG4gICAgICBAZXh0ZW5kIC5jb2RlLWlubGluZTtcbiAgICB9XG4gIH1cblxuICAvLyBLZXlzdHJva2VzXG4gIGtiZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6ICRrZXlzdHJva2UtcGFkZGluZztcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRrZXlzdHJva2UtYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAka2V5c3Ryb2tlLWZvbnQ7XG4gICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRrZXlzdHJva2UtcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAka2V5c3Ryb2tlLXJhZGl1cztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWhlbHBlcnNcbi8vLy9cblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVhZC1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICogMS4yNSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsZWFkLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJHN1YmhlYWRlci1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRvcCBtYXJnaW4gZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgLmNpdGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBQc2V1ZG8gY29udGVudCBmb3IgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW4gYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgdGhlIGAuY29kZS1pbmxpbmVgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIHRoZSBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kY29kZS1ibG9jay1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIHVuZGVyIHRoZSBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjb2RlLWJsb2NrLW1hcmdpbi1ib3R0b206IDEuNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGNpdGUtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICRjaXRlLWNvbG9yO1xuICBmb250LXNpemU6ICRjaXRlLWZvbnQtc2l6ZTtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJGNpdGUtcHNldWRvLWNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIEFkZCBiYXNpYyBzdHlsZXMgZm9yIGEgY29kZSBoZWxwZXIuXG4vLy8gU2VlIGBjb2RlLWlubGluZWAgYW5kIGBjb2RlLWJsb2NrYCBtaXhpbnMuXG5AbWl4aW4gY29kZS1zdHlsZSB7XG4gIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtZmFtaWx5OiAkY29kZS1mb250LWZhbWlseTtcbiAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGNvZGUtY29sb3I7XG59XG5cbi8vLyBNYWtlIGNvZGUgaGVscGVyIGZyb20gdGhlIGBjb2RlLXN0eWxlYCBtaXhpbiBpbmxpbmUuXG4vLy8gVXNlZCB0byBnZW5lcmF0ZSBgLmNvZGUtaW5saW5lYFxuQG1peGluIGNvZGUtaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcblxuICBwYWRkaW5nOiAkY29kZS1wYWRkaW5nO1xufVxuXG4vLy8gTWFrZSBjb2RlIGhlbHBlciBmcm9tIHRoZSBgY29kZS1zdHlsZWAgbWl4aW4gYSBibG9jay5cbi8vLyBVc2VkIHRvIGdlbmVyYXRlIGAuY29kZS1ibG9ja2BcbkBtaXhpbiBjb2RlLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogcHJlO1xuXG4gIHBhZGRpbmc6ICRjb2RlLWJsb2NrLXBhZGRpbmc7XG4gIG1hcmdpbi1ib3R0b206ICRjb2RlLWJsb2NrLW1hcmdpbi1ib3R0b207XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycyB7XG4gIC8vIFVzZSB0byBjcmVhdGUgYSBzdWJoZWFkaW5nIHVuZGVyIGEgbWFpbiBoZWFkZXJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XG4gIC8vIDxoZWFkZXI+XG4gIC8vICAgPGgxPkhlYWRpbmc8L2gxPlxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cbiAgLy8gPC9oZWFkZXI+XG4gIC5zdWJoZWFkZXIge1xuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGFuIGludHJvZHVjdG9yeSBsZWFkLCBkZWNrLCBibHVyYiwgZXRjLlxuICAubGVhZCB7XG4gICAgZm9udC1zaXplOiAkbGVhZC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRsZWFkLWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYSBsYXJnZSBudW1iZXIgdG8gZGlzcGxheSBhIHN0YXRpc3RpY1xuICAuc3RhdCB7XG4gICAgZm9udC1zaXplOiAkc3RhdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBwICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICB9XG4gIH1cblxuICB1bCwgb2wge1xuICAgIC8vIFVzZSB0byByZW1vdmUgbnVtYmVycyBmcm9tIG9yZGVyZWQgbGlzdCAmIGJ1bGxldHMgZnJvbSB1bm9yZGVyZWQgbGlzdFxuICAgICYubm8tYnVsbGV0IHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5jaXRlLWJsb2NrIHtcbiAgICBAaW5jbHVkZSBjaXRlLWJsb2NrO1xuICB9XG5cbiAgLmNvZGUtaW5saW5lIHtcbiAgICBAaW5jbHVkZSBjb2RlLXN0eWxlO1xuICAgIEBpbmNsdWRlIGNvZGUtaW5saW5lO1xuICB9XG5cbiAgLmNvZGUtYmxvY2sge1xuICAgIEBpbmNsdWRlIGNvZGUtc3R5bGU7XG4gICAgQGluY2x1ZGUgY29kZS1ibG9jaztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi10ZXh0LWFsaWdubWVudCB7XG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRhbGlnbiBpbiAobGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAudGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSWYgYHRydWVgLCBhbGwgZWxlbWVudHMgd2lsbCBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzIHdoZW4gcHJpbnRlZCwgdG8gc2F2ZSBvbiBpbmsuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgZGlzcGxheXMgbmV4dCB0byBhbGwgbGlua3MgdGhlaXIgXCJocmVmXCIgd2hlbiBwcmludGVkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtaHJlZnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIHNhc3MtbGludDpkaXNhYmxlLWFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgLy8gRW5zdXJlIGEgXCJibGFjay1vbi13aGl0ZVwiIHByaW50IGJ5IHJlbW92aW5nIGJhY2tncm91bmRzLFxuICAgICAgLy8gdXNpbmcgYmxhY2sgdGV4dCBldmVyeXdoZXJlIGFuZCBmb3JjaW5nIHRoZSBicm93c2VyIHRvIGVjb25vbWl6ZSBpbmsuXG4gICAgICBAaWYgJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3NcbiAgICAgICAgY29sb3ItYWRqdXN0OiBlY29ub215O1xuICAgICAgfVxuICAgICAgLy8gT3RoZXJ3aXNlLCBwcmV2ZW50IGFueSBlY29ub215IGJ5IHRoZSBicm93c2VyLlxuICAgICAgQGVsc2Uge1xuICAgICAgICBjb2xvci1hZGp1c3Q6IGV4YWN0O1xuICAgICAgfVxuXG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgIC8vIERpc3BsYXkgdGhlIFVSTCBvZiBhIGxpbmsgYWZ0ZXIgdGhlIHRleHRcbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICBAaWYgJHByaW50LWhyZWZzIHtcbiAgICAgIGFbaHJlZl06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIoaHJlZikgJyknOyB9XG4gICAgfVxuXG4gICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgVVJMIGZvciBpbWFnZXMgb3IgSmF2YVNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgIC5pciBhOmFmdGVyLFxuICAgIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gICAgYVtocmVmXj0nIyddOmFmdGVyIHsgY29udGVudDogJyc7IH1cblxuICAgIC8vIERpc3BsYXkgd2hhdCBhbiBhYmJyZXZpYXRpb24gc3RhbmRzIGZvciBhZnRlciB0aGUgdGV4dFxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKHRpdGxlKSAnKSc7IH1cblxuICAgIC8vIFByZXZlbnQgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBhIGJsb2NrcXVvdGUgb3IgcHJlZm9ybWF0dGVkIHRleHQgYmxvY2tcbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIGg1YnAuY29tL3RcbiAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuXG4gICAgdHIsXG4gICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG5cbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgIG9ycGhhbnM6IDM7XG4gICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgLy8gQXZvaWQgcGFnZSBicmVha3MgYWZ0ZXIgYSBoZWFkaW5nXG4gICAgaDIsXG4gICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuXG4gICAgLy8gSGVscGVyIHRvIHJlLWFsbG93IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgY2VydGFpbiBlbGVtZW50cyAoZS5nLiBwcmUsIGJsb2NrcXVvdGUsIHRyKVxuICAgIC5wcmludC1icmVhay1pbnNpZGUge1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLyBNYXJnaW4gR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktYmFzZS1ncmlkLWNsYXNzZXMge1xuXG4gIC8vIEdyaWQgQ29udGFpbmVyXG4gIC5ncmlkLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXI7XG5cbiAgICAmLmZsdWlkIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKDEwMCUpO1xuICAgIH1cblxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigxMDAlLCAwKTtcbiAgICB9XG4gIH1cblxuICAvLyBCYXNlIGdyaWQgc3R5bGVzXG4gIC5ncmlkLXgge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQ7XG4gIH1cblxuICAuY2VsbCB7XG4gICAgQGluY2x1ZGUgeHktY2VsbChmdWxsLCAkZ3V0dGVyLXR5cGU6IG5vbmUpO1xuXG4gICAgJi5hdXRvIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShhdXRvKTtcbiAgICB9XG5cbiAgICAmLnNocmluayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2Uoc2hyaW5rKTtcbiAgICB9XG5cbiAgfVxuICAuZ3JpZC14IHtcbiAgICA+IC5hdXRvIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZShhdXRvLCAkZ3V0dGVyLXR5cGU6IG5vbmUpO1xuICAgIH1cblxuICAgID4gLnNocmluayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoc2hyaW5rLCAkZ3V0dGVyLXR5cGU6IG5vbmUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEF1dG8gd2lkdGhcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAvLyBUaGlzIGlzIGEgYml0IG9mIGEgaGFjay93b3JrYXJvdW5kLCBzZWUgdGhlc2UgaXNzdWVzICYgUFJzIGZvciB0aGUgYmFja3N0b3J5OlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzEwMjQ0XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMjIyIGFuZFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDE2NFxuICAgIC5ncmlkLXgge1xuICAgICAgJHN0cjogXCI+IC4jeyQtemYtc2l6ZX0tc2hyaW5rLCA+IC4jeyQtemYtc2l6ZX0tZnVsbFwiO1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgJHN0cjogJHN0ciArIFwiLCA+IC4jeyQtemYtc2l6ZX0tI3skaX1cIlxuICAgICAgfVxuICAgICAgI3skc3RyfSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAvLyBSZXNwb25zaXZlIFwiYXV0b1wiIG1vZGlmaWVyXG4gICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICAgIC5ncmlkLXggPiAuI3skLXpmLXNpemV9LWF1dG8ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKGF1dG8sICRndXR0ZXItdHlwZTogbm9uZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJS14eS1jZWxsLWJhc2Utc2hyaW5rLWhvcml6b250YWwtI3skLXpmLXNpemV9IHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShzaHJpbmspO1xuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgXCJzaHJpbmtcIiBtb2RpZmllclxuICAgIEBpZiBub3QoJC16Zi1zaXplID09ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gICAgICAuZ3JpZC14ID4gLiN7JC16Zi1zaXplfS1zaHJpbmsge1xuICAgICAgICBAZXh0ZW5kICUteHktY2VsbC1iYXNlLXNocmluay1ob3Jpem9udGFsLSN7JC16Zi1zaXplfTtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKHNocmluaywgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHdpZHRoIG1vZGlmaWVyc1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAuZ3JpZC14ID4gLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIEBleHRlbmQgJS14eS1jZWxsLWJhc2Utc2hyaW5rLWhvcml6b250YWwtI3skLXpmLXNpemV9O1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoJGksICRndXR0ZXItdHlwZTogbm9uZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgd2lkdGggd2hlbiB1c2luZyBgLmdyaWQtbWFyZ2luLXhgIG5vdCBvbiBgLmdyaWQteGBcbiAgLmdyaWQtbWFyZ2luLXg6bm90KC5ncmlkLXgpID4gLmNlbGwge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgLy8gUmVzZXQgaGVpZ2h0IHdoZW4gdXNpbmcgYC5ncmlkLW1hcmdpbi15YCBub3Qgb24gYC5ncmlkLXlgXG4gIC5ncmlkLW1hcmdpbi15Om5vdCguZ3JpZC15KSA+IC5jZWxsIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuQG1peGluIC14eS1icmVha3BvaW50LWNlbGwtY2xhc3NlcygkY2xhc3MtYnJlYWtwb2ludCwgJGd1dHRlci1icmVha3BvaW50LCAkdmVydGljYWwpIHtcbiAgJHByZWZpeDogaWYoJGNsYXNzLWJyZWFrcG9pbnQgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQsICcnLCAnI3skY2xhc3MtYnJlYWtwb2ludH0tJyk7XG4gID4gLiN7JHByZWZpeH1hdXRvIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoYXV0bywgJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICB9XG5cbiAgPiAuI3skcHJlZml4fXNocmluayB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKHNocmluaywgJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgJGNsYXNzbmFtZTogaWYoJHZlcnRpY2FsLCAnLiN7JGNsYXNzLWJyZWFrcG9pbnR9LSN7JGl9JywgJy4jeyRjbGFzcy1icmVha3BvaW50fS0jeyRpfScpO1xuXG4gICAgPiAjeyRjbGFzc25hbWV9IHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkaSwgJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBNYXJnaW4gR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktbWFyZ2luLWdyaWQtY2xhc3NlcyhcbiAgJGd1dHRlci1wb3NpdGlvbjogbGVmdCByaWdodCxcbiAgJHZlcnRpY2FsOiBmYWxzZSxcbiAgJHdyYXBwaW5nLXNlbGVjdG9yOiAnLmdyaWQtbWFyZ2luLXgnXG4pe1xuICAjeyR3cmFwcGluZy1zZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJG5lZ2F0aXZlOiB0cnVlLCAkZ3V0dGVyLXBvc2l0aW9uOiAkZ3V0dGVyLXBvc2l0aW9uKTtcblxuICAgIC8vIEJhc2UgY2VsbCBzdHlsZXNcbiAgICA+IC5jZWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwoJHZlcnRpY2FsOiAkdmVydGljYWwsICRvdXRwdXQ6IChzaXplIGd1dHRlcnMpKTtcbiAgICB9XG5cbiAgICAvLyBiYXNlIHN0eWxlcyBuZWVkIHRvIGFsbCBiZSBiZWZvcmUgdGhlIGF1dG8gYW5kIHNocmluayBzdHlsZXNcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgQGlmKHR5cGUtb2YoJGdyaWQtbWFyZ2luLWd1dHRlcnMpID09ICdtYXAnIGFuZCBtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJC16Zi1zaXplKSBhbmQgJC16Zi1zaXplICE9ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gICAgICAgID4gLmNlbGwge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoJHZlcnRpY2FsOiAkdmVydGljYWwsICRvdXRwdXQ6IChzaXplIGd1dHRlcnMpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG5cbiAgICAgIC8vIFRoaXMgaXMgcHVyZWx5IGZvciByZXNwb25zaXZlIGd1dHRlcnMgLSB0aGUgbWFyZ2luIGdyaWQgaGFzIHRvIGdvIGJhY2sgYW5kIGFkanVzdCB3aWR0aHMgKG9yIGhlaWdodHMpXG4gICAgICAvLyBmb3IgYWxsIHByaW9yIGJyZWFrcG9pbnRzLlxuICAgICAgLy8gQXMgdGhlaXIgZ3V0dGVyIGlzIGRlZmluZWQgd2l0aCB0aGVpciB3aWR0aC9oZWlnaHQsIGV2ZW4gYnJlYWtwb2ludCB3aXRob3V0IGEgbmV3IG1hcmdpbiBtdXN0IGJlXG4gICAgICAvLyBnZW5lcmF0ZWQgdG8gbm90IGhhdmluZyB0aGVpciB3aWR0aC9oZWlnaHQgb3ZlcnJpZGVkIGJ5IHJlLWFkanVzdGVkIHNtYWxsZXIgYnJlYWtwb2ludHMuXG4gICAgICBAaWYodHlwZS1vZigkZ3JpZC1tYXJnaW4tZ3V0dGVycykgPT0gJ21hcCcgYW5kIG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUpKSB7XG4gICAgICAgIEBlYWNoICRicCBpbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCQtemYtc2l6ZSkge1xuICAgICAgICAgIEBpbmNsdWRlIC14eS1icmVha3BvaW50LWNlbGwtY2xhc3NlcygkYnAsICQtemYtc2l6ZSwgJHZlcnRpY2FsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSAteHktYnJlYWtwb2ludC1jZWxsLWNsYXNzZXMoJC16Zi1zaXplLCAkLXpmLXNpemUsICR2ZXJ0aWNhbCk7XG4gICAgfVxuICB9XG59XG5cbi8vIFBhZGRpbmcgR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktcGFkZGluZy1ncmlkLWNsYXNzZXMge1xuICAuZ3JpZC1wYWRkaW5nLXgge1xuXG4gICAgLy8gTmVnYXRpdmUgbWFyZ2luIGZvciBuZXN0ZWQgZ3JpZHNcbiAgICAuZ3JpZC1wYWRkaW5nLXgge1xuICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUpO1xuICAgIH1cblxuICAgIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3IgZ3JpZHMgd2l0aGluIGBncmlkLWNvbnRhaW5lci9ncmlkLWNvbnRhaW5lci5mbHVpZGBcbiAgICAvLyBUaGlzIGFsbG93cyBtYXJnaW4gYW5kIHBhZGRpbmcgZ3JpZHMgdG8gbGluZSB1cCB3aXRoIGVhY2hvdGhlclxuICAgIC5ncmlkLWNvbnRhaW5lcjpub3QoLmZ1bGwpID4gJiB7XG4gICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gQmFzZSBjZWxsIHN0eWxlc1xuICAgID4gLmNlbGwge1xuICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyczogJGdyaWQtcGFkZGluZy1ndXR0ZXJzLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBCbG9jayBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1ibG9jay1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkOiB0cnVlLCAkcGFkZGluZy1ncmlkOiB0cnVlKSB7XG4gIEBpZiAkcGFkZGluZy1ncmlkIHtcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHh5LWJsb2NrLWdyaWQtbWF4IHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoJG46ICRpLCAkc2VsZWN0b3I6ICcuY2VsbCcsICRndXR0ZXItdHlwZTogcGFkZGluZywgJG91dHB1dDogKHNpemUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkeHktYmxvY2stZ3JpZC1tYXgge1xuICAgICAgICAvLyBUaGlzIGlzIHB1cmVseSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzIC0gdGhlIG1hcmdpbiBncmlkIGhhcyB0byBnbyBiYWNrIGFuZCBhZGp1c3Qgd2lkdGhzIChvciBoZWlnaHRzKVxuICAgICAgICAvLyBmb3IgcHJpb3IgYnJlYWtwb2ludHMgYmFzZWQgb24gdGhlIHJlc3BvbnNpdmUgZ3V0dGVyLlxuICAgICAgICBAaWYodHlwZS1vZigkZ3JpZC1tYXJnaW4tZ3V0dGVycykgPT0gJ21hcCcgYW5kIG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUpKSB7XG4gICAgICAgICAgQGVhY2ggJGJwIGluIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJC16Zi1zaXplKSB7XG4gICAgICAgICAgICBAaWYobWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICRicCkpIHtcbiAgICAgICAgICAgICAgLmdyaWQtbWFyZ2luLXguI3skYnB9LXVwLSN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCgkbjogJGksICRzZWxlY3RvcjogJy5jZWxsJywgJGd1dHRlci10eXBlOiBtYXJnaW4sICRvdXRwdXQ6IChzaXplKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHh5LWJsb2NrLWdyaWQtbWF4IHtcbiAgICAgICAgLmdyaWQtbWFyZ2luLXguI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCgkbjogJGksICRzZWxlY3RvcjogJy5jZWxsJywgJGd1dHRlci10eXBlOiBtYXJnaW4sICRvdXRwdXQ6IChzaXplKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQ29sbGFwc2UgY2xhc3Nlc1xuQG1peGluIHh5LWNvbGxhcHNlLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQ6IHRydWUsICRwYWRkaW5nLWdyaWQ6IHRydWUpIHtcbiAgQGVhY2ggJGJwIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgICAgLiN7JGJwfS1tYXJnaW4tY29sbGFwc2Uge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbGxhcHNlKCRndXR0ZXItdHlwZTogbWFyZ2luLCAkbWluLWJyZWFrcG9pbnQ6ICRicCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRwYWRkaW5nLWdyaWQge1xuICAgICAgLiN7JGJwfS1wYWRkaW5nLWNvbGxhcHNlIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb2xsYXBzZSgkZ3V0dGVyLXR5cGU6IHBhZGRpbmcsICRtaW4tYnJlYWtwb2ludDogJGJwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gT2Zmc2V0IGNsYXNzZXNcbkBtaXhpbiB4eS1vZmZzZXQtY2VsbC1jbGFzc2VzIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1vZmZzZXQoJG8sICRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgICB9XG5cbiAgICAgIC5ncmlkLW1hcmdpbi14ID4gLiN7JC16Zi1zaXplfS1vZmZzZXQtI3skb30ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLW9mZnNldCgkbyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFZlcnRpY2FsIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LXZlcnRpY2FsLWdyaWQtY2xhc3NlcyhcbiAgJG1hcmdpbi1ncmlkOiB0cnVlLFxuICAkcGFkZGluZy1ncmlkOiB0cnVlXG4pIHtcblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgIEBpZiBub3QoJC16Zi1zaXplID09ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gICAgfVxuICB9XG5cbiAgLmdyaWQteSB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZCh2ZXJ0aWNhbCwgZmFsc2UpO1xuXG5cbiAgICA+IC5jZWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtcmVzZXQoKTtcbiAgICB9XG5cbiAgICA+IC5hdXRvIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZShhdXRvLCAkZ3V0dGVyLXR5cGU6IG5vbmUsICR2ZXJ0aWNhbDogdHJ1ZSk7XG4gICAgfVxuXG4gICAgPiAuc2hyaW5rIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZShzaHJpbmssICRndXR0ZXItdHlwZTogbm9uZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICB9XG5cblxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICAvLyBUaGlzIGlzIGEgYml0IG9mIGEgaGFjay93b3JrYXJvdW5kLCBzZWUgdGhlc2UgaXNzdWVzIGFuZCBQUnMgZm9yIHRoZSBiYWNrc3Rvcnk6XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMDI0NFxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMjIyIGFuZFxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMTY0XG4gICAgICAkc3RyOiBcIj4gLiN7JC16Zi1zaXplfS1zaHJpbmssID4gLiN7JC16Zi1zaXplfS1mdWxsXCI7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAkc3RyOiAkc3RyICsgXCIsID4gLiN7JC16Zi1zaXplfS0jeyRpfVwiXG4gICAgICB9XG4gICAgICAjeyRzdHJ9IHtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgLy8gUmVzcG9uc2l2ZSBcImF1dG9cIiBtb2RpZmllclxuICAgICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgPiAuI3skLXpmLXNpemV9LWF1dG8ge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoYXV0bywgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICUteHktY2VsbC1iYXNlLXNocmluay12ZXJ0aWNhbC0jeyQtemYtc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2Uoc2hyaW5rKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVzcG9uc2l2ZSBcInNocmlua1wiIG1vZGlmaWVyXG4gICAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAgICAgICA+IC4jeyQtemYtc2l6ZX0tc2hyaW5rIHtcbiAgICAgICAgICBAZXh0ZW5kICUteHktY2VsbC1iYXNlLXNocmluay12ZXJ0aWNhbC0jeyQtemYtc2l6ZX07XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKHNocmluaywgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFJlc3BvbnNpdmUgd2lkdGggbW9kaWZpZXJzXG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAgID4gLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgICAgQGV4dGVuZCAlLXh5LWNlbGwtYmFzZS1zaHJpbmstdmVydGljYWwtI3skLXpmLXNpemV9O1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkaSwgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBAaWYgJHBhZGRpbmctZ3JpZCB7XG4gICAgLmdyaWQtcGFkZGluZy15IHtcbiAgICAgIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3IgbmVzdGVkIGdyaWRzXG4gICAgICAuZ3JpZC1wYWRkaW5nLXkge1xuICAgICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSwgJGd1dHRlci1wb3NpdGlvbjogdG9wIGJvdHRvbSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEJhc2UgY2VsbCBzdHlsZXNcbiAgICAgID4gLmNlbGwge1xuICAgICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZywgJGd1dHRlci1wb3NpdGlvbjogdG9wIGJvdHRvbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgQGluY2x1ZGUgeHktbWFyZ2luLWdyaWQtY2xhc3Nlcyh0b3AgYm90dG9tLCB0cnVlLCAnLmdyaWQtbWFyZ2luLXknKTtcbiAgfVxuXG59XG5cbkBtaXhpbiB4eS1mcmFtZS1ncmlkLWNsYXNzZXMoJHZlcnRpY2FsLWdyaWQ6IHRydWUsICRtYXJnaW4tZ3JpZDogdHJ1ZSkge1xuICAvLyBGcmFtZWQgZ3JpZCBzdHlsZXNcbiAgLmdyaWQtZnJhbWUge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWU7XG4gIH1cblxuICAuY2VsbCAuZ3JpZC1mcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gIH1cblxuICAuY2VsbC1ibG9jayB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jaygpO1xuICB9XG5cbiAgLmNlbGwtYmxvY2steSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jayh0cnVlKTtcbiAgfVxuXG5cbiAgLmNlbGwtYmxvY2stY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrLWNvbnRhaW5lcigpO1xuICB9XG5cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG5cbiAgICAuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZTtcbiAgICB9XG5cbiAgICAuY2VsbCAuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgd2lkdGg6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2soKTtcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LWNlbGwtYmxvY2stY29udGFpbmVyIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2stY29udGFpbmVyKCk7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrLXkge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jayh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJHZlcnRpY2FsLWdyaWQge1xuICAgIC5ncmlkLXkge1xuICAgICAgJi5ncmlkLWZyYW1lIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcbiAgICAgICAgJi4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfVxuICAgIC5jZWxsIHtcbiAgICAgIC5ncmlkLXkuZ3JpZC1mcmFtZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTsgLy8gU2FtZSBhcyBpbmNsdWRlIHdpdGggJG5lc3RlZCwgYnV0IHdpdGggbGVzcyBjc3NcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcbiAgICAgICAgLmdyaWQteS4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgIEBpbmNsdWRlIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXModG9wIGJvdHRvbSwgdHJ1ZSwgJy5ncmlkLW1hcmdpbi15Jyk7XG4gICAgLmdyaWQtZnJhbWUuZ3JpZC1tYXJnaW4teSB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUsIGZhbHNlLCAkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJGluY2x1ZGUtYmFzZTogZmFsc2UpO1xuICAgIH1cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG4gICAgICAuZ3JpZC1tYXJnaW4teS4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSwgZmFsc2UsICRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gRmluYWwgY2xhc3Nlc1xuQG1peGluIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzKFxuICAkYmFzZS1ncmlkOiB0cnVlLFxuICAkbWFyZ2luLWdyaWQ6IHRydWUsXG4gICRwYWRkaW5nLWdyaWQ6IHRydWUsXG4gICRibG9jay1ncmlkOiB0cnVlLFxuICAkY29sbGFwc2U6IHRydWUsXG4gICRvZmZzZXQ6IHRydWUsXG4gICR2ZXJ0aWNhbC1ncmlkOiB0cnVlLFxuICAkZnJhbWUtZ3JpZDogdHJ1ZVxuKSB7XG5cbiAgLy8gQmFzZSBncmlkIHN0eWxlc1xuICBAaWYoJGJhc2UtZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LWJhc2UtZ3JpZC1jbGFzc2VzKCk7XG4gIH1cblxuICAvLyBNYXJnaW4gZ3JpZFxuICBAaWYoJG1hcmdpbi1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktbWFyZ2luLWdyaWQtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gUGFkZGluZyBncmlkXG4gIEBpZigkcGFkZGluZy1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktcGFkZGluZy1ncmlkLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIEJsb2NrIGdyaWRcbiAgQGlmKCRibG9jay1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktYmxvY2stZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZCwgJHBhZGRpbmctZ3JpZCk7XG4gIH1cblxuICAvLyBDb2xsYXBzZSBndXR0ZXJzXG4gIEBpZigkY29sbGFwc2UpIHtcbiAgICBAaW5jbHVkZSB4eS1jb2xsYXBzZS1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkLCAkcGFkZGluZy1ncmlkKTtcbiAgfVxuXG4gIC8vIE9mZnNldCBndXR0ZXJzXG4gIEBpZigkb2Zmc2V0KSB7XG4gICAgQGluY2x1ZGUgeHktb2Zmc2V0LWNlbGwtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gVmVydGljYWwgZ3JpZFxuICBAaWYoJHZlcnRpY2FsLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS12ZXJ0aWNhbC1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkLCAkcGFkZGluZy1ncmlkKTtcbiAgfVxuXG4gIEBpZiAoJGZyYW1lLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1mcmFtZS1ncmlkLWNsYXNzZXMoJHZlcnRpY2FsLWdyaWQsICRtYXJnaW4tZ3JpZClcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZSBndXR0ZXJzIGZvciBhIGNlbGwvY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBlaXRoZXIgbWFyZ2luIG9yIHBhZGRpbmcuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtyaWdodCBsZWZ0XSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRuZWdhdGl2ZSBbZmFsc2VdIC0gV2hldGhlciB0byBhcHBseSB0aGUgZ3V0dGVyIGFzIGEgbmVnYXRpdmUgdmFsdWUuIENvbW1vbmx5IHVzZWQgZm9yIG5lc3RlZCBncmlkcy5cbkBtaXhpbiB4eS1ndXR0ZXJzKFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiByaWdodCBsZWZ0LFxuICAkbmVnYXRpdmU6IGZhbHNlXG4pIHtcbiAgJG9wZXJhdG9yOiBpZigkbmVnYXRpdmUsICctJywgJycpO1xuXG4gIC8vIElmIHdlIGhhdmUgZGVjbGFyZWQgbmVnYXRpdmUgZ3V0dGVycywgZm9yY2UgdHlwZSB0byBgbWFyZ2luLlxuICAkZ3V0dGVyLXR5cGU6IGlmKCRuZWdhdGl2ZSwgJ21hcmdpbicsICRndXR0ZXItdHlwZSk7XG5cbiAgLy8gT3V0cHV0IG91ciBtYXJnaW4gZ3V0dGVycy5cbiAgQGlmICh0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbWFwJykge1xuICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKGF1dG8sICRndXR0ZXJzKSB7XG4gICAgICAkZ3V0dGVyOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAvIDI7XG5cbiAgICAgIC8vIExvb3AgdGhyb3VnaCBlYWNoIGd1dHRlciBwb3NpdGlvblxuICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICAjeyRndXR0ZXItdHlwZX0tI3skdmFsdWV9OiB1bnF1b3RlKFwiI3skb3BlcmF0b3J9I3skZ3V0dGVyfVwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgKHR5cGUtb2YoJGd1dHRlcnMpID09ICdudW1iZXInKSB7XG4gICAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcnMpIC8gMjtcblxuICAgIC8vIExvb3AgdGhyb3VnaCBlYWNoIGd1dHRlciBwb3NpdGlvblxuICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICN7JGd1dHRlci10eXBlfS0jeyR2YWx1ZX06IHVucXVvdGUoXCIjeyRvcGVyYXRvcn0jeyRndXR0ZXJ9XCIpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBtYXggd2lkdGggY29udGFpbmVyLCBkZXNpZ25lZCB0byBob3VzZSB5b3VyIGdyaWQgY29udGVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRncmlkLWNvbnRhaW5lcl0gLSBhIHdpZHRoIHRvIGxpbWl0IHRoZSBjb250YWluZXIgdG8uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkaW5nIFskZ3JpZC1jb250YWluZXItcGFkZGluZ10gLSBwYWRkaW5ncyBvZiB0aGUgY29udGFpbmVyLlxuQG1peGluIHh5LWdyaWQtY29udGFpbmVyKFxuICAkd2lkdGg6ICRncmlkLWNvbnRhaW5lcixcbiAgJHBhZGRpbmc6ICRncmlkLWNvbnRhaW5lci1wYWRkaW5nXG4pIHtcbiAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyczogJHBhZGRpbmcsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG5cbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi8vLyBDcmVhdGVzIGEgY29udGFpbmVyIGZvciB5b3VyIGZsZXggY2VsbHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW2hvcml6b250YWxdIC0gRWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwgZGlyZWN0aW9uIG9mIGNlbGxzIHdpdGhpbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR3cmFwIFt0cnVlXSAtIElmIHRoZSBjZWxscyB3aXRoaW4gc2hvdWxkIHdyYXAgb3Igbm90LlxuQG1peGluIHh5LWdyaWQoXG4gICRkaXJlY3Rpb246IGhvcml6b250YWwsXG4gICR3cmFwOiB0cnVlXG4pIHtcbiAgJGRpcmVjdGlvbjogaWYoJGRpcmVjdGlvbiA9PSAnaG9yaXpvbnRhbCcsIHJvdywgY29sdW1uKTtcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogJGRpcmVjdGlvbiAkd3JhcDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBSZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBDU1MgZmxleCB2YWx1ZSBmb3IgYSBjZWxsIGJhc2UuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQWNjZXB0cyBgZnVsbGAsIGBhdXRvYCwgYHNocmlua2AsIGBncm93YCwgb3IgYW55IG90aGVyIHZhbHVlIHJlcHJlc2VudGluZyBhIGNlbGwgc2l6ZSAoaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGBzaHJpbmtgKS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBUaGUgY2VsbCBmbGV4IHByb3BlcnR5IHZhbHVlLlxuQGZ1bmN0aW9uIHh5LWNlbGwtYmFzZSgkc2l6ZTogZnVsbCkge1xuICBAaWYgKCRzaXplID09ICdhdXRvJykge1xuICAgIEByZXR1cm4gMSAxIDBweDtcbiAgfVxuICBAZWxzZSBpZiAoJHNpemUgPT0gJ2dyb3cnKSB7XG4gICAgQHJldHVybiAxIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAoJHNpemUgPT0gJ3Nocmluaycgb3IgJHNpemUgPT0gJ2Z1bGwnIG9yIHpmLWlzLWZyYWN0aW9uKCRzaXplLCAkYWxsb3ctbm8tZGVub21pbmF0b3I6IHRydWUpKSB7XG4gICAgQHJldHVybiAwIDAgYXV0bztcbiAgfVxuICBAcmV0dXJuIG51bGw7XG59XG5cbi8vLyBDYWxjdWxhdGUgdGhlIHNpemUgb2YgYSBjZWxsIGd1dHRlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIGBhdXRvYCwgcmV0dXJucyB0aGUgcmVzcG9uc2l2ZSBndXR0ZXJzIG1hcCBgJGd1dHRlcnNgLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfE1hcH0gVGhlIGNlbGwgZ3V0dGVyIHNpemUgb3IgdGhlIHJlc3BvbnNpdmUgZ3V0dGVycyBtYXAuXG5AZnVuY3Rpb24geHktY2VsbC1ndXR0ZXJzKFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRicmVha3BvaW50OiBudWxsXG4pIHtcbiAgLy8gRm9yIGBhdXRvYCwgcmV0dXJucyB0aGUgcmVzcG9uc2l2ZSBtYXAgYCRndXR0ZXJzYC5cbiAgQGlmICgkYnJlYWtwb2ludCA9PSAnYXV0bycpIHtcbiAgICBAcmV0dXJuICRndXR0ZXJzO1xuICB9XG5cbiAgLy8gVXNlIHRoZSBjb250ZXh0dWFsIGJyZWFrcG9pbnQgYnkgZGVmYXVsdC5cbiAgJGJyZWFrcG9pbnQ6IC16Zi1jdXJyZW50LWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpO1xuXG4gIEBpZiAoJGJyZWFrcG9pbnQpIHtcbiAgICBAcmV0dXJuIC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICQtemYtemVyby1icmVha3BvaW50KSBvciAwO1xuICB9XG59XG5cbi8vLyBSZXR1cm5zIHRoZSBwZXJjZW50YWdlIHNpemUgb2YgYSBjZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHNpemUgWyRncmlkLWNvbHVtbnNdIC0gU2l6ZSB0byBtYWtlIHRoZSBjZWxsLiBZb3UgY2FuIHBhc3MgYSB2YWx1ZSBpbiBtdWx0aXBsZSBmb3JtYXRzLCBzdWNoIGFzIGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzNgLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gU2l6ZSBvZiB0aGUgY2VsbCAoaW4gcGVyY2VudCkuXG5AZnVuY3Rpb24geHktY2VsbC1zaXplKFxuICAkc2l6ZTogJGdyaWQtY29sdW1uc1xuKSB7XG4gIEByZXR1cm4gZnJhY3Rpb24tdG8tcGVyY2VudGFnZSgkc2l6ZSwgJGRlbm9taW5hdG9yOiAkZ3JpZC1jb2x1bW5zKTtcbn1cblxuLy8vIFJldHVybnMgdGhlIGFwcHJvcHJpYXRlIENTUyB2YWx1ZSBmb3IgYSBjZWxsIHNpemUuXG4vLy9cbi8vLyBHdXR0ZXJzLXJlbGF0ZWQgYXJndW1lbnRzIGFyZSByZXF1aXJlZCBmb3IgY2VsbHMgd2l0aCBtYXJnaW4gZ3V0dGVycyAoYnkgZGVmYXVsdCkgYXMgdGhlIGd1dHRlciBpcyBpbmNsdWRlZCBpbiB0aGUgd2lkdGguXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAsIGBhdXRvYCwgYHNocmlua2Agb3IgYW55IGZyYWN0aW9uIGxpa2UgYDZgLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvMmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCwgYHBhZGRpbmdgIG9yIGBub25lYC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiBgYXV0b2AsIHJldHVybnMgYSBtYXAgb2Ygc2l6ZXMgYWRhcHRlZCB0byByZXNwb25zaXZlIGd1dHRlcnMuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ8U3RyaW5nfE1hcH0gVGhlIGNlbGwgc2l6aW5nIHByb3BlcnR5IHZhbHVlLCBvciBhIHJlc3BvbnNpdmUgbWFwIG9mIHRoZW0uXG5AZnVuY3Rpb24geHktY2VsbC1zaXplLWNzcyhcbiAgJHNpemU6IGZ1bGwsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRicmVha3BvaW50OiBudWxsXG4pIHtcbiAgJG1hcmdpbi1ndXR0ZXI6IDA7XG5cbiAgQGlmICgkc2l6ZSA9PSAnYXV0bycgb3IgJHNpemUgPT0gJ3NocmluaycpIHtcbiAgICBAcmV0dXJuIGF1dG87XG4gIH1cblxuICAvLyBGb3IgY2VsbHMgd2l0aCBtYXJnaW4gZ3V0dGVycywgdGhlIGd1dHRlciBpcyBpbmNsdWRlZCBpbiB0aGUgd2lkdGguXG4gIEBpZiAoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG4gICAgJG1hcmdpbi1ndXR0ZXI6IHh5LWNlbGwtZ3V0dGVycygkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICAgIEBpZiAoJG1hcmdpbi1ndXR0ZXIgPT0gbnVsbCkge1xuICAgICAgQGVycm9yICd4eS1jZWxsLXNpemU6IG5vIGd1dHRlcnMgd2VyZSBmb3VuZCBpbiBgJGd1dHRlcnNgIGZvciBcIiRicmVha3BvaW50OiAjeyRicmVha3BvaW50fVwiJztcbiAgICB9XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgdGhlIGNlbGwgc2l6ZSAobnVtYmVyKVxuICAkc2l6ZS1yYXc6IGlmKCRzaXplID09ICdmdWxsJywgMTAwJSwgeHktY2VsbC1zaXplKCRzaXplKSk7XG5cbiAgLy8gQ2FsY3VsYXRlIHRoZSBjZWxsIENTUyBzaXplIGluY2x1ZGluZyBndXR0ZXJzIChzdHJpbmcpXG4gIC8vIElmIHRoZSBjZWxsIGhhcyByZXNwb25zaXZlIG1hcmdpbiBndXR0ZXJzLCByZXR1cm4gYSByZXNwb25zaXZlIG1hcCBvZiBzaXplcy5cbiAgQGlmIHR5cGUtb2YoJG1hcmdpbi1ndXR0ZXIpID09ICdtYXAnIHtcbiAgICAkcmVzcG9uc2l2ZS1jc3Mtc2l6ZXM6ICgpO1xuXG4gICAgQGVhY2ggJGJwLCAkbWcgaW4gJG1hcmdpbi1ndXR0ZXIge1xuICAgICAgJHNpemUtY3NzOiBpZigkbWcgPT0gMCwgJHNpemUtcmF3LCBjYWxjKCN7JHNpemUtcmF3fSAtICN7cmVtLWNhbGMoJG1nKX0pKTtcbiAgICAgICRyZXNwb25zaXZlLWNzcy1zaXplczogbWFwLW1lcmdlKCRyZXNwb25zaXZlLWNzcy1zaXplcywgKCRicDogJHNpemUtY3NzKSk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmVzcG9uc2l2ZS1jc3Mtc2l6ZXM7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gYSBzaW5nbGUgQ1NTIHNpemUuXG4gIEBlbHNlIHtcbiAgICAkY3NzLXNpemU6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsICRzaXplLXJhdywgY2FsYygjeyRzaXplLXJhd30gLSAje3JlbS1jYWxjKCRtYXJnaW4tZ3V0dGVyKX0pKTtcbiAgICBAcmV0dXJuICRjc3Mtc2l6ZTtcbiAgfVxufVxuXG4vLy8gU2V0cyBiYXNlIGZsZXggcHJvcGVydGllcyBmb3IgY2VsbHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQWNjZXB0cyBgZnVsbGAsIGBhdXRvYCwgYHNocmlua2AsIGBncm93YCwgb3IgYW55IG90aGVyIHZhbHVlIHJlcHJlc2VudGluZyBhIGNlbGwgc2l6ZSAoaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGBzaHJpbmtgKS5cbkBtaXhpbiB4eS1jZWxsLWJhc2UoJHNpemU6IGZ1bGwpIHtcbiAgJGJhc2U6IHh5LWNlbGwtYmFzZSgkc2l6ZSk7XG5cbiAgZmxleDogI3skYmFzZX07XG5cbiAgLy8gU2V0IGJhc2Ugc3R5bGVzIGZvciBcImZ1bGxcIiBvbmx5XG4gIEBpZigkc2l6ZSA9PSAnZnVsbCcpIHtcbiAgICBtaW4taGVpZ2h0OiAwcHg7XG4gICAgbWluLXdpZHRoOiAwcHg7XG4gIH1cbn1cblxuLy8vIFJlc2V0cyBhIGNlbGxzIHdpZHRoIChvciBoZWlnaHQgaWYgdmVydGljYWwgaXMgdHJ1ZSkgYXMgd2VsbCBhcyBzdHJpcHMgaXRzIGd1dHRlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG5AbWl4aW4geHktY2VsbC1yZXNldCgkdmVydGljYWw6IHRydWUpIHtcbiAgJGRpcmVjdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIGhlaWdodCwgd2lkdGgpO1xuICAjeyRkaXJlY3Rpb259OiBhdXRvO1xuICBtYXgtI3skZGlyZWN0aW9ufTogbm9uZTtcbn1cblxuLy8vIFNldHMgc2l6aW5nIHByb3BlcnRpZXMgZm9yIGNlbGxzLlxuLy8vXG4vLy8gR3V0dGVycy1yZWxhdGVkIGFyZ3VtZW50cyBhcmUgcmVxdWlyZWQgZm9yIGNlbGxzIHdpdGggbWFyZ2luIGd1dHRlcnMgKGJ5IGRlZmF1bHQpIGFzIHRoZSBndXR0ZXIgaXMgaW5jbHVkZWQgaW4gdGhlIHdpZHRoLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBDYW4gYmUgYGZ1bGxgICgxMDAlIHdpZHRoKSwgYGF1dG9gICh1c2UgYWxsIGF2YWlsYWJsZSBzcGFjZSksIGBzaHJpbmtgICh1c2Ugb25seSB0aGUgcmVxdWlyZWQgc3BhY2UpIG9yIGFueSBmcmFjdGlvbiAoYDZgLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvMmAuLi4pLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAsIGBwYWRkaW5nYCBvciBgbm9uZWAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgYGF1dG9gLCBnZW5lcmF0ZXMgc2l6ZXMgYWRhcHRlZCBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwtc2l6ZShcbiAgJHNpemU6IGZ1bGwsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgJHNpemVzOiB4eS1jZWxsLXNpemUtY3NzKCRzaXplLCAkZ3V0dGVycywgJGd1dHRlci10eXBlLCAkYnJlYWtwb2ludCk7XG4gICRkaXJlY3Rpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCBoZWlnaHQsIHdpZHRoKTtcblxuICBAaWYgKHR5cGUtb2YoJHNpemVzKSA9PSAnbWFwJykge1xuICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKGF1dG8sICRzaXplcykge1xuICAgICAgI3skZGlyZWN0aW9ufTogJC16Zi1icC12YWx1ZTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICN7JGRpcmVjdGlvbn06ICRzaXplcztcbiAgfVxufVxuXG4vLy8gU2V0cyBndXR0ZXJzIHByb3BlcnRpZXMgZm9yIGNlbGxzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCwgYHBhZGRpbmdgIG9yIGBub25lYC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW251bGxdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLiBCeSBkZWZhdWx0IGByaWdodCBsZWZ0YCBmb3IgaG9yaXpvbnRhbCBjZWxscyBhbmQgYHRvcCBib3R0b21gIGZvciB2ZXJ0aWNhbCBjZWxscy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiBgYXV0b2AsIGdlbmVyYXRlcyByZXNwb25zaXZlIGd1dHRlcnMuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gRGlyZWN0aW9uIG9mIHRoZSBndXR0ZXJzIHRvIG91dHB1dC4gU2VlIGAkZ3V0dGVyLXBvc2l0aW9uYC5cbkBtaXhpbiB4eS1jZWxsLWd1dHRlcnMoXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IG51bGwsXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgLy8gR2V0IHRoZSBkZWZhdWx0IGd1dHRlciBwb3NpdGlvbiBhY2NvcmRpbmcgdG8gY2VsbCBkaXJlY3Rpb25cbiAgQGlmKCRndXR0ZXItcG9zaXRpb24gPT0gbnVsbCkge1xuICAgICRndXR0ZXItcG9zaXRpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCB0b3AgYm90dG9tLCBsZWZ0IHJpZ2h0KTtcbiAgfVxuXG4gIC8vIEdldCB0aGUgZ3V0dGVyIHdpZHRoIGZvciB0aGlzIGJyZWFrcG9pbnRcbiAgJGd1dHRlci13aWR0aDogeHktY2VsbC1ndXR0ZXJzKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG4gIEBpZiAoJGd1dHRlci13aWR0aCA9PSBudWxsKSB7XG4gICAgQGVycm9yICd4eS1jZWxsLWd1dHRlcnM6IG5vIGd1dHRlcnMgd2VyZSBmb3VuZCBpbiBgJGd1dHRlcnNgIGZvciBcIiRicmVha3BvaW50OiAjeyRicmVha3BvaW50fVwiJztcbiAgfVxuXG4gIEBpZiAoJGd1dHRlci10eXBlIGFuZCAkZ3V0dGVyLXR5cGUgIT0gbm9uZSkge1xuICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlci13aWR0aCwgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uKTtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGNlbGwgZm9yIHlvdXIgZ3JpZC5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoMTAwJSB3aWR0aCksIGBhdXRvYCAodXNlIGFsbCBhdmFpbGFibGUgc3BhY2UpLCBgc2hyaW5rYCAodXNlIG9ubHkgdGhlIHJlcXVpcmVkIHNwYWNlKSBvciBhbnkgZnJhY3Rpb24gKGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLi4uKS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFtudWxsXSAtIFtERVBSRUNBVEVEXSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gLCBgcGFkZGluZ2Agb3IgYG5vbmVgLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbbnVsbF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uIEJ5IGRlZmF1bHQgYHJpZ2h0IGxlZnRgIGZvciBob3Jpem9udGFsIGNlbGxzIGFuZCBgdG9wIGJvdHRvbWAgZm9yIHZlcnRpY2FsIGNlbGxzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIGBhdXRvYCwgZ2VuZXJhdGVzIHJlc3BvbnNpdmUgZ3V0dGVycy4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbi8vLyBAcGFyYW0ge0xpc3R9ICRvdXRwdXQgWyhiYXNlIHNpemUgZ3V0dGVycyldIC0gQ2VsbCBwYXJ0cyB0byBvdXRwdXQuIFlvdSB3aWxsIG5lZWQgdG8gZ2VuZXJhdGUgb3RoZXJzIHBhcnRzIG9mIHRoZSBjZWxsIHNlcGVyYXRlbHksIGl0IG1heSBub3Qgd29yayBwcm9wZXJseSBvdGhlcndpc2UuXG5AbWl4aW4geHktY2VsbChcbiAgJHNpemU6IGZ1bGwsXG4gICRndXR0ZXItb3V0cHV0OiBudWxsLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiBudWxsLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZSxcbiAgJG91dHB1dDogKGJhc2Ugc2l6ZSBndXR0ZXJzKVxuKSB7XG4gIC8vIERlZmF1bHQgZm9yICRndXR0ZXItb3V0cHV0XG4gIEBpZiAoJGd1dHRlci1vdXRwdXQgIT0gbnVsbCkge1xuICAgIEB3YXJuICd4eS1jZWxsOiAkZ3V0dGVyLW91dHB1dCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFNlZSBtaWdyYXRpb24gbm90ZXMgYXQgaHR0cHM6Ly9naXQuaW8vZm91bmRhdGlvbi02LTYtMCc7XG4gICAgQGlmICgkZ3V0dGVyLW91dHB1dCA9PSBmYWxzZSkge1xuICAgICAgJG91dHB1dDogc2wtcmVtb3ZlKCRvdXRwdXQsIGd1dHRlcnMpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoaW5kZXgoJG91dHB1dCwgYmFzZSkpIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoJHNpemUpO1xuICB9XG4gIEBpZiAoaW5kZXgoJG91dHB1dCwgc2l6ZSkpIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoJHNpemUsICRndXR0ZXJzLCAkZ3V0dGVyLXR5cGUsICRicmVha3BvaW50LCAkdmVydGljYWwpO1xuICB9XG4gIEBpZiAoaW5kZXgoJG91dHB1dCwgZ3V0dGVycykpIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWd1dHRlcnMoJGd1dHRlcnMsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbiwgJGJyZWFrcG9pbnQsICR2ZXJ0aWNhbCk7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCBzaXplZCBncmlkLiBVc2VkIHRvIGdlbmVyYXRlIG91ciBncmlkIGNsYXNzZXMuXG4vLy9cbi8vLyBgeHktY2VsbC1zdGF0aWMoKWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkLlxuLy8vIFVzZSBgeHktY2VsbCgpYCBpbnN0ZWFkIHdpdGggYCRvdXRwdXQ6IChzaXplIGd1dHRlcnMpYCB0byBub3QgZ2VuZXJhdGUgdGhlIGNlbGwgYmFzZS5cbi8vLyBTZWUgbWlncmF0aW9uIG5vdGVzIGF0IGh0dHBzOi8vZ2l0LmlvL2ZvdW5kYXRpb24tNi02LTBcbi8vL1xuLy8vIEBkZXByZWNhdGVkIHY2LjYuMFxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBDYW4gYmUgYGZ1bGxgICgxMDAlIHdpZHRoKSwgYGF1dG9gICh1c2UgYWxsIGF2YWlsYWJsZSBzcGFjZSksIGBzaHJpbmtgICh1c2Ugb25seSB0aGUgcmVxdWlyZWQgc3BhY2UpIG9yIGFueSBmcmFjdGlvbiAoYDZgLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvMmAuLi4pLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGd1dHRlci1vdXRwdXQgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gb3V0cHV0IGd1dHRlcnMuIEFsd2F5cyBgdHJ1ZWAgZm9yIG1hcmdpbiBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG5AbWl4aW4geHktY2VsbC1zdGF0aWMoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyLW91dHB1dDogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50LFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgQHdhcm4gJ3h5LWNlbGwtc3RhdGljKCkgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgXCJ4eS1jZWxsKClcIiBpbnN0ZWFkLiBTZWUgbWlncmF0aW9uIG5vdGVzIGF0IGh0dHBzOi8vZ2l0LmlvL2ZvdW5kYXRpb24tNi02LTAnO1xuXG4gICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG4gICRndXR0ZXItcG9zaXRpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCB0b3AgYm90dG9tLCBsZWZ0IHJpZ2h0KTtcblxuICAkLWd1dHRlci1vdXRwdXQ6IGlmKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJywgdHJ1ZSwgJGd1dHRlci1vdXRwdXQpO1xuICAkLWd1dHRlci1tYXJnaW46IGlmKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJywgJGd1dHRlciwgMCk7XG5cbiAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgJC1ndXR0ZXItbWFyZ2luLCAkdmVydGljYWwpO1xuICBAaWYgKCQtZ3V0dGVyLW91dHB1dCkge1xuICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlciwgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uKTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gRmluZHMgdGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yIG9mIHR3byBpbnRlZ2Vycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYSAtIEZpcnN0IG51bWJlciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYiAtIFNlY29uZCBudW1iZXIgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvci5cbkBmdW5jdGlvbiBnY2QoJGEsICRiKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9HcmVhdGVzdF9jb21tb25fZGl2aXNvciNKYXZhU2NyaXB0XG4gIEBpZiAoJGIgIT0gMCkge1xuICAgIEByZXR1cm4gZ2NkKCRiLCAkYSAlICRiKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBhYnMoJGEpO1xuICB9XG59XG5cbi8vLyBIYW5kbGVzIGRlY2ltYWwgZXhwb25lbnRzIGJ5IHRyeWluZyB0byBjb252ZXJ0IHRoZW0gaW50byBhIGZyYWN0aW9uIGFuZCB0aGVuIHVzZSBhIG50aC1yb290LWFsZ29yaXRobSBmb3IgcGFydHMgb2YgdGhlIGNhbGN1bGF0aW9uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgYmFzZSBudW1iZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHBvbmVudCAtIFRoZSBleHBvbmVudC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBwcm9kdWN0IG9mIHRoZSBleHBvbmVudGlhdGlvbi5cbkBmdW5jdGlvbiBwb3coJGJhc2UsICRleHBvbmVudCwgJHByZWM6IDE2KSB7XG4gIEBpZiAoZmxvb3IoJGV4cG9uZW50KSAhPSAkZXhwb25lbnQpIHtcbiAgICAkcHJlYzIgOiBwb3coMTAsICRwcmVjKTtcbiAgICAkZXhwb25lbnQ6IHJvdW5kKCRleHBvbmVudCAqICRwcmVjMik7XG4gICAgJGRlbm9taW5hdG9yOiBnY2QoJGV4cG9uZW50LCAkcHJlYzIpO1xuICAgIEByZXR1cm4gbnRoLXJvb3QocG93KCRiYXNlLCAkZXhwb25lbnQgLyAkZGVub21pbmF0b3IpLCAkcHJlYzIgLyAkZGVub21pbmF0b3IsICRwcmVjKTtcbiAgfVxuXG4gICR2YWx1ZTogJGJhc2U7XG4gIEBpZiAkZXhwb25lbnQgPiAxIHtcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRleHBvbmVudCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAqICRiYXNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZXhwb25lbnQgPCAxIHtcbiAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoIC0kZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgLyAkYmFzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuQGZ1bmN0aW9uIG50aC1yb290KCRudW0sICRuOiAyLCAkcHJlYzogMTIpIHtcbiAgLy8gRnJvbTogaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL050aF9yb290I0phdmFTY3JpcHRcbiAgJHg6IDE7XG5cbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkcHJlYyB7XG4gICAgJHg6IDEgLyAkbiAqICgoJG4gLSAxKSAqICR4ICsgKCRudW0gLyBwb3coJHgsICRuIC0gMSkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHg7XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSB3aWR0aCBmb3IgYSBnaXZlbiByYXRpby5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYXRpbyAtIFJhdGlvIHRvIHVzZSB0byBjYWxjdWxhdGUgdGhlIGhlaWdodCwgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuLy8vIEByZXR1cm4ge051bWJlcn0gQSBwZXJjZW50YWdlIHZhbHVlIGZvciB0aGUgaGVpZ2h0IHJlbGF0aXZlIHRvIHRoZSB3aWR0aCBvZiBhIHJlc3BvbnNpdmUgY29udGFpbmVyLlxuQGZ1bmN0aW9uIHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKSB7XG4gICR3OiBudGgoJHJhdGlvLCAxKTtcbiAgJGg6IG50aCgkcmF0aW8sIDMpO1xuICBAcmV0dXJuICRoIC8gJHcgKiAxMDAlO1xufVxuXG4vLy8gUGFyc2UgdGhlIGdpdmVuIGAkZnJhY3Rpb25gIHRvIG51bWVyYXRvcnMgYW5kIGRlbnVtZXJhdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJGZyYWN0aW9uIC0gVmFsdWUgcmVwcmVzZW50aW5nIGEgZnJhY3Rpb24gdG8gcGFyc2UuIEl0IGNhbiBiZSBmb3JtYXR0ZWQgYXMgYDUwJWAsIGAxIG9mIDJgLCBgMS8yYCBvciBgNTBgIChubyBkZW5vbWluYXRvciB3b3VsZCBiZSByZXR1cm5lZCkuXG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBMaXN0IG9mIHBhcnNlZCB2YWx1ZXMgd2l0aCBudW1lcmF0b3IgYXQgZmlyc3QgcG9zaXRpb24gYW5kIGRlbnVtZXJhdG9yIGFzIHNlY29uZC4gVGhlc2UgdmFsdWVzIG1heSBiZSBudWxsLlxuQGZ1bmN0aW9uIHpmLXBhcnNlLWZyYWN0aW9uKCRmcmFjdGlvbikge1xuXG4gIEBpZiB0eXBlLW9mKCRmcmFjdGlvbikgPT0gJ251bWJlcicge1xuICAgIC8vIFwiNTAlXCJcbiAgICBAaWYgdW5pdCgkZnJhY3Rpb24pID09ICclJyB7XG4gICAgICBAcmV0dXJuIChzdHJpcC11bml0KCRmcmFjdGlvbiksIDEwMCk7XG4gICAgfVxuICAgIEBlbHNlIGlmICh1bml0KCRmcmFjdGlvbikgPT0gJycpIHtcbiAgICAgIC8vIFwiMC41XCJcbiAgICAgIEBpZiAkZnJhY3Rpb24gPCAxIHtcbiAgICAgICAgQHJldHVybiAoJGZyYWN0aW9uICogMTAwLCAxMDApO1xuICAgICAgfVxuICAgICAgLy8gXCI1MFwiXG4gICAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gKCRmcmFjdGlvbiwgbnVsbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgdHlwZS1vZigkZnJhY3Rpb24pID09ICdsaXN0JyB7XG4gICAgLy8gXCI1MCBvZiAxMDBcIiwgXCI1MC8xMDBcIi4uLlxuICAgIEBpZiBsZW5ndGgoJGZyYWN0aW9uKSA9PSAzXG4gICAgICBhbmQgdHlwZS1vZihudGgoJGZyYWN0aW9uLCAxKSA9PSAnbnVtYmVyJylcbiAgICAgIGFuZCB0eXBlLW9mKG50aCgkZnJhY3Rpb24sIDMpID09ICdudW1iZXInKSB7XG4gICAgICBAcmV0dXJuIChudGgoJGZyYWN0aW9uLCAxKSwgbnRoKCRmcmFjdGlvbiwgMykpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gKG51bGwsIG51bGwpO1xufVxuXG4vLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBgJHZhbHVlYCByZXByZXNlbnRzIGEgZnJhY3Rpb24uIFN1cHBvcnRzIGZvcm1hdHMgbGlrZSBgNTAlYCwgYDEgb2YgMmAsIGAxIHBlciAyYCBvciBgMS8yYC5cbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlIC0gVmFsdWUgdG8gdGVzdC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRhbGxvdy1uby1kZW5vbWluYXRvciBbZmFsc2VdIC0gSWYgYHRydWVgLCBzaW1wbGUgbnVtYmVycyB3aXRob3V0IGRlbm9taW5hdG9ycyBsaWtlIGA1MGAgYXJlIHN1cHBvcnRlZC5cbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IGB0cnVlYCBpZiBgJHZhbHVlYCByZXByZXNlbnRzIGEgZnJhY3Rpb24sIGBmYWxzZWAgb3RoZXJ3aXNlLlxuQGZ1bmN0aW9uIHpmLWlzLWZyYWN0aW9uKCR2YWx1ZSwgJGFsbG93LW5vLWRlbm9taW5hdG9yOiBmYWxzZSkge1xuICAkcGFyc2VkOiB6Zi1wYXJzZS1mcmFjdGlvbigkdmFsdWUpO1xuICBAcmV0dXJuIG5vdChudGgoJHBhcnNlZCwgMSkgPT0gbnVsbFxuICAgIG9yIChudGgoJHBhcnNlZCwgMikgPT0gbnVsbCBhbmQgJGFsbG93LW5vLWRlbm9taW5hdG9yID09IGZhbHNlKSk7XG59XG5cbi8vLyBDYWxjdWxhdGUgYSBwZXJjZW50YWdlIGZyb20gYSBnaXZlbiBmcmFjdGlvbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRmcmFjdGlvbiAtIFZhbHVlIHJlcHJlc2VudGluZyBhIGZyYWN0aW9uIHRvIHVzZSB0byBjYWxjdWxhdGUgdGhlIHBlcmNlbnRhZ2UsIGZvcm1hdHRlZCBhcyBgNTBgIChyZWxhdGl2ZSB0byBgJGRlbm9taW5hdG9yYCksIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8yYC5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkZGVub21pbmF0b3IgLSBEZWZhdWx0IHZhbHVlIHRvIHVzZSBhcyBkZW5vbWluYXRvciB3aGVuIGAkZnJhY3Rpb25gIHJlcHJlc2VudHMgYW4gYWJzb2x1dGUgdmFsdWUuXG5AZnVuY3Rpb24gZnJhY3Rpb24tdG8tcGVyY2VudGFnZShcbiAgJGZyYWN0aW9uLFxuICAkZGVub21pbmF0b3I6IG51bGxcbikge1xuICAkcGFyc2VkOiB6Zi1wYXJzZS1mcmFjdGlvbigkZnJhY3Rpb24pO1xuICAkcGFyc2VkLW5vbWluYXRvcjogbnRoKCRwYXJzZWQsIDEpO1xuICAkcGFyc2VkLWRlbm9taW5hdG9yOiBudGgoJHBhcnNlZCwgMik7XG5cbiAgQGlmICRwYXJzZWQtbm9taW5hdG9yID09IG51bGwge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBcImZyYWN0aW9uLXRvLXBlcmNlbnRhZ2UoKVwiLiBVc2UgYSBudW1iZXIsIGRlY2ltYWwsIHBlcmNlbnRhZ2UsIG9yIFwibiBvZiBuXCIgLyBcIm4vblwiLic7XG4gIH1cbiAgQGlmICRwYXJzZWQtZGVub21pbmF0b3IgPT0gbnVsbCB7XG4gICAgQGlmIHR5cGUtb2YoJGRlbm9taW5hdG9yKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkcGFyc2VkLWRlbm9taW5hdG9yOiAkZGVub21pbmF0b3I7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBlcnJvciAnRXJyb3Igd2l0aCBcImZyYWN0aW9uLXRvLXBlcmNlbnRhZ2UoKVwiLiBBIGRlZmF1bHQgXCIkZGVub21pbmF0b3JcIiBpcyByZXF1aXJlZCB0byBzdXBwb3J0IGFic29sdXRlIHZhbHVlcyc7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBwZXJjZW50YWdlKCRwYXJzZWQtbm9taW5hdG9yIC8gJHBhcnNlZC1kZW5vbWluYXRvcik7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gU2l6ZXMgY2hpbGQgZWxlbWVudHMgc28gdGhhdCBgJG5gIG51bWJlciBvZiBpdGVtcyBhcHBlYXIgb24gZWFjaCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgZWxlbWVudHMgdG8gZGlzcGxheSBwZXIgcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWycuY2VsbCddIC0gU2VsZWN0b3IocykgdG8gdXNlIGZvciBjaGlsZCBlbGVtZW50cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFtudWxsXSAtIFtERVBSRUNBVEVEXSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gLCBgcGFkZGluZ2Agb3IgYG5vbmVgLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbbnVsbF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uIEJ5IGRlZmF1bHQgYHJpZ2h0IGxlZnRgIGZvciBob3Jpem9udGFsIGNlbGxzIGFuZCBgdG9wIGJvdHRvbWAgZm9yIHZlcnRpY2FsIGNlbGxzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgYnJlYWtwb2ludCB0byB1c2UgZm9yIHRoZSBjZWxsIGdlbmVyYXRpb24uIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG4vLy8gQHBhcmFtIHtMaXN0fSAkb3V0cHV0IFsoYmFzZSBzaXplIGd1dHRlcnMpXSAtIENlbGwgcGFydHMgdG8gb3V0cHV0LiBZb3Ugd2lsbCBuZWVkIHRvIGdlbmVyYXRlIG90aGVycyBwYXJ0cyBvZiB0aGUgY2VsbCBzZXBlcmF0ZWx5LCBpdCBtYXkgbm90IHdvcmsgY29ycmVjdGx5IG90aGVyd2lzZS5cbkBtaXhpbiB4eS1ncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jZWxsJyxcbiAgJGd1dHRlci1vdXRwdXQ6IG51bGwsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IG51bGwsXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkdmVydGljYWw6IGZhbHNlLFxuICAkb3V0cHV0OiAoYmFzZSBzaXplIGd1dHRlcnMpXG4pIHtcbiAgJHNpemU6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgJiA+ICN7JHNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbCgkc2l6ZSwgJGd1dHRlci1vdXRwdXQsICRndXR0ZXJzLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24sICRicmVha3BvaW50LCAkdmVydGljYWwsICRvdXRwdXQpO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ29sbGFwc2VzIHRoZSBncmlkIGEgY2VsbHMgd2l0aGluIGl0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbLmNlbGxdIC0gVGhlIGNoaWxkIGVsZW1lbnQgdG8gcmVtb3ZlIHRoZSBndXR0ZXIgZnJvbS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFRoZSB0eXBlIG9mIGd1dHRlciB0byByZW1vdmUuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtyaWdodCBsZWZ0XSAtIFRoZSBwb3NpdGlvbnMgdG8gcmVtb3ZlIGd1dHRlcnMgZnJvbS4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkbWluLWJyZWFrcG9pbnQgWyQtemYtemVyby1icmVha3BvaW50XSAtIE1pbmltdW0gYnJlYWtwb2ludCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgZm9yIHdoaWNoIHRvIGNvbGxhcHNlIHRoZSBndXR0ZXIuXG5AbWl4aW4geHktZ3JpZC1jb2xsYXBzZShcbiAgJHNlbGVjdG9yOiAnLmNlbGwnLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJG1pbi1icmVha3BvaW50OiAkLXpmLXplcm8tYnJlYWtwb2ludFxuKSB7XG4gIC8vIEZpcnN0LCBsZXRzIG5lZ2F0ZSBhbnkgbWFyZ2lucyBvbiB0aGUgdG9wIGxldmVsXG4gIEBpZiAoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtaW4tYnJlYWtwb2ludCkge1xuICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICBtYXJnaW4tI3skdmFsdWV9OiAwO1xuICAgICAgfVxuXG4gICAgICA+ICN7JHNlbGVjdG9yfSB7XG4gICAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgICBtYXJnaW4tI3skdmFsdWV9OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJGV4Y2x1ZGVkLWJwczogLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigkbWluLWJyZWFrcG9pbnQpO1xuXG4gICAgLy8gT3V0cHV0IG5ldyB3aWR0aHMgdG8gbm90IGluY2x1ZGUgZ3V0dGVyc1xuICAgIEBlYWNoICRicCBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZihzbC1jb250YWluKCRleGNsdWRlZC1icHMsICRicCkpIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWluLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICAgICAgICAgPiAuI3skYnB9LSN7JGl9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKCRpLCAkZ3V0dGVyLXR5cGU6IG5vbmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwKSB7XG4gICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgICAgICAgID4gLiN7JGJwfS0jeyRpfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkaSwgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWluLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgbWFyZ2luLSN7JHZhbHVlfTogMDtcbiAgICAgIH1cblxuICAgICAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgICAgcGFkZGluZy0jeyR2YWx1ZX06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBSZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBDU1MgdmFsdWUgdG8gb2Zmc2V0IGEgY2VsbC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRuIC0gU2l6ZSB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGB4eS1jZWxsKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSBNYXAgb2YgZ3V0dGVycyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIGZvciByZXNwb25zaXZlIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gVGhlIHR5cGUgb2YgZ3V0dGVyIHRvIHVzZS4gQ2FuIGJlIGBtYXJnaW5gIG9yIGBwYWRkaW5nYFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ8U3RyaW5nfSBUaGUgY2VsbCBvZmZzZXQgcHJvcGVydHkgdmFsdWUuXG5AZnVuY3Rpb24geHktY2VsbC1vZmZzZXQoXG4gICRuLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogbnVsbFxuKSB7XG4gICRicmVha3BvaW50OiAtemYtY3VycmVudC1icmVha3BvaW50KCRicmVha3BvaW50LCAkZGVmYXVsdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICAkc2l6ZTogeHktY2VsbC1zaXplKCRuKTtcblxuICAkb2Zmc2V0OiAkc2l6ZTtcbiAgQGlmICgkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicpIHtcbiAgICAkZ3V0dGVyOiByZW0tY2FsYyh4eS1jZWxsLWd1dHRlcnMoJGd1dHRlcnMsICRicmVha3BvaW50KSAvIDIpO1xuICAgICRvZmZzZXQ6IGlmKCRndXR0ZXIgPT0gMCwgJHNpemUsIGNhbGMoI3skc2l6ZX0gKyAjeyRndXR0ZXJ9KSk7XG4gIH1cbiAgQHJldHVybiAkb2Zmc2V0O1xufVxuXG4vLy8gT2Zmc2V0cyBhIGNvbHVtbiB0byB0aGUgcmlnaHQvYm90dG9tIGJ5IGAkbmAgY29sdW1ucy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRuIC0gU2l6ZSB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGB4eS1jZWxsKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSBNYXAgb2YgZ3V0dGVycyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIGZvciByZXNwb25zaXZlIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gVGhlIHR5cGUgb2YgZ3V0dGVyIHRvIHVzZS4gQ2FuIGJlIGBtYXJnaW5gIG9yIGBwYWRkaW5nYFxuLy8vIEBwYXJhbSB7TnVtYmVyfEFycmF5fEtleXdvcmR9ICRicmVha3BvaW50IFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGZvciBgJGd1dHRlcnNgLiBJdCBjYW4gYmUgYSBicmVha3BvaW50IG5hbWUsIGxpc3Qgb2YgYnJlYWtwb2ludHMgb3IgYGF1dG9gIGZvciBhbGwgYnJlYWtwb2ludHMuIElmIGEgbGlzdCBpcyBnaXZlbiwgbWVkaWEtcXVlcmllcyB3aWxsIGJlIGdlbmVyYXRlZC4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIHRoZSBvZmZzZXQuIElmIHNldCB0byB0cnVlIHdpbGwgYXBwbHkgbWFyZ2luLXRvcCBpbnN0ZWFkLlxuQG1peGluIHh5LWNlbGwtb2Zmc2V0KFxuICRuLFxuICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAkYnJlYWtwb2ludDogbnVsbCxcbiAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgJGJyZWFrcG9pbnQ6IC16Zi1jdXJyZW50LWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQsICRkZWZhdWx0OiAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gICRkaXJlY3Rpb246IGlmKCR2ZXJ0aWNhbCwgJ3RvcCcsICRnbG9iYWwtbGVmdCk7XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludC1pbigkYnJlYWtwb2ludCwgJG1lZGlhLXF1ZXJpZXM6ICdmb3ItbGlzdHMnKSB7XG4gICAgJG9mZnNldDogeHktY2VsbC1vZmZzZXQoJG4sICRndXR0ZXJzLCAkZ3V0dGVyLXR5cGUpO1xuICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAjeyRvZmZzZXR9O1xuICB9XG59XG4iLCIvLy8gTW9kaWZpZXMgYSBncmlkIHRvIGdpdmUgaXQgXCJmcmFtZVwiIGJlaGF2aW9yIChubyBvdmVyZmxvdywgbm8gd3JhcCwgc3RyZXRjaCBiZWhhdmlvcilcbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBJcyBncmlkIHZlcnRpY2FsIG9yIGhvcml6b250YWwuIFNob3VsZCBtYXRjaCBncmlkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJG5lc3RlZCBbZmFsc2VdIC0gSXMgZ3JpZCBuZXN0ZWQgb3Igbm90LiBJZiBuZXN0ZWQgaXMgdHJ1ZSB0aGlzIHNldHMgdGhlIGZyYW1lIHRvIDEwMCUgaGVpZ2h0LCBvdGhlcndpc2Ugd2lsbCBiZSAxMDB2aC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFtudWxsXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbmNsdWRlLWJhc2UgW3RydWVdIC0gSW5jbHVkZSB0aGUgYmFzZSBzdHlsZXMgdGhhdCBkb24ndCB2YXJ5IHBlciBicmVha3BvaW50LlxuQG1peGluIHh5LWdyaWQtZnJhbWUoXG4gICR2ZXJ0aWNhbDogZmFsc2UsXG4gICRuZXN0ZWQ6IGZhbHNlLFxuICAkZ3V0dGVyczogbnVsbCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICRpbmNsdWRlLWJhc2U6IHRydWVcbikge1xuXG4gIEBpZiAkaW5jbHVkZS1iYXNlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgfVxuXG4gIEBpZiAkYnJlYWtwb2ludCA9PSBudWxsIGFuZCB0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbWFwJyB7XG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUoJHZlcnRpY2FsLCAkbmVzdGVkLCAkZ3V0dGVycywgJC16Zi1zaXplLCBmYWxzZSk7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAvLyBHZXQgb3VyIGd1dHRlcnMgaWYgYXBwbGljYWJsZVxuICAgICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG5cbiAgICAvLyBJZiB3ZSBoYXZlIGEgZ3V0dGVyLCBhZGQgaXQgdG8gdGhlIHdpZHRoL2hlaWdodFxuICAgIEBpZiAkZ3V0dGVyIHtcbiAgICAgIEBpZiAkdmVydGljYWwgPT0gdHJ1ZSB7XG4gICAgICAgICR1bml0OiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZoKTtcbiAgICAgICAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcik7XG4gICAgICAgIGhlaWdodDogY2FsYygjeyR1bml0fSArICN7JGd1dHRlcn0pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR1bml0OiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZ3KTtcbiAgICAgICAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcik7XG4gICAgICAgIHdpZHRoOiBjYWxjKCN7JHVuaXR9ICsgI3skZ3V0dGVyfSk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiAkdmVydGljYWwgPT0gdHJ1ZSB7XG4gICAgICAgIGhlaWdodDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2aCk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgd2lkdGg6IGlmKCRuZXN0ZWQgPT0gdHJ1ZSwgMTAwJSwgMTAwdncpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gTW9kaWZpZXMgYSBjZWxsIHRvIGdpdmUgaXQgXCJibG9ja1wiIGJlaGF2aW9yIChvdmVyZmxvdyBhdXRvLCBpbmVydGlhbCBzY3JvbGxpbmcpXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gSXMgZ3JpZCB2ZXJ0aWNhbCBvciBob3Jpem9udGFsLiBTaG91bGQgbWF0Y2ggZ3JpZC5cbkBtaXhpbiB4eS1jZWxsLWJsb2NrKFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgJHByb3BlcnR5OiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgJ292ZXJmbG93LXknLCAnb3ZlcmZsb3cteCcpO1xuXG4gIEBpZiAkdmVydGljYWwgPT0gdHJ1ZSB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIH0gQGVsc2Uge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbn1cblxuLy8vIENvbnRhaW5lciBmb3IgaW5zaWRlIGEgZ3JpZCBmcmFtZSBjb250YWluaW5nIG11bHRpcGxlIGJsb2Nrcy4gVHlwaWNhbGx5IHVzZWRcbi8vLyBhcyBhIG1vZGlmaWVyIGZvciBhIGAuY2VsbGAgdG8gYWxsb3cgdGhlIGNlbGwgdG8gcGFzcyBhbG9uZyBmbGV4IHNpemluZ1xuLy8vIGNvbnN0cmFpbnRzIC8gZnJvbSBwYXJlbnRzIHRvIGNoaWxkcmVuLlxuQG1peGluIHh5LWNlbGwtYmxvY2stY29udGFpbmVyKCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gID4gLmdyaWQteCB7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvblxuLy8vL1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGJ1dHRvbiBlbGVtZW50cy5cbi8vLyBAdHlwZSBGb250XG4kYnV0dG9uLWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGJ1dHRvbiBlbGVtZW50cy5cbi8vLyBJZ25vcmVkIGlmIG51bGwgKGRlZmF1bHQpXG4vLy8gQHR5cGUgRm9udC1XZWlnaHRcbiRidXR0b24tZm9udC13ZWlnaHQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZpbGwgZm9yIGJ1dHRvbnMuIENhbiBlaXRoZXIgYmUgYHNvbGlkYCBvciBgaG9sbG93YC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGl2ZSBmb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgYnV0dG9ucywgdHJhbnNwYXJlbnQgYnkgZGVmYXVsdFxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgd2lkdGggZm9yIGhvbGxvdyBvdXRsaW5lIGJ1dHRvbnNcbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXNpemVzOiAoXG4gIHRpbnk6IDAuNnJlbSxcbiAgc21hbGw6IDAuNzVyZW0sXG4gIGRlZmF1bHQ6IDAuOXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBvcGFjaXR5IGZvciBhIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGhvbGxvdyBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbDogZmxpcCBmcm9tIG1hcmdpbi1yaWdodCB0byBtYXJnaW4tbGVmdCBmb3IgZGVmYXVsdHNcbkBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbn1cblxuLy8vIHRyYW5zaXRpb25zIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBBZGRpdGlvbmFsIHJlc3BvbnNpdmUgY2xhc3NlcyBmb3IgLmV4cGFuZGVkXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJ1dHRvbi1yZXNwb25zaXZlLWV4cGFuZGVkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gVE9ETzogRG9jdW1lbnQgYnV0dG9uLWJhc2UoKSBtaXhpblxuQG1peGluIGJ1dHRvbi1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG5cbiAgQGlmICh0eXBlLW9mKCRidXR0b24tcGFkZGluZykgPT0gJ21hcCcpIHtcbiAgICBAZWFjaCAkc2l6ZSwgJHBhZGRpbmcgaW4gJGJ1dHRvbi1wYWRkaW5nIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBwYWRkaW5nOiAkYnV0dG9uLXBhZGRpbmc7XG4gIH1cblxuICBib3JkZXI6ICRidXR0b24tYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgdHJhbnNpdGlvbjogJGJ1dHRvbi10cmFuc2l0aW9uO1xuICBmb250LWZhbWlseTogJGJ1dHRvbi1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuICBmb250LXdlaWdodDogJGJ1dHRvbi1mb250LXdlaWdodDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8vLyBFeHBhbmRzIGEgYnV0dG9uIHRvIG1ha2UgaXQgZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgdGhlIGV4cGFuZCBiZWhhdmlvci4gU2V0IHRvIGBmYWxzZWAgdG8gcmV2ZXJzZSB0aGlzIGJlaGF2aW9yLlxuQG1peGluIGJ1dHRvbi1leHBhbmQoJGV4cGFuZDogdHJ1ZSkge1xuICBAaWYgJGV4cGFuZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgYmFzZSBzdHlsZXMgb2YgYSBob2xsb3cgb3IgY2xlYXIgYnV0dG9uIGZpbGxpbmcgYWNjb3JkaW5nIHRvIGAkZmlsbGAuXG4vLy8gU2VlIG1peGluIGBidXR0b24tZmlsbC1zdHlsZWAgZm9yIHRoZSBmaWxsaW5nIHN0eWxlcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRmaWxsIFskYnV0dG9uLWZpbGxdIC0gVHlwZSBvZiBmaWxsaW5nIGJldHdlZW4gYGhvbGxvd2AgYW5kIGBjbGVhcmAuIGBzb2xpZGAgaGFzIG5vIGVmZmVjdHMuXG5AbWl4aW4gYnV0dG9uLWZpbGwoXG4gICRmaWxsOiAkYnV0dG9uLWZpbGxcbikge1xuICBAaWYgJGZpbGwgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICB9XG4gIEBlbHNlIGlmICRmaWxsID09IGNsZWFyIHtcbiAgICBAaW5jbHVkZSBidXR0b24tY2xlYXI7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZXMgb2YgYSBzb2xpZC9ob2xsb3cvY2xlYXIgYnV0dG9uIGZpbGxpbmcgYWNjb3JkaW5nIHRvIGAkZmlsbGAuXG4vLy8gU2VlIG1peGlucyBgYnV0dG9uLXN0eWxlYCwgYGJ1dHRvbi1ob2xsb3ctc3R5bGVgIGFuZCBgYnV0dG9uLWNsZWFyLXN0eWxlYCBmb3IgZWZmZWN0cyBvZiB2aXN1YWwgc3R5bGluZyBwYXJhbWV0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZpbGwgWyRidXR0b24tZmlsbF0gLSBUeXBlIG9mIGZpbGxpbmcgYmV0d2VlbiBgaG9sbG93YCBhbmQgYGNsZWFyYC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIC1cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIC1cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gLVxuQG1peGluIGJ1dHRvbi1maWxsLXN0eWxlKFxuICAkZmlsbDogJGJ1dHRvbi1maWxsLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3Jcbikge1xuICBAaWYgJGZpbGwgPT0gc29saWQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXIsICRjb2xvcik7XG4gIH1cbiAgQGVsc2UgaWYgJGZpbGwgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRiYWNrZ3JvdW5kKTtcbiAgfVxuICBAZWxzZSBpZiAkZmlsbCA9PSBjbGVhciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWNsZWFyLXN0eWxlKCRiYWNrZ3JvdW5kKTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tc3R5bGUoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yLWFsdCkpO1xuICB9XG5cbiAgQGlmICRiYWNrZ3JvdW5kLWhvdmVyID09IGF1dG8ge1xuICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzKTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYW5kIGRpc2FibGVkIHN0YXRlc1xuICAmLFxuICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSxcbiAgJi5kaXNhYmxlZDpob3ZlciwgJltkaXNhYmxlZF06aG92ZXIsXG4gICYuZGlzYWJsZWQ6Zm9jdXMsICZbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgYmFzZSBzdHlsZXMgb2YgYSBob2xsb3cgYnV0dG9uLlxuLy8vIFNlZSBtaXhpbiBgYnV0dG9uLWhvbGxvdy1zdHlsZWAgZm9yIHRoZSBmaWxsaW5nIHN0eWxlcy5cbkBtaXhpbiBidXR0b24taG9sbG93IHtcbiAgJiwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBob2xsb3cgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIFRleHQgYW5kIGJvcmRlciBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRob3Zlci1saWdodG5lc3MgWyRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzc10gLSBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJvcmRlci13aWR0aCBbJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXSAtIEJvcmRlciB3aWR0aCBvZiB0aGUgYnV0dG9uLlxuQG1peGluIGJ1dHRvbi1ob2xsb3ctc3R5bGUoXG4gICRjb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3MsXG4gICRib3JkZXItd2lkdGg6ICRidXR0b24taG9sbG93LWJvcmRlci13aWR0aFxuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICAvLyBEZWZhdWx0IGFuZCBkaXNhYmxlZCBzdGF0ZXNcbiAgJixcbiAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQ6aG92ZXIsICZbZGlzYWJsZWRdOmhvdmVyLFxuICAmLmRpc2FibGVkOmZvY3VzLCAmW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgYmFzZSBzdHlsZXMgb2YgYSBjbGVhciBidXR0b24uXG4vLy8gU2VlIG1peGluIGBidXR0b24tY2xlYXItc3R5bGVgIGZvciB0aGUgZmlsbGluZyBzdHlsZXMuXG5AbWl4aW4gYnV0dG9uLWNsZWFyIHtcbiAgJiwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgY2xlYXIgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkaG92ZXItbGlnaHRuZXNzIFskYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3NdIC0gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyLlxuQG1peGluIGJ1dHRvbi1jbGVhci1zdHlsZShcbiAgJGNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICAvLyBEZWZhdWx0IGFuZCBkaXNhYmxlZCBzdGF0ZXNcbiAgJixcbiAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQ6aG92ZXIsICZbZGlzYWJsZWRdOmhvdmVyLFxuICAmLmRpc2FibGVkOmZvY3VzLCAmW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuLy8vIEFkZHMgZGlzYWJsZWQgc3R5bGVzIHRvIGEgYnV0dG9uIGJ5IGZhZGluZyB0aGUgZWxlbWVudCBhbmQgcmVzZXRpbmcgdGhlIGN1cnNvci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9wYWNpdHkgWyRidXR0b24tb3BhY2l0eS1kaXNhYmxlZF0gLSBPcGFjaXR5IG9mIHRoZSBkaXNhYmxlZCBidXR0b24uXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkKFxuICAkb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkXG4pIHtcbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4vLy8gQWRkcyBhIGRyb3Bkb3duIGFycm93IHRvIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSBbMC40ZW1dIC0gU2l6ZSBvZiB0aGUgYXJyb3cuIFdlIHJlY29tbWVuZCB1c2luZyBhbiBgZW1gIHZhbHVlIHNvIHRoZSB0cmlhbmdsZSBzY2FsZXMgd2hlbiB1c2VkIGluc2lkZSBkaWZmZXJlbnQgc2l6ZXMgb2YgYnV0dG9ucy5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgW3doaXRlXSAtIENvbG9yIG9mIHRoZSBhcnJvdy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9mZnNldCBbJGJ1dHRvbi1wYWRkaW5nXSAtIERpc3RhbmNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uLiBEZWZhdWx0cyB0byB3aGF0ZXZlciB0aGUgcmlnaHQgcGFkZGluZyBvZiBhIGJ1dHRvbiBpcy5cbkBtaXhpbiBidXR0b24tZHJvcGRvd24oXG4gICRzaXplOiAwLjRlbSxcbiAgJGNvbG9yOiAkd2hpdGUsXG4gICRvZmZzZXQ6IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpXG4pIHtcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCBkb3duKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjRlbTsgLy8gQWxpZ25zIHRoZSBhcnJvdyB3aXRoIHRoZSB0ZXh0IG9mIHRoZSBidXR0b25cblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogI3skZ2xvYmFsLXJpZ2h0fTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG4gIEBpbmNsdWRlIGJ1dHRvbi1maWxsKCRzdHlsZSk7XG4gIEBpbmNsdWRlIGJ1dHRvbi1maWxsLXN0eWxlKCRzdHlsZSwgJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IpO1xuXG4gIEBpZiAkZXhwYW5kIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbiB7XG4gIC5idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbigkc3R5bGU6IG5vbmUpO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICBAaWYgJGJ1dHRvbi1yZXNwb25zaXZlLWV4cGFuZGVkIHtcbiAgICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCN7JHNpemV9IG9ubHkpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LW9ubHktZXhwYW5kZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCN7JHNpemV9IGRvd24pIHtcbiAgICAgICAgICAgICYuI3skc2l6ZX0tZG93bi1leHBhbmRlZCB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgjeyRzaXplfSkge1xuICAgICAgICAgICAgJi4jeyRzaXplfS1leHBhbmRlZCB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU29saWQsIGhvbGxvdyAmIGNsZWFyIHN0eWxlc1xuICAgIEBlYWNoICRmaWxsaW5nIGluIChzb2xpZCBob2xsb3cgY2xlYXIpIHtcbiAgICAgICRzZWxlY3RvcjogaWYoJGJ1dHRvbi1maWxsID09ICRmaWxsaW5nLCBudWxsLCAnLiN7JGZpbGxpbmd9Jyk7XG5cbiAgICAgICYjeyRzZWxlY3Rvcn0ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbCgkZmlsbGluZyk7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsLXN0eWxlKCRmaWxsaW5nKTtcblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbC1zdHlsZSgkZmlsbGluZywgJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAgICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5ob2xsb3csICYuY2xlYXIge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQnV0dG9uIHdpdGggZHJvcGRvd24gYXJyb3cgb25seVxuICAgICYuYXJyb3ctb25seTo6YWZ0ZXIge1xuICAgICAgdG9wOiAtMC4xZW07XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgfVxuICB9XG5cbiAgYS5idXR0b24geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvbi1ncm91cFxuLy8vL1xuXG4vLy8gTWFyZ2luIGZvciBidXR0b24gZ3JvdXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYnV0dG9ucyB0aGF0IGNhbiBiZSBpbiBhbiBldmVuLXdpZHRoIGJ1dHRvbiBncm91cC4gKE9ubHkgbmVlZGVkIHdoZW4gJGdsb2JhbC1mbGV4Ym94OiBmYWxzZTspXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcblxuLy8vIERldGVybWluZXMgaWYgJGJ1dHRvbi1yYWRpdXMgaXMgYXBwbGllZCB0byBlYWNoIGJ1dHRvbiBvciB0aGUgYnV0dG9uIGdyb3VwIGFzIGEgd2hvbGUuIFVzZSAkZ2xvYmFsLXJhZGl1cyBpbiBfc2V0dGluZ3Muc2NzcyB0byBjaGFuZ2UgcmFkaXVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZCBzdHlsZXMgZm9yIGEgYnV0dG9uIGdyb3VwIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGNoaWxkLXNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cChcbiAgJGNoaWxkLXNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZ1xuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tYm90dG9tOiAkYnV0dG9uZ3JvdXAtbWFyZ2luO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGZsZXgtZ3JvdzogMTtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyAvLyBEaXNhYmxlIGNsZWFyZml4XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBmb250LXNpemU6IDA7XG4gIH1cblxuICAjeyRjaGlsZC1zZWxlY3Rvcn0ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgfVxuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIE1ha2UgYnV0dG9ucyBib25kZWQgd2l0aG91dCBnYXAgYmV0d2VlbiB0aGVtLiBCb3JkZXJzIGJldHdlZW4gYnV0dG9ucyBhcmUgbWVyZ2VkXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLW5vLWdhcHMoXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhcbikge1xuICAjeyRzZWxlY3Rvcn0ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiByZW0tY2FsYygtJGJvcmRlci13aWR0aCk7XG5cbiAgICArICN7JHNlbGVjdG9yfSB7XG4gICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXdpZHRoIGJ1dHRvbiBncm91cCwgbWFraW5nIGVhY2ggYnV0dG9uIGVxdWFsIHdpZHRoLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2luZyBbJGJ1dHRvbmdyb3VwLXNwYWNpbmddIC0gU3BhY2luZyBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLWV4cGFuZChcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZyxcbiAgJGNvdW50OiBudWxsXG4pIHtcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAtJHNwYWNpbmc7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgLy8gRGlzYWJsZSBjbGVhcmZpeFxuICAgIH1cbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBPbmUgY2hpbGRcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRzcGFjaW5nfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gVHdvIG9yIG1vcmUgY2hpbGRyZWVuXG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRidXR0b25ncm91cC1leHBhbmQtbWF4IHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICYsICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIH4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7cGVyY2VudGFnZSgxIC8gJGkpfSAtICN7JHNwYWNpbmd9KTtcbiAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nICogLSRidXR0b25ncm91cC1leHBhbmQtbWF4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFVuLXN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC11bnN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwIHtcbiAgLmJ1dHRvbi1ncm91cCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIEdyb3VwXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtZXhwYW5kO1xuICAgIH1cblxuICAgIC8vIFNvbGlkLCBob2xsb3cgJiBjbGVhciBzdHlsZXNcbiAgICBAZWFjaCAkZmlsbGluZyBpbiAoc29saWQgaG9sbG93IGNsZWFyKSB7XG4gICAgICAkYmFzZS1zZWxlY3RvcjogaWYoJGJ1dHRvbi1maWxsID09ICRmaWxsaW5nLCBudWxsLCAnLiN7JGZpbGxpbmd9Jyk7XG5cbiAgICAgICYjeyRiYXNlLXNlbGVjdG9yfSB7XG4gICAgICAgIC8vIERvIG5vdCBnZW5lcmF0ZSBidXR0b24gYmFzZSBzdHlsZXMgZm9yIHRoZSBkZWZhdWx0IGZpbGxpbmdcbiAgICAgICAgQGlmKCRidXR0b24tZmlsbCAhPSAkZmlsbGluZykge1xuICAgICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbCgkZmlsbGluZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbC1zdHlsZSgkZmlsbGluZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICRpbmRpdmlkdWFsLXNlbGVjdG9yOiBpZigkYnV0dG9uLWZpbGwgPT0gJGZpbGxpbmcsIG51bGwsICcgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9LiN7JG5hbWV9Jyk7XG5cbiAgICAgICAgICAmLiN7JG5hbWV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSwgI3skaW5kaXZpZHVhbC1zZWxlY3Rvcn0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJGZpbGxpbmcsICRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAmLm5vLWdhcHMge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLW5vLWdhcHM7XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLFxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwsXG4gICAgJi5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0YWNrO1xuXG4gICAgICAmLmV4cGFuZGVkIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLWV4cGFuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNsb3NlLWJ1dHRvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGByaWdodGAgb3IgYGxlZnRgLCBhbmQgdGhlIHNlY29uZCB2YWx1ZSBzaG91bGQgYmUgYHRvcGAgb3IgYGJvdHRvbWAuXG4vLy8gQHR5cGUgTGlzdFxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3AgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHotaW5kZXggZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLXotaW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy8gQnV0dG9uIHNpemUgdG8gdXNlIGFzIGRlZmF1bHRcbi8vLyBAdHlwZSBTdHJpbmdcbi8vLyBAc2VlICRjbG9zZWJ1dHRvbi1zaXplXG4vLy8gQHNlZSAkY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWxcbi8vLyBAc2VlICRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWxcbiRjbG9zZWJ1dHRvbi1kZWZhdWx0LXNpemU6IG1lZGl1bSAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IChvciBsZWZ0KSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRvcCAob3IgYm90dG9tKSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gU2l6ZShzKSBvZiB0aGUgY2xvc2UgYnV0dG9uLiBVc2VkIHRvIGdlbmVyYXRlIHNpemluZyBtb2RpZmllcnMuXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLXNpemU6IChcbiAgc21hbGw6IDEuNWVtLFxuICBtZWRpdW06IDJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGluZS1oZWlnaHQgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gSXQgYWZmZWN0cyB0aGUgc3BhY2luZyBvZiB0aGUgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24gd2hlbiBiZWluZyBob3ZlcmVkIG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjayAhZGVmYXVsdDtcblxuXG4vLy8gR2V0IHRoZSBzaXplIGFuZCBwb3NpdGlvbiBmb3IgYSBjbG9zZSBidXR0b24uIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIG51bWJlciwgdGhlIG51bWJlciBpcyByZXR1cm5lZC4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgY29uZmlnIG1hcCBhbmQgdGhlIG1hcCBoYXMgdGhlIGtleSBgJHNpemVgLCB0aGUgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICR2YWx1ZSAtIEEgbnVtYmVyIG9yIG1hcCB0aGF0IHJlcHJlc2VudHMgdGhlIHNpemUgb3IgcG9zaXRpb24gdmFsdWUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gVGhlIHNpemUgb2YgdGhlIGNsb3NlIGJ1dHRvbiB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IFRoZSBnaXZlbiBudW1iZXIgb3IgdGhlIHZhbHVlIGZvdW5kIGluIHRoZSBtYXAuXG5AZnVuY3Rpb24gLXpmLWdldC1zaXplLXZhbCgkdmFsdWUsICRzaXplKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAvLyBJZiBpdCBpcywganVzdCByZXR1cm4gdGhlIG51bWJlclxuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHNpemUgbmFtZSBleGlzdHMgaW4gdGhlIHZhbHVlIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkdmFsdWUsICRzaXplKSB7XG4gICAgLy8gSWYgaXQgZG9lcywgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkdmFsdWUsICRzaXplKTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gb2YgYSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbbWVkaXVtXSAtIFRoZSBzaXplIHRvIHVzZS4gU2V0IHRvIGBzbWFsbGAgdG8gY3JlYXRlIGEgc21hbGwgY2xvc2UgYnV0dG9uLiBUaGUgJ21lZGl1bScgdmFsdWVzIGRlZmluZWQgaW4gYCRjbG9zZWJ1dHRvbi0qYCB2YXJpYWJsZXMgd2lsbCBiZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uXG5AbWl4aW4gY2xvc2UtYnV0dG9uLXNpemUoJHNpemUpIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgI3skeH06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsLCAkc2l6ZSk7XG4gICN7JHl9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWwsICRzaXplKTtcbiAgZm9udC1zaXplOiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1zaXplLCAkc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0LCAkc2l6ZSk7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjbG9zZSBidXR0b24sIHVzaW5nIHRoZSBzdHlsZXMgaW4gdGhlIHNldHRpbmdzIHZhcmlhYmxlcy5cbkBtaXhpbiBjbG9zZS1idXR0b24ge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogJGNsb3NlYnV0dG9uLXotaW5kZXg7XG4gIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbiB7XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIEBpbmNsdWRlIGNsb3NlLWJ1dHRvbjtcblxuICAgIC8vIEdlbmVyYXRlIGEgcGxhY2Vob2xkZXIgYW5kIGEgY2xhc3MgZm9yIGVhY2ggc2l6ZVxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkY2xvc2VidXR0b24tc2l6ZSB7XG4gICAgICBAYXQtcm9vdCB7XG4gICAgICAgICV6Zi1jbG9zZS1idXR0b24tLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBjbG9zZS1idXR0b24tc2l6ZSgkbmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIEBleHRlbmQgJXpmLWNsb3NlLWJ1dHRvbi0tI3skbmFtZX07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVXNlIGJ5IGRlZmF1bHQgdGhlIHBsYWNlaG9sZGVyIG9mIHRoZSBkZWZhdWx0IHNpemVcbiAgICBAZXh0ZW5kICV6Zi1jbG9zZS1idXR0b24tLSN7JGNsb3NlYnV0dG9uLWRlZmF1bHQtc2l6ZX07XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBsYWJlbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0ZSB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGxhYmVsLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBvZiBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBiYXNlIHN0eWxlcyBmb3IgYSBsYWJlbC5cbkBtaXhpbiBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogJGxhYmVsLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogJGxhYmVsLXJhZGl1cztcblxuICBmb250LXNpemU6ICRsYWJlbC1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWxhYmVsIHtcbiAgLmxhYmVsIHtcbiAgICBAaW5jbHVkZSBsYWJlbDtcblxuICAgIGJhY2tncm91bmQ6ICRsYWJlbC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRsYWJlbC1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRjb2xvciwgKCRsYWJlbC1jb2xvciwgJGxhYmVsLWNvbG9yLWFsdCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGFibGVcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIHRhYmxlIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSBzdHJpcGVkIHRhYmxlIHJvd3MgYW5kIHRoZSB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtY29sb3Itc2NhbGU6IDUlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzdHlsZSBmb3IgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1ib3JkZXI6IDFweCBzb2xpZCBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFibGUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtaG92ZXItc2NhbGU6IDIlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdGFuZGFyZCByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RyaXBlZCByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIHRhYmxlcyBhcmUgc3RyaXBlZCBieSBkZWZhdWx0IGFuZCBhbiAudW5zdHJpcGVkIGNsYXNzIGlzIGNyZWF0ZWQuIElmIGBmYWxzZWAsIGEgLnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3Igc3RyaXBlZCByb3dzLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNob3dpbmcgdGhlIHN0cmlwZSBvbiByb3dzIG9mIHRoZSB0YWJsZXMsIGV4Y2x1ZGluZyB0aGUgaGVhZGVyIGFuZCBmb290ZXIuIElmIGV2ZW4sIHRoZSBldmVuIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgb2RkLCB0aGUgb2RkIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgZW1wdHksIG9yIGFueSBvdGhlciB2YWx1ZSwgdGhlIHRhYmxlIHJvd3Mgd2lsbCBoYXZlIG5vIHN0cmlwaW5nLlxuLy8vIEB0eXBlIEtleXdvcmRcbiR0YWJsZS1zdHJpcGU6IGV2ZW4gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWFkZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBoZWFkZXIgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtaGVhZC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtaGVhZC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgZm9vdGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBmb290ZXIgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtZm9vdC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtZm9vdC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBoZWFkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvb3Rlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNob3dpbmcgdGhlIGhlYWRlciB3aGVuIHVzaW5nIHN0YWNrZWQgdGFibGVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBCcmVha3BvaW50IGF0IHdoaWNoIHN0YWNrZWQgdGFibGUgc3dpdGNoZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcCB2aWV3LlxuLy8vIEB0eXBlIEJyZWFrcG9pbnRcbiR0YWJsZS1zdGFjay1icmVha3BvaW50OiBtZWRpdW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUpIHtcbiAgdHIge1xuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gZXZlbiwgZGFya2VuIHRoZSBldmVuIHJvd3MuXG4gICAgQGlmICRzdHJpcGUgPT0gZXZlbiB7XG4gICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBvZGQsIGRhcmtlbiB0aGUgb2RkIHJvd3MuXG4gICAgQGVsc2UgaWYgJHN0cmlwZSA9PSBvZGQge1xuICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiAtemYtdGFibGUtdW5zdHJpcGUoKSB7XG4gIHRyIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGJvcmRlci1ib3R0b206ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cbn1cblxuQG1peGluIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSwgJGlzLXN0cmlwZWQ6ICR0YWJsZS1pcy1zdHJpcGVkKSB7XG4gIHRoZWFkLFxuICB0Ym9keSxcbiAgdGZvb3Qge1xuICAgIGJvcmRlcjogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIENhcHRpb25cbiAgY2FwdGlvbiB7XG4gICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkXG4gIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtaGVhZC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgZm9vdFxuICB0Zm9vdCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWZvb3QtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWZvb3QtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWQgYW5kIGZvb3RcbiAgdGhlYWQsXG4gIHRmb290IHtcbiAgICAvLyBSb3dzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdHIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLy8gQ2VsbHMgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgdGV4dC1hbGlnbjogI3skZ2xvYmFsLWxlZnR9O1xuICAgIH1cbiAgfVxuXG4gIC8vIFRhYmxlIHJvd3NcbiAgdGJvZHkge1xuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgc3RyaXBlZFxuICBAaWYgJGlzLXN0cmlwZWQgPT0gdHJ1ZSB7XG4gICAgdGJvZHkge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlKTtcbiAgICB9XG5cbiAgICAmLnVuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiB0YWJsZXMgYXJlIG5vdCBzdHJpcGVkXG4gIEBlbHNlIGlmICRpcy1zdHJpcGVkID09IGZhbHNlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtdW5zdHJpcGUoKTtcbiAgICB9XG5cbiAgICAmLnN0cmlwZWQge1xuICAgICAgdGJvZHkge1xuICAgICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRhYmxlcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHJpcGUgWyR0YWJsZS1zdHJpcGVdIC0gVXNlcyBrZXl3b3JkcyBldmVuLCBvZGQsIG9yIG5vbmUgdG8gZGFya2VuIHJvd3Mgb2YgdGhlIHRhYmxlLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBldmVuLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJG5lc3QgW2ZhbHNlXSAtIE5lZWRlZCBpZiB5b3Ugb25seSB3YW50IHRvIGFwcGx5IHRoaXMgdG8gYSBzcGVjaWZpYyB0YWJsZS5cbkBtaXhpbiB0YWJsZShcbiAgJHN0cmlwZTogJHRhYmxlLXN0cmlwZSxcbiAgJG5lc3Q6IGZhbHNlXG4pIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuICBAaWYgJG5lc3Qge1xuICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBhdC1yb290IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBhYmlsaXR5IHRvIGhvcml6b250YWxseSBzY3JvbGwgdGhlIHRhYmxlIHdoZW4gdGhlIGNvbnRlbnQgb3ZlcmZsb3dzIGhvcml6b250YWxseS5cbkBtaXhpbiB0YWJsZS1zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi8vLyBTbGlnaHRseSBkYXJrZW5zIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuQG1peGluIHRhYmxlLWhvdmVyIHtcbiAgdGhlYWQgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtaGVhZC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGZvb3QgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtZm9vdC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGJvZHkgdHIge1xuICAgIC8vRGFya2VucyB0aGUgbm9uLXN0cmlwZWQgdGFibGUgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgQGlmICR0YWJsZS1pcy1zdHJpcGVkID09IHRydWUge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZSBpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUob2RkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmICR0YWJsZS1pcy1zdHJpcGVkID09IGZhbHNlIHtcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmLnN0cmlwZWQgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEYXJrZW5zIHRoZSBvZGQgc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBlbHNlIGlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XG4gICAgICAmLnN0cmlwZWQgdHI6bnRoLW9mLXR5cGUob2RkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3RhY2tlZCB0YWJsZS4gVXNlZnVsIGZvciBzbWFsbC1zY3JlZW4gbGF5b3V0cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRoZWFkZXIgWyRzaG93LWhlYWRlci1mb3Itc3RhY2tlZF0gLSBTaG93IHRoZSBmaXJzdCB0aCBvZiBoZWFkZXIgd2hlbiBzdGFja2VkLlxuQG1peGluIHRhYmxlLXN0YWNrKCRoZWFkZXI6ICRzaG93LWhlYWRlci1mb3Itc3RhY2tlZCkge1xuICBAaWYgJGhlYWRlciB7XG4gICAgdGhlYWQge1xuICAgICAgdGgge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHRoZWFkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgdGZvb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICB0cixcbiAgdGgsXG4gIHRkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIHRkIHtcbiAgICBib3JkZXItdG9wOiAwO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRhYmxlKCRuZXN0OiBmYWxzZSkge1xuICB0YWJsZSB7XG4gICAgQGluY2x1ZGUgdGFibGUoJG5lc3Q6ICRuZXN0KTtcbiAgfVxuXG4gIHRhYmxlLnN0YWNrIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0YWJsZS1zdGFjay1icmVha3BvaW50IGRvd24pIHtcbiAgICAgIEBpbmNsdWRlIHRhYmxlLXN0YWNrO1xuICAgIH1cbiAgfVxuXG4gIHRhYmxlLnNjcm9sbCB7XG4gICAgQGluY2x1ZGUgdGFibGUtc2Nyb2xsO1xuICB9XG5cbiAgdGFibGUuaG92ZXIge1xuICAgIEBpbmNsdWRlIHRhYmxlLWhvdmVyO1xuICB9XG5cbiAgLnRhYmxlLXNjcm9sbCB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ21hdGgnO1xuXG4kY29udHJhc3Qtd2FybmluZ3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIGNoZWNrIHRoZSBsdW1pbmFuY2Ugb2YuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuQGZ1bmN0aW9uIGNvbG9yLWx1bWluYW5jZSgkY29sb3IpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI3JlbGF0aXZlbHVtaW5hbmNlZGVmXG4gICRyZ2JhOiByZWQoJGNvbG9yKSwgZ3JlZW4oJGNvbG9yKSwgYmx1ZSgkY29sb3IpO1xuICAkcmdiYTI6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMyB7XG4gICAgJHJnYjogbnRoKCRyZ2JhLCAkaSk7XG4gICAgJHJnYjogJHJnYiAvIDI1NTtcblxuICAgICRyZ2I6IGlmKCRyZ2IgPCAwLjAzOTI4LCAkcmdiIC8gMTIuOTIsIHBvdygoJHJnYiArIDAuMDU1KSAvIDEuMDU1LCAyLjQpKTtcblxuICAgICRyZ2JhMjogYXBwZW5kKCRyZ2JhMiwgJHJnYik7XG4gIH1cblxuICBAcmV0dXJuIDAuMjEyNiAqIG50aCgkcmdiYTIsIDEpICsgMC43MTUyICogbnRoKCRyZ2JhMiwgMikgKyAwLjA3MjIgKiBudGgoJHJnYmEyLCAzKTtcbn1cblxuLy8vIENoZWNrcyB0aGUgY29udHJhc3QgcmF0aW8gb2YgdHdvIGNvbG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjEgLSBGaXJzdCBjb2xvciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjIgLSBTZWNvbmQgY29sb3IgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBjb250cmFzdCByYXRpbyBvZiB0aGUgY29tcGFyZWQgY29sb3JzLlxuQGZ1bmN0aW9uIGNvbG9yLWNvbnRyYXN0KCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI2NvbnRyYXN0LXJhdGlvZGVmXG4gICRsdW1pbmFuY2UxOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMSkgKyAwLjA1O1xuICAkbHVtaW5hbmNlMjogY29sb3ItbHVtaW5hbmNlKCRjb2xvcjIpICsgMC4wNTtcbiAgJHJhdGlvOiAkbHVtaW5hbmNlMSAvICRsdW1pbmFuY2UyO1xuXG4gIEBpZiAkbHVtaW5hbmNlMiA+ICRsdW1pbmFuY2UxIHtcbiAgICAkcmF0aW86IDEgLyAkcmF0aW87XG4gIH1cblxuICAkcmF0aW86IHJvdW5kKCRyYXRpbyAqIDEwKSAvIDEwO1xuXG4gIEByZXR1cm4gJHJhdGlvO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRiYXNlYCwgYW5kIHJldHVybnMgdGhlIGNvbG9yIGZyb20gYCRjb2xvcnNgIChsaXN0IG9mIGNvbG9ycykgdGhhdCBoYXMgdGhlIG1vc3QgY29udHJhc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFzZSAtIENvbG9yIHRvIGNoZWNrIGx1bWluYW5jZS5cbi8vLyBAcGFyYW0ge0xpc3R9ICRjb2xvcnMgWygkd2hpdGUsICRibGFjayldIC0gQ29sb3JzIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b2xlcmFuY2UgWyRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2VdIC0gQ29udHJhc3QgdG9sZXJhbmNlLlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbkBmdW5jdGlvbiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYXNlLCAkY29sb3JzOiAoJHdoaXRlLCAkYmxhY2spLCAkdG9sZXJhbmNlOiAkZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlKSB7XG4gICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAxKSk7XG4gICRiZXN0OiBudGgoJGNvbG9ycywgMSk7XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCBsZW5ndGgoJGNvbG9ycykge1xuICAgICRjdXJyZW50LWNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgQGlmICgkY3VycmVudC1jb250cmFzdCAtICRjb250cmFzdCA+ICR0b2xlcmFuY2UpIHtcbiAgICAgICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAkaSkpO1xuICAgICAgJGJlc3Q6IG50aCgkY29sb3JzLCAkaSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkY29udHJhc3Qtd2FybmluZ3MgYW5kICRjb250cmFzdCA8IDMpIHtcbiAgICBAd2FybiBcIkNvbnRyYXN0IHJhdGlvIG9mICN7JGJlc3R9IG9uICN7JGJhc2V9IGlzIHByZXR0eSBiYWQsIGp1c3QgI3skY29udHJhc3R9XCI7XG4gIH1cblxuICBAcmV0dXJuICRiZXN0O1xufVxuXG4vLy8gU2NhbGVzIGEgY29sb3IgdG8gYmUgZGFya2VyIGlmIGl0J3MgbGlnaHQsIG9yIGxpZ2h0ZXIgaWYgaXQncyBkYXJrLiBVc2UgdGhpcyBmdW5jdGlvbiB0byB0aW50IGEgY29sb3IgYXBwcm9wcmlhdGUgdG8gaXRzIGxpZ2h0bmVzcy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIHNjYWxlLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHNjYWxlIFs1JV0gLSBBbW91bnQgdG8gc2NhbGUgdXAgb3IgZG93bi5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzQwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IEEgc2NhbGVkIGNvbG9yLlxuQGZ1bmN0aW9uIHNtYXJ0LXNjYWxlKCRjb2xvciwgJHNjYWxlOiA1JSwgJHRocmVzaG9sZDogNDAlKSB7XG4gIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA+ICR0aHJlc2hvbGQge1xuICAgICRzY2FsZTogLSRzY2FsZTtcbiAgfVxuICBAcmV0dXJuIHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJHNjYWxlKTtcbn1cblxuLy8vIEdldCBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHBhcmFtIHtrZXl9IGNvbG9yIGtleSBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuQGZ1bmN0aW9uIGdldC1jb2xvcigka2V5KSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ2dpdmVuICRrZXkgaXMgbm90IGF2YWlsYWJsZSBpbiAkZm91bmRhdGlvbi1wYWxldHRlJztcbiAgfVxufVxuXG4vLy8gVHJhbnNmZXJzIHRoZSBjb2xvcnMgaW4gdGhlIGAkZm91bmRhdGlvbi1wYWxldHRlYCBtYXAgaW50byB2YXJpYWJsZXMsIHN1Y2ggYXMgYCRwcmltYXJ5LWNvbG9yYCBhbmQgYCRzZWNvbmRhcnktY29sb3JgLiBDYWxsIHRoaXMgbWl4aW4gYmVsb3cgdGhlIEdsb2JhbCBzZWN0aW9uIG9mIHlvdXIgc2V0dGluZ3MgZmlsZSB0byBwcm9wZXJseSBtaWdyYXRlIHlvdXIgY29kZWJhc2UuXG5AbWl4aW4gYWRkLWZvdW5kYXRpb24tY29sb3JzKCkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICAgICRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRwcmltYXJ5LWNvbG9yOiAjMTc3OWJhICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkge1xuICAgICRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkc2Vjb25kYXJ5LWNvbG9yOiAjNzY3Njc2ICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogIzNhZGI3NiAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSB7XG4gICAgJHdhcm5pbmctY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHdhcm5pbmctY29sb3I6ICNmZmFlMDAgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpIHtcbiAgICAkYWxlcnQtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRhbGVydC1jb2xvcjogI2NjNGIzNyAhZ2xvYmFsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWRjcnVtYnNcbi8vLy9cblxuLy8vIE1hcmdpbiBhcm91bmQgYSBicmVhZGNydW1icyBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgYWN0aXZlIGJyZWFkY3J1bWIgbGluay5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gT3BhY2l0eSBvZiBkaXNhYmxlZCBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJyZWFkY3J1bWIgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIG1ha2VzIGJyZWFkY3J1bWIgbGlua3MgdXBwZXJjYXNlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBhIHNlcGVyYXRvciBiZXR3ZWVuIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBJZiBpdCBleGlzdHMgJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2ggaXMgdXNlZCB0byBidWlsZCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3IuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCkge1xuICAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6ICRicmVhZGNydW1icy1pdGVtLXNsYXNoO1xufVxuXG4vLy8gVXNlZCBjaGFyYWN0ZXIgZm9yIHRoZSBicmVhZGNydW1iIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBDb250ZW50XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbTogJy8nICFkZWZhdWx0O1xuXG4vLy8gVXNlZCBjaGFyYWN0ZXIgZm9yIHRoZSBicmVhZGNydW1iIHNlcGFyYXRvciBpbiBydGwgbW9kZS5cbi8vLyBAdHlwZSBDb250ZW50XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGw6ICdcXFxcJyAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIElmIGl0IGV4aXN0cyAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvciBpcyB1c2VkIHRvIGJ1aWxkICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvci4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yKSB7XG4gICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3I7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBicmVhZGNydW1icyBjb250YWluZXIsIGFsb25nIHdpdGggdGhlIHN0eWxlcyBmb3IgdGhlIGA8bGk+YCBhbmQgYDxhPmAgZWxlbWVudHMgaW5zaWRlIG9mIGl0LlxuQG1peGluIGJyZWFkY3J1bWJzLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46ICRicmVhZGNydW1icy1tYXJnaW47XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgLy8gSXRlbSB3cmFwcGVyXG4gIGxpIHtcbiAgICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIEBpZiAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3Ige1xuICAgICAgLy8gTmVlZCB0byBlc2NhcGUgdGhlIGJhY2tzbGFzaFxuICAgICAgJHNlcGFyYXRvcjogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAnbHRyJywgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0sICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bCk7XG5cbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgbWFyZ2luOiAwICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIGNvbnRlbnQ6ICRzZXBhcmF0b3I7XG4gICAgICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSB7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnJlYWRjcnVtYnMge1xuICAuYnJlYWRjcnVtYnMge1xuICAgIEBpbmNsdWRlIGJyZWFkY3J1bWJzLWNvbnRhaW5lcjtcblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhbGxvdXRcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmYWRlIHZhbHVlIGZvciBjYWxsb3V0IGJhY2tncm91bmRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBzdHlsZSBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMCAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBDYWxsb3V0IHBhZGRpbmdzLlxuLy8vIEB0eXBlIE1hcFxuJGNhbGxvdXQtc2l6ZXM6IChcbiAgc21hbGw6IDAuNXJlbSxcbiAgZGVmYXVsdDogMXJlbSxcbiAgbGFyZ2U6IDNyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FsbG91dHMsIGlmIHRoZSBjYWxsb3V0IGhhcyBhIGRhcmsgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQW1vdW50IHRvIHRpbnQgbGlua3MgdXNlZCB3aXRoaW4gY29sb3JlZCBwYW5lbHMuIFNldCB0byBgZmFsc2VgIHRvIGRpc2FibGUgdGhpcyBmZWF0dXJlLlxuLy8vIEB0eXBlIE51bWJlciB8IEJvb2xlYW5cbiRjYWxsb3V0LWxpbmstdGludDogMzAlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGEgY2FsbG91dCwgaW5jbHVkaW5nIHBhZGRpbmcgYW5kIG1hcmdpbi5cbkBtaXhpbiBjYWxsb3V0LWJhc2UoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAkY2FsbG91dC1tYXJnaW47XG4gIHBhZGRpbmc6IG1hcC1nZXQoJGNhbGxvdXQtc2l6ZXMsIGRlZmF1bHQpO1xuXG4gIGJvcmRlcjogJGNhbGxvdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkY2FsbG91dC1yYWRpdXM7XG5cbiAgLy8gUmVzcGVjdCB0aGUgcGFkZGluZywgZm9vbC5cbiAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSBxdWljayBzdHlsZXMgZm9yIGEgY2FsbG91dCB1c2luZyBhIHNpbmdsZSBjb2xvciBhcyBhIGJhc2VsaW5lLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dC1zdHlsZSgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgJGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkY2FsbG91dC1mb250LWNvbG9yLCAkY2FsbG91dC1mb250LWNvbG9yLWFsdCkpO1xufVxuXG5AbWl4aW4gY2FsbG91dC1zaXplKCRwYWRkaW5nKSB7XG4gIHBhZGRpbmctdG9wOiAkcGFkZGluZztcbiAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZztcbiAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbn1cblxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FsbG91dC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gIEBpbmNsdWRlIGNhbGxvdXQtYmFzZTtcbiAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jYWxsb3V0IHtcbiAgLmNhbGxvdXQge1xuICAgIEBpbmNsdWRlIGNhbGxvdXQ7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSwgJHBhZGRpbmcgaW4gbWFwLXJlbW92ZSgkY2FsbG91dC1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgkcGFkZGluZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FyZFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FyZC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhcmRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FyZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FyZC1kaXZpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgc3R5bGUuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNhcmQgc2hhZG93LlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLXNoYWRvdzogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYXJkLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbi5cbi8vLyBAdHlwZSBudW1iZXJcbiRjYXJkLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FyZCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIGZvbnQgY29sb3Igb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXJnaW4gLSBCb3R0b20gbWFyZ2luIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGJvcmRlciAtIEJvcmRlciBhcm91bmQgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmFkaXVzIC0gYm9yZGVyIHJhZGl1cyBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaGFkb3cgLSBib3ggc2hhZG93IG9mIHRoZSBjYXJkLlxuQG1peGluIGNhcmQtY29udGFpbmVyKFxuICAkYmFja2dyb3VuZDogJGNhcmQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkY2FyZC1mb250LWNvbG9yLFxuICAkbWFyZ2luOiAkY2FyZC1tYXJnaW4tYm90dG9tLFxuICAkYm9yZGVyOiAkY2FyZC1ib3JkZXIsXG4gICRyYWRpdXM6ICRjYXJkLWJvcmRlci1yYWRpdXMsXG4gICRzaGFkb3c6ICRjYXJkLXNoYWRvd1xuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gIH1cblxuICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcblxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FyZCBkaXZpZGVyLlxuQG1peGluIGNhcmQtZGl2aWRlcihcbiAgJGJhY2tncm91bmQ6ICRjYXJkLWRpdmlkZXItYmFja2dyb3VuZCxcbiAgJHBhZGRpbmc6ICRjYXJkLXBhZGRpbmdcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG5cbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FyZCBzZWN0aW9uLlxuQG1peGluIGNhcmQtc2VjdGlvbihcbiAgJHBhZGRpbmc6ICRjYXJkLXBhZGRpbmdcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxuXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jYXJkIHtcbiAgLmNhcmQge1xuICAgIEBpbmNsdWRlIGNhcmQtY29udGFpbmVyO1xuICB9XG5cbiAgLmNhcmQtZGl2aWRlciB7XG4gICAgQGluY2x1ZGUgY2FyZC1kaXZpZGVyO1xuICB9XG5cbiAgLmNhcmQtc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgY2FyZC1zZWN0aW9uO1xuICB9XG5cbiAgLy8gRm9yIElFIDExIC0gRmxleGJ1Z1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vcGhpbGlwd2FsdG9uL2ZsZXhidWdzL2lzc3Vlcy83NVxuICAuY2FyZC1pbWFnZSB7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd25cbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXdpZHRoOiAzMDBweCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBkcm9wZG93biBwYW5lcy4gRWFjaCBzaXplIGlzIGEgQ1NTIGNsYXNzIHlvdSBjYW4gYXBwbHkuXG4vLy8gQHR5cGUgTWFwXG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEFwcGxpZXMgc3R5bGVzIGZvciBhIGJhc2ljIGRyb3Bkb3duLlxuQG1peGluIGRyb3Bkb3duLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA7XG5cbiAgZGlzcGxheTogbm9uZTtcblxuICB3aWR0aDogJGRyb3Bkb3duLXdpZHRoO1xuICBwYWRkaW5nOiAkZHJvcGRvd24tcGFkZGluZztcblxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJvcmRlcjogJGRyb3Bkb3duLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGRyb3Bkb3duLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRyb3Bkb3duLWJhY2tncm91bmQ7XG5cbiAgZm9udC1zaXplOiAkZHJvcGRvd24tZm9udC1zaXplO1xuXG5cbiAgLy8gQWxsb3cgYW4gaW50ZXJtaXR0ZW50IHN0YXRlIHRvIGRvIHBvc2l0aW9uaW5nIGJlZm9yZSBtYWtpbmcgdmlzaWJsZS5cbiAgJi5pcy1vcGVuaW5nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICYuaXMtb3BlbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93biB7XG4gIC5kcm9wZG93bi1wYW5lIHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1jb250YWluZXI7XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJGRyb3Bkb3duLXNpemVzIHtcbiAgICAuZHJvcGRvd24tcGFuZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHBhZ2luYXRpb25cbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gb2YgdGhlIHBhZ2luYXRpb24gb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc6IHJlbS1jYWxjKDMgMTApICFkZWZhdWx0O1xuXG4vLy8gUmlnaHQgbWFyZ2luIHRvIHNlcGFyYXRlIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6IHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW1zIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZWxsaXBzaXMgaW4gYSBwYWdpbmF0aW9uIG1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgZmFsc2VgLCBkb24ndCBkaXNwbGF5IHBhZ2UgbnVtYmVyIGxpbmtzIG9uIG1vYmlsZSwgb25seSBuZXh0L3ByZXZpb3VzIGxpbmtzXG4vLy8gYW5kIG9wdGlvbmFsbHkgY3VycmVudCBwYWdlIG51bWJlci5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBkaXNwbGF5IHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIG9uIG1vYmlsZSBldmVuIGlmIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXNgIGlzIHNldCB0byBgZmFsc2VgLlxuLy8vIFRoaXMgcGFyYW1ldGVyIHdpbGwgb25seSBvdmVycmlkZSB0aGUgdmlzaWJpbGl0eSBzZXR0aW5nIG9mIHRoZSBjdXJyZW50IGl0ZW0gZm9yIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlO2AsXG4vLy8gaXQgd2lsbCBub3QgYWZmZWN0IHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIHZpc2liaWxpdHkgd2hlbiBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zYCBpcyBzZXQgdG8gYHRydWVgLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW06IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhcnJvd3MgYXJlIGFkZGVkIHRvIHRoZSBuZXh0IGFuZCBwcmV2aW91cyBsaW5rcyBvZiBwYWdpbmF0aW9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIENvbnRlbnQgZm9yIHRoZSBwcmV2aW91cyBhcnJvdyB3aGVuIGAkcGFnaW5hdGlvbi1hcnJvd3NgIGlzIGB0cnVlYFxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhZ2luYXRpb24tYXJyb3ctcHJldmlvdXM6ICdcXDAwQUInICFkZWZhdWx0O1xuXG4vLy8gQ29udGVudCBmb3IgdGhlIG5leHQgYXJyb3cgd2hlbiBgJHBhZ2luYXRpb24tYXJyb3dzYCBpcyBgdHJ1ZWBcbi8vLyBAdHlwZSBTdHJpbmdcbiRwYWdpbmF0aW9uLWFycm93LW5leHQ6ICdcXDAwQkInICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgcGFnaW5hdGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1jb250YWluZXIgKFxuICAkbWFyZ2luLWJvdHRvbTogJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbSxcbiAgJGZvbnQtc2l6ZTogJHBhZ2luYXRpb24tZm9udC1zaXplLFxuICAkc3BhY2luZzogJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nLFxuICAkcmFkaXVzOiAkcGFnaW5hdGlvbi1yYWRpdXMsXG4gICRjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvcixcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlclxuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAvLyBMaXN0IGl0ZW1cbiAgbGkge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcblxuICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuXG4gICAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbSB7XG4gICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgY3VycmVudCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWN1cnJlbnQgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkYmFja2dyb3VuZC1jdXJyZW50OiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudCxcbiAgJGNvbG9yLWN1cnJlbnQ6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudFxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1jdXJyZW50O1xuICBjb2xvcjogJGNvbG9yLWN1cnJlbnQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWRcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgY29sb3I6ICRjb2xvcjtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGVsbGlwc2lzIGZvciB1c2UgaW4gYSBwYWdpbmF0aW9uIGxpc3QuXG5AbWl4aW4gcGFnaW5hdGlvbi1lbGxpcHNpcyAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRjb2xvcjogJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3Jcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgY29udGVudDogJ1xcMjAyNic7XG4gIGNvbG9yOiAkY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXBhZ2luYXRpb24ge1xuICAucGFnaW5hdGlvbiB7XG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1jb250YWluZXI7XG5cbiAgICAuY3VycmVudCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudDtcbiAgICB9XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC5lbGxpcHNpczo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1lbGxpcHNpcztcbiAgICB9XG4gIH1cblxuICBAaWYgJHBhZ2luYXRpb24tYXJyb3dzIHtcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cyBhOjpiZWZvcmUsXG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMuZGlzYWJsZWQ6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC41cmVtO1xuICAgICAgY29udGVudDogJHBhZ2luYXRpb24tYXJyb3ctcHJldmlvdXM7XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb24tbmV4dCBhOjphZnRlcixcbiAgICAucGFnaW5hdGlvbi1uZXh0LmRpc2FibGVkOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwLjVyZW07XG4gICAgICBjb250ZW50OiAkcGFnaW5hdGlvbi1hcnJvdy1uZXh0O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjY29yZGlvbiBncm91cC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgcGx1cyBhbmQgbWludXMgaWNvbnMgdG8gdGhlIHNpZGUgb2YgZWFjaCBhY2NvcmRpb24gdGl0bGUuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBDb250ZW50IGZvciB0aGUgcGx1cyBpY29uIHdoZW4gYCRhY2NvcmRpb24tcGx1c21pbnVzYCBpcyBgdHJ1ZWBcbi8vLyBAdHlwZSBTdHJpbmdcbiRhY2NvcmRpb24tcGx1cy1jb250ZW50OiAnXFwwMDJCJyAhZGVmYXVsdDtcblxuLy8vIENvbnRlbnQgZm9yIHRoZSBtaW51cyBpY29uIHdoZW4gYCRhY2NvcmRpb24tcGx1c21pbnVzYCBpcyBgdHJ1ZWBcbi8vLyBAdHlwZSBTdHJpbmdcbiRhY2NvcmRpb24tbWludXMtY29udGVudDogJ1xcMjAxMycgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYWNjb3JkaW9uIHRpdGxlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gYWNjb3JkaW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgc2FtZSBlbGVtZW50IHRoYXQgZ2V0cyBgZGF0YS1hY2NvcmRpb25gLlxuQG1peGluIGFjY29yZGlvbi1jb250YWluZXIgKFxuICAkYmFja2dyb3VuZDogJGFjY29yZGlvbi1iYWNrZ3JvdW5kXG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAmW2Rpc2FibGVkXSB7XG4gICAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGlzdCBpdGVtIHdpdGhpbiBhbiBhY2NvcmRpb24gdWwuXG5AbWl4aW4gYWNjb3JkaW9uLWl0ZW0ge1xuICAmOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cyAwIDA7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHRpdGxlIG9mIGFuIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaW5rIHdpdGhpbiBhbiBhY2NvcmRpb24gaXRlbS5cbkBtaXhpbiBhY2NvcmRpb24tdGl0bGUgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1pdGVtLXBhZGRpbmcsXG4gICRmb250LXNpemU6ICRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplLFxuICAkY29sb3I6ICRhY2NvcmRpb24taXRlbS1jb2xvcixcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gJiB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxuXG4gIEBpZiAkYWNjb3JkaW9uLXBsdXNtaW51cyB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICBjb250ZW50OiAkYWNjb3JkaW9uLXBsdXMtY29udGVudDtcbiAgICB9XG5cbiAgICAuaXMtYWN0aXZlID4gJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICRhY2NvcmRpb24tbWludXMtY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhY2NvcmRpb24gY29udGVudC4gQXBwbHkgdGhpcyB0byB0aGUgY29udGVudCBwYW5lIGJlbG93IGFuIGFjY29yZGlvbiBpdGVtJ3MgdGl0bGUuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRlbnQgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmcsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWNvbnRlbnQtY29sb3Jcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQgPiAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5hY2NvcmRpb24taXRlbSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWl0ZW07XG4gIH1cblxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XG4gIH1cblxuICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVkaWEtb2JqZWN0XG4vLy8vXG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gTGVmdCBhbmQgcmlnaHQgcGFkZGluZyBvbiBzZWN0aW9ucyB3aXRoaW4gYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBpbWFnZXMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LCB3aGVuIHRoZSBvYmplY3QgaXMgc3RhY2tlZCB2ZXJ0aWNhbGx5LiBTZXQgdG8gJ2F1dG8nIHRvIHVzZSB0aGUgaW1hZ2UncyBuYXR1cmFsIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtZWRpYSBvYmplY3QgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1jb250YWluZXIge1xuICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIGJsb2NrKTtcbiAgbWFyZ2luLWJvdHRvbTogJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b207XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cblxuICBpbWcge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICYuc3RhY2stZm9yLSN7JC16Zi16ZXJvLWJyZWFrcG9pbnR9IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3Igc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZ10gLSBQYWRkaW5nIGJldHdlZW4gc2VjdGlvbnMuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXNlY3Rpb24oJHBhZGRpbmc6ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmcpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogJHBhZGRpbmc7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQ6bm90KDpudGgtY2hpbGQoMikpIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1sZWZ0fTogJHBhZGRpbmc7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSAmIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zdGFjaztcbiAgICB9XG4gIH1cblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAmLm1haW4tc2VjdGlvbiB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJi5taWRkbGUge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAmLmJvdHRvbSB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gc3RhY2sgc2VjdGlvbnMgb2YgYSBtZWRpYSBvYmplY3QuIEFwcGx5IHRoaXMgdG8gdGhlIHNlY3Rpb24gZWxlbWVudHMsIG5vdCB0aGUgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1zdGFjayB7XG4gIHBhZGRpbmc6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6ICRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdCB7XG4gIC5tZWRpYS1vYmplY3Qge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1jb250YWluZXI7XG4gIH1cblxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zZWN0aW9uO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGFic1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gb2YgdGhlIHRhYiBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhIHRhYiBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBvZiB0YWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBBY3RpdmUgYmFja2dyb3VuZCBjb2xvciBvZiBhIHRhYiBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItYmFja2dyb3VuZC1hY3RpdmU6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQWN0aXZlIGZvbnQgY29sb3Igb2YgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItYWN0aXZlLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0YWIgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGl0ZW1zIGluIGEgTWVudS5cbiR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgYSB0YWIgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYm9yZGVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRhYiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXG5AbWl4aW4gdGFicy1jb250YWluZXIgKFxuICAkbWFyZ2luOiAkdGFiLW1hcmdpbixcbiAgJGJhY2tncm91bmQ6ICR0YWItYmFja2dyb3VuZCxcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46ICRtYXJnaW47XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi8vLyBBdWdtZW50cyBhIHRhYiBjb250YWluZXIgdG8gaGF2ZSB2ZXJ0aWNhbCB0YWJzLiBVc2UgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGB0YWJzLWNvbnRhaW5lcigpYC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbCB7XG4gID4gbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGxpbmtzIHdpdGhpbiBhIHRhYiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIGA8bGk+YCBlbGVtZW50cyBpbnNpZGUgYSB0YWIgY29udGFpbmVyLlxuQG1peGluIHRhYnMtdGl0bGUgKFxuICAkcGFkZGluZzogJHRhYi1pdGVtLXBhZGRpbmcsXG4gICRmb250LXNpemU6ICR0YWItaXRlbS1mb250LXNpemUsXG4gICRjb2xvcjogJHRhYi1jb2xvcixcbiAgJGNvbG9yLWFjdGl2ZTogJHRhYi1hY3RpdmUtY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGJhY2tncm91bmQtYWN0aXZlOiAkdGFiLWJhY2tncm91bmQtYWN0aXZlXG4pIHtcbiAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcblxuICA+IGEge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgICBjb2xvcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICZbYXJpYS1zZWxlY3RlZD0ndHJ1ZSddIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgIGNvbG9yOiAkY29sb3ItYWN0aXZlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSB3cmFwcGVyIHRoYXQgc3Vycm91bmRzIGEgdGFiIGdyb3VwJ3MgY29udGVudCBwYW5lcy5cbkBtaXhpbiB0YWJzLWNvbnRlbnQgKFxuICAkYmFja2dyb3VuZDogJHRhYi1jb250ZW50LWJhY2tncm91bmQsXG4gICRjb2xvcjogJHRhYi1jb250ZW50LWNvbG9yLFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkY29sb3I7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XG59XG5cbi8vLyBBdWdtZW50cyBhIHRhYiBjb250ZW50IGNvbnRhaW5lciB0byBoYXZlIGEgdmVydGljYWwgc3R5bGUsIGJ5IHNoaWZ0aW5nIHRoZSBib3JkZXIgYXJvdW5kLiBVc2UgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGB0YWJzLWNvbnRlbnQoKWAuXG5AbWl4aW4gdGFicy1jb250ZW50LXZlcnRpY2FsIChcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gaW5kaXZpZHVhbCB0YWIgY29udGVudCBwYW5lbCB3aXRoaW4gdGhlIHRhYiBjb250ZW50IGNvbnRhaW5lci5cbkBtaXhpbiB0YWJzLXBhbmVsIChcbiAgJHBhZGRpbmc6ICR0YWItY29udGVudC1wYWRkaW5nXG4pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgJi5pcy1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRhYnMge1xuICAudGFicyB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250YWluZXI7XG4gIH1cblxuICAvLyBWZXJ0aWNhbFxuICAudGFicy52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250YWluZXItdmVydGljYWw7XG4gIH1cblxuICAvLyBTaW1wbGVcbiAgLnRhYnMuc2ltcGxlIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJpbWFyeSBjb2xvclxuICAudGFicy5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblxuICAgID4gbGkgPiBhIHtcbiAgICAgIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRwcmltYXJ5LWNvbG9yKTtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkcHJpbWFyeS1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRhYnMtdGl0bGUge1xuICAgIEBpbmNsdWRlIHRhYnMtdGl0bGU7XG4gIH1cblxuICAudGFicy1jb250ZW50IHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRlbnQ7XG4gIH1cblxuICAudGFicy1jb250ZW50LnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRlbnQtdmVydGljYWw7XG4gIH1cblxuICAudGFicy1wYW5lbCB7XG4gICAgQGluY2x1ZGUgdGFicy1wYW5lbDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgcGlsbCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgc2ltcGxlIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRpdmUgdGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLi5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1jb2xvci1hbHQtYWN0aXZlOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhbiBpY29uIGFuZCB0ZXh0IGluIGEgbWVudSBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBzdGF0ZS4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYGFjdGl2ZWAgd2l0aCBgaXMtYWN0aXZlYC4gXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgYGFjdGl2ZWAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LXN0YXRlLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBjZW50ZXJlZC4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYC5tZW51LWNlbnRlcmVkID4gLm1lbnVgIHdpdGggYC5tZW51LmFsaWduLWNlbnRlcmAuIFxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBtZW51LWNlbnRlcmVkYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciB1c2luZyBgaWNvbi0qYCBjbGFzc2VzIHdpdGhvdXQgYC5pY29uc2AgY2xhc3Nlc1xuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IHRoaXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtaWNvbnMtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBNZW51LlxuQG1peGluIG1lbnUtYmFzZSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgbGkge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgfVxuXG4gIGEsXG4gIC5idXR0b24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtcy1wYWRkaW5nO1xuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9mIGlubmVyIGVsZW1lbnRzXG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuLy8vIEV4cGFuZHMgdGhlIGl0ZW1zIG9mIGEgTWVudSwgc28gZWFjaCBpdGVtIGlzIHRoZSBzYW1lIHdpZHRoLlxuQG1peGluIG1lbnUtZXhwYW5kIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgPiBsaSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFsaWduIG1lbnUgaXRlbXMuXG5AbWl4aW4gbWVudS1hbGlnbigkYWxpZ25tZW50KSB7XG4gIEBpZiAkYWxpZ25tZW50ID09IGxlZnQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuXG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSBjZW50ZXIge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbXBsZSBNZW51LCB3aGljaCBoYXMgbm8gcGFkZGluZyBvciBob3ZlciBzdGF0ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnUuIFRoaXMgZWZmZWN0cyB0aGUgc2lkZSBvZiB0aGUgYDxsaT5gIHRoYXQgcmVjZWl2ZXMgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1hcmdpbiBbJG1lbnUtc2ltcGxlLW1hcmdpbl0gLSBUaGUgbWFyZ2luIHRvIGFwcGx5IHRvIGVhY2ggYDxsaT5gLlxuQG1peGluIG1lbnUtc2ltcGxlKCRkaXI6ICRnbG9iYWwtbGVmdCwgJG1hcmdpbjogJG1lbnUtc2ltcGxlLW1hcmdpbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgbGkgKyBsaSB7XG4gICAgbWFyZ2luLSN7JGRpcn06ICRtYXJnaW47XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBuZXN0ZWQgTWVudSwgYnkgYWRkaW5nIGBtYXJnaW4tbGVmdGAgdG8gdGhlIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJG1hcmdpbiBbJG1lbnUtbmVzdGVkLW1hcmdpbl0gLSBMZW5ndGggb2YgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRuZXN0ZWQtYWxpZ25tZW50IFtsZWZ0XSAtIEFsaWdubWVudCBvZiB0aGUgbmVzdGVkIGNsYXNzXG5AbWl4aW4gbWVudS1uZXN0ZWQoXG4gICRtYXJnaW46ICRtZW51LW5lc3RlZC1tYXJnaW4sXG4gICRuZXN0ZWQtYWxpZ25tZW50OiBsZWZ0XG4pIHtcbiAgQGlmICRuZXN0ZWQtYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJG1hcmdpbjtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbWFyZ2luO1xuICB9XG5cbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBpY29ucyBpbiBtZW51cy5cbkBtaXhpbiBtZW51LWljb25zKCkge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBpbWcsXG4gICAgaSxcbiAgICBzdmcge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgKyBzcGFuIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgcG9zaXRpb24gY2xhc3NlcyBmb3IgaWNvbnMgd2l0aGluIGEgbWVudS5cbkBtaXhpbiBtZW51LWljb24tcG9zaXRpb24oJHBvc2l0aW9uOiBsZWZ0LCAkc3BhY2luZzogJG1lbnUtaWNvbi1zcGFjaW5nKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvICRzcGFjaW5nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46ICRzcGFjaW5nIGF1dG8gMDtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1lbnUtdGV4dCB7XG4gIHBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbkBtaXhpbiBtZW51LXN0YXRlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmUsICgkbWVudS1pdGVtLWNvbG9yLWFjdGl2ZSwgJG1lbnUtaXRlbS1jb2xvci1hbHQtYWN0aXZlKSk7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUge1xuICAubWVudSB7XG4gICAgQGluY2x1ZGUgbWVudS1iYXNlO1xuXG4gICAgLy8gRGVmYXVsdCBvcmllbnRhdGlvbjogaG9yaXpvbnRhbFxuICAgICYsICYuaG9yaXpvbnRhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBvcmllbnRhdGlvbiBtb2RpZmllclxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggbW9kaWZpZXIgZm9yIGhvcml6b250YWwgb3JpZW50YXRpb25cbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgIH1cblxuICAgIC8vIFNpbXBsZVxuICAgICYuc2ltcGxlIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlO1xuICAgIH1cblxuICAgIC8vIEJyZWFrcG9pbnQgc3BlY2lmaWMgdmVyc2lvbnNcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogZmFsc2UpIHtcbiAgICAgICYuI3skLXpmLXNpemV9LWhvcml6b250YWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tdmVydGljYWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LWV4cGFuZGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXNpbXBsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmLm5lc3RlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZDtcbiAgICB9XG5cbiAgICAvLyBJY29uIEJhc2UgU3R5bGVzXG4gICAgJi5pY29ucyB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuICAgIH1cblxuICAgIC8vIEJhY2t3YXJkIENvbXBhdGliaWxpdHkgZm9yIGFjdGl2ZSBzdGF0ZVxuICAgIEBpZiAkbWVudS1pY29ucy1iYWNrLWNvbXBhdCB7XG4gICAgICAmLmljb24tdG9wLFxuICAgICAgJi5pY29uLXJpZ2h0LFxuICAgICAgJi5pY29uLWJvdHRvbSxcbiAgICAgICYuaWNvbi1sZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJY29uIExlZnRcbiAgICAmLmljb24tbGVmdCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24obGVmdCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBSaWdodFxuICAgICYuaWNvbi1yaWdodCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24ocmlnaHQpO1xuICAgIH1cblxuICAgIC8vIEljb24gVG9wXG4gICAgJi5pY29uLXRvcCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24odG9wKTtcbiAgICB9XG5cbiAgICAvLyBJY29uIEJvdHRvbVxuICAgICYuaWNvbi1ib3R0b20ge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKGJvdHRvbSk7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgfVxuICAgIFxuICAgIC8vIEJhY2t3YXJkIENvbXBhdGliaWxpdHkgZm9yIGFjdGl2ZSBzdGF0ZVxuICAgIEBpZiAkbWVudS1zdGF0ZS1iYWNrLWNvbXBhdCB7XG4gICAgICAuYWN0aXZlID4gYSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtc3RhdGUtYWN0aXZlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIGxlZnRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1sZWZ0fSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGxlZnQpO1xuICAgIH1cblxuICAgIC8vIEFsaWduIHJpZ2h0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24ocmlnaHQpO1xuXG4gICAgICAubmVzdGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJG5lc3RlZC1hbGlnbm1lbnQ6IHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBjZW50ZXJcbiAgICAmLmFsaWduLWNlbnRlciB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgfVxuXG4gICAgLm1lbnUtdGV4dCB7XG4gICAgICBAaW5jbHVkZSBtZW51LXRleHQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0IHtcbiAgICAubWVudS1jZW50ZXJlZCB7XG4gICAgICA+IC5tZW51IHtcbiAgICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24oY2VudGVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmV2ZW50IEZPVUMgd2hlbiB1c2luZyB0aGUgUmVzcG9uc2l2ZSBNZW51IHBsdWdpblxuICAubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiQG1peGluIGZvdW5kYXRpb24tbWVudS1pY29uIHtcbiAgLm1lbnUtaWNvbiB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyKCRjb2xvcjogJHRpdGxlYmFyLWljb24tY29sb3IsICRjb2xvci1ob3ZlcjogJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXIpO1xuICB9XG5cbiAgLm1lbnUtaWNvbi5kYXJrIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXI7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcmlsbGRvd25cbi8vLy9cblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydHkgdG8gdXNlIGZvciBhbmltYXRpbmcgbWVudXMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBhcnJvd3MgdG8gZHJpbGxkb3duIGl0ZW1zIHdpdGggc3VibWVudXMsIGFzIHdlbGwgYXMgdGhlIGJhY2sgYnV0dG9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLW5lc3RlZC1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcmlsbGRvd24gdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgaXRlbSBwYWRkaW5nIGluIHRoZSBzdWJtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biBzdWJtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyaWxsZG93bi1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1kcmlsbGRvd24tbGVmdC1yaWdodC1hcnJvd3Mge1xuICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1yaWdodCk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyaWxsZG93bi1hcnJvdy1zaXplO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLWxlZnQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxcmVtO1xuICB9XG5cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnUge1xuICAvLyBBcHBsaWVkIHRvIHRoZSBNZW51IGNvbnRhaW5lclxuICAuaXMtZHJpbGxkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICYuYW5pbWF0ZS1oZWlnaHQge1xuICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlIHRvcCBsZXZlbCA8dWw+XG4gIC5kcmlsbGRvd24ge1xuICAgIGEge1xuICAgICAgcGFkZGluZzogJGRyaWxsZG93bi1wYWRkaW5nO1xuICAgICAgYmFja2dyb3VuZDogJGRyaWxsZG93bi1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC8vIEFwcGxpZWQgdG8gc3VibWVudSA8dWw+c1xuICAgIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgICB6LWluZGV4OiAtMTtcblxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLXN1Ym1lbnUtYmFja2dyb3VuZDtcbiAgICAgIHRyYW5zaXRpb246ICRkcmlsbGRvd24tdHJhbnNpdGlvbjtcblxuICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAtMTAwJSwgMTAwJSkpO1xuICAgICAgfVxuXG4gICAgICAmLmlzLWNsb3Npbmcge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIDEwMCUsIC0xMDAlKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFN1Ym1lbnUgaXRlbSBwYWRkaW5nXG4gICAgICBhIHtcbiAgICAgICAgcGFkZGluZzogJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkZHJpbGxkb3duLW5lc3RlZC1tYXJnaW4pO1xuICAgIH1cblxuICAgIC5kcmlsbGRvd24tc3VibWVudS1jb3Zlci1wcmV2aW91cyB7XG4gICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiAkZHJpbGxkb3duLWFycm93cyB7XG4gICAgICBAaW5jbHVkZSB6Zi1kcmlsbGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG5cbiAgICAgIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtbGVmdCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNzVyZW07IC8vIENyZWF0ZXMgc3BhY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd24tbWVudVxuLy8vL1xuXG4vLy8gRW5hYmxlcyBhcnJvd3MgZm9yIGl0ZW1zIHdpdGggZHJvcGRvd24gbWVudXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBwYWRkaW5nIGZvciBhbGlnbmluZyB0aGUgYXJyb3cgY29ycmVjdGx5LlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJvcGRvd25zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBzdWItbWVudSBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gQm9yZGVyIHdpZHRoIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLyBVc2VkIHRvIGFkanVzdCB0b3AgbWFyZ2luIG9mIGEgc3ViLW1lbnUgaWYgYSBib3JkZXIgaXMgdXNlZC5cbi8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGg6IG50aCgkZHJvcGRvd25tZW51LWJvcmRlciwgMSk7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0uIEV4cGxpY2l0IG92ZXJyaWRlIGZvciBtZW51IGRlZmF1bHRzXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0uIEV4cGxpY2l0IG92ZXJyaWRlIGZvciBtZW51IGRlZmF1bHRzXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3Mge1xuICA+IGE6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAxNHB4O1xuICB9XG5cbiAgJi5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDtcbiAgfVxuXG4gICYub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG59XG5cbkBtaXhpbiBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgID4gbGkub3BlbnMtbGVmdCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaS5vcGVucy1yaWdodCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAkZHJvcGRvd25tZW51LWFycm93LXBhZGRpbmc7XG4gICAgICB9XG5cbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IC0xICogKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSAvIDIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICA+IGxpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLWxlZnQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLXJpZ2h0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudSB7XG4gIC5kcm9wZG93bi5tZW51IHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIH1cblxuICAgIC8vIFRvcC1sZXZlbCBpdGVtXG4gICAgPiBsaSA+IGEge1xuICAgICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kO1xuICAgICAgcGFkZGluZzogJGRyb3Bkb3dubWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC8vIFRvcC1sZXZlbCBpdGVtIGFjdGl2ZSBzdGF0ZVxuICAgID4gbGkuaXMtYWN0aXZlID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd24tbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgY29sb3I6ICRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlO1xuICAgIH1cblxuICAgIC5uby1qcyAmIHVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRkcm9wZG93bm1lbnUtbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuI3skc2l6ZX0tdmVydGljYWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gICAgd2lkdGg6IDEwMHB4O1xuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBhOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplO1xuICAgIH1cblxuICAgICYub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG5cbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICYub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAxMDAlO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1pbi13aWR0aDogJGRyb3Bkb3dubWVudS1taW4td2lkdGg7XG5cbiAgICBib3JkZXI6ICRkcm9wZG93bm1lbnUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kO1xuXG4gICAgLmRyb3Bkb3duICYgYSB7XG4gICAgICBwYWRkaW5nOiAkZHJvcGRvd25tZW51LXN1Ym1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICh0eXBlLW9mKCRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKSA9PSAnbnVtYmVyJykge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICBtYXJnaW4tdG9wOiAoLSRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIFtUT0RPXSBDdXQgYmFjayBzcGVjaWZpY2l0eVxuICAgIC8vJjpub3QoLmpzLWRyb3Bkb3duLW5vaG92ZXIpID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50OmhvdmVyID4gJiwgLy8gd2h5IGlzIHRoaXMgbGluZSBuZWVkZWQ/IE9wZW5pbmcgaXMgaGFuZGxlZCBieSBKUyBhbmQgdGhpcyBjYXVzZXMgc29tZSB1Z2x5IGZsaWNrZXJpbmcgd2hlbiB0aGUgc3ViIGlzIHJlLXBvc2l0aW9uZWQgYXV0b21hdGljYWxseS4uLlxuICAgICYuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG9mZi1jYW52YXNcbi8vLy9cblxuLy8vIFdpZHRoIG1hcCBvZiBhIGxlZnQvcmlnaHQgb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBNYXBcbiRvZmZjYW52YXMtc2l6ZXM6IChcbiAgc21hbGw6IDI1MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBtYXAgb2YgYSB0b3AvYm90dG9tIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTWFwXG4kb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGZvciB0aGUgb2ZmLWNhbnZhcyBvdmVybGFwIHBhbmVsLlxuLy8vIEB0eXBlIFNoYWRvd1xuJG9mZmNhbnZhcy1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjcpICFkZWZhdWx0O1xuXG4vLy8gSW5uZXIgYm94IHNoYWRvdyBzaXplIGZvciB0aGUgb2ZmLWNhbnZhcyBwdXNoIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZTogMjBweCAhZGVmYXVsdDtcblxuLy8vIElubmVyIGJveCBzaGFkb3cgY29sb3IgZm9yIHRoZSBvZmYtY2FudmFzIHB1c2ggcGFuZWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgY29udGVudCBvdmVybGF5LlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleDogMTEgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgd2l0aCB0aGUgYHB1c2hgIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXB1c2gtemluZGV4OiAxMiAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB3aXRoIHRoZSBgb3ZlcmxhcGAgdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6IDEzICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHVzaW5nIHRoZSBgcmV2ZWFsLWZvci0qYCBjbGFzc2VzIG9yIG1peGluLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAxMiAhZGVmYXVsdDtcblxuLy8vIExlbmd0aCBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAwLjVzICFkZWZhdWx0O1xuXG4vLy8gVGltaW5nIGZ1bmN0aW9uIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhIHJldmVhbGVkIG9mZi1jYW52YXMgd2lsbCBiZSBmaXhlZC1wb3NpdGlvbiwgYW5kIHNjcm9sbCB3aXRoIHRoZSBzY3JlZW4uXG4vLy8gQHR5cGUgQm9vbFxuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgb3ZlcmxheSB0aGF0IGFwcGVhcnMgd2hlbiBhbiBvZmYtY2FudmFzIHBhbmVsIGlzIG9wZW4uXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBDU1MgY2xhc3MgdXNlZCBmb3IgdGhlIG1haW4gY29udGVudCBhcmVhLiBUaGUgb2ZmLWNhbnZhcyBtaXhpbnMgdXNlIHRoaXMgdG8gdGFyZ2V0IHRoZSBwYWdlIGNvbnRlbnQuXG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBiYXNlbGluZSBzdHlsZXMgZm9yIG9mZi1jYW52YXMuIFRoaXMgQ1NTIGlzIHJlcXVpcmVkIHRvIG1ha2UgdGhlIG90aGVyIHBpZWNlcyB3b3JrLlxuQG1peGluIG9mZi1jYW52YXMtYmFzaWNzIHtcblxuICAvLy8gVHJhbnNmb3JtIGRlcHJlY2F0ZWQgc2l6ZSBzZXR0aW5ncyBpbnRvIG1hcCAmIHNob3cgd2FybmluZ1xuICBAaWYgdmFyaWFibGUtZXhpc3RzKG9mZmNhbnZhcy1zaXplKSB7XG4gICAgJG9mZmNhbnZhcy1zaXplczogKHNtYWxsOiAkb2ZmY2FudmFzLXNpemUsIG1lZGl1bTogJG9mZmNhbnZhcy1zaXplKSAhZ2xvYmFsO1xuICAgIEB3YXJuICckb2ZmY2FudmFzLXNpemUgaXMgZGVwcmVjYXRlZCBhbmQgbm90IHVzZWQgYW55bW9yZSEgUGxlYXNlIHVwZGF0ZSB5b3VyIHNldHRpbmdzIGFuZCB1c2UgdGhlIG1hcCAkb2ZmY2FudmFzLXNpemVzIGluc3RlYWQnO1xuICB9XG4gIEBpZiB2YXJpYWJsZS1leGlzdHMob2ZmY2FudmFzLXZlcnRpY2FsLXNpemUpIHtcbiAgICAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzOiAoc21hbGw6ICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZSwgbWVkaXVtOiAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUpICFnbG9iYWw7XG4gICAgQHdhcm4gJyRvZmZjYW52YXMtdmVydGljYWwtc2l6ZSBpcyBkZXByZWNhdGVkIGFuZCBub3QgdXNlZCBhbnltb3JlISBQbGVhc2UgdXBkYXRlIHlvdXIgc2V0dGluZ3MgYW5kIHVzZSB0aGUgbWFwICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXMgaW5zdGVhZCc7XG4gIH1cblxuICAvLyBDaGVja3MgdGhlIHotaW5kZXhlcyBhbmQgaW5jcmVhc2UgdGhlbSBkdWUgdG8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuXG4gIC8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIG92ZXJsYXkncyB6LWluZGV4IGlzIG5ldyBzaW5jZSB2Ni40IGFuZCBtYXkgYmUgaWRlbnRpY2FsIHRvIHRoZSB1c2VyIGN1c3RvbSBzZXR0aW5ncyBvZiB0aGUgcHVzaCB6LWluZGV4LlxuICBAaWYgJG9mZmNhbnZhcy1wdXNoLXppbmRleCA8PSAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4IHsgJG9mZmNhbnZhcy1wdXNoLXppbmRleDogJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCArIDEgIWdsb2JhbDsgfVxuICBAaWYgJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleCA8PSAkb2ZmY2FudmFzLXB1c2gtemluZGV4IHsgJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleCArIDEgIWdsb2JhbDsgfVxuICBAaWYgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4IDw9ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggeyAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggKyAxICFnbG9iYWw7IH1cblxuICAvLyBIaWRlcyBvdmVyZmxvdyBvbiBib2R5IHdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLlxuICAuaXMtb2ZmLWNhbnZhcy1vcGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBvdmVybGF5IChnZW5lcmF0ZWQgYnkgSmF2YVNjcmlwdClcbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZywgdmlzaWJpbGl0eSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG5cbiAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDtcblxuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAmLmlzLWNsb3NhYmxlIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmLmlzLW92ZXJsYXktYWJzb2x1dGUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cblxuICAgICYuaXMtb3ZlcmxheS1maXhlZCB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhbiBvZmYtY2FudmFzIHdyYXBwZXIuXG5AbWl4aW4gb2ZmLWNhbnZhcy13cmFwcGVyKCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2UoXG4gICRiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLWJhY2tncm91bmQsXG4gICR0cmFuc2l0aW9uOiAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsXG4gICRmaXhlZDogdHJ1ZVxuKSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcblxuICBAaWYgJGZpeGVkID09IHRydWUge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLy8gU2V0IHRoZSBvZmYtY2FudmFzIHotaW5kZXguXG4gIHotaW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXg7XG5cbiAgLy8gSW5jcmVhc2UgQ1NTIHNwZWNpZmljaXR5XG4gICYuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4O1xuICB9XG5cbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG5cbiAgLy8gSGlkZSBpbmFjdGl2ZSBvZmYtY2FudmFzIHdpdGhpbiB0aGUgY29udGVudCB0aGF0IGhhdmUgdGhlIHNhbWUgcG9zaXRpb25cbiAgJi5pcy1jbG9zZWQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE92ZXJsYXAgb25seSBzdHlsZXMuXG4gICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwIHtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4O1xuXG4gICAgJi5pcy1vcGVuIHtcbiAgICAgIGJveC1zaGFkb3c6ICRvZmZjYW52YXMtc2hhZG93O1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldHMgdHJhbnNmb3JtIHRvIDAgdG8gc2hvdyBhbiBvZmYtY2FudmFzIHBhbmVsLlxuICAmLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0byBwb3NpdGlvbiBhbiBvZmYtY2FudmFzIHBhbmVsIHRvIHRoZSBsZWZ0L3JpZ2h0L3RvcC9ib3R0b20uXG5AbWl4aW4gb2ZmLWNhbnZhcy1wb3NpdGlvbihcbiAgJHBvc2l0aW9uOiBsZWZ0LFxuICAkb3JpZW50YXRpb246IGhvcml6b250YWwsXG4gICRzaXplczogaWYoJG9yaWVudGF0aW9uID09IGhvcml6b250YWwsICRvZmZjYW52YXMtc2l6ZXMsICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXMpXG4pIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICB3aWR0aDogJHNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuXG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcblxuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIGhlaWdodDogJHNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIGhlaWdodDogJHNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSBpcyBzZXQsIGFkZCBpbm5lciBib3gtc2hhZG93LlxuICAvLyBUaGlzIG1pbWljcyB0aGUgb2ZmLWNhbnZhcyBwYW5lbCBoYXZpbmcgYSBsb3dlciB6LWluZGV4LCB3aXRob3V0IGhhdmluZyB0byBoYXZlIG9uZS5cbiAgQGlmICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUge1xuICAgICYuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KHJpZ2h0LCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcik7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhsZWZ0LCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcik7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3coYm90dG9tLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcik7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3codG9wLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuLy8vIFNldHMgdGhlIHN0eWxlcyBmb3IgdGhlIGNvbnRlbnQgY29udGFpbmVyLlxuQG1peGluIG9mZi1jYW52YXMtY29udGVudCgpIHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgLy8gQmluZCB0byBoYXMtdHJhbnNpdGlvbi1YIGNsYXNzIHRvIHByZXZlbnQgdHJhbnNpdGlvbiBmb3IgdHJhbnNmb3JtOm5vbmVcbiAgJi5oYXMtdHJhbnNpdGlvbi1vdmVybGFwLFxuICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gc2NvcGUgdW50aWwgdGhlIGVsZW1lbnQgaXMgY2xvc2VkIChtYWtlcyBzdXJlIHRyYW5zaXRpb25lbmQgZ2V0cyB0cmlnZ2VyZWQpXG4gICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cblxuICAvLyBDb25zaWRlciBlbGVtZW50ICYgY29udGVudCwgbmVzdGVkIGluIGFub3RoZXIgY29udGVudFxuICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdGhhdCByZXZlYWwgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbkBtaXhpbiBvZmYtY2FudmFzLXJldmVhbChcbiRwb3NpdGlvbjogbGVmdCxcbiR6aW5kZXg6ICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCxcbiRjb250ZW50OiAkbWFpbmNvbnRlbnQtY2xhc3MsXG4kYnJlYWtwb2ludDogc21hbGxcbikge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHotaW5kZXg6ICR6aW5kZXg7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG5cbiAgQGlmIG5vdCAkb2ZmY2FudmFzLWZpeGVkLXJldmVhbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIENvbnNpZGVyIHJldmVhbGVkIGVsZW1lbnQgaXMgbmVzdGVkIGluIGNvbnRlbnRcbiAgLiN7JG1haW5jb250ZW50LWNsYXNzfSAmIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICBAYXQtcm9vdCAuI3skY29udGVudH0uaGFzLXJldmVhbC0jeyRwb3NpdGlvbn0ge1xuICAgIG1hcmdpbi0jeyRwb3NpdGlvbn06IC16Zi1nZXQtYnAtdmFsKCRvZmZjYW52YXMtc2l6ZXMsICRicmVha3BvaW50KTtcbiAgfVxuXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IChwcmlvciB0byB2Ni40KVxuICAmIH4gLiN7JGNvbnRlbnR9IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAtemYtZ2V0LWJwLXZhbCgkb2ZmY2FudmFzLXNpemVzLCAkYnJlYWtwb2ludCk7XG4gIH1cbn1cblxuLy8vIE92ZXJyaWRlcyB0aGUgb2ZmLWNhbnZhcyBzdHlsZXNcbkBtaXhpbiBpbi1jYW52YXMoKSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIGhlaWdodDogYXV0bztcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB0cmFuc2l0aW9uOiBub25lO1xuXG4gIC8vIEluY3JlYXNlIENTUyBzcGVjaWZpY2l0eVxuICAmLnBvc2l0aW9uLWxlZnQsXG4gICYucG9zaXRpb24tcmlnaHQsXG4gICYucG9zaXRpb24tdG9wLFxuICAmLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9mZi1jYW52YXMge1xuICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2ljcztcblxuICAvLyBPZmYtY2FudmFzIHdyYXBwZXJcbiAgLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy13cmFwcGVyO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXJcbiAgLm9mZi1jYW52YXMge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZTtcblxuICAgIC8vIEZvcmNlIHBvc2l0aW9uIGFic29sdXRlIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBiZWNhdXNlIGZpeGVkIGRvZXNuJ3Qgd29yayBmb3IgcHVzaCB0cmFuc2l0aW9uIHdpdGhpbiB0aGUgdHJhbnNmb3JtIHNjb3BlLlxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gJiB7XG4gICAgICAvLyBOT1RFOiBzaW5jZSBvdmVybGFwIHRyYW5zaXRpb24gaXMgY3VycmVudGx5IGZvcmNlZCBpZiBuZXN0ZWQsIHRoZXJlJ3Mgbm8gbmVlZCB0byBmb3JjZSBwb3NpdGlvbiBhYnNvbHV0ZSB1bnRpbCBuZXN0ZWQgcHVzaCB0cmFuc2l0aW9uIGlzIHN1cHBvcnRlZC5cbiAgICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lciB3aXRoIGFic29sdXRlIHBvc2l0aW9uXG4gIC5vZmYtY2FudmFzLWFic29sdXRlIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2UoJGZpeGVkOiBmYWxzZSk7XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIHBvc2l0aW9uIGNsYXNzZXNcbiAgLnBvc2l0aW9uLWxlZnQgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGxlZnQsICAgaG9yaXpvbnRhbCk7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0ICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHJpZ2h0LCAgaG9yaXpvbnRhbCk7IH1cbiAgLnBvc2l0aW9uLXRvcCAgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHRvcCwgICAgdmVydGljYWwpOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20gIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihib3R0b20sIHZlcnRpY2FsKTsgfVxuXG4gIC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtY29udGVudDtcbiAgfVxuXG4gIC8vIFJldmVhbCBvZmYtY2FudmFzIHBhbmVsIG9uIGxhcmdlciBzY3JlZW5zXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRuYW1lICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwobGVmdCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChyaWdodCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwodG9wLCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChib3R0b20sICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBNb3ZlIGluLWNhbnZhcyBmb3IgbGFyZ2VyIHNjcmVlbnNcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG5hbWUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBpbi1jYW52YXM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsb2F0XG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXMge1xuICAuZmxvYXQtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtY2VudGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICAuY2xlYXJmaXgge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgRmxleGJveCBVdGlsaXRpZXNcbi8vLy9cbi8vXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNvdW50IG9mIHNvdXJjZSBvcmRlcmluZ2Bcbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNiAhZGVmYXVsdDtcblxuLy8vIFF1aWNrbHkgZGlzYWJsZS9lbmFibGUgUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgVmFuaWxsYSBGbGV4IEhlbHBlcnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50czogdHJ1ZSAhZGVmYXVsdDtcblxuQG1peGluIGZsZXgtaGVscGVycyB7XG4gIC5mbGV4LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleDtcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG5cbiAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XG4gICAgLmZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY29udGFpbmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtYXV0byB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1ncm93IHtcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWRpci0jeyRkaXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LWNsYXNzZXMge1xuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCB1c2luZyBqdXN0aWZ5LWNvbnRlbnRcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluICQtemYtZmxleC1qdXN0aWZ5IHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gSG9yaXpvbnRhbCBhbGlnbm1lbnQgU3BlY2lmaWNhbGx5IGZvciBWZXJ0aWNhbCBNZW51XG4gIEBlYWNoICRoZGlyLCAkcHJvcCBpbiBtYXAtcmVtb3ZlKCQtemYtZmxleC1qdXN0aWZ5LCAnanVzdGlmeScsICdzcGFjZWQnKSB7XG4gICAgLmFsaWduLSN7JGhkaXJ9IHtcbiAgICAgICYudmVydGljYWwge1xuICAgICAgICAmLm1lbnUgPiBsaSA+IGEge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6ICRoZGlyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGFsaWdubWVudCB1c2luZyBhbGlnbi1pdGVtcyBhbmQgYWxpZ24tc2VsZlxuICBAZWFjaCAkdmRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWFsaWduIHtcbiAgICAuYWxpZ24tI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogJHZkaXIpO1xuICAgIH1cblxuICAgIC5hbGlnbi1zZWxmLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZigkeTogJHZkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENlbnRyYWwgYWxpZ25tZW50IG9mIGNvbnRlbnRcbiAgLmFsaWduLWNlbnRlci1taWRkbGUge1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6IGNlbnRlciwgJHk6IG1pZGRsZSk7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLy8gU291cmNlIG9yZGVyaW5nXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tb3JkZXItI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LW9yZGVyKCRpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWYW5pbGxhIEZsZXhib3ggSGVscGVyc1xuICBAaW5jbHVkZSBmbGV4LWhlbHBlcnM7XG59XG4iLCJAZnVuY3Rpb24gLXpmLWZsZXgtanVzdGlmeSgkdGV4dC1kaXJlY3Rpb24pe1xuICAkLXpmLWZsZXgtanVzdGlmeTogKFxuICAgICdsZWZ0JzogaWYoJHRleHQtZGlyZWN0aW9uID09IHJ0bCwgZmxleC1lbmQsIGZsZXgtc3RhcnQpLFxuICAgICdyaWdodCc6IGlmKCR0ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGZsZXgtc3RhcnQsIGZsZXgtZW5kKSxcbiAgICAnY2VudGVyJzogY2VudGVyLFxuICAgICdqdXN0aWZ5Jzogc3BhY2UtYmV0d2VlbixcbiAgICAnc3BhY2VkJzogc3BhY2UtYXJvdW5kLFxuICApO1xuXG4gIEByZXR1cm4gJC16Zi1mbGV4LWp1c3RpZnk7XG59XG5cblxuJC16Zi1mbGV4LWFsaWduOiAoXG4gICd0b3AnOiBmbGV4LXN0YXJ0LFxuICAnYm90dG9tJzogZmxleC1lbmQsXG4gICdtaWRkbGUnOiBjZW50ZXIsXG4gICdzdHJldGNoJzogc3RyZXRjaCxcbik7XG5cbiQtemYtZmxleC1kaXJlY3Rpb246IChcbiAgJ3Jvdyc6IHJvdyxcbiAgJ3Jvdy1yZXZlcnNlJzogcm93LXJldmVyc2UsXG4gICdjb2x1bW4nOiBjb2x1bW4sXG4gICdjb2x1bW4tcmV2ZXJzZSc6IGNvbHVtbi1yZXZlcnNlLFxuKTtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBieSBhZGRpbmcgYGRpc3BsYXk6IGZsZXhgIHRvIHRoZSBlbGVtZW50LlxuQG1peGluIGZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBpdGVtcyB3aXRoaW4gYSBmbGV4IGNvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHggW251bGxdIC0gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYGxlZnRgLCBgcmlnaHRgLCBgY2VudGVyYCwgYGp1c3RpZnlgLCBvciBgc3BhY2VkYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IGhvcml6b250YWwgYWxpZ25tZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduKCR4OiBudWxsLCAkeTogbnVsbCkge1xuICBAaWYgJHgge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtanVzdGlmeSwgJHgpIHtcbiAgICAgICR4OiBtYXAtZ2V0KCQtemYtZmxleC1qdXN0aWZ5LCAkeCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHh9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBob3Jpem9udGFsIGFsaWdubWVudC4gVXNlIGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnksIG9yIHNwYWNlZC4nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLXJvdy1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgdmVydGljYWwgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGp1c3RpZnktY29udGVudDogJHg7XG4gIGFsaWduLWl0ZW1zOiAkeTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgYWxpZ24gYSBzaW5nbGUgY29sdW1uIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR5OiBudWxsKSB7XG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLWNvbHVtbi1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGFsaWduLXNlbGY6ICR5O1xufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc291cmNlIG9yZGVyIG9mIGEgZmxleCBjaGlsZC4gQ2hpbGRyZW4gd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgWzBdIC0gT3JkZXIgbnVtYmVyIHRvIGFwcGx5LlxuQG1peGluIGZsZXgtb3JkZXIoJG9yZGVyOiAwKSB7XG4gIG9yZGVyOiAkb3JkZXI7XG59XG5cbi8vLyBDaGFuZ2UgZmxleC1kaXJlY3Rpb25cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW3Jvd10gLSBGbGV4IGRpcmVjdGlvbiB0byB1c2UuIENhbiBiZVxuLy8vICAgLSByb3cgKGRlZmF1bHQpOiBzYW1lIGFzIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIHJvdy1yZXZlcnNlOiBvcHBvc2l0ZSB0byB0ZXh0IGRpcmVjdGlvblxuLy8vICAgLSBjb2x1bW46IHNhbWUgYXMgcm93IGJ1dCB0b3AgdG8gYm90dG9tXG4vLy8gICAtIGNvbHVtbi1yZXZlcnNlOiBzYW1lIGFzIHJvdy1yZXZlcnNlIHRvcCB0byBib3R0b21cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkZGlyZWN0aW9uOiByb3cpIHtcbiAgZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yKCRzaXplKSB7XG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAvLyBNYXggdmFsdWUgaXMgMC4ycHggdW5kZXIgdGhlIG5leHQgYnJlYWtwb2ludCAoMC4wMiAvIDE2ID0gMC4wMDEyNSkuXG4gIC8vIFVzZSBhIHByZWNpc2lvbiB1bmRlciAxcHggdG8gc3VwcG9ydCBicm93c2VyIHpvb20sIGJ1dCBub3QgdG8gbG93IHRvIGF2b2lkIHJvdW5kaW5nLlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTEzMTNcbiAgJHNpemU6IC16Zi1icC10by1lbSgkc2l6ZSkgLSAuMDAxMjU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICR1cHBlci1ib3VuZC1zaXplOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxuICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSkgLSAuMDAxMjU7XG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxuICBAaWYgc3RyaXAtdW5pdCgkbG93ZXItYm91bmQtc2l6ZSkgPT0gMCB7XG4gICAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpO1xuICB9XG5cbiAgQGlmICR1cHBlci1ib3VuZC1zaXplID09IG51bGwge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHVwcGVyLWJvdW5kOiAtemYtYnAtdG8tZW0oJHVwcGVyLWJvdW5kLXNpemUpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdXBwZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yKCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXMge1xuICAvLyBCYXNpYyBoaWRpbmcgY2xhc3Nlc1xuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC5oaWRlLWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZm9yKCRzaXplKTtcbiAgICAgIH1cblxuICAgICAgLnNob3ctZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oaWRlLWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cblxuICAgIC5zaG93LWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNjcmVlbiByZWFkZXIgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIC8vIE5lZWQgYSBcImhpZGUtZm9yLXNyXCIgY2xhc3M/IEFkZCBhcmlhLWhpZGRlbj0ndHJ1ZScgdG8gdGhlIGVsZW1lbnRcbiAgLnNob3ctZm9yLXNyLFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cblxuICAvLyBPbmx5IGRpc3BsYXkgdGhlIGVsZW1lbnQgd2hlbiBpdCdzIGZvY3VzZWRcbiAgLnNob3ctb24tZm9jdXMge1xuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xuICAgIH1cbiAgfVxuXG4gIC8vIExhbmRzY2FwZSBhbmQgcG9ydHJhaXQgdmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIjaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgYm9yZGVyLWJvdHRvbTogcmVtLWNhbGMoMikgc29saWQgJGJsYWNrO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtLWNhbGMoNSkgc29saWQgJGJsYWNrO1xuICAgICAgICAvLyBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgdG9wOiAwO1xuICAgIH1cbiAgICAuZ3JpZC15IHtcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg4MCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24ocmlnaHQpO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDE2MCk7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMjApO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbihqdXN0aWZ5KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAubG9nbyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogcmVtLWNhbGMoLTExcHgpO1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDIwMCk7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgLy8gd2lkdGg6IHJlbS1jYWxjKDI0MCk7XG4gICAgICAgICAgICB0b3A6IHJlbS1jYWxjKC04cHgpO1xuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMzAwKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDUyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICB0b3A6IHJlbS1jYWxjKC0xNnB4KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAubWFpbi1tZW51IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbn1cbiIsIiNmb290ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIC5mb290ZXItbWVudSB7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaDYge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRpc3BsYXk6IC1tcy1ncmlkO1xyXG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgICAgLW1zLWdyaWQtY29sdW1uczogMWZyIGF1dG87XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgYXV0bztcclxuICAgICAgICAtbXMtZ3JpZC1yb3dzOiByZXBlYXQoNCwgYXV0byk7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoNCwgYXV0byk7XHJcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMzApICRncmlkLWNvbnRhaW5lci1pbm5lci1zbWFsbCByZW0tY2FsYygzMClcclxuICAgICAgICAgICAgJGdyaWQtY29udGFpbmVyLWlubmVyLXNtYWxsO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhtZWRpdW0pIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkZ3JpZC1jb250YWluZXItaW5uZXItbGFyZ2U7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRncmlkLWNvbnRhaW5lci1pbm5lci1sYXJnZTtcclxuICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uczogMzglIDIwJSBhdXRvO1xyXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM4JSAyMCUgYXV0bztcclxuICAgICAgICAgICAgLW1zLWdyaWQtcm93czogcmVwZWF0KDMsIGF1dG8pO1xyXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCgzLCBhdXRvKTtcclxuICAgICAgICAgICAgY29sdW1uLWdhcDogcmVtLWNhbGMoMjUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xyXG4gICAgICAgICAgICAtbXMtZ3JpZC1jb2x1bW5zOiAzOCUgMTIwcHggYXV0byA2MHB4IGF1dG8gYXV0bztcclxuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzOCUgMTIwcHggYXV0byA2MHB4IGF1dG8gYXV0bztcclxuICAgICAgICAgICAgY29sdW1uLWdhcDogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaHIge1xyXG4gICAgICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDgpIDA7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRpbnB1dC1ib3JkZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5tZW51IHtcclxuICAgICAgICAgICAgJjpub3QoLnNpbXBsZSkge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xyXG4gICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDA7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAgICAgICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5hbGlnbi1qdXN0aWZ5IHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhZGRyZXNzIHtcclxuICAgICAgICAgICAgZm9udC1zdHlsZTogaW5oZXJpdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmxvY2F0aW9ucyB7XHJcbiAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbjogMTtcclxuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XHJcbiAgICAgICAgICAgIC1tcy1ncmlkLXJvdzogMSAvIHNwYW4gMztcclxuICAgICAgICAgICAgZ3JpZC1yb3c6IDEgLyBzcGFuIDM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zZXJ2aWNlIHtcclxuICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAxO1xyXG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bWVkaXVtKSB7XHJcbiAgICAgICAgICAgICAgICAtbXMtZ3JpZC1jb2x1bW46IDI7XHJcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAzO1xyXG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmNvbnRhY3Qge1xyXG4gICAgICAgICAgICAtbXMtZ3JpZC1jb2x1bW46IDE7XHJcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhtZWRpdW0pIHtcclxuICAgICAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbjogMztcclxuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XHJcbiAgICAgICAgICAgICAgICAtbXMtZ3JpZC1jb2x1bW46IDU7XHJcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogNTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuc29jaWFsLW1lZGlhIHtcclxuICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAxO1xyXG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcclxuICAgICAgICAgICAgYWxpZ24tc2VsZjogZW5kO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhtZWRpdW0pIHtcclxuICAgICAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbjogMztcclxuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XHJcbiAgICAgICAgICAgICAgICAtbXMtZ3JpZC1yb3c6IDM7XHJcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogMztcclxuICAgICAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbjogNTtcclxuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiA1O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xyXG4gICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAgICAgICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmVtYmxlbSB7XHJcbiAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbjogMjtcclxuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeG1lZGl1bSkge1xyXG4gICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAzO1xyXG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDM7XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LXNlbGY6IHJpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XHJcbiAgICAgICAgICAgICAgICAtbXMtZ3JpZC1yb3c6IDM7XHJcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogMztcclxuICAgICAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbjogNjtcclxuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiA2O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmNvcHlyaWdodCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDUwKTtcclxuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcclxuICAgIH1cclxufVxyXG4iLCIuYnJlYWRjcnVtYnMge1xuICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDI0KTtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg0MCk7XG4gICAgbGkge1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxpOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC4ycmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLnBhZ2UtaGVybyB7XHJcbiAgICAvLyBtYXJnaW46IHJlbS1jYWxjKDMwKSAwO1xyXG4gICAgJi5oZXJvLXJpZ2h0IHtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgfVxyXG4gICAgLmhlcm8td3JhcCB7XHJcbiAgICAgICAgZGlzcGxheTogLW1zLWdyaWQ7XHJcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICBtYXgtd2lkdGg6IDc1cmVtO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMzApO1xyXG4gICAgICAgIC1tcy1ncmlkLWNvbHVtbnM6XHJcbiAgICAgICAgICAgIG1hcC1nZXQoJGdyaWQtY29udGFpbmVyLXBhZGRpbmcsIHNtYWxsKSAvIDJcclxuICAgICAgICAgICAgMWZyXHJcbiAgICAgICAgICAgIG1hcC1nZXQoJGdyaWQtY29udGFpbmVyLXBhZGRpbmcsIHNtYWxsKSAvIDI7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOlxyXG4gICAgICAgICAgICBtYXAtZ2V0KCRncmlkLWNvbnRhaW5lci1wYWRkaW5nLCBzbWFsbCkgLyAyXHJcbiAgICAgICAgICAgIDFmclxyXG4gICAgICAgICAgICBtYXAtZ2V0KCRncmlkLWNvbnRhaW5lci1wYWRkaW5nLCBzbWFsbCkgLyAyO1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbnM6XHJcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRncmlkLWNvbnRhaW5lci1wYWRkaW5nLCBtZWRpdW0pIC8gMlxyXG4gICAgICAgICAgICAgICAgMWZyXHJcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRncmlkLWNvbnRhaW5lci1wYWRkaW5nLCBtZWRpdW0pIC8gMjtcclxuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOlxyXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkZ3JpZC1jb250YWluZXItcGFkZGluZywgbWVkaXVtKSAvIDJcclxuICAgICAgICAgICAgICAgIDFmclxyXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkZ3JpZC1jb250YWluZXItcGFkZGluZywgbWVkaXVtKSAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uczpcclxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJGdyaWQtY29udGFpbmVyLXBhZGRpbmcsIGxhcmdlKSAvIDJcclxuICAgICAgICAgICAgICAgIG1pbm1heCgwLCAyZnIpXHJcbiAgICAgICAgICAgICAgICAxZnJcclxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJGdyaWQtY29udGFpbmVyLXBhZGRpbmcsIGxhcmdlKSAvIDI7XHJcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczpcclxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJGdyaWQtY29udGFpbmVyLXBhZGRpbmcsIGxhcmdlKSAvIDJcclxuICAgICAgICAgICAgICAgIG1pbm1heCgwLCAyZnIpXHJcbiAgICAgICAgICAgICAgICAxZnJcclxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJGdyaWQtY29udGFpbmVyLXBhZGRpbmcsIGxhcmdlKSAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbjogMiAvIHNwYW4gMjtcclxuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDI7XHJcbiAgICAgICAgICAgIC1tcy1ncmlkLXJvdzogMTtcclxuICAgICAgICAgICAgZ3JpZC1yb3c6IDE7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3A6IHJlbS1jYWxjKDMwKSBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiByZW0tY2FsYygxNSkgc29saWQgJHByaW1hcnktY29sb3I7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAzO1xyXG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMztcclxuICAgICAgICAgICAgLW1zLWdyaWQtcm93OiAxIC8gc3BhbiAyO1xyXG4gICAgICAgICAgICBncmlkLXJvdzogMSAvIHNwYW4gMjtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmNvbnRlbnQtd3JhcCB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgei1pbmRleDogMTtcclxuICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAyO1xyXG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMjtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAyO1xyXG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XHJcbiAgICAgICAgICAgICAgICAtbXMtZ3JpZC1yb3c6IDE7XHJcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuaGVyby1pbWctd3JhcCB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAxIC8gc3BhbiAyO1xyXG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMjtcclxuICAgICAgICAgICAgLW1zLWdyaWQtcm93OiAyO1xyXG4gICAgICAgICAgICBncmlkLXJvdzogMjtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bWVkaXVtIGRvd24pIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDUlO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAyO1xyXG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XHJcbiAgICAgICAgICAgICAgICAtbXMtZ3JpZC1yb3c6IDE7XHJcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcclxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMS44NzVyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDkwdnc7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAtMS44NzVyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMTAwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IC0xO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmNjMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnBhZ2UtaGVyby1pbWFnZSB7XHJcbiAgICAgICAgICAgICYuc2hvdy1mb3ItbGFyZ2UgaW1nIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMjc1KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuY29udGVudC13cmFwIHtcclxuICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAyO1xyXG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMjtcclxuICAgICAgICAgICAgei1pbmRleDogMTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAyO1xyXG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XHJcbiAgICAgICAgICAgICAgICAtbXMtZ3JpZC1yb3c6IDE7XHJcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBhc2lkZSB7XHJcbiAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbjogMjtcclxuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XHJcbiAgICAgICAgICAgIC1tcy1ncmlkLXJvdzogMztcclxuICAgICAgICAgICAgZ3JpZC1yb3c6IDM7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuICAgICAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbjogMztcclxuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAzO1xyXG4gICAgICAgICAgICAgICAgLW1zLWdyaWQtcm93OiAxO1xyXG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDE7XHJcbiAgICAgICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcclxuICAgICAgICAgICAgICAgICAgICAmLmZsb2F0LXJpZ2h0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJi5mbG9hdC1sZWZ0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID4gLmdyaWQteCB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMjUpO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYygyMCk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMjApO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYygzMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbWluLWhlaWdodDogcmVtLWNhbGMoMzIwKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5jZWxsIHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMzApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1MHZ3O1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmdyaWQtY29udGVudCB7XHJcbiAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAyO1xyXG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xyXG4gICAgICAgIC1tcy1ncmlkLXJvdzogNTtcclxuICAgICAgICBncmlkLXJvdzogNTtcclxuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg0MCk7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgICAgICAtbXMtZ3JpZC1yb3c6IDQ7XHJcbiAgICAgICAgICAgIGdyaWQtcm93OiA0O1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYyg3NSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmxvY2F0aW9uLXNsaWRlci13cmFwIHtcclxuICAgICAgICAtbXMtZ3JpZC1jb2x1bW46IDI7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDI7XHJcbiAgICAgICAgLW1zLWdyaWQtcm93OiA0O1xyXG4gICAgICAgIGdyaWQtcm93OiA0O1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAzO1xyXG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5wYWdlLWhlcm8tc2xpZGVyIHtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIHotaW5kZXg6IDM7XHJcbn1cclxuLnBhZ2UtaGVyby5oZXJvLXJpZ2h0IHtcclxuICAgIC5zaWRlYmFyLWV2ZW50cyB7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMzApO1xyXG4gICAgICAgIHRpbWUuaDQge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBoNDpmaXJzdC1vZi10eXBlIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaDQ6bGFzdC1vZi10eXBlIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5maWxsZXIge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bWVkaXVtIGRvd24pIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgICAgICAtbXMtZ3JpZC1jb2x1bW46IDE7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XHJcbiAgICAgICAgLW1zLWdyaWQtcm93OiAyO1xyXG4gICAgICAgIGdyaWQtcm93OiAyO1xyXG4gICAgICAgIHotaW5kZXg6IDI7XHJcbiAgICB9XHJcbn1cclxuIiwic2VjdGlvbi5oZXJvLWltYWdlIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGltZyB7XHJcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg0MTApO1xyXG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDM3MCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg2ODUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4ucGFnZS1oZXJvLnNpZGViYXItc2ltcGxlIHtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgIG1hcmdpbi10b3A6IC0xMTBweDtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2Upe1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC0yMTBweDtcclxuICAgICAgICAuY29udGVudC13cmFwe1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMTcwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuY29udGVudC13cmFwOmJlZm9yZSxcclxuICAgIC5oZXJvLXdyYXA6YWZ0ZXIsXHJcbiAgICAuaGVyby13cmFwOmJlZm9yZSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICAgIGFzaWRlIHtcclxuICAgICAgICAtbXMtZ3JpZC1yb3c6IDE7XHJcbiAgICAgICAgZ3JpZC1yb3c6IDE7XHJcbiAgICAgICAgei1pbmRleDogMTtcclxuICAgIH1cclxufVxyXG4iLCIucGFnZS1oZXJvIC5oZXJvLXdyYXAuaGVyby1sZWZ0IHtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgICAtbXMtZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDI7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDI7XHJcbiAgICB9XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICAtbXMtZ3JpZC1jb2x1bW46IDE7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XHJcbiAgICAgICAgLW1zLWdyaWQtY29sdW1uczpcclxuICAgICAgICAgICAgbWFwLWdldCgkZ3JpZC1jb250YWluZXItcGFkZGluZywgbGFyZ2UpIC8gMlxyXG4gICAgICAgICAgICAxZnJcclxuICAgICAgICAgICAgMmZyXHJcbiAgICAgICAgICAgIG1hcC1nZXQoJGdyaWQtY29udGFpbmVyLXBhZGRpbmcsIGxhcmdlKSAvIDI7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOlxyXG4gICAgICAgICAgICBtYXAtZ2V0KCRncmlkLWNvbnRhaW5lci1wYWRkaW5nLCBsYXJnZSkgLyAyXHJcbiAgICAgICAgICAgIDFmclxyXG4gICAgICAgICAgICAyZnJcclxuICAgICAgICAgICAgbWFwLWdldCgkZ3JpZC1jb250YWluZXItcGFkZGluZywgbGFyZ2UpIC8gMjtcclxuICAgIH1cclxuICAgIC5oZXJvLWltZy13cmFwIHtcclxuICAgICAgICAtbXMtZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDM7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDM7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bWVkaXVtIGRvd24pIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XHJcbiAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbjogMztcclxuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDM7XHJcbiAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuY29udGVudC13cmFwIHtcclxuICAgICAgICAtbXMtZ3JpZC1jb2x1bW46IDI7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW46IDI7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgICAgICAtbXMtZ3JpZC1jb2x1bW46IDM7XHJcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAzO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZ3JpZC1jb250ZW50IHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYyg1MCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmNlbGwge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgYXNpZGUuYXNpZGUtbGVmdCB7XHJcbiAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAyO1xyXG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICB3aWR0aDogNTB2dztcclxuICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICAvLyBib3gtc2hhZG93IG5lZWRlZCB0byBjb3JyZWN0IHN1YnBpeGVsIHJlbmRlcmluZyBmYWlsIGluIGNocm9tZS4uLlxyXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMXB4ICRwcmltYXJ5LWNvbG9yO1xyXG4gICAgICAgICAgICByaWdodDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XHJcbiAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEuODc1cmVtO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDkwdnc7XHJcbiAgICAgICAgICAgICAgICB0b3A6IHJlbS1jYWxjKC0zMHB4KTtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAtMTY2JTtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIHotaW5kZXg6IC0xO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmY2MwMDtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgID4gLmdyaWQteCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKXtcclxuICAgICAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIHotaW5kZXg6IC0xO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA1MHZ3O1xyXG4gICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgLy8gYm94LXNoYWRvdyBuZWVkZWQgdG8gY29ycmVjdCBzdWJwaXhlbCByZW5kZXJpbmcgZmFpbCBpbiBjaHJvbWUuLi5cclxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxcHggJHByaW1hcnktY29sb3I7XHJcbiAgICAgICAgICAgICAgICByaWdodDogMTAwJTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5jZWxsIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICYuc2hvdy1mb3ItbGFyZ2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYyg0MCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDQwKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuYmFjay1saW5rIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDIwKTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5maWx0ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgIC5zZWxlY3QuY3VycmVudCB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsaSBhIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS44NzVyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDEuNTYyNXJlbTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAubWVudS52ZXJ0aWNhbCB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMzQwKTtcclxuICAgICAgICAgICAgbGkuYWN0aXZlID4gYSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxpIGEge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTUpIDA7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2JhOTIwMztcclxuICAgICAgICAgICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIkc2V2ZW50eTogcmVtLWNhbGMoNzApO1xuXG4uc2VhcmNoLXBsYWNlaG9sZGVyIHtcbiAgICB3aWR0aDogcmVtLWNhbGMoNDUpO1xuICAgIGhlaWdodDogcmVtLWNhbGMoNDUpO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgd2lkdGg6ICRzZXZlbnR5O1xuICAgICAgICBoZWlnaHQ6ICRzZXZlbnR5O1xuICAgIH1cbn1cbi5zdGlja3ktc2VhcmNoIHtcbiAgICAuc2VhcmNoLXdyYXAge1xuICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICB0b3A6IHJlbS1jYWxjKC05MSk7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAyNTA7XG4gICAgICAgIC5zZWFyY2ggLnNlYXJjaC10cmlnZ2VyIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDE1MDtcbiAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYyg0NSk7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDQ1KTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoICRkdXJhdGlvbiAkZWFzaW5nO1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzApO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGZvbnQtc2l6ZSAkZHVyYXRpb24gJGVhc2luZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYub3BlbjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAuaWNvbi1jbG9zZTpiZWZvcmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmFmdGVye1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5zZWFyY2gtYm94IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuLnNlYXJjaC13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLnNlYXJjaCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6ICRncmlkLWNvbnRhaW5lci1pbm5lci1zbWFsbDtcbiAgICAgICAgdG9wOiByZW0tY2FsYygzNSk7XG4gICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICByaWdodDogJGdyaWQtY29udGFpbmVyLWlubmVyLW1lZGl1bTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICByaWdodDogJGdyaWQtY29udGFpbmVyLWlubmVyLWxhcmdlO1xuICAgICAgICAgICAgdG9wOiByZW0tY2FsYyg5MCk7XG4gICAgICAgIH1cbiAgICAgICAgLnNlYXJjaC10cmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYyg0NSk7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDQ1KTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAkZHVyYXRpb24gJGVhc2luZztcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoLTIpO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJGR1cmF0aW9uICRlYXNpbmc7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygtNSk7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogcmVtLWNhbGMoNSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5vcGVuOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkZHVyYXRpb24gJGVhc2luZztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkc2V2ZW50eTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRzZXZlbnR5O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCBbY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlO1xuICAgICAgICAgICAgICAgIEBleHRlbmQgLmljb24tc2VhcmNoOmJlZm9yZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzApO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDM3KTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogZm9udC1zaXplICRkdXJhdGlvbiAkZWFzaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNlYXJjaC1ib3gge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoMTAwJSArIDJweCk7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSA1N3B4KTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoI3skZ2xvYmFsLXdpZHRofSAtIDMwcHgpO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICBwYWRkaW5nOiByZW0tY2FsYygxNSAxMCA1KTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDI1IDI1IDEwKTtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSAxMTdweCk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgdG9wOiBjYWxjKDEwMCUgKyA1cHgpO1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygzNSA1MCAyMyk7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gNDdweCk7XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIzKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDQ1KTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDQ1KTtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMCAxMCk7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygwIDI1KTtcbiAgICAgICAgICAgIGhlaWdodDogJHNldmVudHk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNldmVudHk7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI1KTtcblxuICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjNzU3NTc1O1xuICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDM1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pbnB1dC1ncm91cCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBidXR0b24ge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI1KTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB3aWR0aDogcmVtLWNhbGMoNDUpO1xuICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDQ1KTtcbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZGFyay1ncmF5O1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYyg0NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDM1KTtcbiAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYyg3MCk7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDcwKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYyg3MCk7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDcwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGEuc2VhcmNoLWhlbHAtbGluayB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEuaWNvbi1lIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgICAgICAgcGFkZGluZy10b3A6IDE1cHg7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMTApO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoNSk7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYyg5MCk7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLm5ld3Mge1xyXG4gICAgLmNvbnRlbnQge1xyXG4gICAgICAgIC8vIE5ld3MgbW9kdWxlXHJcbiAgICAgICAgdGltZSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxOCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5uZXdzLXdyYXAge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDYwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAubWVkaWEtb2JqZWN0IHtcclxuICAgICAgICAgICAgYm94LXNoYWRvdzogJGJveC1zaGFkb3c7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcclxuICAgICAgICAgICAgLnRodW1ibmFpbCB7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDE1Nik7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGR1cmF0aW9uICRlYXNpbmc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogXCJsYWJ3LWljb25cIjtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZTkxNVwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDFyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6aG92ZXIgLnRodW1ibmFpbCxcclxuICAgICAgICAgICAgJjpmb2N1cyAudGh1bWJuYWlsIHtcclxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGR1cmF0aW9uICRlYXNpbmc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJGR1cmF0aW9uICRlYXNpbmc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuc3RhY2stZm9yLWxhcmdlIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICAgICAgLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1iYXNpczogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLnN0YWNrLWZvci14bWVkaXVtIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeG1lZGl1bSBkb3duKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICAgICAgICAgIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bWVkaXVtIGRvd24pIHtcclxuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC50aHVtYm5haWwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgID4gYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC50ZXh0IHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGg0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMXJlbSByZW0tY2FsYygyOCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bWVkaXVtIGRvd24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gVG9wIG5ld3MgZW50cnkgd2l0aCBpbWFnZSBpbiBhbGwgc2l6ZXNcclxuICAgICAgICAgICAgJi50b3AtbmV3cyB7XHJcbiAgICAgICAgICAgICAgICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xyXG4gICAgICAgICAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRodW1ibmFpbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygyNTApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEV2ZW50IG1vZHVsZVxyXG4gICAgICAgIC5ldmVudHMge1xyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMTYpO1xyXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRncmF5O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmF5O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDE1KTtcclxuICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IC1tcy1ncmlkO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uczogNHJlbSBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNHJlbSBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbnM6IDVyZW0gYXV0bztcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1cmVtIGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uczogNnJlbSBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDZyZW0gYXV0bztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLW1zLWdyaWQtcm93czogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1pdGVtczogc3RhcnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgdGltZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAtbXMtZ3JpZC1jb2x1bW4tc3RhcnQ6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI1KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLndyYXAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAtbXMtZ3JpZC1jb2x1bW46IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbi1zdGFydDogMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC5sYWJlbC5zbWFsbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmxpbmstbW9yZSBhIHtcclxuICAgICAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIudGlsZS1ncmlkIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cHM6Ly9kdW1teWltYWdlLmNvbS8xNDAweDQ1MC84MTgxODEvKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDMwKSAwO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDMwKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoODMpIDA7XG4gICAgfVxuICAgIC5lbnRyeSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgICAgICBtYXgtaGVpZ2h0OiByZW0tY2FsYygyNDcpO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMik7XG4gICAgICAgICAgICAmOm50aC1sYXN0LWNoaWxkKC1uICsgMikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcbiAgICAgICAgICAgICY6bnRoLWxhc3QtY2hpbGQoLW4gKyA0KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRkdXJhdGlvbiAkZWFzaW5nO1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygyMCk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzICRlYXNpbmc7XG4gICAgICAgICAgICBoNiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogNDAlO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg0MCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwibGFidy1pY29uXCI7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxlOTE0XCI7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMy41cmVtO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5jYXJkLWxpbmstbGlzdCB7XHJcbiAgICAuY2VsbCB7XHJcbiAgICAgICAgLy8gQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgICAvLyAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgICAgICAvLyB9XHJcbiAgICB9XHJcbiAgICAuY2FyZCB7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgIGhlaWdodDogODUlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmNhcmQtc2VjdGlvbiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDI0LjUpIHJlbS1jYWxjKDIwKTtcclxuICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMyAwKTtcclxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYygxMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiJHdoaXRlLW9wYWNpdHk6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcblxuLmFjY29yZGlvbi1zcGVjaWFsIHtcbiAgICAuYWNjb3JkaW9uLWhvcml6b250YWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDQ2MCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgICAgLmFjYy10YWJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWdyYXk7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR3aGl0ZSAxcHggc29saWQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA2MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA3MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgLnRhYi1saW5rcyB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgJGVhc2luZyAkZHVyYXRpb24sIGNvbG9yICRlYXNpbmcgJGR1cmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOm5vdCguYWN0aXZlKSAucGFyYWdyYXBoe1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC50YWItbGlua3Mge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjtcbiAgICAgICAgICAgICAgICAtbXMtd3JpdGluZy1tb2RlOiB0Yi1scjtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDcwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA3MHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kICRlYXNpbmcgJGR1cmF0aW9uLCBjb2xvciAkZWFzaW5nICRkdXJhdGlvbjtcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAkZWFzaW5nICRkdXJhdGlvbiwgY29sb3IgJGVhc2luZyAkZHVyYXRpb247XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAucGFyYWdyYXBoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYyg3MCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jb250ZW50LWNhcmQge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDE5MCkgMCAwO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2NSU7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogcmVtLWNhbGMoMzUwKTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0tY2FsYyg1NTApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZS1vcGFjaXR5O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygzNCkgcmVtLWNhbGMoMjgpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMzQpIHJlbS1jYWxjKDM4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGg2IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDM0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBkaXYuY2VsbC5saW5rLW1vcmUge1xuICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgIH1cbn1cbi5hY2NvcmRpb24tdmVydGljYWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC5hY2NvcmRpb24taXRlbSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWdyYXk7XG4gICAgICAgIC5hY2NvcmRpb24tdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTUpIHJlbS1jYWxjKDIwKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRhY2NvcmRpb24tdGl0bGUtYm9yZGVyO1xuICAgICAgICB9XG4gICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgIC5hY2NvcmRpb24tdGl0bGUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5wYXJhZ3JhcGgge1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAucGFyYWdyYXBoIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZS1vcGFjaXR5O1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiA0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL2Fzc2V0cy9pbWcvdmVya2Voci5qcGcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDQwMCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBVc2VkIGJ5IGJvdGggdmFyaWFudHNcbi5hY2NvcmRpb24tc3BlY2lhbCB7XG4gICAgLmFjYy10YWJzLFxuICAgIC5hY2NvcmRpb24taXRlbSB7XG4gICAgICAgIGg0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICAmLmFjdGl2ZSxcbiAgICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgIGg0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHAge1xuICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDU7XG4gICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2Ugb25seSkge1xuICAgICAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogNDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5oZXJvLXNsaWRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLnNtYWxsLWFsaWduLWNlbnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuICAgIGltZyB7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cbiAgICAubWFpbi1zbGlkZXIge1xuICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDQxMCk7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDM3MCk7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg2ODUpO1xuICAgICAgICB9XG4gICAgICAgIC5zbGljay1saXN0LFxuICAgICAgICAuc2xpY2stdHJhY2ssXG4gICAgICAgIC5zbGljay1zbGlkZSA+IGRpdixcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICAuaXRlbSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG9iamVjdC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi5oZXJvLXNsaWRlciAubWFpbi1zbGlkZXIsXG4ubmF2LXNsaWRlciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRkdXJhdGlvbiAkZWFzaW5nO1xuICAgICYuc2xpY2staW5pdGlhbGl6ZWQge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRkdXJhdGlvbiAkZWFzaW5nO1xuICAgIH1cbn1cbi5oZXJvLXNsaWRlciAubWFpbi1zbGlkZXIsXG4uaGVyby1pbWFnZSB7XG4gICAgLndyYXAge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygxMDApOyAvLyBoZWlnaHQgb2Ygb3BlbiBzZWFyY2ggYmFyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygxMDApO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhtZWRpdW0pIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygxMzApOyAvLyBoZWlnaHQgb2Ygb3BlbiBzZWFyY2ggYmFyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygxNzApOyAvLyBoZWlnaHQgb2Ygb3BlbiBzZWFyY2ggYmFyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoNDgpO1xuICAgICAgICB9XG4gICAgICAgIC5ncmlkLWNvbnRhaW5lcixcbiAgICAgICAgLmdyaWQteCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmhlcm8taGVhZGluZyB7XG4gICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBoMS5oMCB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDM1KTtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMTApOyAvLyBzYW1lIGFzIGJveHNoYWRvdyBhbiA8c3Bhbj5cbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMzBweDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDUwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNwYW57XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogYmxhY2s7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAtMTBweCAwIDAgMCBibGFjaywgMTBweCAwIDAgMCBibGFjaztcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGV4dGVuZCBbY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlO1xuICAgICAgICAgICAgICAgICAgICBAZXh0ZW5kIC5pY29uLWFzdGVyaXNrOmJlZm9yZTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiByZW0tY2FsYygtNXB4KTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYyg4KTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyNSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IHJlbS1jYWxjKC0xMik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygxMCk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTApIHJlbS1jYWxjKDIwKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMzApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi5zbGlkZXItbmF2aWdhdGlvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvdHRvbTogMC41cmVtO1xufVxuLnNsaWNrLWFycm93IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogMS42NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGNvbG9yOiAkbWVkaXVtLWdyYXk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmF5O1xuICAgIH1cbiAgICAmLnNsaWNrLW5leHQge1xuICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICByaWdodDogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLnNsaWNrLXByZXYge1xuICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgIGxlZnQ6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG4uaGVyby1zbGlkZXIgLm5hdi1zbGlkZXIge1xuICAgIG1hcmdpbi10b3A6IC0ycmVtO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeG1lZGl1bSkge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygtMjQwKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygtMzIwKTtcbiAgICB9XG59XG4ubmF2LXNsaWRlci13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLm5hdi1zbGlkZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xuICAgICAgICB3aWR0aDogcmVtLWNhbGMoMzEwKTtcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygzMjApO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMzgwKTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoNDEwKTtcbiAgICAgICAgfVxuICAgICAgICAuaXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygyMCkgMCByZW0tY2FsYygzMCkgcmVtLWNhbGMoMjApO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IC1tcy1ncmlkO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uczogMS43NWZyIDFmciAxcmVtO1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS43NWZyIDFmciAxcmVtO1xuICAgICAgICAgICAgICAgIC1tcy1ncmlkLXJvd3M6IDEzNXB4IDI3MHB4IGF1dG87XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxMzVweCAyNzBweCBhdXRvO1xuICAgICAgICAgICAgICAgIC1tcy1ncmlkLXJvd3M6IDEzNXB4IDE3MHB4IGF1dG87XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxMzVweCAxNzBweCBhdXRvO1xuICAgICAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbnM6IDAuOGZyIDFmciAxcmVtO1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMC44ZnIgMWZyIDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuaXRlbS10b3Age1xuICAgICAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbi1zcGFuOiAyO1xuICAgICAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbjogMSAvIHNwYW4gMztcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMztcbiAgICAgICAgICAgICAgICAtbXMtZ3JpZC1yb3c6IDE7XG4gICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubG9jYXRpb24taW1nIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoOTgpO1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoLTEpOyAvLyBwcmV2ZW50IGdhcCBiZWNhdXNlIG9mIGNhbGN1bGF0aW9uIGVycm9yXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDEwNSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygxMjApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLml0ZW0tYm90dG9tIHtcbiAgICAgICAgICAgICAgICAtbXMtZ3JpZC1yb3c6IDI7XG4gICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAyO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeG1lZGl1bSBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDE4NSk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bWVkaXVtIGRvd24pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjRyZW0gMXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIC8vIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbjogMiAvIDI7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyAyO1xuICAgICAgICAgICAgICAgIC1tcy1ncmlkLXJvdzogMyAvIDM7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDMgLyAzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5sb2NhdGlvbi1tYXAge1xuICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDEzMCk7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDE2MCk7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICAgICAgICAgICAgLW1zLWdyaWQtcm93OiAyO1xuICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAxO1xuICAgICAgICB9XG4gICAgICAgIGFkZHJlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5zbGlkZXItbmF2aWdhdGlvbiB7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICB9XG59XG4uc2xpY2stZG90cyB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGluZS1oZWlnaHQ6IDIuNTtcbiAgICBsaSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5YjlmYTE7XG4gICAgICAgIG1hcmdpbjogMCByZW0tY2FsYygyKTtcblxuICAgICAgICAmLnNsaWNrLWFjdGl2ZSxcbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmF5O1xuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMyk7XG4gICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMjApO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyogU2xpZGVyICovXHJcblxyXG4uc2xpY2stc2xpZGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcclxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAvLyAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTsgLy9kaXNibGVkIHRvIGFsbG93IHBpbmNoLXpvb20gb24gdG91Y2ggZGV2aWNlc1xyXG4gICAgLy8gdG91Y2gtYWN0aW9uOiBwYW4teTsgLy9kaXNibGVkIHRvIGFsbG93IHBpbmNoLXpvb20gb24gdG91Y2ggZGV2aWNlc1xyXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcclxufVxyXG4uc2xpY2stbGlzdCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgICY6Zm9jdXMge1xyXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgJi5kcmFnZ2luZyB7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIGN1cnNvcjogaGFuZDtcclxuICAgIH1cclxufVxyXG4uc2xpY2stc2xpZGVyIC5zbGljay10cmFjayxcclxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG59XHJcblxyXG4uc2xpY2stdHJhY2sge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcblxyXG4gICAgJjpiZWZvcmUsXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgfVxyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgfVxyXG5cclxuICAgIC5zbGljay1sb2FkaW5nICYge1xyXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIH1cclxufVxyXG4uc2xpY2stc2xpZGUge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBtaW4taGVpZ2h0OiAxcHg7XHJcbiAgICBbZGlyPVwicnRsXCJdICYge1xyXG4gICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgIH1cclxuICAgIGltZyB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgICAmLnNsaWNrLWxvYWRpbmcgaW1nIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgJi5kcmFnZ2luZyBpbWcge1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC5zbGljay1pbml0aWFsaXplZCAmIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbiAgICAuc2xpY2stbG9hZGluZyAmIHtcclxuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICB9XHJcblxyXG4gICAgLnNsaWNrLXZlcnRpY2FsICYge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgIH1cclxufVxyXG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuIiwiLnJlZGlyZWN0IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgei1pbmRleDogMjAwO1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHRvcDogMDtcbiAgICAuZ3JpZC14e1xuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIH1cbiAgICAuc21hbGwtMTphZnRlciB7XG4gICAgICAgIEBleHRlbmQgW2NsYXNzXj1cImljb24tXCJdOmJlZm9yZTtcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1hcnJvdy1yaWdodC1sb25nOmJlZm9yZTtcbiAgICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiA1MHB4O1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSl7XG4gICAgICAgICAgICBmb250LXNpemU6IDdyZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG4gICAgfVxufSIsIi5pbmZvLWFjY29yZGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuICAgIH1cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5hY2NvcmRpb24taXRlbSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxNCkgNHJlbSByZW0tY2FsYygxNSkgMXJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygyMCkgNnJlbSByZW0tY2FsYygyMCkgMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAZXh0ZW5kIFtjbGFzc149XCJpY29uLVwiXTpiZWZvcmU7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAuaWNvbi1wbHVzOmJlZm9yZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYyg1MCk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDUwKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkYXJrLWdyYXk7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI1KTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDcwKTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDcwKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGg2IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMTAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgLy8gbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDUwKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGxpbmUtaGVpZ2h0OiByZW0tY2FsYyg3MCk7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygyMCk7XG4gICAgICAgICAgICA+IC5ncmlkLXgge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygyMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnZpc2libGUtY29udGVudC5wcmVzaWRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IC1tcy1ncmlkO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uczogMWZyO1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICAgICAgICAgIC1tcy1ncmlkLXJvd3M6IHJlcGVhdCg1LCBhdXRvKTtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCg1LCBhdXRvKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjE4NzVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDMwKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgYXV0byk7XG4gICAgICAgICAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbnM6IDFmciAxZnIgMmZyO1xuICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMmZyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuY29udGFjdCB7XG4gICAgICAgICAgICAgICAgICAgICYudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICYuam9iLFxuICAgICAgICAgICAgICAgICAgICAmLmJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDM4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmLnRpdGxlIGg2IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBleHRlbmQgLmg0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYuaW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeG1lZGl1bSBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDE4MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJi50aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygxNyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAyIC8gc3BhbiAzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyIC8gc3BhbiAzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYuam9iIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtbXMtZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJi5hZGRyZXNzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtbXMtZ3JpZC1jb2x1bW46IDM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJi5idXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLW1zLWdyaWQtcm93OiA1O1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDU7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1tcy1ncmlkLXJvdzogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC52aXNpYmxlLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IC1tcy1ncmlkO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uczogMWZyO1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICAgICAgICAgIC1tcy1ncmlkLXJvd3M6IHJlcGVhdCgzLCBhdXRvKTtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCgzLCBhdXRvKTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxOSkgcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMjUpIHJlbS1jYWxjKDMwKTtcbiAgICAgICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uczogMmZyIDFmciAxZnI7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmciAxZnI7XG4gICAgICAgICAgICAgICAgICAgIC1tcy1ncmlkLXJvd3M6IHJlcGVhdCgzLCBhdXRvKTtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoMywgYXV0byk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5jb250YWN0IHtcbiAgICAgICAgICAgICAgICAgICAgJi5pbWFnZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMTI1KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgLW1zLWdyaWQtcm93OiAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1tcy1ncmlkLXJvdzogMSAvIHNwYW4gMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMSAvIHNwYW4gMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYudGl0bGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAtbXMtZ3JpZC1yb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmLmpvYiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAtbXMtZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC1tcy1ncmlkLXJvdzogMztcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAzO1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1tcy1ncmlkLXJvdzogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmLmFkZHJlc3Mge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAtbXMtZ3JpZC1yb3c6IDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtbXMtZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLW1zLWdyaWQtcm93OiAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYuYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC1tcy1ncmlkLXJvdzogNztcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiA3O1xuICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYyg5MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIitcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAmLnNob3ctbGVzcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMTEyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCItXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtbXMtZ3JpZC1yb3c6IDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5zaG93LWxlc3Mge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtbXMtZ3JpZC1yb3c6IDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiA3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGg0IHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTUpIDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmFkZHJlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgYWRkcmVzcyB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBociB7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAuY2VsbDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDE1KTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogcmVtLWNhbGMoMzApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGg1IHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDMwKSAwIHJlbS1jYWxjKDIwKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogcmVtLWNhbGMoNDApIDAgcmVtLWNhbGMoMjApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmLmhlYWRpbmctd29ya2ZpZWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5oaWRkZW4tY29udGVudCB7XG4gICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAxIC8gc3BhbiAzO1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAzO1xuICAgICAgICAgICAgICAgIC1tcy1ncmlkLXJvdzogNjtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogNjtcbiAgICAgICAgICAgICAgICBoNiB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnNocmluay5hZGRyZXNzIHtcbiAgICAgICAgICAgICAgICAgICAgLW1zLWdyaWQtcm93OiA0O1xuICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogNDtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgICAgICAuYWNjb3JkaW9uLXRpdGxlOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAuaWNvbi1yZW1vdmU6YmVmb3JlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5pY29uLWUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDcwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuYnV0dG9uLnNlY29uZGFyeSB7XG4gICAgICAgICYuc2hvdy1sZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMwKTtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBleHRlbmQgLmljb24tcmVtb3ZlOmJlZm9yZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBleHRlbmQgW2NsYXNzXj1cImljb24tXCJdOmJlZm9yZTtcbiAgICAgICAgICAgIEBleHRlbmQgLmljb24tcGx1czpiZWZvcmU7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuNXJlbTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4zcmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kb3QtYnVsbGV0IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuICAgICAgICB9XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS4ycmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAZXh0ZW5kIC5pY29uLWRvdDpiZWZvcmU7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCBbY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyNCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5pY29uLWU6YWZ0ZXIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICB9XG59XG4iLCIubWFzb25yeS1jb250YWluZXIge1xuICBjb2x1bW4tY291bnQ6IDE7XG4gIGNvbHVtbi1nYXA6ICRnbG9iYWwtbWFyZ2luO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgY29sdW1uLWNvdW50OiAyO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bWVkaXVtKSB7XG4gICAgY29sdW1uLWNvdW50OiAzO1xuICB9XG59XG5cbi5tYXNvbnJ5LWl0ZW0ge1xuICBicmVhay1pbnNpZGU6IGF2b2lkO1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuICBpbWcge1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMwKTtcbiAgfVxuICBwIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiAgfVxufVxuIiwiLmV2ZW50cyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuLmNhbGVuZGFyLW9wZW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjMpO1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzNSk7XHJcbiAgICB9XHJcblxyXG4gICAgaDYge1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICBpIHtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cclxuICAgICAgICAmLmljb24tY2FsZW5kYXIge1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuaWNvbi1hcnJvdy11cDpiZWZvcmUge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4zcmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYuaGlkZS1mb3ItbGFyZ2Uge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAjY2FsZW5kYXIge1xyXG4gICAgICAgICAgICByaWdodDogYXV0bztcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5jYWxlbmRhci13cmFwIHtcclxuICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDEyKTtcclxuICAgIG1heC13aWR0aDogcmVtLWNhbGMoMzIwKTtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogMDtcclxuICAgIGhlaWdodDogcmVtLWNhbGMoMzI1KTtcclxuICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICB3aWR0aDogcmVtLWNhbGMoMzIwKTtcclxuICAgIGhlaWdodDogYXV0bztcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDQ2MCkge1xyXG4gICAgICAgIC5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLXRvcCAucGlnbm9zZS1jYWxlbmRhci10b3AtbmF2LnBpZ25vc2UtY2FsZW5kYXItdG9wLXByZXYge1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTIlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnBpZ25vc2UtY2FsZW5kYXIgLnBpZ25vc2UtY2FsZW5kYXItdG9wIC5waWdub3NlLWNhbGVuZGFyLXRvcC1uYXYucGlnbm9zZS1jYWxlbmRhci10b3AtbmV4dCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTIlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnBpZ25vc2UtY2FsZW5kYXIgLnBpZ25vc2UtY2FsZW5kYXItdG9wIC5waWdub3NlLWNhbGVuZGFyLXRvcC1kYXRlIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyNSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAucGlnbm9zZS1jYWxlbmRhciAucGlnbm9zZS1jYWxlbmRhci10b3AgLnBpZ25vc2UtY2FsZW5kYXItdG9wLWRhdGUge1xyXG4gICAgICAgICAgICB0b3A6IHJlbS1jYWxjKDEwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDEyKTtcclxuICAgICAgICB3aWR0aDogcmVtLWNhbGMoMzgwKTtcclxuICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDM4MCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5zdGF0aWMge1xyXG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg1MCk7XHJcbiAgICB9XHJcblxyXG4gICAgLmNsb3NlLWJ1dHRvbiB7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIHdpZHRoOiByZW0tY2FsYyg0MCk7XHJcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg0MCk7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGRhcmstZ3JheTtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgICAgIHotaW5kZXg6IDI7XHJcblxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgQGV4dGVuZCBbY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlO1xyXG4gICAgICAgICAgICBAZXh0ZW5kIC5pY29uLWNsb3NlOmJlZm9yZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyIC5pY29uLWFycm93LWxlZnQsXHJcbi5waWdub3NlLWNhbGVuZGFyIC5pY29uLWFycm93LXJpZ2h0IHtcclxuICAgIEBleHRlbmQgW2NsYXNzXj1cImljb24tXCJdOmJlZm9yZTtcclxufVxyXG5cclxuLnBpZ25vc2UtY2FsZW5kYXIgLmljb24tYXJyb3ctbGVmdDpiZWZvcmUge1xyXG4gICAgQGV4dGVuZC5pY29uLWFycm93LWxlZnQ6YmVmb3JlO1xyXG59XHJcblxyXG4ucGlnbm9zZS1jYWxlbmRhciAuaWNvbi1hcnJvdy1yaWdodDpiZWZvcmUge1xyXG4gICAgQGV4dGVuZC5pY29uLWFycm93LXJpZ2h0OmJlZm9yZTtcclxufVxyXG5cclxuLnBpZ25vc2UtY2FsZW5kYXItd3JhcHBlciB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XHJcbiAgICB6LWluZGV4OiA1MDAwMTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNHB4IDE2cHggIzAwMDAwMDtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggIzAwMDAwMDtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxNjBweCwgMCk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDE2MHB4LCAwKTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCAtd2Via2l0LXRyYW5zZm9ybSAwLjVzIGVhc2Utb3V0O1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXMgZWFzZS1vdXQ7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuNXMgZWFzZS1vdXQ7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuNXMgZWFzZS1vdXQsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXMgZWFzZS1vdXQ7XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyLXdyYXBwZXIucGlnbm9zZS1jYWxlbmRhci13cmFwcGVyLWFjdGl2ZSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxufVxyXG5cclxuLnBpZ25vc2UtY2FsZW5kYXItd3JhcHBlciAucGlnbm9zZS1jYWxlbmRhciB7XHJcbiAgICBtYXgtd2lkdGg6IGF1dG87XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxufVxyXG5cclxuLnBpZ25vc2UtY2FsZW5kYXItd3JhcHBlciAucGlnbm9zZS1jYWxlbmRhciAucGlnbm9zZS1jYWxlbmRhci1idXR0b24tZ3JvdXAge1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMmUyZTI7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4ucGlnbm9zZS1jYWxlbmRhci13cmFwcGVyIC5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLWJ1dHRvbi1ncm91cCAucGlnbm9zZS1jYWxlbmRhci1idXR0b24ge1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBoZWlnaHQ6IDMuMmVtO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbGluZS1oZWlnaHQ6IDMuMmVtO1xyXG4gICAgY29sb3I6ICMzMzMzMzM7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZTtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlO1xyXG59XHJcblxyXG4ucGlnbm9zZS1jYWxlbmRhci13cmFwcGVyIC5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLWJ1dHRvbi1ncm91cCAucGlnbm9zZS1jYWxlbmRhci1idXR0b24ge1xyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyLXdyYXBwZXIgLnBpZ25vc2UtY2FsZW5kYXIgLnBpZ25vc2UtY2FsZW5kYXItYnV0dG9uLWdyb3VwIC5waWdub3NlLWNhbGVuZGFyLWJ1dHRvbi1hcHBseSB7XHJcbiAgICBjb2xvcjogI2ZmZmZmZjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMyZmFiYjc7XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyLXdyYXBwZXIgLnBpZ25vc2UtY2FsZW5kYXIgLnBpZ25vc2UtY2FsZW5kYXItYnV0dG9uLWdyb3VwIC5waWdub3NlLWNhbGVuZGFyLWJ1dHRvbi1hcHBseSB7XHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcclxuICAgIH1cclxufVxyXG5cclxuLnBpZ25vc2UtY2FsZW5kYXItd3JhcHBlci1vdmVybGF5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB6LWluZGV4OiA1MDAwMDtcclxufVxyXG5cclxuLnBpZ25vc2UtY2FsZW5kYXItd3JhcHBlci1vdmVybGF5LnBpZ25vc2UtY2FsZW5kYXItd3JhcHBlci1vdmVybGF5LWFjdGl2ZSB7XHJcbiAgICBvcGFjaXR5OiAwLjc7XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDhkOGQ4O1xyXG4gICAgZm9udC1zaXplOiAxMDAlO1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLXRvcCB7XHJcbiAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMjApO1xyXG4gICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDIwKTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLXRvcCAucGlnbm9zZS1jYWxlbmRhci10b3AtZGF0ZSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IHJlbS1jYWxjKDE1KTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLnBpZ25vc2UtY2FsZW5kYXIgLnBpZ25vc2UtY2FsZW5kYXItdG9wIC5waWdub3NlLWNhbGVuZGFyLXRvcC15ZWFyLFxyXG4ucGlnbm9zZS1jYWxlbmRhciAucGlnbm9zZS1jYWxlbmRhci10b3AgLnBpZ25vc2UtY2FsZW5kYXItdG9wLW1vbnRoIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLnBpZ25vc2UtY2FsZW5kYXIgLnBpZ25vc2UtY2FsZW5kYXItdG9wIC5waWdub3NlLWNhbGVuZGFyLXRvcC1uYXYge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgd2lkdGg6IDEuNmVtO1xyXG4gICAgaGVpZ2h0OiAxLjZlbTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHotaW5kZXg6IDU7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLXRvcCAucGlnbm9zZS1jYWxlbmRhci10b3AtbmF2IC5waWdub3NlLWNhbGVuZGFyLXRvcC12YWx1ZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBjb2xvcjogIzc3Nzc3NztcclxuICAgIGZvbnQtc2l6ZTogMTE1JTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgbWFyZ2luLXRvcDogLTEwcHg7XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLXRvcCAucGlnbm9zZS1jYWxlbmRhci10b3AtbmF2IC5waWdub3NlLWNhbGVuZGFyLXRvcC1pY29uIHtcclxuICAgIGNvbG9yOiAjMDAwMDAwO1xyXG4gICAgZm9udC1zaXplOiAxNjAlO1xyXG59XHJcblxyXG4ucGlnbm9zZS1jYWxlbmRhciAucGlnbm9zZS1jYWxlbmRhci10b3AgLnBpZ25vc2UtY2FsZW5kYXItdG9wLW5hdi5waWdub3NlLWNhbGVuZGFyLXRvcC1wcmV2IHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDNlbTtcclxufVxyXG5cclxuLnBpZ25vc2UtY2FsZW5kYXJcclxuICAgIC5waWdub3NlLWNhbGVuZGFyLXRvcFxyXG4gICAgLnBpZ25vc2UtY2FsZW5kYXItdG9wLW5hdi5waWdub3NlLWNhbGVuZGFyLXRvcC1wcmV2XHJcbiAgICAucGlnbm9zZS1jYWxlbmRhci10b3AtdmFsdWUge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDAuMmVtO1xyXG59XHJcblxyXG4ucGlnbm9zZS1jYWxlbmRhciAucGlnbm9zZS1jYWxlbmRhci10b3AgLnBpZ25vc2UtY2FsZW5kYXItdG9wLW5hdi5waWdub3NlLWNhbGVuZGFyLXRvcC1uZXh0IHtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIG1hcmdpbi1yaWdodDogM2VtO1xyXG59XHJcblxyXG4ucGlnbm9zZS1jYWxlbmRhclxyXG4gICAgLnBpZ25vc2UtY2FsZW5kYXItdG9wXHJcbiAgICAucGlnbm9zZS1jYWxlbmRhci10b3AtbmF2LnBpZ25vc2UtY2FsZW5kYXItdG9wLW5leHRcclxuICAgIC5waWdub3NlLWNhbGVuZGFyLXRvcC12YWx1ZSB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMmVtO1xyXG59XHJcblxyXG4ucGlnbm9zZS1jYWxlbmRhciAucGlnbm9zZS1jYWxlbmRhci1oZWFkZXIge1xyXG4gICAgbWFyZ2luOiAwIHJlbS1jYWxjKDE1KSAwO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdyYXk7XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLWhlYWRlciAucGlnbm9zZS1jYWxlbmRhci13ZWVrIHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgd2lkdGg6IDE0LjI4JTtcclxuICAgIGhlaWdodDogMi44ZW07XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBsaW5lLWhlaWdodDogMi44ZW07XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLWhlYWRlciAucGlnbm9zZS1jYWxlbmRhci13ZWVrLnBpZ25vc2UtY2FsZW5kYXItd2Vlay1zdW4sXHJcbi5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLWhlYWRlciAucGlnbm9zZS1jYWxlbmRhci13ZWVrLnBpZ25vc2UtY2FsZW5kYXItd2Vlay1zYXQge1xyXG4gICAgY29sb3I6ICMwMDAwMDA7XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLWhlYWRlciAucGlnbm9zZS1jYWxlbmRhci13ZWVrOmxhc3QtY2hpbGQge1xyXG4gICAgd2lkdGg6IDE0LjMyJTtcclxufVxyXG5cclxuLnBpZ25vc2UtY2FsZW5kYXIgLnBpZ25vc2UtY2FsZW5kYXItYm9keSB7XHJcbiAgICBwYWRkaW5nOiByZW0tY2FsYygxNSk7XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLWJvZHkgLnBpZ25vc2UtY2FsZW5kYXItcm93IHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLXVuaXQge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIC8vIGhlaWdodDogMy44ZW07XHJcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDM4KTtcclxuICAgIHdpZHRoOiAxNC4yOCU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAvLyBsaW5lLWhlaWdodDogMi44ZW07XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLXVuaXQ6bGFzdC1jaGlsZCB7XHJcbiAgICB3aWR0aDogMTQuMzIlO1xyXG59XHJcblxyXG4ucGlnbm9zZS1jYWxlbmRhciAucGlnbm9zZS1jYWxlbmRhci11bml0IC5waWdub3NlLWNhbGVuZGFyLWJ1dHRvbi1zY2hlZHVsZS1jb250YWluZXIge1xyXG4gICAgbGluZS1oZWlnaHQ6IDAuNWVtO1xyXG59XHJcblxyXG4ucGlnbm9zZS1jYWxlbmRhclxyXG4gICAgLnBpZ25vc2UtY2FsZW5kYXItdW5pdFxyXG4gICAgLnBpZ25vc2UtY2FsZW5kYXItYnV0dG9uLXNjaGVkdWxlLWNvbnRhaW5lclxyXG4gICAgLnBpZ25vc2UtY2FsZW5kYXItYnV0dG9uLXNjaGVkdWxlLXBpbiB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzc3Nzc3O1xyXG4gICAgd2lkdGg6IDAuNWVtO1xyXG4gICAgaGVpZ2h0OiAwLjVlbTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIG1hcmdpbi1yaWdodDogMC4yZW07XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyXHJcbiAgICAucGlnbm9zZS1jYWxlbmRhci11bml0XHJcbiAgICAucGlnbm9zZS1jYWxlbmRhci1idXR0b24tc2NoZWR1bGUtY29udGFpbmVyXHJcbiAgICAucGlnbm9zZS1jYWxlbmRhci1idXR0b24tc2NoZWR1bGUtcGluOmxhc3QtY2hpbGQge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG59XHJcblxyXG4ucGlnbm9zZS1jYWxlbmRhciAucGlnbm9zZS1jYWxlbmRhci11bml0IGEge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgd2lkdGg6IHJlbS1jYWxjKDMwKTtcclxuICAgIGhlaWdodDogcmVtLWNhbGMoMzApO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgY29sb3I6ICMwMDAwMDA7XHJcbiAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMzApO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoOCk7XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLXVuaXQgYSB7XHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLXVuaXQucGlnbm9zZS1jYWxlbmRhci11bml0LWRpc2FibGVkIGEge1xyXG4gICAgb3BhY2l0eTogMC41O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcclxufVxyXG5cclxuLnBpZ25vc2UtY2FsZW5kYXIgLnBpZ25vc2UtY2FsZW5kYXItdW5pdC5waWdub3NlLWNhbGVuZGFyLXVuaXQtdG9kYXkgYSxcclxuLnBpZ25vc2UtY2FsZW5kYXIgLnBpZ25vc2UtY2FsZW5kYXItdW5pdC5waWdub3NlLWNhbGVuZGFyLXVuaXQtc3VuLnBpZ25vc2UtY2FsZW5kYXItdW5pdC10b2RheSBhLFxyXG4ucGlnbm9zZS1jYWxlbmRhciAucGlnbm9zZS1jYWxlbmRhci11bml0LnBpZ25vc2UtY2FsZW5kYXItdW5pdC1zYXQucGlnbm9zZS1jYWxlbmRhci11bml0LXRvZGF5IGEge1xyXG4gICAgLy8gYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgICAvLyBjb2xvcjogIzAwMDAwMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xyXG4gICAgY29sb3I6ICNmZmZmZmY7XHJcbn1cclxuXHJcbi5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLXVuaXQucGlnbm9zZS1jYWxlbmRhci11bml0LXJhbmdlIGEge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLnBpZ25vc2UtY2FsZW5kYXIgLnBpZ25vc2UtY2FsZW5kYXItdW5pdC5waWdub3NlLWNhbGVuZGFyLXVuaXQtcmFuZ2UucGlnbm9zZS1jYWxlbmRhci11bml0LWRpc2FibGVkIGEge1xyXG4gICAgY29sb3I6ICNiMmI5YmI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTFlMWUxO1xyXG59XHJcblxyXG4ucGlnbm9zZS1jYWxlbmRhciAucGlnbm9zZS1jYWxlbmRhci11bml0LnBpZ25vc2UtY2FsZW5kYXItdW5pdC1yYW5nZS5waWdub3NlLWNhbGVuZGFyLXVuaXQtcmFuZ2UtZmlyc3QgYSB7XHJcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxLjJlbTtcclxuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEuMmVtO1xyXG59XHJcblxyXG4ucGlnbm9zZS1jYWxlbmRhciAucGlnbm9zZS1jYWxlbmRhci11bml0LnBpZ25vc2UtY2FsZW5kYXItdW5pdC1yYW5nZS5waWdub3NlLWNhbGVuZGFyLXVuaXQtcmFuZ2UtbGFzdCBhIHtcclxuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxLjJlbTtcclxuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxLjJlbTtcclxufVxyXG5cclxuLnBpZ25vc2UtY2FsZW5kYXIgLnBpZ25vc2UtY2FsZW5kYXItdW5pdC5waWdub3NlLWNhbGVuZGFyLXVuaXQtc3VuIGEsXHJcbi5waWdub3NlLWNhbGVuZGFyIC5waWdub3NlLWNhbGVuZGFyLXVuaXQucGlnbm9zZS1jYWxlbmRhci11bml0LXNhdCBhIHtcclxuICAgIGNvbG9yOiAjMDAwMDAwO1xyXG59XHJcblxyXG4ucGlnbm9zZS1jYWxlbmRhci5waWdub3NlLWNhbGVuZGFyLWRlZmF1bHRcclxuICAgIC5waWdub3NlLWNhbGVuZGFyLWJvZHlcclxuICAgIC5waWdub3NlLWNhbGVuZGFyLXJvd1xyXG4gICAgLnBpZ25vc2UtY2FsZW5kYXItdW5pdC5waWdub3NlLWNhbGVuZGFyLXVuaXQtdG9nZ2xlLWFjdGl2ZVxyXG4gICAgYSB7XHJcbiAgICBjb2xvcjogI2NjY2NjYyAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucGlnbm9zZS1jYWxlbmRhci5waWdub3NlLWNhbGVuZGFyLWRlZmF1bHQucGlnbm9zZS1jYWxlbmRhci1yZXZlcnNlXHJcbiAgICAucGlnbm9zZS1jYWxlbmRhci1ib2R5XHJcbiAgICAucGlnbm9zZS1jYWxlbmRhci1yb3dcclxuICAgIC5waWdub3NlLWNhbGVuZGFyLXVuaXQucGlnbm9zZS1jYWxlbmRhci11bml0LXRvZ2dsZS1pbmFjdGl2ZVxyXG4gICAgYSB7XHJcbiAgICBjb2xvcjogI2NjY2NjYyAhaW1wb3J0YW50O1xyXG59XHJcbiIsIi5jYXJkLWxpbmstbGlzdC5sb2NhdGlvbnMge1xyXG4gICAgLmNhcmR7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xyXG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMzBweCk7XHJcbiAgICAgICAgJjpob3ZlciAuY2FyZC1zZWN0aW9uLCAmOmZvY3VzIC5jYXJkLXNlY3Rpb24gIHtcclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkcHJpbWFyeS1jb2xvciwgMC45KTtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGR1cmF0aW9uICRlYXNpbmc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkZHVyYXRpb24gJGVhc2luZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5jYXJkLXNlY3Rpb24ge1xyXG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMXJlbSAwLjhyZW07XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGg2LCBsaXtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNzU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGg2e1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6MDtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRkdXJhdGlvbiAkZWFzaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwibGFidy1pY29uXCI7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxlOTE1XCI7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgICAgcmlnaHQ6IDFyZW07XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ubWFwLXNlY3Rpb257XHJcbiAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygyMCk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg1MCk7XHJcbiAgICAubWFwe1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAzMy4zMzMlO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBtaW4taGVpZ2h0OiByZW0tY2FsYyg0NTApO1xyXG4gICAgfVxyXG4gICAgaWZyYW1le1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgfVxyXG59XHJcbiIsIi50aWxlLWdyaWQucHJlc2VudGF0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYyg1MCAwKTtcbiAgICB9XG4gICAgLmNlbGwuZW50cnkge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkYm94LXNoYWRvdztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDI5KTtcbiAgICAgICAgICAgICY6bnRoLWxhc3QtY2hpbGQoLW4gKyA0KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygwIDI3IDI0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuY29udGVudCBoNiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDczJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIE9wdGlvbmFsIGJhY2tncm91bmQgaW1hZ2VcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5maWx0ZXItd2lkZ2V0LXdyYXAge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDUpO1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeG1lZGl1bSBkb3duKSB7XHJcbiAgICAgICAgZGlzcGxheTogLW1zLWdyaWQ7XHJcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICAtbXMtZ3JpZC1yb3dzOiBhdXRvIGF1dG87XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG87XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzgpO1xyXG5cclxuICAgICAgICAuZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIC1tcy1ncmlkLXJvdzogMjtcclxuICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudGFncyB7XHJcbiAgICAgICAgICAgIC1tcy1ncmlkLXJvdzogMTtcclxuICAgICAgICAgICAgZ3JpZC1yb3c6IDE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHhtZWRpdW0gZG93bikge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4gICAgfVxyXG5cclxuICAgIC5maWx0ZXItZHJvcGRvd24ge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMC42MjVyZW07XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmZpbHRlciB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxufVxyXG5cclxuLmFycm93OmFmdGVyIHtcclxuICAgIEBleHRlbmQgW2NsYXNzXj1cImljb24tXCJdOmJlZm9yZTtcclxuICAgIEBleHRlbmQgLmljb24tYXJyb3ctdXA6YmVmb3JlO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG59XHJcblxyXG4uZmlsdGVyIHtcclxuICAgIGJhY2tncm91bmQ6ICNlOGViZWM7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygyMCk7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDI0KTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMjApO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDIwKTtcclxuICAgIH1cclxuICAgID4gaDYge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTAgMjApO1xyXG4gICAgfVxyXG4gICAgaDYsXHJcbiAgICAuc2VsZWN0LFxyXG4gICAgLnNlbGVjdC1ib3gtd3JhcCB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgIGg2IHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygwKTtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNSk7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYXJyb3cuY3VycmVudDphZnRlciB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyAkZWFzaW5nO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0IHtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoNDUpO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYm9yZGVyOiAkZmllbGRzZXQtYm9yZGVyO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgICAgICBwYWRkaW5nOiAwLjdyZW07XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmhlcml0O1xyXG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyAkZWFzaW5nO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5jdXJyZW50IHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmY2MwMDtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcblxyXG4gICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgJGVhc2luZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMi4ycmVtO1xyXG4gICAgICAgICAgICAmLmN1cnJlbnQge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMzMuMik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdC1ib3gtd3JhcCB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhtZWRpdW0gZG93bikge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMTApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoNSk7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0LXdyYXAge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgICAgICAgei1pbmRleDogMjtcclxuICAgICAgICB0b3A6IDEwMCU7XHJcbiAgICAgICAgYm94LXNoYWRvdzogJGJveC1zaGFkb3c7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMzY1KTtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0tY2FsYygzNjUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBDdXN0b20gZmlsdGVyIGNoZWNrYm94ZXNcclxuICAgIC5zZWxlY3Qtd3JhcCB7XHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgYmxhY2s7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcblxyXG4gICAgICAgICAgICBsaTpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMTApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAub3B0aW9uLXdyYXAge1xyXG4gICAgICAgICAgICAmLmNoZWNrZWQsXHJcbiAgICAgICAgICAgICY6aG92ZXI6bm90KC5zdWJtaXQpIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLnN1Ym1pdCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygyMCk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygwIDI1KTtcclxuXHJcbiAgICAgICAgICAgICAgICAuYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBbdHlwZT1cImNoZWNrYm94XCJdIHtcclxuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgICAgICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XHJcblxyXG4gICAgICAgICAgICAvLyBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgICAgICsgbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzMCk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygwLjNyZW0gMjUpO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuXHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpjaGVja2VkICsgbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgICAgICArIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiAtd2Via2l0LWZvY3VzLXJpbmctY29sb3IgYXV0byA1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xyXG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmUtc3R5bGU6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZS13aWR0aDogNXB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL2NoZWNrYm94XHJcbiAgICAgICAgW3R5cGU9XCJjaGVja2JveFwiXSB7XHJcbiAgICAgICAgICAgICsgbGFiZWw6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpjaGVja2VkICsgbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGV4dGVuZCBbY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlO1xyXG4gICAgICAgICAgICAgICAgICAgIEBleHRlbmQgLmljb24tY2hlY2s6YmVmb3JlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBibGFjaztcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNjUycmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgICAgICByaWdodDogcmVtLWNhbGMoMjYpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYyg1KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIuZmlsdGVyLXRhZ3Mge1xuICAgICRpY29uLXNpemU6IDE0O1xuICAgIC8vIHBhZGRpbmc6IDFyZW0gMS42MjVyZW07XG4gICAgcGFkZGluZzogcmVtLWNhbGMoMTAgMjApO1xuICAgIC50YWctbGlzdCAuY2VsbCxcbiAgICAjcmVzZXRGaWx0ZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg1KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNSk7XG4gICAgICAgIGJvcmRlcjogJGhyLWJvcmRlcjtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMiAkaWNvbi1zaXplICsgMTAgMiAxMCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogcmVtLWNhbGMoMik7XG4gICAgICAgICAgICB0b3A6IHJlbS1jYWxjKDMpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICB9XG4gICAgICAgICYgLmNsb3NlLWJ1dHRvbjphZnRlciB7XG4gICAgICAgICAgICBAZXh0ZW5kIFtjbGFzc149XCJpY29uLVwiXTpiZWZvcmU7XG4gICAgICAgICAgICBAZXh0ZW5kIC5pY29uLWNsb3NlOmJlZm9yZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoJGljb24tc2l6ZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAjcmVzZXRGaWx0ZXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTApO1xuICAgICAgICBhLmNsb3NlLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnRhZy1saXN0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG4iLCIuZmlsdGVyLXJlc3VsdCB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxuICAgIC5jZWxsIHtcbiAgICAgICAgZGlzcGxheTogLW1zLWdyaWQ7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIC1tcy1ncmlkLWNvbHVtbnM6IDMzLjMzMzMzMyUgNjYuNjY2NjY2JTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzMy4zMzMzMzMlIDY2LjY2NjY2NiU7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeG1lZGl1bSkge1xuICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uczogMWZyO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgICAgICAtbXMtZ3JpZC1yb3dzOiAxZnI7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtcmVzZXQoKTtcbiAgICAgICAgfVxuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG4gICAgICAgIC5pbWFnZS13cmFwIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuaGVhZGluZy13cmFwIHtcbiAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbjogMjtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTApO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIC1tcy1ncmlkLXJvdzogMjtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxMCAwKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygyNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIucGFnaW5hdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbiAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg3Mik7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGEge1xuICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIFtjbGFzc149XCJpY29uLWFycm93LVwiXSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jdXJyZW50IHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBtYXJnaW46IDAgcmVtLWNhbGMoMTApO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogYmxhY2s7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMzUpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygzNSk7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgfVxuICAgICAgICArIC5lbGxpcHNpcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLS4zcmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5lbGxpcHNpcyArIGxpLFxuICAgIC5lbGxpcHNpcyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMC43NXJlbTtcbiAgICB9XG4gICAgLmVsbGlwc2lzIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLm1vZHVsZS5yZXN1bHQtdGFncyB7XHJcbiAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygzMCk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzMCk7XHJcbn1cclxuLnRhYnMtd3JhcHBlciB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XHJcbiAgICAudGFicy1hbGlnbiB7XHJcbiAgICAgICAgQGV4dGVuZCAuZnVsbDtcclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7XHJcbiAgICAudGFicyB7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAxMHB4KTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMTApO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhtZWRpdW0pIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeG1lZGl1bSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnRhYnMtdGl0bGUge1xyXG4gICAgICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIGJsYWNrO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLnNlYXJjaC1yZXN1bHRzIHtcclxuICAgIC50YWJzLWNvbnRlbnQge1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAudGFicy1wYW5lbCB7XHJcbiAgICAgICAgICAgIC5maWx0ZXItY29udGFpbmVyID4gLmdyaWQtY29udGFpbmVyIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmNvbnRlbnQtYm94LWdyZXkuZ3JpZC1jb250YWluZXIge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuZW1wdHktc2VhcmNoIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogNjAlO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gcmVtLWNhbGMoMjAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuYXJjaGl2ZS1sb2NhdGlvbiB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzMCk7XHJcbiAgICAgICAgICAgICAgICAmIHNwYW46YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoMTIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzApO1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAucmVzdWx0LWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogJGhyLWJvcmRlcjtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDM0KTtcclxuICAgICAgICAgICAgICAgIC5sYWJlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICByaWdodDogdW5zZXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoLTEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYS5oNiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5yZXN1bHQtY29udGVudCB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoNDUpO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEwKTtcclxuICAgICAgICAgICAgICAgICAgICAucmVzdWx0LXRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gd2lkdGg6IHJlbS1jYWxjKDEzNik7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygxMjApO1xyXG4gICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLnJlc3VsdC1pbWFnZSBhe1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDNyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoNDApO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICAgICAgICAgICAgICY6Zm9jdXN7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVye1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAZXh0ZW5kIFtjbGFzc149XCJpY29uLVwiXTpiZWZvcmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBleHRlbmQgLmljb24tZXh0ZXJuYWxsaW5rOmJlZm9yZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyNCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJ1dHRvbi5idXR0b24uaG9sbG93LFxyXG4gICAgICAgICAgICBhLmJ1dHRvbi5ob2xsb3cge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNTApO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoNTUpO1xyXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGV4dGVuZCBbY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlO1xyXG4gICAgICAgICAgICAgICAgICAgIEBleHRlbmQgLmljb24tZXh0ZXJuYWxsaW5rOmJlZm9yZTtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyNCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwLjNyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDAuM3JlbTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuYXJjaGl2ZS1sb2NhdGlvbiB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAmLnRvb2x0aXAtb3BlbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgPiAudG9vbHRpcC50b2dnbGUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJiBzcGFuLmljb24taW5mb3JtYXRpb24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDEuM3JlbSwgJGJsYWNrLCBkb3duKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogLTEuOHJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IC4zNXJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAudG9vbHRpcCB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICBib3R0b206IDMuM3JlbTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRibGFjaztcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDI7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNzVyZW07XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcjtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2Upe1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDI1JTtcclxuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDU3MCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMjEgMzEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJi50b2dnbGUge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMyk7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAubGluay1tb3JlIGEge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAudGV4dC1jZW50ZXIge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg4MCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi5yZXN1bHQtZXh0ZXJuYWwge1xuICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDgwKTtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg4MCk7XG4gICAgLmdyaWQteCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygzMCk7XG4gICAgfVxuICAgIGg0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNTApO1xuICAgIH1cbiAgICBsaSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNiNjkxMDA7XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2I2OTEwMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhIHtcbiAgICAgICAgcGFkZGluZzogMS4ycmVtIHJlbS1jYWxjKDMwKSAxLjJyZW0gMDtcbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1c3tcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLmNvbnRlbnQtYm94LWdyZXkge1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKXtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuICAgIH1cbiAgICAuY2VsbCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgICAgICYud3JhcCB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxNSAwKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygzMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIGEge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMjQpO1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDM1MCk7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGV4dGVuZCBbY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlO1xuICAgICAgICAgICAgQGV4dGVuZCAuaWNvbi1leHRlcm5hbGxpbms6YmVmb3JlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoOCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIkb3ZlcmZsb3c6IDEwcHg7XHJcblxyXG4udmlydHVhbC1jYXRhbG9ndWUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7XHJcbiAgICBwYWRkaW5nOiA1MHB4IDA7XHJcbn1cclxuXHJcbi5jYXRhbG9ndWUtc2xpZGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmctYm90dG9tOiA5NXB4O1xyXG4gICAgaDQge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgICB9XHJcbiAgICAuc2xpY2stY291bnRlciB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogLSRvdmVyZmxvdztcclxuICAgICAgICByaWdodDogLSRvdmVyZmxvdztcclxuICAgICAgICBwYWRkaW5nLXRvcDogJG92ZXJmbG93O1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRvdmVyZmxvdztcclxuICAgICAgICB3aWR0aDogMTAwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiA5MHB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNTBweDtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICB6LWluZGV4OiAyO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBsaW5lLWhlaWdodDogOTBweC0kb3ZlcmZsb3c7XHJcbiAgICB9XHJcbiAgICAuc2xpY2stbGlzdCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcclxuICAgICAgICBwYWRkaW5nOiA2MHB4O1xyXG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDJweCA3cHggMHB4IHJnYmEoMCwwLDAsMC4xKTtcclxuICAgICAgICAtbW96LWJveC1zaGFkb3c6IDBweCAycHggN3B4IDBweCByZ2JhKDAsMCwwLDAuMSk7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDJweCA3cHggMHB4IHJnYmEoMCwwLDAsMC4xKTtcclxuICAgIH1cclxuICAgIC5zbGljay1wcmV2LCAuc2xpY2stbmV4dCB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGJvdHRvbTogMThweDtcclxuICAgICAgICB3aWR0aDogMjFweDtcclxuICAgICAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XHJcbiAgICAgICAgY29sb3I6IGJsYWNrO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwibGFidy1pY29uXCI7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJi5zbGljay1kaXNhYmxlZDpiZWZvcmUge1xyXG4gICAgICAgICAgICBjb2xvcjogZ3JleTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuc2xpY2stcHJldiB7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGU5MGMnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5zbGljay1uZXh0IHtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGU5MTUnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBDb252ZXJ0IHVsLWxpIGRvdHMgaW50byBzZWxlY3Rib3ggYmVoYXZpb3JcclxuICAgIC5zbGljay1kb3RzIGxpIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBwYWRkaW5nOiA1cHggNTVweCA1cHggMTBweDtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxNTBweDtcclxuICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM1cHg7XHJcbiAgICAgICAgYnV0dG9ue1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAvLyBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICAvLyB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgICAvLyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJi5zbGljay1hY3RpdmUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNsaWNrLWRvdHMgbGkuc2xpY2stYWN0aXZlIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICAgIC5zbGljay1kb3RzIGxpOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBib3JkZXItdG9wOiAwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnNsaWNrLWRvdHMge1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHdpZHRoOiA0MzZweDtcclxuICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgICAgdG9wOiA5NiU7XHJcbiAgICAgICAgdG9wOiBjYWxjKDEwMCUgLSA1MHB4KTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgICAgICAgei1pbmRleDogNTtcclxuICAgIH1cclxuXHJcbiAgICAuc2xpY2stZG90cy5vcGVuIGxpIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XHJcbiAgICAgICAgJi5zbGljay1hY3RpdmUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJiYmJiO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1lZGl1bS1ncmF5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2xpY2stZG90czpiZWZvcmUge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDExcHg7XHJcbiAgICAgICAgcmlnaHQ6IDIzcHg7XHJcbiAgICAgICAgY29udGVudDogXCJcXGU5MGRcIjtcclxuICAgICAgICBmb250LWZhbWlseTogXCJsYWJ3LWljb25cIjtcclxuICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlWigtOTBkZWcpO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjZweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIH1cclxuICAgIC5saWdodGJveC1vdmVybGF5IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gICAgfVxyXG59XHJcbiIsIi5yZXZlYWwge1xuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgIC5pY29uLWNsb3NlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogMjlweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjb2xvcjogIzRhNGE0YTtcbiAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5saWdodGJveC1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyMDQsIDAsIDAuOTUpO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlxcZTkwMFwiO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwibGFidy1pY29uXCI7XG4gICAgICAgICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgYm90dG9tOiA5cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjA0LCAwLCAwLjk1KTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmltZy5yZXZlYWwtdHJpZ2dlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuIiwiLm1lc3NhZ2Uge1xuICAgIGhlaWdodDogNDB2aDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiByZW0tY2FsYygxMDApIGF1dG87XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pe1xuICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDE3MCkgYXV0bztcbiAgICB9XG4gICAgaDEuc3RhdHVzLWNvZGUge1xuICAgICAgICBmb250LXNpemU6IDVyZW07XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKXtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTUwKVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoODApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg0MCk7XG4gICAgfVxufSIsIi5yZXZlYWwtb3ZlcmxheSB7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7XG59XG4jZXJyb3JNb2RhbCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogcmVtLWNhbGMoMjUwKTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKXtcbiAgICAgICAgdG9wOiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbiAgICAmOmZvY3Vze1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgICA+IGRpdiB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgLmVycm9yLXRvcCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAuZXhjbGFtYXRpb24tbWFyayB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEwMCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZXJyb3ItYm90dG9tIHtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMjAgNTApO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoNDUgMTAwKTtcbiAgICAgICAgfVxuICAgICAgICBwIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI1KTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDUwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5zaXRlbWFwIHtcbiAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICA+IGxpIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIH1cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoOCkgMDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeG1lZGl1bSBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRoci1ib3JkZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgID4gdWwgPiBsaSA+IHVsOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgICAgICA+IGxpIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeG1lZGl1bSBkb3duKSB7XG4gICAgICAgID4gdWwgPiBsaSA+IHVsID4gbGkgPiB1bCA+IGxpIHVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgID4gdWwge1xuICAgICAgICA+IGxpLFxuICAgICAgICA+IGxpID4gdWwgPiBsaSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgID4gdWwge1xuICAgICAgICAgICAgPiBsaSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogLW1zLWdyaWQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgICAgICAvLyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEyMHB4IGF1dG87XG4gICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uczogMWZyIDhmciAzZnI7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgOGZyIDNmcjtcbiAgICAgICAgICAgICAgICA+IHVsID4gbGkge1xuICAgICAgICAgICAgICAgICAgICA+IHVsID4gbGkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgbGlzdCBpcyBub3QgbmVzdGVkOlxuICAgICAgICAgICAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPiB1bCA+IGxpLFxuICAgICAgICAgICAgICAgICAgICAgICAgKyBsaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRoci1ib3JkZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBGaXJzdCBsZXZlbCBnZXRzIGl0cyBib3JkZXIgZnJvbSBwc2V1ZG8gZWxlbWVudCA6YWZ0ZXJcbiAgICAgICAgICAgICAgICAgICAgLy8gU28gbm8gYm9yZGVyIGhlcmVcbiAgICAgICAgICAgICAgICAgICAgPiB1bCA+IGxpOmZpcnN0LWNoaWxkID4gYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID4gdWwgPiBsaSA+IHVsIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjc1cmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIEJvcmRlciBmb3IgZmlyc3QgbGV2ZWxcbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDM2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPiB1bCArIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgLW1zLWdyaWQtY29sdW1uOiAyO1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoNTApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgID4gbGkgPiB1bCA+IGxpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAtbXMtZ3JpZDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgIC1tcy1ncmlkLWNvbHVtbnM6IDMwJSA3MCU7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzMCUgNzAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLnJlZ2lzdHJhdGlvbntcbiAgICBoNCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDI0KTtcbiAgICB9XG4gICAgcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDU2KTtcbiAgICB9XG4gICAgLmJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDcwKTtcbiAgICB9XG4gICAgLmdyZXktY29udGVudC1ib3h7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDIyIDM1KTtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMjApO1xuICAgICAgICAubGluay1tb3JlOmxhc3QtY2hpbGR7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygxMSk7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmNvbnRhY3QtZGlyZWN0IHtcbiAgICBhcnRpY2xlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuICAgICAgICA+IHA6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg1MCk7XG4gICAgICAgIH1cbiAgICAgICAgaDQubm9ybWFsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmxvY2F0aW9uLXNsaWRlci13cmFwIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuICAgIC5uYXYtc2xpZGVyLXdyYXAge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg1MCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDM1KTtcbiAgICB9XG4gICAgLnNsaWRlci1uYXZpZ2F0aW9uIHtcbiAgICAgICAgbWF4LXdpZHRoOiByZW0tY2FsYygzODApO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIGRvd24pIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMzgwKTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bWVkaXVtIGRvd24pIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMzEwKTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhtZWRpdW0gb25seSkge1xuICAgICAgICAgICAgLnNsaWNrLWRvdHMge1xuICAgICAgICAgICAgICAgIGxpIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5ldmVudC1kZXRhaWxzIHtcclxuICAgIC5wYWdlLWhlcm8taW1hZ2Uge1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pe1xyXG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGltZSB7XHJcbiAgICAgICAgZGlzcGxheTpibG9jaztcclxuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg2NSk7XHJcbiAgICB9XHJcbiAgICBhcnRpY2xle1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2Upe1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYyg2MCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnRhZy1saXN0IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygxOTApO1xyXG4gICAgfVxyXG4gICAgYXNpZGUge1xyXG4gICAgICAgIGg0ICsgKiB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDM1KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIubmV3cy1saXN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg0MCk7XG4gICAgfVxuICAgIC5jZWxsIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jYXJkLFxuICAgIC50b3AtbmV3cyB7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMXM7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnRvcC1uZXdzIGE6OmJlZm9yZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIC5jYXJkIHtcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg0MjgpO1xuICAgICAgICAuY2FyZC1zZWN0aW9uLFxuICAgICAgICAudGh1bWJuYWlsIHtcbiAgICAgICAgICAgIGhlaWdodDogNTAlO1xuICAgICAgICB9XG4gICAgICAgIGg2IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygyOCk7XG4gICAgICAgIH1cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIC50aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jYXJkLFxuICAgIC50b3AtbmV3cyB7XG4gICAgICAgIC50aHVtYm5haWwge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRkdXJhdGlvbiAkZWFzaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwibGFidy1pY29uXCI7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcXGU5MTVcIjtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciAudGh1bWJuYWlsLCAmOmZvY3VzIC50aHVtYm5haWwgIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjkpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGR1cmF0aW9uICRlYXNpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJGR1cmF0aW9uICRlYXNpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIubmV3cy1kZXRhaWxzIHtcbiAgICBhcnRpY2xlIHtcbiAgICAgICAgdGltZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE1KTtcbiAgICAgICAgfVxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgJi5sZWZ0IHtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDcwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi5yaWdodCB7XG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYyg3MCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHAgPiBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgICAgIHAgKyBhLmxpbmstbW9yZSB7XG4gICAgICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDI1IDAgNTApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5uby1idWxsZXQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cmVtO1xuICAgICAgICBsaSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAkaHItYm9yZGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaDZ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMzApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMS4ycmVtIHJlbS1jYWxjKDMwKSAxLjJyZW0gMDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAxLjJyZW07XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi50YWctbGlzdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cbiIsIi50b3AtbmV3c3tcclxuICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNTApO1xyXG4gICAgaW1ne1xyXG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMzMwKTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgIH1cclxuICAgIC50ZXh0IHtcclxuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYyg2MCAzNSk7XHJcbiAgICAgICAgdGltZXtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDQ1KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLm5ld3MtYXJjaGl2ZSAuY2FyZCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzMCk7XHJcbn0iLCIubW9kdWxlLnR3by1jb2x1bW4tY29udGVudHtcbiAgICBoNHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzMpO1xuICAgIH1cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDUpO1xuICAgIH1cbiAgICAuYm94e1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygyNCkgcmVtLWNhbGMoMjApO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNSk7XG4gICAgICAgICYgKyAuYm94IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDMwKTtcbiAgICAgICAgfVxuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaDYge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzMyk7XG4gICAgfVxufSIsImRpdi51bmRlci1jb25zdHJ1Y3Rpb25ze1xyXG4gICAgbWFyZ2luOiByZW0tY2FsYyg4MCkgYXV0bztcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKXtcclxuICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDE3MCkgYXV0bztcclxuICAgIH1cclxuICAgIGgxe1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMwKTtcclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSl7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDYwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICB1bHtcclxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICAgICAgbGl7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE1KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIubmF2LWRlc2t0b3Age1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMjAwO1xyXG5cclxuICAgIC8vIGZpcnN0IG5hdmlnYXRpb24gbGV2ZWxcclxuICAgIC5tZW51Om5vdCguc3VibWVudSkge1xyXG4gICAgICAgID5saT5hIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDM4KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc2Vjb25kIG5hdmlnYXRpb24gbGV2ZWxcclxuICAgIC5pcy1kcm9wZG93bi1zdWJtZW51e1xyXG4gICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcclxuICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDM2MCk7XHJcbiAgICB9XHJcbiAgICAuc3VibWVudSB7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogcmVtLWNhbGMoMikgc29saWQgJGJsYWNrO1xyXG4gICAgICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xyXG5cclxuICAgICAgICA+bGkge1xyXG4gICAgICAgICAgICArbGkge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogcmVtLWNhbGMoMSkgc29saWQgcmdiYSgkZ3JheSwgLjIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1yaWdodCBhe1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygzNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1sZWZ0IGF7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMzUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxMCAxOCk7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoaXJkIG5hdmlnYXRpb24gbGV2ZWxcclxuICAgIC5zdWJtZW51IC5zdWJtZW51IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygtMik7IC8vIHNhbWUgYXMgYm9yZGVyLXRvcCBvZiBwYXJlbnQgPHVsPlxyXG4gICAgfVxyXG5cclxuICAgIC8vIGlzIHBhcmVudDsgc2V0IGljb25cclxuICAgIC5tZW51IHtcclxuXHJcbiAgICAgICAgPi5vcGVucy1yaWdodCxcclxuICAgICAgICA+Lm9wZW5zLWxlZnQge1xyXG4gICAgICAgICAgICA+YSB7XHJcblxyXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAZXh0ZW5kIFtjbGFzc149XCJpY29uLVwiXTpiZWZvcmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBleHRlbmQgLmljb24tYXJyb3ctbGVmdDpiZWZvcmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygtMTMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogcmVtLWNhbGMoOCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5pcy1hY3RpdmU+YTphZnRlciB7XHJcbiAgICAgICAgICAgIEBleHRlbmQgW2NsYXNzXj1cImljb24tXCJdOmJlZm9yZTtcclxuICAgICAgICAgICAgQGV4dGVuZCAuaWNvbi1hcnJvdy1sZWZ0OmJlZm9yZTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyNCk7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKC0xMyk7XHJcbiAgICAgICAgICAgIHJpZ2h0OiByZW0tY2FsYyg4KTtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubWVudSAubWVudT4uaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQsXHJcbiAgICAubWVudSAubWVudT4uaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtbGVmdCB7XHJcbiAgICAgICAgPmEge1xyXG4gICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIEBleHRlbmQgW2NsYXNzXj1cImljb24tXCJdOmJlZm9yZTtcclxuICAgICAgICAgICAgICAgIEBleHRlbmQgLmljb24tYXJyb3ctcmlnaHQ6YmVmb3JlO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKC0xMyk7XHJcbiAgICAgICAgICAgICAgICB0b3A6IHJlbS1jYWxjKDI0KTtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiByZW0tY2FsYyg4KTtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYygyNCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm1lbnUgLm1lbnU+LmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQ+YTphZnRlciB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcclxuICAgICAgICByaWdodDogYXV0bztcclxuICAgICAgICBsZWZ0OiByZW0tY2FsYyg4KTtcclxuICAgIH1cclxuXHJcbiAgICBsaS5pcy1hY3RpdmU+YSxcclxuICAgIGxpLmlzLWN1cnJlbnQ+YSB7XHJcbiAgICAgICAgY29sb3I6ICRibGFjaztcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi5sYW5ndWFnZS1tZW51e1xuICAgIEBleHRlbmQgLmdsb2JhbC1tZW51O1xuICAgIGEge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYyg4KTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYyg4KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKXtcbiAgICAgICAgbGk6bGFzdC1jaGlsZHtcbiAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIuZ2xvYmFsLW1lbnUge1xuICAgIGEge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCBibGFjaztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgICAgICAgICAgLy8gdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI1MG1zIGVhc2UtaW4tb3V0O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5pY29uLXBob25le1xuICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjMpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogLThweDtcbiAgICAgICAgICAgIHRvcDogMC40cmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5pcy1hY3RpdmUgPiBhe1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSl7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgYmxhY2s7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuYmx1ciB7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDBweCk7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB6LWluZGV4OiAtMTtcblxuICAgIC5uYXZPcGVuICYge1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMnB4KTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuOCk7XG4gICAgICAgIHotaW5kZXg6IDIwMDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAkZHVyYXRpb24gJGVhc2luZywgYmFja2Ryb3AtZmlsdGVyICRkdXJhdGlvbiAkZWFzaW5nO1xuICAgIH1cbn1cblxuLm1lbnUtb3BlbiB7XG4gICAgd2lkdGg6IHJlbS1jYWxjKDQzKTtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDQzKTtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2s7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IHJlbS1jYWxjKDQwKTtcbiAgICByaWdodDogcmVtLWNhbGMoMjApO1xuICAgIHotaW5kZXg6IDUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBleHRlbmQgW2NsYXNzXj1cImljb24tXCJdOmJlZm9yZTtcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1tZW51OmJlZm9yZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgbWFyZ2luOiAuNjUycmVtO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIzKTtcblxuICAgICAgICAubmF2T3BlbiAmIHtcbiAgICAgICAgICAgIEBleHRlbmQgLmljb24tY2xvc2U6YmVmb3JlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDY1KTtcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg2NSk7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzNyk7XG4gICAgICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm5hdi1tb2JpbGUge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogLTE1MHZ3O1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiA0MDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgLm5hdk9wZW4gJiB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiByaWdodCAkZHVyYXRpb24gJGVhc2luZztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDM4NSk7XG4gICAgfVxuXG4gICAgLmRyaWxsZG93biB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDE5KTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygxOSk7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYyg2MCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICA+bGk6bm90KC5nbG9iYWwtbmF2cyksXG4gICAgICAgIC5pcy1kcmlsbGRvd24tc3VibWVudS1pdGVtIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHJlbS1jYWxjKDEpIHNvbGlkIHJnYmEoJGJsYWNrLCAuMzUpO1xuXG4gICAgICAgICAgICAmLmlzLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgID5hIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPmxpLm5hdi1tb2JpbGUtbG9nbyB7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IHJlbS1jYWxjKDIpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmxhY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtaXRlbT5hIHtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygxOCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygxOCk7XG4gICAgfVxuXG4gICAgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgICAgID5hIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBleHRlbmQgW2NsYXNzXj1cImljb24tXCJdOmJlZm9yZTtcbiAgICAgICAgICAgICAgICBAZXh0ZW5kIC5pY29uLWFycm93LXJpZ2h0OmJlZm9yZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI2KTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDI4cHg7XG4gICAgICAgICAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDEzcHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgPmRpdj51bD5saT5hIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgfVxuXG4gICAgLmpzLWRyaWxsZG93bi1iYWNrIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDEwIDI1KTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtLWNhbGMoMikgc29saWQgJGJsYWNrO1xuXG4gICAgICAgIC5tb2JpbGUtYnJlYWRjcnVtYi1wYXJlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTAgMjUgMTAgMzApO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCBbY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlO1xuICAgICAgICAgICAgICAgIEBleHRlbmQgLmljb24tYXJyb3ctbGVmdDpiZWZvcmU7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyNCk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGxlZnQ6IHJlbS1jYWxjKC02KTtcbiAgICAgICAgICAgICAgICB0b3A6IGNhbGMoNTAlIC0gMTJweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubW9iaWxlLWJyZWFkY3J1bWIge1xuICAgICAgICBpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5pcy1zdWJtZW51LXBhcmVudC1pdGVte1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLm5hdi1tb2JpbGUtbG9nbyB7XG4gICAgYm9yZGVyLWJvdHRvbTogcmVtLWNhbGMoMikgc29saW9kICRibGFjaztcblxuICAgIGltZyB7XG4gICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMjAwKTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygyNSk7XG4gICAgfVxufVxuXG4uZ2xvYmFsLW5hdnMge1xuICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMjUpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDI1KTtcblxuICAgIGEge1xuXG4gICAgICAgICY6YWZ0ZXIsXG4gICAgICAgICY6aG92ZXI6YWZ0ZXIsXG4gICAgICAgICY6Zm9jdXM6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmdsb2JhbC1tZW51IHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxMCAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pY29uLXBob25lIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgbGVmdDogcmVtLWNhbGMoLTMpO1xuICAgICAgICAgICAgICAgIHRvcDogcmVtLWNhbGMoNSk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubGFuZ3VhZ2UtbWVudSB7XG4gICAgICAgIGxpK2xpIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYyg4KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn0iLCJAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJCdWVub3MgQWlyZXNcIjtcbiAgICBzcmM6IHVybChcIi9hc3NldHMvZm9udHMvQnVlbm9zQWlyZXNXZWItQm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICAgICAgdXJsKFwiL2Fzc2V0cy9mb250cy9CdWVub3NBaXJlc1dlYi1Cb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIkJ1ZW5vcyBBaXJlc1wiO1xuICAgIHNyYzogdXJsKFwiL2Fzc2V0cy9mb250cy9CdWVub3NBaXJlc1dlYi1Cb29rLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICAgICAgICB1cmwoXCIvYXNzZXRzL2ZvbnRzL0J1ZW5vc0FpcmVzV2ViLUJvb2sud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiQnVlbm9zIEFpcmVzXCI7XG4gICAgc3JjOiB1cmwoXCIvYXNzZXRzL2ZvbnRzL0J1ZW5vc0FpcmVzV2ViLUJvb2tJdGFsaWMud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksXG4gICAgICAgIHVybChcIi9hc3NldHMvZm9udHMvQnVlbm9zQWlyZXNXZWItQm9va0l0YWxpYy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG4iLCIvLyBDdXN0b20gcmFkaW8gYnV0dG9ucyBhbmQgY2hlY2tib3hlc1xuW3R5cGU9XCJyYWRpb1wiXSxcblt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgKyBsYWJlbHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzMCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTAgMCAwIDQ1KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMzApO1xuICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDMwKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwcHggMXB4ICRncmF5O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAkZHVyYXRpb24gJGVhc2luZztcbiAgICAgICAgfVxuICAgICAgICAvLyAmOmhvdmVyOmJlZm9yZSxcbiAgICAgICAgLy8gJjpmb2N1czpiZWZvcmV7XG4gICAgICAgIC8vICAgICBiYWNrZ3JvdW5kOiAjZjJmMmYyO1xuICAgICAgICAvLyAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAkZHVyYXRpb24gJGVhc2luZztcbiAgICAgICAgLy8gfVxuICAgIH1cbiAgICAmOmNoZWNrZWQgKyBsYWJlbHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAvLyAmOmhvdmVyOmJlZm9yZSxcbiAgICAgICAgLy8gJjpmb2N1czpiZWZvcmUsXG4gICAgICAgICY6YmVmb3Jle1xuICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMHB4IDEwcHggJGJsYWNrO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAkZHVyYXRpb24gJGVhc2luZywgYmFja2dyb3VuZCAkZHVyYXRpb24gJGVhc2luZztcbiAgICAgICAgfVxuICAgIH1cbiAgICAmOmRpc2FibGVke1xuICAgICAgICArIGxhYmVse1xuICAgICAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNFOEVCRUM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIHJhZGlvIGJ1dHRvblxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgKyBsYWJlbHtcbiAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLy9jaGVja2JveFxuW3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgKyBsYWJlbDphZnRlcntcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246b3BhY2l0eSAkZGVsYXkgJGR1cmF0aW9uICRlYXNpbmc7XG4gICAgfVxuICAgICY6Y2hlY2tlZCArIGxhYmVse1xuICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIHJlbS1jYWxjKDE1KSAkYmxhY2s7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93ICRkdXJhdGlvbiAkZWFzaW5nLCBiYWNrZ3JvdW5kICRkdXJhdGlvbiAkZWFzaW5nO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXJ7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGJsYWNrO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHJlbS1jYWxjKDMpIHNvbGlkIHdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtLWNhbGMoMykgc29saWQgd2hpdGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IHJlbS1jYWxjKDE5KTtcbiAgICAgICAgICAgIGxlZnQ6IHJlbS1jYWxjKDgpO1xuICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDE1KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoOCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOm9wYWNpdHkgJGRlbGF5ICRkdXJhdGlvbiAkZWFzaW5nO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFwibGFidy1pY29uXCI7XG4gICAgc3JjOlxuICAgICAgICB1cmwoJy9hc3NldHMvaWNvbnMvbGFidy1pY29uZm9udC50dGY/eXd0cGp0JykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICB1cmwoJy9hc3NldHMvaWNvbnMvbGFidy1pY29uZm9udC53b2ZmP3l3dHBqdCcpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICB1cmwoJy9hc3NldHMvaWNvbnMvbGFidy1pY29uZm9udC5zdmc/eXd0cGp0I2xhYnctaWNvbmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtZGlzcGxheTogYmxvY2s7XG59XG5cbltjbGFzc149XCJpY29uLVwiXTpiZWZvcmUsIFtjbGFzcyo9XCJpY29uLVwiXTpiZWZvcmUge1xuICAgIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gICAgZm9udC1mYW1pbHk6IFwibGFidy1pY29uXCIgIWltcG9ydGFudDtcbiAgICBzcGVhazogbm9uZTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi5pY29uLWFzdGVyaXNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTIwXCI7XG59XG4uaWNvbi1wbHVzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MDBcIjtcbn1cbi5pY29uLWF0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MDFcIjtcbn1cbi5pY29uLWNhbGVuZGFyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MDJcIjtcbn1cbi5pY29uLWNoZWNrOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MDNcIjtcbn1cbi5pY29uLWNsb3NlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MDRcIjtcbn1cbi5pY29uLWRvdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTA1XCI7XG59XG4uaWNvbi1hcnJvdy1kb3duLWZhdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTA2XCI7XG59XG4uaWNvbi1kb3dubG9hZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTA3XCI7XG59XG4uaWNvbi1leHRlcm5hbGxpbms6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkwOFwiO1xufVxuLmljb24tZmFjZWJvb2s6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkwOVwiO1xufVxuLmljb24taW5mb3JtYXRpb246YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkwYVwiO1xufVxuLmljb24taW5zdGFncmFtOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MGJcIjtcbn1cbi5pY29uLWFycm93LWxlZnQtZmF0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MGNcIjtcbn1cbi5pY29uLWFycm93LWxlZnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkwZFwiO1xufVxuLmljb24tbWFuZGF0b3J5OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MGVcIjtcbn1cbi5pY29uLW1lbnU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkwZlwiO1xufVxuLmljb24tbW9yZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTEwXCI7XG59XG4uaWNvbi1waG9uZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTExXCI7XG59XG4uaWNvbi1wb2ludGVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MTJcIjtcbn1cbi5pY29uLXJlbW92ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTEzXCI7XG59XG4uaWNvbi1hcnJvdy1yaWdodC1mYXQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkxNFwiO1xufVxuLmljb24tYXJyb3ctcmlnaHQtbG9uZzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTE1XCI7XG59XG4uaWNvbi1hcnJvdy1yaWdodDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTE2XCI7XG59XG4uaWNvbi1yc3M6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkxN1wiO1xufVxuLmljb24tc2VhcmNoOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MThcIjtcbn1cbi5pY29uLXNoYXJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MTlcIjtcbn1cbi5pY29uLXNsaWRlcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTFhXCI7XG59XG4uaWNvbi1zeW5jOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MWJcIjtcbn1cbi5pY29uLWFycndvLXVwLWZhdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTFjXCI7XG59XG4uaWNvbi10d2l0dGVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MWRcIjtcbn1cbi5pY29uLWFycm93LXVwOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MWVcIjtcbn1cbi5pY29uLXhpbmc6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkxZlwiO1xufVxuLmljb24teW91dHViZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTIxXCI7XG59XG4iLCIuYnV0dG9ue1xyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXN7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRidXR0b24tcGFsZXR0ZSwgcHJpbWFyeSk7XHJcbiAgICAgICAgY29sb3I6IG1hcC1nZXQoJGJ1dHRvbi1wYWxldHRlLCBwcmltYXJ5KTtcclxuICAgIH1cclxuICAgICYucHJpbWFyeXtcclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXN7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkYnV0dG9uLXBhbGV0dGUsIHByaW1hcnkpO1xyXG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkYnV0dG9uLXBhbGV0dGUsIHByaW1hcnkpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAgd2hpdGVcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLnNlY29uZGFyeXtcclxuICAgICAgICBjb2xvcjogJGJsYWNrO1xyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1c3tcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOm1hcC1nZXQoJGJ1dHRvbi1wYWxldHRlLCBzZWNvbmRhcnkpO1xyXG4gICAgICAgICAgICBjb2xvcjptYXAtZ2V0KCRidXR0b24tcGFsZXR0ZSwgc2Vjb25kYXJ5KTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIHdoaXRlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi5hbGVydHtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3Vze1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6bWFwLWdldCgkYnV0dG9uLXBhbGV0dGUsIGFsZXJ0KTtcclxuICAgICAgICAgICAgY29sb3I6bWFwLWdldCgkYnV0dG9uLXBhbGV0dGUsIGFsZXJ0KTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIHdoaXRlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi5zdWNjZXNze1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXN7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjptYXAtZ2V0KCRidXR0b24tcGFsZXR0ZSwgc3VjY2Vzcyk7XHJcbiAgICAgICAgICAgIGNvbG9yOm1hcC1nZXQoJGJ1dHRvbi1wYWxldHRlLCBzdWNjZXNzKTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIHdoaXRlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi53YXJuaW5ne1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXN7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjptYXAtZ2V0KCRidXR0b24tcGFsZXR0ZSwgd2FybmluZyk7XHJcbiAgICAgICAgICAgIGNvbG9yOm1hcC1nZXQoJGJ1dHRvbi1wYWxldHRlLCB3YXJuaW5nKTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIHdoaXRlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi5ob2xsb3csXHJcbiAgICAmLmhvbGxvdy5wcmltYXJ5e1xyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1c3tcclxuICAgICAgICAgICAgY29sb3I6d2hpdGU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6bWFwLWdldCgkYnV0dG9uLXBhbGV0dGUsIHByaW1hcnkpXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi5ob2xsb3cuc2Vjb25kYXJ5e1xyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1c3tcclxuICAgICAgICAgICAgY29sb3I6d2hpdGU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6bWFwLWdldCgkYnV0dG9uLXBhbGV0dGUsIHNlY29uZGFyeSk7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjptYXAtZ2V0KCRidXR0b24tcGFsZXR0ZSwgc2Vjb25kYXJ5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLmxhcmdle1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDI1MCk7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDYwKTtcclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKXtcclxuICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDM4MCk7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYyg5MCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6YmVmb3Jle1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygxMCk7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgdG9wOiByZW0tY2FsYygyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJi5pY29uLXBob25lOmJlZm9yZXtcclxuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyNSk7XHJcbiAgICAgICAgICAgIHRvcDogcmVtLWNhbGMoNyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBkYXRlcyB0b2dnbGUgYnV0dG9ucyBvbiBcInRlcm1pbmVcIlxyXG4uZGF0ZXMtYnV0dG9uIGJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDUpO1xyXG59XHJcbi5kYXRlcy1idXR0b24gYnV0dG9uOmxhc3QtY2hpbGQge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiByZW0tY2FsYygwKTtcclxufVxyXG4uZGF0ZXMtYnV0dG9uIGJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsXHJcbi5kYXRlcy1idXR0b24gYnV0dG9uLnNlY29uZGFyeTpmb2N1c3tcclxuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG59IiwiLy8gR2xvYmFsIHN0eWxlc1xyXG5cclxuLy9IZWFkaW5nc1xyXG5oMTpub3QoLmgwKSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxOCk7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDUwKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBAZXh0ZW5kIFtjbGFzc149XCJpY29uLVwiXTpiZWZvcmU7XHJcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1hc3RlcmlzazpiZWZvcmU7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjYyNXJlbTtcclxuICAgICAgICBmb250LXNpemU6IDFyZW07XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42MjVyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5oMixcclxuaDUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApO1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjMpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzNSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5ub3JtYWwge1xyXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxufVxyXG5cclxuLml0YWxpYyB7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbnNlY3Rpb24ubW9kdWxlIHtcclxuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMwKTtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNjApO1xyXG4gICAgfVxyXG59XHJcblxyXG5hZGRyZXNzIHtcclxuICAgIGZvbnQtc3R5bGU6IGluaGVyaXQ7XHJcbn1cclxuXHJcbi5sYWJlbCB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBjb2xvcjogJGJsYWNrO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgICBwYWRkaW5nOiAwIDFyZW07XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxMyk7XHJcbiAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjgpO1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeG1lZGl1bSkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzNik7XHJcblxyXG4gICAgICAgICYuc21hbGwge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDI4KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5wYWdlLWNvbnRlbnQge1xyXG4gICAgaDEucGFnZS1oZWFkaW5nOmFmdGVyIHtcclxuICAgICAgICBAZXh0ZW5kIC5pY29uLWFzdGVyaXNrOmJlZm9yZTtcclxuICAgICAgICBAZXh0ZW5kIFtjbGFzc149XCJpY29uLVwiXTpiZWZvcmU7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjY1cmVtO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBzdXBlcjtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMC42NTJyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi53cmFwIHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG5cclxuICAgIC5zaWRlYmFyIHtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5pY29uLWU6YWZ0ZXIge1xyXG4gICAgQGV4dGVuZCBbY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlO1xyXG4gICAgQGV4dGVuZCAuaWNvbi1leHRlcm5hbGxpbms6YmVmb3JlO1xyXG4gICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XHJcbn1cclxuXHJcbi5wb3MtcmVsIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmJhY2stbGluayB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg0Nyk7XHJcblxyXG4gICAgYTpiZWZvcmUge1xyXG4gICAgICAgIEBleHRlbmQgW2NsYXNzXj1cImljb24tXCJdOmJlZm9yZTtcclxuICAgICAgICBAZXh0ZW5kIC5pY29uLWFycm93LWxlZnQtZmF0OmJlZm9yZTtcclxuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB0b3A6IDAuMjVyZW07XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgIH1cclxufVxyXG5cclxuZmlndXJlIHtcclxuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHhtZWRpdW0pIHtcclxuICAgICAgICAmLmZsb2F0LWxlZnQtbGFyZ2UsXHJcbiAgICAgICAgJi5mbG9hdC1yaWdodC1sYXJnZSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XHJcblxyXG4gICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuZmxvYXQtbGVmdC1sYXJnZSB7XHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMnJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuZmxvYXQtcmlnaHQtbGFyZ2Uge1xyXG4gICAgICAgICAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZpZ2NhcHRpb24ge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygxMCk7XHJcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5wYWdlLWhlYWRpbmcgaDEuaDIge1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG4ucGFnZS1oZXJvIC5iYWNrLWxpbmsge1xyXG4gICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMzUpO1xyXG59XHJcbi8vIExpbmsgU3R5bGVzXHJcbi5saW5rLW1vcmUgPiBhLFxyXG5hLmxpbmstbW9yZSxcclxuLmxpbmstZG93bmxvYWQgPiBhLFxyXG5hLmxpbmstZG93bmxvYWQsXHJcbi5saW5rLWV4dGVybmFsID4gYSxcclxuYS5saW5rLWV4dGVybmFsIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIEBleHRlbmQgW2NsYXNzXj1cImljb24tXCJdOmJlZm9yZTtcclxuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoMTApO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB0b3A6IHJlbS1jYWxjKDQpO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxufVxyXG5hLmxpbmstbW9yZSxcclxuYS5saW5rLWRvd25sb2FkLFxyXG5hLmxpbmstZXh0ZXJuYWwge1xyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIH1cclxufVxyXG4ubGluay1tb3JlID4gYSxcclxuLmxpbmstZG93bmxvYWQgPiBhLFxyXG4ubGluay1leHRlcm5hbCA+IGEge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgfVxyXG59XHJcbi5saW5rLW1vcmUgPiBhLFxyXG5hLmxpbmstbW9yZSB7XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBAZXh0ZW5kIC5pY29uLWFycm93LXJpZ2h0LWxvbmc6YmVmb3JlO1xyXG4gICAgfVxyXG59XHJcblxyXG4ubGluay1kb3dubG9hZCA+IGEsXHJcbmEubGluay1kb3dubG9hZCB7XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBAZXh0ZW5kIC5pY29uLWRvd25sb2FkOmJlZm9yZTtcclxuICAgIH1cclxufVxyXG5cclxuLnJlc3VsdC1leHRlcm5hbCBhOmFmdGVyLFxyXG4ubGluay1leHRlcm5hbCBhOmFmdGVyIHtcclxuICAgIEBleHRlbmQgLmljb24tZXh0ZXJuYWxsaW5rOmJlZm9yZTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyNCk7XHJcbiAgICB0b3A6IDAuOXJlbTtcclxufVxyXG5cclxuYXJ0aWNsZSBhIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgJjphZnRlcixcclxuICAgICYubGluay1tb3JlOmFmdGVyIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMC4yMjVyZW07XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxuICAgICYubGluay1kb3dubG9hZDphZnRlciB7XHJcbiAgICAgICAgQGV4dGVuZCBbY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlO1xyXG4gICAgICAgIEBleHRlbmQgLmljb24tZG93bmxvYWQ6YmVmb3JlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgfVxyXG4gICAgJi5saW5rLWV4dGVybmFsOmFmdGVyIHtcclxuICAgICAgICBAZXh0ZW5kIFtjbGFzc149XCJpY29uLVwiXTpiZWZvcmU7XHJcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1leHRlcm5hbGxpbms6YmVmb3JlO1xyXG4gICAgfVxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMsXHJcbiAgICAmLmxpbmstbW9yZTpob3ZlcixcclxuICAgICYubGluay1tb3JlOmZvY3VzIHtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuIiwiLy8gY29va2llY29uc2VudCBAIHYzXG4uY2Mtd2luZG93IHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAxcyBlYXNlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMXMgZWFzZVxufVxuXG4uY2Mtd2luZG93LmNjLWludmlzaWJsZSB7XG4gICAgb3BhY2l0eTogMFxufVxuXG4uY2MtYW5pbWF0ZS5jYy1yZXZva2Uge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogdHJhbnNmb3JtIDFzIGVhc2U7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAxcyBlYXNlO1xuICAgIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDFzIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDFzIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDFzIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDFzIGVhc2Vcbn1cblxuLmNjLWFuaW1hdGUuY2MtcmV2b2tlLmNjLXRvcCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJlbSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yZW0pXG59XG5cbi5jYy1hbmltYXRlLmNjLXJldm9rZS5jYy1ib3R0b20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDJlbSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDJlbSlcbn1cblxuLmNjLWFuaW1hdGUuY2MtcmV2b2tlLmNjLWFjdGl2ZS5jYy10b3Age1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKVxufVxuXG4uY2MtYW5pbWF0ZS5jYy1yZXZva2UuY2MtYWN0aXZlLmNjLWJvdHRvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApXG59XG5cbi5jYy1yZXZva2U6aG92ZXIsIC5jYy1yZXZva2U6Zm9jdXMge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKVxufVxuXG4uY2MtZ3Jvd2VyIHtcbiAgICBtYXgtaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDFzO1xuICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMXNcbn1cblxuLmNjLXJldm9rZSxcbi5jYy13aW5kb3cge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIENhbGlicmksIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgei1pbmRleDogOTk5OVxufVxuXG4uY2Mtd2luZG93LmNjLXN0YXRpYyB7XG4gICAgcG9zaXRpb246IHN0YXRpY1xufVxuXG4uY2Mtd2luZG93LmNjLWZsb2F0aW5nIHtcbiAgICBwYWRkaW5nOiAyZW07XG4gICAgbWF4LXdpZHRoOiAyNGVtO1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtblxufVxuXG4uY2Mtd2luZG93LmNjLWJhbm5lciB7XG4gICAgcGFkZGluZzogMWVtIDEuOGVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93XG59XG5cbi5jYy1yZXZva2Uge1xuICAgIHBhZGRpbmc6IC41ZW1cbn1cblxuLmNjLXJldm9rZTpob3ZlciwgLmNjLXJldm9rZTpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcbn1cblxuLmNjLWhlYWRlciB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDBcbn1cblxuLmNjLWNsb3NlLFxuLmNjLWxpbmssXG4uY2MtcmV2b2tlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXJcbn1cblxuLmNjLWxpbmsge1xuICAgIG9wYWNpdHk6IC44O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAuMmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXG59XG5cbi5jYy1saW5rOmhvdmVyLCAuY2MtbGluazpmb2N1cyB7XG4gICAgb3BhY2l0eTogMVxufVxuXG4uY2MtbGluazphY3RpdmUsXG4uY2MtbGluazp2aXNpdGVkIHtcbiAgICBjb2xvcjogaW5pdGlhbFxufVxuXG4uY2MtY2xvc2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC41ZW07XG4gICAgcmlnaHQ6IC41ZW07XG4gICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICBvcGFjaXR5OiAuOTtcbiAgICBsaW5lLWhlaWdodDogLjc1XG59XG5cbi5jYy1jbG9zZTpmb2N1cyxcbi5jYy1jbG9zZTpob3ZlciB7XG4gICAgb3BhY2l0eTogMVxufVxuXG4uY2MtcmV2b2tlLmNjLXRvcCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDNlbTtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAuNWVtO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAuNWVtXG59XG5cbi5jYy1yZXZva2UuY2MtYm90dG9tIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogM2VtO1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IC41ZW07XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IC41ZW1cbn1cblxuLmNjLXJldm9rZS5jYy1sZWZ0IHtcbiAgICBsZWZ0OiAzZW07XG4gICAgcmlnaHQ6IHVuc2V0XG59XG5cbi5jYy1yZXZva2UuY2MtcmlnaHQge1xuICAgIHJpZ2h0OiAzZW07XG4gICAgbGVmdDogdW5zZXRcbn1cbi5jYy1yZXZva2UuY2MtYm90dG9tLmNjLXJpZ2h0e1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuLmNjLXRvcCB7XG4gICAgdG9wOiAxZW1cbn1cblxuLmNjLWxlZnQge1xuICAgIGxlZnQ6IDFlbVxufVxuXG4uY2MtcmlnaHQge1xuICAgIHJpZ2h0OiAxZW1cbn1cblxuLmNjLWJvdHRvbSB7XG4gICAgYm90dG9tOiAxZW1cbn1cblxuLmNjLWZsb2F0aW5nPi5jYy1saW5rIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW1cbn1cblxuLmNjLWZsb2F0aW5nIC5jYy1tZXNzYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxZW1cbn1cblxuLmNjLXdpbmRvdy5jYy1mbG9hdGluZyAuY2MtY29tcGxpYW5jZSB7XG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcbiAgICAtbXMtZmxleDogMSAwIGF1dG87XG4gICAgZmxleDogMSAwIGF1dG9cbn1cblxuLmNjLXdpbmRvdy5jYy1iYW5uZXIge1xuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XG4gICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyXG59XG5cbi5jYy1iYW5uZXIuY2MtdG9wIHtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMFxufVxuXG4uY2MtYmFubmVyLmNjLWJvdHRvbSB7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDBcbn1cblxuLmNjLWJhbm5lciAuY2MtbWVzc2FnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcbiAgICAtbXMtZmxleDogMSAxIGF1dG87XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMWVtXG59XG5cbi5jYy1jb21wbGlhbmNlIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XG4gICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC1tcy1mbGV4LWxpbmUtcGFjazoganVzdGlmeTtcbiAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuXG59XG5cbkBtZWRpYSBwcmludCB7XG5cbiAgICAuY2MtcmV2b2tlLFxuICAgIC5jYy13aW5kb3cge1xuICAgICAgICBkaXNwbGF5OiBub25lXG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQxNHB4KSBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KSxcbnNjcmVlbiBhbmQgKG1heC13aWR0aDo3MzZweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpIHtcbiAgICAuY2Mtd2luZG93LmNjLXRvcCB7XG4gICAgICAgIHRvcDogMFxuICAgIH1cblxuICAgIC5jYy13aW5kb3cuY2MtYm90dG9tIHtcbiAgICAgICAgYm90dG9tOiAwXG4gICAgfVxuXG4gICAgLmNjLXdpbmRvdy5jYy1iYW5uZXIsXG4gICAgLmNjLXdpbmRvdy5jYy1mbG9hdGluZyxcbiAgICAuY2Mtd2luZG93LmNjLWxlZnQsXG4gICAgLmNjLXdpbmRvdy5jYy1yaWdodCB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwXG4gICAgfVxuXG4gICAgLmNjLXdpbmRvdy5jYy1iYW5uZXIge1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cbiAgICB9XG5cbiAgICAuY2Mtd2luZG93LmNjLWJhbm5lciAuY2MtY29tcGxpYW5jZSB7XG4gICAgICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XG4gICAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcbiAgICAgICAgZmxleDogMSAxIGF1dG9cbiAgICB9XG5cbiAgICAuY2Mtd2luZG93LmNjLWZsb2F0aW5nIHtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lXG4gICAgfVxuXG4gICAgLmNjLXdpbmRvdyAuY2MtbWVzc2FnZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbVxuICAgIH1cblxuICAgIC5jYy13aW5kb3cuY2MtYmFubmVyIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IHVuc2V0O1xuICAgICAgICAtbXMtZmxleC1hbGlnbjogdW5zZXQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiB1bnNldFxuICAgIH1cblxuICAgIC5jYy13aW5kb3cuY2MtYmFubmVyIC5jYy1tZXNzYWdlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwXG4gICAgfVxufVxuXG4uY2MtZmxvYXRpbmcuY2MtdGhlbWUtY2xhc3NpYyB7XG4gICAgcGFkZGluZzogMS4yZW07XG4gICAgYm9yZGVyLXJhZGl1czogNXB4XG59XG5cbi5jYy1mbG9hdGluZy5jYy10eXBlLWluZm8uY2MtdGhlbWUtY2xhc3NpYyAuY2MtY29tcGxpYW5jZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xuICAgIC1tcy1mbGV4OiBub25lO1xuICAgIGZsZXg6IG5vbmVcbn1cblxuLmNjLXRoZW1lLWVkZ2VsZXNzLmNjLXdpbmRvdyB7XG4gICAgcGFkZGluZzogMFxufVxuXG4uY2MtZmxvYXRpbmcuY2MtdGhlbWUtZWRnZWxlc3MgLmNjLW1lc3NhZ2Uge1xuICAgIG1hcmdpbjogMmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNWVtXG59XG5cbi5jYy1iYW5uZXIuY2MtdGhlbWUtZWRnZWxlc3MgLmNjLW1lc3NhZ2Uge1xuICAgIG1hcmdpbi1sZWZ0OiAxZW1cbn1cblxuLy8gY3VzdG9tIHN0eWxlXG4uY2MtcmV2b2tlLFxuLmNjLXdpbmRvdyxcbi5jYy1yZXZva2UgKixcbi5jYy13aW5kb3cgKiB7XG4gICAgZm9udDogaW5oZXJpdDtcbn1cblxuLmNjLXdpbmRvdzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIC42KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMnB4KTtcbn1cblxuLmNjLXdpbmRvdy5jYy1mbG9hdGluZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiByZW0tY2FsYyg2MzApO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5jYy1mbG9hdGluZyB7XG5cbiAgICAuY2MtbWVzc2FnZSxcbiAgICAuY2MtbGluayxcbiAgICAuY2MtY29tcGxpYW5jZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4uY2MtbWVzc2FnZSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBwYWRkaW5nOiByZW0tY2FsYygzNSA2MCAwKTtcbn1cblxuLmNjLWFuaW1hdGUuY2MtcmV2b2tlLmNjLWJvdHRvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4uY2MtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiByZW0tY2FsYyg2MCk7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzUpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5jYy1saW5rIHtcbiAgICBwYWRkaW5nOiByZW0tY2FsYygxNSA2MCk7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG59XG5cbi5jYy1mbG9hdGluZyAuY2MtY29tcGxpYW5jZSB7XG4gICAgcGFkZGluZzogcmVtLWNhbGMoMCA2MCAzNSk7XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGZsZXg6IG5vbmU7XG5cbiAgICAgICAgKy5idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNjLXJldm9rZS5jYy1ib3R0b20ge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm94LXNoYWRvdzogJGJveC1zaGFkb3c7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxMCk7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgcmlnaHQ6IHJlbS1jYWxjKDIwKTtcbn1cblxuLmNjLWJvdHRvbSB7XG4gICAgYm90dG9tOiAwO1xufVxuXG4uY2MtcmlnaHQge1xuICAgIHJpZ2h0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSk7XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgZG93bikge1xuICAgIC5jYy1tZXNzYWdlIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgfVxuXG4gICAgLmNjLWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygzMCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygzMCk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjUpO1xuICAgIH1cblxuICAgIC5jYy1saW5rIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgfVxuXG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxNHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCksXG5zY3JlZW4gYW5kIChtYXgtd2lkdGg6IDczNnB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAuY2MtcmlnaHQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgfVxuXG4gICAgLmNjLW1lc3NhZ2Uge1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxNSk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICAgIH1cblxuICAgIC5jYy1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxNSk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgIH1cblxuICAgIC5jYy1saW5rIHtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMCAxNSAxNSk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICAgIH1cblxuICAgIC5jYy1mbG9hdGluZyAuY2MtY29tcGxpYW5jZSB7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDAgMTUgMTUpO1xuICAgIH1cbn0iLCJAbWVkaWEgcHJpbnQge1xyXG4gICAgQHBhZ2Uge1xyXG4gICAgICAgIG1hcmdpbjogMWNtO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEhpZGUgZWxlbWVudHNcclxuICAgICNoZWFkZXIgKiwuaGVyby1zbGlkZXIsLnNlYXJjaC13cmFwLCAuZm9vdGVyLW1lbnUsIC5jYWxlbmRhci1vcGVuLFxyXG4gICAgLm5hdi1zbGlkZXItd3JhcCwgLmZpbHRlci13aWRnZXQtd3JhcCwgLnBhZ2luYXRpb24sIC5oZXJvLWltYWdlLFxyXG4gICAgLnNsaWNrLWRvdHMsIC5zbGljay1hcnJvdywgLnNsaWNrLWNvdW50ZXIsIC5iYWNrLWxpbmssIC5jYXJkLXNlY3Rpb246YmVmb3JlLFxyXG4gICAgLnRodW1ibmFpbDpiZWZvcmUsIC50YWJzLWFsaWduLCAuZmlsdGVyLCAjZmlsdGVyVGFncywgLmRhdGVzLWJ1dHRvbiwgLmNhbGVuZGFyLXdyYXAsXHJcbiAgICAucGFnZS1oZXJvIC5oZXJvLXdyYXAuaGVyby1sZWZ0IGFzaWRlLmFzaWRlLWxlZnR7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGZvcm1hdCBlbGVtdGVucyBmb3IgcHJpbnRvdXRcclxuICAgICosICo6YWZ0ZXIsICo6YmVmb3Jle1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcclxuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcclxuICAgICAgICBib3JkZXItY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgLmNhcmQtbGluay1saXN0IC5jYXJkLXNlY3Rpb24sXHJcbiAgICAuZ3JleS1jb250ZW50LWJveHtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcclxuICAgIH1cclxuICAgIC5sYWJlbHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBibGFjayAhaW1wb3J0YW50O1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgLmhlcm8td3JhcC5oZXJvLWxlZnR7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYWRkIGhyZWYgdG8gbGlua1xyXG4gICAgYS5saW5rLW1vcmU6YWZ0ZXIsXHJcbiAgICAubGluay1tb3JlIGE6YWZ0ZXIsXHJcbiAgICBhLmxpbmstZXh0ZXJuYWw6YWZ0ZXIsXHJcbiAgICAubGluay1leHRlcm5hbCBhOmFmdGVyLFxyXG4gICAgYXJ0aWNsZSBhLmxpbmstZXh0ZXJuYWw6YWZ0ZXIsXHJcbiAgICBhLmxpbmstZG93bmxvYWQ6YWZ0ZXIsXHJcbiAgICAubGluay1kb3dubG9hZCBhOmFmdGVyLFxyXG4gICAgYXJ0aWNsZSBhLmxpbmstZG93bmxvYWQ6YWZ0ZXIsXHJcbiAgICAuc2l0ZW1hcCBhOmFmdGVyLFxyXG4gICAgLnJlc3VsdC1pbWFnZSBhOmFmdGVyLFxyXG4gICAgLnJlc3VsdC10ZXh0IGE6YWZ0ZXJ7XHJcbiAgICAgICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCIgIWltcG9ydGFudDtcclxuICAgICAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWltcG9ydGFudDtcclxuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWMgIWltcG9ydGFudDtcclxuICAgICAgICBmb250LXNpemU6IDkwJSAhaW1wb3J0YW50O1xyXG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcclxuICAgICAgICB0b3A6IGF1dG8gIWltcG9ydGFudDtcclxuICAgICAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIG5ld3NcclxuICAgIC5uZXdzIC5jb250ZW50e1xyXG4gICAgICAgIC5tZWRpYS1vYmplY3R7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5uZXdzLWxpc3R7XHJcbiAgICAgICAgLnRvcC1uZXdze1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdGl0bGUgZ3JpZFxyXG4gICAgLnRpbGUtZ3JpZHtcclxuICAgICAgICAuY2VsbHtcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XHJcbiAgICAgICAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIiAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDkwJTtcclxuICAgICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBob3Jpem9udGFsIGFjY29yZGlvblxyXG4gICAgLmFjY29yZGlvbi1zcGVjaWFsIC5hY2NvcmRpb24taG9yaXpvbnRhbHtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgLmFjYy10YWJze1xyXG4gICAgICAgICAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgJjpudGgtY2hpbGQob2RkKXtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDQlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pe1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0JTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLmFjdGl2ZSBoNHtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAudGFiLWxpbmtze1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gICAgICAgICAgICAgICAgd3JpdGluZy1tb2RlOiB1bnNldDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAucGFyYWdyYXBoe1xyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgICAgICAuY29udGVudC1jYXJke1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgLmNvbnRlbnR7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpbWd7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGg2e1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIGRlZmF1bHQgYWNjb3JkaW9uXHJcbiAgICAuYWNjb3JkaW9uLWNvbnRlbnR7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgICAgICAuaGlkZS5oaWRkZW4tY29udGVudHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgYS5jb250YWN0LmJ1dHRvbntcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnZpc2libGUtY29udGVudHtcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vcGFnZSBoZXJvXHJcbiAgICAucGFnZS1oZXJve1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcclxuICAgICAgICAuY29udGVudC13cmFwe1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyB0YWJzXHJcbiAgICAudGFicy1wYW5lbHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHZpcnR1YWwtY2F0YWxvZ3VlXHJcbiAgICAudmlydHVhbC1jYXRhbG9ndWV7XHJcbiAgICAgICAgLmNhdGFsb2d1ZS1zbGlkZXJ7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIC5zbGljay1saXN0e1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuc2xpY2stc2xpZGV7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zbGljay10cmFja3tcclxuICAgICAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnNsaWNrLXNsaWRle1xyXG4gICAgICAgICAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaDR7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDMwcHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBoZWFkZXJcclxuICAgICNoZWFkZXJ7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgICAgICAmOmJlZm9yZXtcclxuICAgICAgICBjb250ZW50OiB1cmwoJy9hc3NldHMvaW1nL2xhbmRlc2FyY2hpdi5zdmcnKTtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgcGFkZGluZzogMzBweCAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBmb290ZXJcclxuICAgIC5jb3B5cmlnaHR7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMzBweDtcclxuICAgICAgICBib3JkZXItdG9wOiA1cHggc29saWQgYmxhY2s7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIC5jZWxsOmFmdGVye1xyXG4gICAgICAgICAgICBjb250ZW50OiAnIHwgaHR0cHM6Ly93d3cubGFuZGVzYXJjaGl2LWJ3LmRlJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59IiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS10ZXh0LXV0aWxpdGllc1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgdGV4dCB1dGlsaXRpZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXV0aWxpdGllcy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IFZhbHVlIGZvciBgdGV4dC1vdmVyZmxvd2AgdmFyaWFibGVcbi8vLyBAdHlwZSBTdHJpbmdcbiRwcm90b3R5cGUtdGV4dC1vdmVyZmxvdzogZWxsaXBzaXMgIWRlZmF1bHQ7XG5cbi8vLyBJbWFnZSBSZXBsYWNlbWVudCB1dGlsaXR5LiBgdGV4dC1oaWRlYFxuQG1peGluIHRleHQtaGlkZSB7XG4gIGZvbnQ6IDAvMCBhICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbn1cblxuLy8vIFRydW5jYXRpbmcgdGhlIHRleHQsIGVsaXBzaXMgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG92ZXJmbG93IFskcHJvdG90eXBlLXRleHQtb3ZlcmZsb3ddIFRleHQgVHJ1bmNhdGVcbkBtaXhpbiB0ZXh0LXRydW5jYXRlKFxuICAkb3ZlcmZsb3c6ICRwcm90b3R5cGUtdGV4dC1vdmVyZmxvd1xuKSB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIHRleHQtb3ZlcmZsb3c6ICRvdmVyZmxvdzsgXG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbn1cblxuLy8vIE5vIHdyYXBwaW5nIG9mIHRoZSB0ZXh0LiBgdGV4dC1ub3dyYXBgXG5AbWl4aW4gdGV4dC1ub3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG59XG5cbi8vLyBXcmFwcGluZyBvZiB0aGUgdGV4dC4gYHRleHQtd3JhcGBcbkBtaXhpbiB0ZXh0LXdyYXAge1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtdXRpbGl0aWVzIHtcbiAgLnRleHQtaGlkZSB7XG4gICAgQGluY2x1ZGUgdGV4dC1oaWRlO1xuICB9XG5cbiAgLnRleHQtdHJ1bmNhdGUge1xuICAgIEBpbmNsdWRlIHRleHQtdHJ1bmNhdGU7XG4gIH1cblxuICAudGV4dC1ub3dyYXAge1xuICAgIEBpbmNsdWRlIHRleHQtbm93cmFwO1xuICB9XG5cbiAgLnRleHQtd3JhcCB7XG4gICAgQGluY2x1ZGUgdGV4dC13cmFwO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXV0aWxpdGllcy1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtaGlkZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LWhpZGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtdHJ1bmNhdGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dC10cnVuY2F0ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC1ub3dyYXAge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dC1ub3dyYXA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtd3JhcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LXdyYXA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb25cbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHRleHQgdHJhbnNmb3JtYXRpb24gY2xhc3Nlc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtdHJhbnNmb3JtYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgdGV4dC10cmFuc2Zvcm1hdGlvbmAgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uOiAoXG4gIGxvd2VyY2FzZSxcbiAgdXBwZXJjYXNlLFxuICBjYXBpdGFsaXplXG4pICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBUcmFuc2Zvcm1hdGlvbiwgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uYFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdHJhbnNmb3JtYXRpb24gW10gVGV4dCBUcmFuc2Zvcm1hdGlvblxuQG1peGluIHRleHQtdHJhbnNmb3JtKCR0cmFuc2Zvcm1hdGlvbikge1xuICB0ZXh0LXRyYW5zZm9ybTogJHRyYW5zZm9ybWF0aW9uICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uIHtcbiAgQGVhY2ggJHRyYW5zZm9ybWF0aW9uIGluICRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbiB7XG4gICAgLnRleHQtI3skdHJhbnNmb3JtYXRpb259IHtcbiAgICAgIEBpbmNsdWRlIHRleHQtdHJhbnNmb3JtKCR0cmFuc2Zvcm1hdGlvbik7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXRyYW5zZm9ybWF0aW9uLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgXHRAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJHRyYW5zZm9ybWF0aW9uIGluICRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbiB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JHRyYW5zZm9ybWF0aW9ufSB7XG4gIFx0XHRcdCAgICAgIEBpbmNsdWRlIHRleHQtdHJhbnNmb3JtKCR0cmFuc2Zvcm1hdGlvbik7XG4gIFx0XHRcdCAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvblxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgdGV4dCBkZWNvcmF0aW9uIGNsYXNzZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWRlY29yYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgdGV4dC1kZWNvcmF0aW9uYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbjogKFxuICBvdmVybGluZSxcbiAgdW5kZXJsaW5lLFxuICBsaW5lLXRocm91Z2gsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBEZWNvcmF0aW9uLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbmBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRlY29yYXRpb24gW10gVGV4dCBEZWNvcmF0aW9uXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCRkZWNvcmF0aW9uKSB7XG4gIHRleHQtZGVjb3JhdGlvbjogJGRlY29yYXRpb24gIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbiB7XG4gIEBlYWNoICRkZWNvcmF0aW9uIGluICRwcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAudGV4dC0jeyRkZWNvcmF0aW9ufSB7XG4gICAgICBAaW5jbHVkZSB0ZXh0LWRlY29yYXRpb24oJGRlY29yYXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1kZWNvcmF0aW9uLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJGRlY29yYXRpb24gaW4gJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRkZWNvcmF0aW9ufSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtZGVjb3JhdGlvbigkZGVjb3JhdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWZvbnQtc3R5bGluZ1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgZm9udCBzdHlsaW5nIHR5cGVzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1mb250LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIExldHRlciBzcGFjaW5nIGZvciBgLmZvbnQtd2lkZWBcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoNCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdlaWdodCBmb3IgYC5mb250LW5vcm1hbGAsIGRlZmF1bHRlZCB0byBgZ2xvYmFsLXdlaWdodC1ub3JtYWxgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWZvbnQtbm9ybWFsOiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdlaWdodCBmb3IgYC5mb250LWJvbGRgLCBkZWZhdWx0ZWQgdG8gYGdsb2JhbC13ZWlnaHQtYm9sZGBcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtZm9udC1ib2xkOiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3aWRlIGxldHRlciBzcGFjaW5nIVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGV0dGVyLXNwYWNpbmcgWyRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZ10gV2lkZSBsZXR0ZXIgc3BhY2luZyBmb3IgdGhlIGZvbnRcbkBtaXhpbiBmb250LXdpZGUoXG4gICRsZXR0ZXItc3BhY2luZzogJHByb3RvdHlwZS13aWRlLWxldHRlci1zcGFjaW5nXG4pIHtcbiAgbGV0dGVyLXNwYWNpbmc6ICRsZXR0ZXItc3BhY2luZztcbn1cblxuLy8vIEZvbnQgV2VpZ2h0IE5vcm1hbCwgZGVmYXVsdCB2YWx1ZSBjb21pbmcgdGhyb3VnaCBgZ2xvYmFsLXdlaWdodC1ub3JtYWxgXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWyRwcm90b3R5cGUtZm9udC1ub3JtYWxdIFdlaWdodCBvZiB0aGUgZm9udCAobm9ybWFsKVxuQG1peGluIGZvbnQtbm9ybWFsKFxuICAkd2VpZ2h0OiAkcHJvdG90eXBlLWZvbnQtbm9ybWFsXG4pIHtcbiAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG59XG5cbi8vLyBGb250IFdlaWdodCBCb2xkLCBkZWZhdWx0IHZhbHVlIGNvbWluZyB0aHJvdWdoIGBnbG9iYWwtd2VpZ2h0LWJvbGRgXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWyRwcm90b3R5cGUtZm9udC1ib2xkXSBXZWlnaHQgb2YgdGhlIGZvbnQgKGJvbGQpXG5AbWl4aW4gZm9udC1ib2xkKFxuICAkd2VpZ2h0OiAkcHJvdG90eXBlLWZvbnQtYm9sZFxuKSB7XG4gIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xufVxuXG4vLy8gRm9udCBTdHlsZSBJdGFsaWNcbkBtaXhpbiBmb250LWl0YWxpYyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYyAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtZm9udC1zdHlsaW5nIHtcbiAgLmZvbnQtd2lkZXtcbiAgICBAaW5jbHVkZSBmb250LXdpZGU7XG4gIH1cblxuICAuZm9udC1ub3JtYWwge1xuICAgIEBpbmNsdWRlIGZvbnQtbm9ybWFsO1xuICB9XG5cbiAgLmZvbnQtYm9sZCB7XG4gICAgQGluY2x1ZGUgZm9udC1ib2xkO1xuICB9XG5cbiAgLmZvbnQtaXRhbGljIHtcbiAgICBAaW5jbHVkZSBmb250LWl0YWxpYztcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1mb250LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tZm9udC13aWRle1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC13aWRlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mb250LW5vcm1hbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LW5vcm1hbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZm9udC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtYm9sZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZm9udC1pdGFsaWMge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1pdGFsaWM7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWxpc3Qtc3R5bGUtdHlwZVxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgbGlzdCBzdHlsaW5nIHR5cGVzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1saXN0LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYHN0eWxlLXR5cGUtdW5vcmRlcmVkYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkOiAoXG4gIGRpc2MsXG4gIGNpcmNsZSxcbiAgc3F1YXJlXG4pICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgc3R5bGUtdHlwZS1vcmRlcmVkYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtb3JkZXJlZDogKFxuICBkZWNpbWFsLFxuICBsb3dlci1hbHBoYSxcbiAgbG93ZXItbGF0aW4sXG4gIGxvd2VyLXJvbWFuLFxuICB1cHBlci1hbHBoYSxcbiAgdXBwZXItbGF0aW4sXG4gIHVwcGVyLXJvbWFuXG4pICFkZWZhdWx0O1xuXG5cbi8vLyBTdHlsZSB0eXBlIGZvciB1bm9yZGVyZWQgTGlzdHMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtc3R5bGUtdHlwZS11bm9yZGVyZWRgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHlsZS10eXBlLXVub3JkZXJlZCBbXSBTdHlsZSB0eXBlIGZvciB1bm9yZGVyZWQgTGlzdHNcbkBtaXhpbiBzdHlsZS10eXBlLXVub3JkZXJlZCgkc3R5bGUtdHlwZS11bm9yZGVyZWQpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiAkc3R5bGUtdHlwZS11bm9yZGVyZWQgIWltcG9ydGFudDtcbn1cblxuLy8vIFN0eWxlIHR5cGUgZm9yIG9yZGVyZWQgTGlzdHMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtc3R5bGUtdHlwZS1vcmRlcmVkYFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3R5bGUtdHlwZS1vcmRlcmVkIFtdIFN0eWxlIHR5cGUgZm9yIG9yZGVyZWQgTGlzdHNcbkBtaXhpbiBzdHlsZS10eXBlLW9yZGVyZWQoJHN0eWxlLXR5cGUtb3JkZXJlZCkge1xuICBsaXN0LXN0eWxlLXR5cGU6ICRzdHlsZS10eXBlLW9yZGVyZWQgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGxpc3QtdW5vcmRlcmVkIHtcbiAgQGVhY2ggJHN0eWxlLXR5cGUtdW5vcmRlcmVkIGluICRwcm90b3R5cGUtc3R5bGUtdHlwZS11bm9yZGVyZWQge1xuICAgIHVsLmxpc3QtI3skc3R5bGUtdHlwZS11bm9yZGVyZWR9IHtcbiAgICAgIEBpbmNsdWRlIHN0eWxlLXR5cGUtdW5vcmRlcmVkKCRzdHlsZS10eXBlLXVub3JkZXJlZCk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWxpc3QtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkc3R5bGUtdHlwZS11bm9yZGVyZWQgaW4gJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZCB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIHVsLiN7JHNpemV9LWxpc3QtI3skc3R5bGUtdHlwZS11bm9yZGVyZWR9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgc3R5bGUtdHlwZS11bm9yZGVyZWQoJHN0eWxlLXR5cGUtdW5vcmRlcmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGxpc3Qtb3JkZXJlZCB7XG4gIEBlYWNoICRzdHlsZS10eXBlLW9yZGVyZWQgaW4gJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQge1xuICAgIG9sLmxpc3QtI3skc3R5bGUtdHlwZS1vcmRlcmVkfSB7XG4gICAgICBAaW5jbHVkZSBzdHlsZS10eXBlLW9yZGVyZWQoJHN0eWxlLXR5cGUtb3JkZXJlZCk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWxpc3QtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkc3R5bGUtdHlwZS1vcmRlcmVkIGluICRwcm90b3R5cGUtc3R5bGUtdHlwZS1vcmRlcmVkIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgb2wuI3skc2l6ZX0tbGlzdC0jeyRzdHlsZS10eXBlLW9yZGVyZWR9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgc3R5bGUtdHlwZS1vcmRlcmVkKCRzdHlsZS10eXBlLW9yZGVyZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtbGlzdC1zdHlsZS10eXBlIHtcbiAgQGluY2x1ZGUgbGlzdC11bm9yZGVyZWQ7XG4gIEBpbmNsdWRlIGxpc3Qtb3JkZXJlZDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtcm91bmRlZFxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igcm91bmRlZCB1dGlsaXR5LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtcm91bmRlZC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBgcHJvdG90eXBlLWJvcmRlci1yYWRpdXNgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDMpICFkZWZhdWx0O1xuXG4vLy8gUm91bmRlZCB1dGlsaXR5IChhbGwgY29ybmVycyk6IEFkZHMgcmFkaXVzIGNvcm5lcnMgKGFsbCBjb3JuZXJzKSB0byBhbiBlbGVtZW50IGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpdXMgWyRwcm90b3R5cGUtYm9yZGVyLXJhZGl1c10gQm9yZGVyIHJhZGl1cyAoYWxsIGNvcm5lcnMpXG5AbWl4aW4gYm9yZGVyLXJhZGl1cyhcbiAgJHJhZGl1czogJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzXG4pIHtcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbn1cblxuLy8vIFJvdW5kZWQgc3F1YXJlIHV0aWxpdHkgb3IgcmVjdGFuZ2xlIHV0aWxpdHkgKGFsbCBjb3JuZXJzKTogUm91bmRzIGFsbCBjb3JuZXJzIHRvIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCB0byBtYWtlIGEgcGlsbCBzaGFwZS5cbkBtaXhpbiBib3JkZXItcm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwMDBweCAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtcm91bmRlZCB7XG4gIC5yb3VuZGVkIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcm91bmRlZDtcblxuICAgIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICAgIEBpbmNsdWRlIGJvcmRlci1yb3VuZGVkO1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgLy8gRm9yIHN3aXRjaGVzXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnJhZGl1cyB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cztcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1yb3VuZGVkLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tcm91bmRlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcm91bmRlZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgLiN7JHNpemV9LXJhZGl1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1ib3JkZXJlZFxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgYm9yZGVyZWQgdXRpbGl0eS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIGBwcm90b3R5cGUtYm9yZGVyLXdpZHRoYFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1ib3JkZXItd2lkdGg6IHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3JkZXItdHlwZWBcbi8vLyBAdHlwZSBTdHJpbmdcbiRwcm90b3R5cGUtYm9yZGVyLXR5cGU6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3JkZXItY29sb3JgIGRlZmF1bHRlZCB0byBgbWVkaXVtLWdyYXlgXG4vLy8gQHR5cGUgQ29sb3JcbiRwcm90b3R5cGUtYm9yZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXJlZCBVdGlsaXR5OiBBZGRzIGEgbGlnaHQgYm9yZGVyIHRvIGFuIGVsZW1lbnQgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskcHJvdG90eXBlLWJvcmRlci13aWR0aF0gV2lkdGggb2YgdGhlIGJvcmRlclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdHlwZSBbJHByb3RvdHlwZS1ib3JkZXItdHlwZV0gVHlwZSBvZiB0aGUgYm9yZGVyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskcHJvdG90eXBlLWJvcmRlci1jb2xvcl0gQ29sb3Igb2YgdGhlIGJvcmRlclxuQG1peGluIGJvcmRlcmVkKFxuICAkd2lkdGg6ICRwcm90b3R5cGUtYm9yZGVyLXdpZHRoLFxuICAkdHlwZTogJHByb3RvdHlwZS1ib3JkZXItdHlwZSxcbiAgJGNvbG9yOiAkcHJvdG90eXBlLWJvcmRlci1jb2xvclxuKSB7XG4gIGJvcmRlcjogJHdpZHRoICR0eXBlICRjb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWJvcmRlcmVkIHtcbiAgLmJvcmRlcmVkIHtcbiAgICBAaW5jbHVkZSBib3JkZXJlZDtcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1ib3JkZXJlZC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWJvcmRlcmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlcmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1zaGFkb3dcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHNoYWRvdyB1dGlsaXR5LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtc2hhZG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIGBwcm90b3R5cGUtYm94LXNoYWRvd2Bcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLDAsMCwuMTYpLFxuICAgICAgICAgICAgICAgICAgICAgICAwIDJweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTIpICFkZWZhdWx0O1xuXG4vLy8gU2hhZG93IFV0aWxpdHk6IEFkZHMgYSBsaWdodCBib3ggc2hhZG93IHRvIGFuIGVsZW1lbnQgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNoYWRvdyBbJHByb3RvdHlwZS1ib3gtc2hhZG93XSBCb3ggU2hhZG93IG9mIGEgY29tcG9uZW50XG5AbWl4aW4gc2hhZG93KFxuICAkc2hhZG93OiAkcHJvdG90eXBlLWJveC1zaGFkb3dcbikge1xuICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtc2hhZG93IHtcbiAgLnNoYWRvdyB7XG4gICAgQGluY2x1ZGUgc2hhZG93O1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXNoYWRvdy1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXNoYWRvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaGFkb3c7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWFycm93XG4vLy8vXG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBhcnJvd2AgZGlyZWN0aW9uXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLWFycm93LWRpcmVjdGlvbnM6IChcbiAgZG93bixcbiAgdXAsXG4gIHJpZ2h0LFxuICBsZWZ0XG4pICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggb2YgdGhlIEFycm93LCBgMC40Mzc1cmVtYCBieSBkZWZhdWx0LlxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1hcnJvdy1zaXplOiAwLjQzNzVyZW07XG5cbi8vLyBDb2xvciBvZiB0aGUgQXJyb3csIGAkYmxhY2tgIGJ5IGRlZmF1bHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRwcm90b3R5cGUtYXJyb3ctY29sb3I6ICRibGFjaztcblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWFycm93IHtcbiAgQGVhY2ggJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb24gaW4gJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb25zIHtcbiAgICAuYXJyb3ctI3skcHJvdG90eXBlLWFycm93LWRpcmVjdGlvbn0ge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKFxuICAgICAgICAkcHJvdG90eXBlLWFycm93LXNpemUsIFxuICAgICAgICAkcHJvdG90eXBlLWFycm93LWNvbG9yLCBcbiAgICAgICAgJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb25cbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNlcGFyYXRvclxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc2VwYXJhdG9yLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYWxpZ25tZW50IG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItYWxpZ246IGNlbnRlciAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWhlaWdodDogcmVtLWNhbGMoMikgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBhIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoOiAzcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBhIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBDb2xvclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBUb3AgTWFyZ2luIG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBUaXRsZSBzZXBhcmF0b3IgVXRpbGl0eSwgbW9zdGx5IHVzZWQgdG8gc3R5bGUgdGhlIG1haW4gaGVhZGluZyBvZiBhIHNlY3Rpb25cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGFsaWduIFskcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbl0gLSBzZXBhcmF0b3IgQWxpZ25tZW50XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWyRwcm90b3R5cGUtc2VwYXJhdG9yLWhlaWdodF0gLSBXaWR0aFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoXSAtIEhlaWdodFxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmRcbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvcCBbJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcF0gLSBNYXJnaW4gVG9wXG5AbWl4aW4gc2VwYXJhdG9yIChcbiAgJGFsaWduOiAkcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbixcbiAgJGhlaWdodDogJHByb3RvdHlwZS1zZXBhcmF0b3ItaGVpZ2h0LFxuICAkd2lkdGg6ICRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoLFxuICAkYmFja2dyb3VuZDogJHByb3RvdHlwZS1zZXBhcmF0b3ItYmFja2dyb3VuZCxcbiAgJHRvcDogJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcFxuKSB7XG4gIHRleHQtYWxpZ246ICRhbGlnbiAhaW1wb3J0YW50O1xuXHRAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUpO1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICBtYXJnaW46ICR0b3AgYXV0byAwO1xuXG4gICAgQGlmICRhbGlnbiA9PSBsZWZ0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGlmICRhbGlnbiA9PSByaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXNlcGFyYXRvciB7XG5cdC5zZXBhcmF0b3ItY2VudGVyIHtcblx0XHRAaW5jbHVkZSBzZXBhcmF0b3IoY2VudGVyKTtcblx0fVxuXG4gIC5zZXBhcmF0b3ItbGVmdCB7XG4gICAgQGluY2x1ZGUgc2VwYXJhdG9yKGxlZnQpO1xuICB9XG5cbiAgLnNlcGFyYXRvci1yaWdodCB7XG4gICAgQGluY2x1ZGUgc2VwYXJhdG9yKHJpZ2h0KTtcbiAgfVxuXG5cdEBpZiAoJHByb3RvdHlwZS1zZXBhcmF0b3ItYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1zZXBhcmF0b3ItY2VudGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNlcGFyYXRvcihjZW50ZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuI3skc2l6ZX0tc2VwYXJhdG9yLWxlZnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2VwYXJhdG9yKGxlZnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuI3skc2l6ZX0tc2VwYXJhdG9yLXJpZ2h0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNlcGFyYXRvcihyaWdodCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXBvc2l0aW9uXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBwb3NpdGlvbiBoZWxwZXJzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1wb3NpdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBwb3NpdGlvbmAgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1wb3NpdGlvbjogKFxuICBzdGF0aWMsXG4gIHJlbGF0aXZlLFxuICBhYnNvbHV0ZSxcbiAgZml4ZWRcbikgIWRlZmF1bHQ7XG5cbi8vLyB6LWluZGV4IGZvciBmaXhlZCBwb3NpdGlvbmluZ1xuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1wb3NpdGlvbi16LWluZGV4OiA5NzUgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbiBjbGFzc2VzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLXBvc2l0aW9uYCwgd2hlcmVhcyBhbGwgdGhlIG9mZnNldCB2YWx1ZXMgYXJlIG11bHRpcGxpZWQgYnkgYCRnbG9iYWwtcG9zaXRpb25gIHdoaWNoIGJ5IGRlZmF1bHQgaXMgZXF1YWwgdG8gYDFyZW1gLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcG9zaXRpb24gW10gUG9zaXRpb24gY2xhc3NlcywgRWl0aGVyIGBzdGF0aWNgLCBgcmVsYXRpdmVgLCBgYWJzb2x1dGVgIG9yIGBmaXhlZGBcbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvcCBbbnVsbF0gLSBUb3Agb2Zmc2V0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyaWdodCBbbnVsbF0gLSBSaWdodCBvZmZzZXRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJvdHRvbSBbbnVsbF0gLSBCb3R0b20gb2Zmc2V0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsZWZ0IFtudWxsXSAtIExlZnQgb2Zmc2V0XG5AbWl4aW4gcG9zaXRpb24oXG4gICRwb3NpdGlvbixcbiAgJHRvcDogbnVsbCxcbiAgJHJpZ2h0OiBudWxsLFxuICAkYm90dG9tOiBudWxsLFxuICAkbGVmdDogbnVsbFxuKSB7XG4gIHBvc2l0aW9uOiAkcG9zaXRpb24gIWltcG9ydGFudDtcbiAgQGlmICR0b3AgIT0gbnVsbCB7XG4gICAgdG9wOiAkdG9wICogJGdsb2JhbC1wb3NpdGlvbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkcmlnaHQgIT0gbnVsbCB7XG4gICAgcmlnaHQ6ICRyaWdodCAqICRnbG9iYWwtcG9zaXRpb24gIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGJvdHRvbSAhPSBudWxsIHtcbiAgICBib3R0b206ICRib3R0b20gKiAkZ2xvYmFsLXBvc2l0aW9uICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRsZWZ0ICE9IG51bGwge1xuICAgIGxlZnQ6ICRsZWZ0ICogJGdsb2JhbC1wb3NpdGlvbiAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBQb3NpdGlvbiBGaXhlZCBvbiB0b3AgY29ybmVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkei1pbmRleCBbJHByb3RvdHlwZS1wb3NpdGlvbi16LWluZGV4XSB6LWluZGV4IGZvciBgcG9zaXRpb24tZml4ZWQtdG9wYFxuQG1peGluIHBvc2l0aW9uLWZpeGVkLXRvcChcbiAgJHotaW5kZXg6ICRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleFxuKSB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCAwLCAwLCBudWxsLCAwKTtcbiAgei1pbmRleDogJHotaW5kZXg7XG59XG5cbi8vLyBQb3NpdGlvbiBGaXhlZCBvbiBib3R0b20gY29ybmVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkei1pbmRleCBbJHByb3RvdHlwZS1wb3NpdGlvbi16LWluZGV4XSB6LWluZGV4IGZvciBgcG9zaXRpb24tZml4ZWQtYm90dG9tYFxuQG1peGluIHBvc2l0aW9uLWZpeGVkLWJvdHRvbShcbiAgJHotaW5kZXg6ICRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleFxuKSB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCBudWxsLCAwLCAwLCAwKTtcbiAgei1pbmRleDogJHotaW5kZXg7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1wb3NpdGlvbiB7XG4gIC8vIFBvc2l0aW9uOiBTdGF0aWMsIFJlbGF0aXZlLCBGaXhlZCwgQWJzb2x1dGVcbiAgQGVhY2ggJHBvc2l0aW9uIGluICRwcm90b3R5cGUtcG9zaXRpb24ge1xuICAgIC5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oJHBvc2l0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvLyBQb3NpdGlvbjogRml4ZWQgVG9wLCBGaXhlZCBCb3R0b21cbiAgLnBvc2l0aW9uLWZpeGVkLXRvcCB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24tZml4ZWQtdG9wO1xuICB9XG4gIC5wb3NpdGlvbi1maXhlZC1ib3R0b20ge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uLWZpeGVkLWJvdHRvbTtcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1wb3NpdGlvbi1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIC8vIFBvc2l0aW9uOiBTdGF0aWMsIFJlbGF0aXZlLCBGaXhlZCwgQWJzb2x1dGVcbiAgICAgICAgQGVhY2ggJHBvc2l0aW9uIGluICRwcm90b3R5cGUtcG9zaXRpb24ge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tcG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oJHBvc2l0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQb3NpdGlvbjogRml4ZWQgVG9wLCBGaXhlZCBCb3R0b21cbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tcG9zaXRpb24tZml4ZWQtdG9wIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uLWZpeGVkLXRvcDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tcG9zaXRpb24tZml4ZWQtYm90dG9tIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uLWZpeGVkLWJvdHRvbTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtb3ZlcmZsb3dcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIG92ZXJmbG93IGhlbHBlciBjbGFzc2VzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1vdmVyZmxvdy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBvdmVyZmxvd2AgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1vdmVyZmxvdzogKFxuICB2aXNpYmxlLFxuICBoaWRkZW4sXG4gIHNjcm9sbFxuKSAhZGVmYXVsdDtcblxuLy8vIE92ZXJmbG93IGNsYXNzZXMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtb3ZlcmZsb3dgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvdmVyZmxvdyBbXSBPdmVyZmxvdyBjbGFzc2VzXG5AbWl4aW4gb3ZlcmZsb3coJG92ZXJmbG93KSB7XG4gIG92ZXJmbG93OiAkb3ZlcmZsb3cgIWltcG9ydGFudDtcbn1cblxuLy8vIE92ZXJmbG93IGNsYXNzZXMgb24gaG9yaXpvbnRhbCBheGlzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLW92ZXJmbG93YFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgW10gT3ZlcmZsb3cgY2xhc3NlcyAoaG9yaXpvbnRhbCBheGlzKVxuQG1peGluIG92ZXJmbG93LXgoJG92ZXJmbG93KSB7XG4gIG92ZXJmbG93LXg6ICRvdmVyZmxvdyAhaW1wb3J0YW50O1xufVxuXG4vLy8gT3ZlcmZsb3cgY2xhc3NlcyBvbiB2ZXJ0aWNhbCBheGlzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLW92ZXJmbG93YFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgW10gT3ZlcmZsb3cgY2xhc3NlcyAodmVydGljYWwgYXhpcylcbkBtaXhpbiBvdmVyZmxvdy15KCRvdmVyZmxvdykge1xuICBvdmVyZmxvdy15OiAkb3ZlcmZsb3cgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLW92ZXJmbG93IHtcbiAgQGVhY2ggJG92ZXJmbG93IGluICRwcm90b3R5cGUtb3ZlcmZsb3cge1xuICAgIC5vdmVyZmxvdy0jeyRvdmVyZmxvd30ge1xuICAgICAgQGluY2x1ZGUgb3ZlcmZsb3coJG92ZXJmbG93KTtcbiAgICB9XG4gICAgLm92ZXJmbG93LXgtI3skb3ZlcmZsb3d9IHtcbiAgICAgIEBpbmNsdWRlIG92ZXJmbG93LXgoJG92ZXJmbG93KTtcbiAgICB9XG4gICAgLm92ZXJmbG93LXktI3skb3ZlcmZsb3d9IHtcbiAgICAgIEBpbmNsdWRlIG92ZXJmbG93LXkoJG92ZXJmbG93KTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtb3ZlcmZsb3ctYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkb3ZlcmZsb3cgaW4gJHByb3RvdHlwZS1vdmVyZmxvdyB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1vdmVyZmxvdy0jeyRvdmVyZmxvd30ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBvdmVyZmxvdygkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLiN7JHNpemV9LW92ZXJmbG93LXgtI3skb3ZlcmZsb3d9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgb3ZlcmZsb3cteCgkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLiN7JHNpemV9LW92ZXJmbG93LXktI3skb3ZlcmZsb3d9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgb3ZlcmZsb3cteSgkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1kaXNwbGF5XG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBkaXNwbGF5IGNsYXNzZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWRpc3BsYXktYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgZGlzcGxheWAgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1kaXNwbGF5OiAoXG4gIGlubGluZSxcbiAgaW5saW5lLWJsb2NrLFxuICBibG9jayxcbiAgdGFibGUsXG4gIHRhYmxlLWNlbGxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEaXNwbGF5IGNsYXNzZXMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtZGlzcGxheWBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW10gRGlzcGxheSBjbGFzc2VzXG5AbWl4aW4gZGlzcGxheSgkZGlzcGxheSkge1xuICBkaXNwbGF5OiAkZGlzcGxheSAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtZGlzcGxheSB7XG4gIEBlYWNoICRkaXNwbGF5IGluICRwcm90b3R5cGUtZGlzcGxheSB7XG4gICAgLmRpc3BsYXktI3skZGlzcGxheX0ge1xuICAgICAgQGluY2x1ZGUgZGlzcGxheSgkZGlzcGxheSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWRpc3BsYXktYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkZGlzcGxheSBpbiAkcHJvdG90eXBlLWRpc3BsYXkge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tZGlzcGxheS0jeyRkaXNwbGF5fSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGRpc3BsYXkoJGRpc3BsYXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1ib3JkZXItYm94XG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBib3JkZXIgYm94LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtYm9yZGVyLWJveC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYm94IHV0aWxpdHlcbkBtaXhpbiBib3JkZXItYm94IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyLWJveCB7XG4gIC5ib3JkZXItYm94IHtcbiAgICBAaW5jbHVkZSBib3JkZXItYm94O1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWJvcmRlci1ib3gtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1ib3JkZXItYm94IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1ib3g7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWJvcmRlci1ub25lXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBib3JkZXIgbm9uZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWJvcmRlci1ub25lLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBub25lIHV0aWxpdHlcbkBtaXhpbiBib3JkZXItbm9uZSB7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyLW5vbmUge1xuICAuYm9yZGVyLW5vbmUge1xuICAgIEBpbmNsdWRlIGJvcmRlci1ub25lO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWJvcmRlci1ub25lLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tYm9yZGVyLW5vbmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLW5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNpemluZ1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc3BhY2luZyBjbGFzc2VzIChtYXJnaW4gYW5kIHBhZGRpbmcpXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1zaXppbmctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgc2l6aW5nYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXNpemluZzogKFxuICB3aWR0aCxcbiAgaGVpZ2h0XG4pICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBzaXplcy5cbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtc2l6ZXM6IChcbiAgMjU6IDI1JSxcbiAgNTA6IDUwJSxcbiAgNzU6IDc1JSxcbiAgMTAwOiAxMDAlXG4pICFkZWZhdWx0O1xuXG4vLy8gTWF4IFdpZHRoIDEwMCB1dGlsaXR5LlxuQG1peGluIG1heC13aWR0aC0xMDAge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLy8vIE1heCBIZWlnaHQgMTAwIHV0aWxpdHkuXG5AbWl4aW4gbWF4LWhlaWdodC0xMDAge1xuICBtYXgtaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1zaXppbmcge1xuICAvLyBFbGVtZW50IFNpemluZ1xuICBAZWFjaCAkc2l6aW5nIGluICRwcm90b3R5cGUtc2l6aW5nIHtcbiAgICBAZWFjaCAkbGVuZ3RoLCAkcGVyY2VudGFnZSBpbiAkcHJvdG90eXBlLXNpemVzIHtcbiAgICAgIC4jeyRzaXppbmd9LSN7JGxlbmd0aH0ge1xuICAgICAgICAjeyRzaXppbmd9OiAkcGVyY2VudGFnZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE1heCB3aWR0aCAmIGhlaWdodFxuICAubWF4LXdpZHRoLTEwMCB7XG4gICAgQGluY2x1ZGUgbWF4LXdpZHRoLTEwMDtcbiAgfVxuICAubWF4LWhlaWdodC0xMDAge1xuICAgIEBpbmNsdWRlIG1heC1oZWlnaHQtMTAwO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXNpemluZy1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgQGVhY2ggJHNpemluZyBpbiAkcHJvdG90eXBlLXNpemluZyB7XG4gICAgICAgICAgICBAZWFjaCAkbGVuZ3RoLCAkcGVyY2VudGFnZSBpbiAkcHJvdG90eXBlLXNpemVzIHtcbiAgICAgICAgICAgICAgLiN7JHNpemV9LSN7JHNpemluZ30tI3skbGVuZ3RofSB7XG4gICAgICAgICAgICAgICAgI3skc2l6aW5nfTogJHBlcmNlbnRhZ2UgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1zcGFjaW5nXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBzcGFjaW5nIGNsYXNzZXMgKG1hcmdpbiBhbmQgcGFkZGluZylcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXNwYWNpbmctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBudW1iZXIgb2Ygc3BhY2VycyBjb3VudCAobWFyZ2luIGFuZCBwYWRkaW5nKVxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1zcGFjZXJzLWNvdW50OiAzICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGhlbHBlciBtaXhpbiwgYWxsIHRoZSB2YWx1ZXMgYXJlIG11bHRpcGxpZWQgYnkgYCRnbG9iYWwtbWFyZ2luYCB3aGljaCBieSBkZWZhdWx0IGlzIGVxdWFsIHRvIGAxcmVtYFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9wIFtudWxsXSAtIE1hcmdpbiBUb3Bcbi8vLyBAcGFyYW0ge051bWJlcn0gJHJpZ2h0IFtudWxsXSAtIE1hcmdpbiBSaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYm90dG9tIFtudWxsXSAtIE1hcmdpbiBCb3R0b21cbi8vLyBAcGFyYW0ge051bWJlcn0gJGxlZnQgW251bGxdIC0gTWFyZ2luIExlZnRcbkBtaXhpbiBtYXJnaW4oXG4gICR0b3A6IG51bGwsXG4gICRyaWdodDogbnVsbCxcbiAgJGJvdHRvbTogbnVsbCxcbiAgJGxlZnQ6IG51bGxcbikge1xuICBAaWYgJHRvcCAhPSBudWxsIHtcbiAgICBtYXJnaW4tdG9wOiAkdG9wICogJGdsb2JhbC1tYXJnaW4gIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJHJpZ2h0ICE9IG51bGwge1xuICAgIG1hcmdpbi1yaWdodDogJHJpZ2h0ICogJGdsb2JhbC1tYXJnaW4gIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGJvdHRvbSAhPSBudWxsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkYm90dG9tICogJGdsb2JhbC1tYXJnaW4gIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGxlZnQgIT0gbnVsbCB7XG4gICAgbWFyZ2luLWxlZnQ6ICRsZWZ0ICogJGdsb2JhbC1tYXJnaW4gIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gUGFkZGluZyBoZWxwZXIgbWl4aW4sIGFsbCB0aGUgdmFsdWVzIGFyZSBtdWx0aXBsaWVkIGJ5IGAkZ2xvYmFsLXBhZGRpbmdgIHdoaWNoIGJ5IGRlZmF1bHQgaXMgZXF1YWwgdG8gYDFyZW1gXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b3AgW251bGxdIC0gUGFkZGluZyBUb3Bcbi8vLyBAcGFyYW0ge051bWJlcn0gJHJpZ2h0IFtudWxsXSAtIFBhZGRpbmcgUmlnaHRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJvdHRvbSBbbnVsbF0gLSBQYWRkaW5nIEJvdHRvbVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGVmdCBbbnVsbF0gLSBQYWRkaW5nIExlZnRcbkBtaXhpbiBwYWRkaW5nKFxuICAkdG9wOiBudWxsLFxuICAkcmlnaHQ6IG51bGwsXG4gICRib3R0b206IG51bGwsXG4gICRsZWZ0OiBudWxsXG4pIHtcbiAgQGlmICR0b3AgIT0gbnVsbCB7XG4gICAgcGFkZGluZy10b3A6ICR0b3AgKiAkZ2xvYmFsLXBhZGRpbmcgIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJHJpZ2h0ICE9IG51bGwge1xuICAgIHBhZGRpbmctcmlnaHQ6ICRyaWdodCAqICRnbG9iYWwtcGFkZGluZyAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkYm90dG9tICE9IG51bGwge1xuICAgIHBhZGRpbmctYm90dG9tOiAkYm90dG9tICogJGdsb2JhbC1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRsZWZ0ICE9IG51bGwge1xuICAgIHBhZGRpbmctbGVmdDogJGxlZnQgKiAkZ2xvYmFsLXBhZGRpbmcgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gTWFyZ2luIGNsYXNzZXMgZm9yIHNwZWNpZmljIGRpcmVjdGlvbiBwcm9wZXJ0aWVzXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXIgW10gRGlyZWN0aW9uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzcGFjZXIgW10gU3BhY2VyXG5AbWl4aW4gbWFyZ2luLWRpcmVjdGlvbigkZGlyLCAkc3BhY2VyKSB7XG4gIEBpZiAoJGRpciA9PSB0b3ApIHsgXG4gICAgQGluY2x1ZGUgbWFyZ2luKCR0b3A6ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSByaWdodCkgeyBcbiAgICBAaW5jbHVkZSBtYXJnaW4oJHJpZ2h0OiAkc3BhY2VyKTsgXG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gYm90dG9tKSB7IFxuICAgIEBpbmNsdWRlIG1hcmdpbigkYm90dG9tOiAkc3BhY2VyKTsgXG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gbGVmdCkgeyBcbiAgICBAaW5jbHVkZSBtYXJnaW4oJGxlZnQ6ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSBob3Jpem9udGFsKSB7IFxuICAgIEBpbmNsdWRlIG1hcmdpbigkcmlnaHQ6ICRzcGFjZXIsICRsZWZ0OiAkc3BhY2VyKTsgXG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gdmVydGljYWwpIHsgXG4gICAgQGluY2x1ZGUgbWFyZ2luKCR0b3A6ICRzcGFjZXIsICRib3R0b206ICRzcGFjZXIpOyBcbiAgfVxufVxuXG4vLy8gUGFkZGluZyBjbGFzc2VzIGZvciBzcGVjaWZpYyBkaXJlY3Rpb24gcHJvcGVydGllc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyIFtdIERpcmVjdGlvblxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2VyIFtdIFNwYWNlclxuQG1peGluIHBhZGRpbmctZGlyZWN0aW9uKCRkaXIsICRzcGFjZXIpIHtcbiAgQGlmICgkZGlyID09IHRvcCkgeyBcbiAgICBAaW5jbHVkZSBwYWRkaW5nKCR0b3A6ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSByaWdodCkgeyBcbiAgICBAaW5jbHVkZSBwYWRkaW5nKCRyaWdodDogJHNwYWNlcik7IFxuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IGJvdHRvbSkgeyBcbiAgICBAaW5jbHVkZSBwYWRkaW5nKCRib3R0b206ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSBsZWZ0KSB7IFxuICAgIEBpbmNsdWRlIHBhZGRpbmcoJGxlZnQ6ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSBob3Jpem9udGFsKSB7IFxuICAgIEBpbmNsdWRlIHBhZGRpbmcoJHJpZ2h0OiAkc3BhY2VyLCAkbGVmdDogJHNwYWNlcik7IFxuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IHZlcnRpY2FsKSB7IFxuICAgIEBpbmNsdWRlIHBhZGRpbmcoJHRvcDogJHNwYWNlciwgJGJvdHRvbTogJHNwYWNlcik7IFxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1zcGFjaW5nIHtcbiAgQGZvciAkc3BhY2VyIGZyb20gMCB0aHJvdWdoICRwcm90b3R5cGUtc3BhY2Vycy1jb3VudCB7XG4gICAgXG4gICAgQGVhY2ggJHByb3AgaW4gKG1hcmdpbiwgcGFkZGluZykge1xuICAgICAgLy8gQWxsIFNpZGVzXG4gICAgICAuI3skcHJvcH0tI3skc3BhY2VyfSB7XG4gICAgICAgIEBpZiAoJHByb3AgPT0gbWFyZ2luKSB7IFxuICAgICAgICAgIG1hcmdpbjogJHNwYWNlciAqICRnbG9iYWwtbWFyZ2luICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2UgaWYgKCRwcm9wID09IHBhZGRpbmcpIHsgXG4gICAgICAgICAgcGFkZGluZzogJHNwYWNlciAqICRnbG9iYWwtcGFkZGluZyAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBlYWNoICRkaXIgaW4gKHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCwgaG9yaXpvbnRhbCwgdmVydGljYWwpIHtcbiAgICAgICAgLy8gVG9wIFNpZGVcbiAgICAgICAgLiN7JHByb3B9LSN7JGRpcn0tI3skc3BhY2VyfSB7XG4gICAgICAgICAgQGlmICgkcHJvcCA9PSBtYXJnaW4pIHsgXG4gICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4tZGlyZWN0aW9uKCRkaXIsICRzcGFjZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAZWxzZSBpZiAoJHByb3AgPT0gcGFkZGluZykge1xuICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJGRpciwgJHNwYWNlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXNwYWNpbmctYnJlYWtwb2ludHMpIHtcbiAgICBAZm9yICRzcGFjZXIgZnJvbSAwIHRocm91Z2ggJHByb3RvdHlwZS1zcGFjZXJzLWNvdW50IHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgLiN7JHNpemV9IHtcbiAgICAgICAgICAgICAgQGVhY2ggJHByb3AgaW4gKG1hcmdpbiwgcGFkZGluZykge1xuICAgICAgICAgICAgICAgIC8vIEFsbCBTaWRlc1xuICAgICAgICAgICAgICAgICYtI3skcHJvcH0tI3skc3BhY2VyfSB7XG4gICAgICAgICAgICAgICAgICBAaWYgKCRwcm9wID09IG1hcmdpbikgeyBcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAkc3BhY2VyICogJGdsb2JhbC1tYXJnaW4gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBlbHNlIGlmICgkcHJvcCA9PSBwYWRkaW5nKSB7IFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkc3BhY2VyICogJGdsb2JhbC1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGVhY2ggJGRpciBpbiAodG9wLCByaWdodCwgYm90dG9tLCBsZWZ0LCBob3Jpem9udGFsLCB2ZXJ0aWNhbCkge1xuICAgICAgICAgICAgICAgICAgLy8gVG9wIFNpZGVcbiAgICAgICAgICAgICAgICAgICYtI3skcHJvcH0tI3skZGlyfS0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkcHJvcCA9PSBtYXJnaW4pIHsgXG4gICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWFyZ2luLWRpcmVjdGlvbigkZGlyLCAkc3BhY2VyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAZWxzZSBpZiAoJHByb3AgPT0gcGFkZGluZykgeyBcbiAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbigkZGlyLCAkc3BhY2VyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiJGN1c3RvbS1saWdodC1ncmF5OiAjZjhmOWZhO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==*/