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

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

body {
  margin: 0; }

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

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

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

a {
  background-color: transparent; }

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

b,
strong {
  font-weight: bolder; }

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

small {
  font-size: 80%; }

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

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

img {
  border-style: none; }

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

button,
input {
  overflow: visible; }

button,
select {
  text-transform: none; }

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

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

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

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

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

progress {
  vertical-align: baseline; }

textarea {
  overflow: auto; }

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

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

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

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

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

details {
  display: block; }

summary {
  display: list-item; }

template {
  display: none; }

[hidden] {
  display: none; }

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

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

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

body {
  margin: 0;
  padding: 0;
  background: #ffffff;
  font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #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;
  -webkit-appearance: none;
     -moz-appearance: none;
          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; }

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

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

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

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

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

h1, .h1, .h1,
h2,
.h2,
.stats__item--content, .h2,
h3,
.h3,
.search-snippet__title,
.block__heading--small,
.repeater-icon__item-heading,
.signpost__title, .h3, .search-snippet__title,
h4,
.h4,
.card--resource__title,
.signpost__grid--col-3 .signpost__title, .h4,
h5,
.h5,
.card__title, .h5,
h6,
.h6,
.pagination a,
.pagination span,
.widget-title, .h6 {
  font-family: "Coustard", "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  font-style: normal;
  font-weight: normal;
  color: #720a10;
  text-rendering: optimizeLegibility; }
  h1 small, .h1 small, .h1 small,
  h2 small,
  .h2 small,
  .stats__item--content small, .h2 small,
  h3 small,
  .h3 small,
  .search-snippet__title small,
  .block__heading--small small,
  .repeater-icon__item-heading small,
  .signpost__title small, .h3 small, .search-snippet__title small,
  h4 small,
  .h4 small,
  .card--resource__title small,
  .signpost__grid--col-3 .signpost__title small, .h4 small,
  h5 small,
  .h5 small,
  .card__title small, .h5 small,
  h6 small,
  .h6 small,
  .pagination a small,
  .pagination span small,
  .widget-title small, .h6 small {
    line-height: 0;
    color: #cacaca; }

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


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


h3,
.h3,
.search-snippet__title,
.block__heading--small,
.repeater-icon__item-heading,
.signpost__title, .h3, .search-snippet__title {
  font-size: 1.1875rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }


h4,
.h4,
.card--resource__title,
.signpost__grid--col-3 .signpost__title, .h4 {
  font-size: 1.125rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }


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


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

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

a {
  line-height: inherit;
  color: #720a10;
  text-decoration: none;
  cursor: pointer; }
  a:hover, a:focus {
    color: #62090e; }
  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 #cacaca;
  border-left: 0; }

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

li {
  font-size: inherit; }

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

ol {
  margin-left: 1.25rem; }

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

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

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 0; }
  blockquote, blockquote p {
    line-height: 1.6;
    color: inherit; }

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

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

figure {
  margin: 0; }

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

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #e6e6e6;
  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: #8a8a8a; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 2.6875rem;
  margin: 0 0 1.25rem;
  padding: 0.625rem;
  border: 1px solid #000000;
  border-radius: 0;
  background-color: #ffffff;
  box-shadow: 0;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #000000;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    outline: none;
    border: 1px solid #8a8a8a;
    background-color: #ffffff;
    box-shadow: 0 0 5px #cacaca;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }

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

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

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

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

::-webkit-input-placeholder {
  color: #cacaca; }

:-ms-input-placeholder {
  color: #cacaca; }

::placeholder {
  color: #cacaca; }

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

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

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

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

label {
  display: block;
  margin: 0;
  font-size: 1rem;
  font-weight: bold;
  line-height: 1.8;
  color: #000000; }
  label.middle {
    margin: 0 0 1.25rem;
    padding: 0.6875rem 0; }

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

.input-group {
  display: flex;
  width: 100%;
  margin-bottom: 1.25rem;
  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 #cacaca;
  background: #e6e6e6;
  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 {
    -ms-grid-row-align: stretch;
        align-self: stretch;
    height: auto;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 1rem; }

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

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

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

select {
  height: 2.6875rem;
  margin: 0 0 1.25rem;
  padding: 0.625rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #000000;
  border-radius: 0;
  background-color: #ffffff;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  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%28138, 138, 138%29'></polygon></svg>");
  background-origin: content-box;
  background-position: right -1.25rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 1.875rem;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }
  @media screen and (min-width: 0\0) {
    select {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
  select:focus {
    outline: none;
    border: 1px solid #8a8a8a;
    background-color: #ffffff;
    box-shadow: 0 0 5px #cacaca;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }
  select:disabled {
    background-color: #e6e6e6;
    cursor: not-allowed; }
  select::-ms-expand {
    display: none; }
  select[multiple] {
    height: auto;
    background-image: none; }

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

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

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

.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: 1px solid #e6e6e6;
  border-bottom: 0;
  font-size: 0.75rem;
  line-height: 1;
  color: #720a10; }
  :last-child:not(.is-active) > .accordion-title {
    border-bottom: 1px solid #e6e6e6;
    border-radius: 0 0 0 0; }
  .accordion-title:hover, .accordion-title:focus {
    background-color: #e6e6e6; }
  .accordion-title::before {
    position: absolute;
    top: 50%;
    right: 1rem;
    margin-top: -0.5rem;
    content: '+'; }
  .is-active > .accordion-title::before {
    content: '\2013'; }

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

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

.close-button {
  position: absolute;
  color: #8a8a8a;
  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, .close-button.medium {
    right: 1rem;
    top: 0.5rem;
    font-size: 2em;
    line-height: 1; }

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

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

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

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

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

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

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

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

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

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

.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  border-radius: 0;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  background: #720a10;
  color: #ffffff; }
  .label.primary {
    background: #720a10;
    color: #ffffff; }
  .label.secondary {
    background: #f7c95a;
    color: #000000; }
  .label.success {
    background: #3adb76;
    color: #000000; }
  .label.warning {
    background: #ffae00;
    color: #000000; }
  .label.alert {
    background: #cc4b37;
    color: #000000; }

.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;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #2C3840; }
  [data-whatinput='mouse'] .off-canvas {
    outline: 0; }
  .off-canvas.is-transition-push {
    z-index: 12; }
  .off-canvas.is-closed {
    visibility: hidden; }
  .off-canvas.is-transition-overlap {
    z-index: 13; }
    .off-canvas.is-transition-overlap.is-open {
      box-shadow: 0; }
  .off-canvas.is-open {
    transform: translate(0, 0); }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.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.625rem;
    border-radius: 0;
    font-size: 1rem;
    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: #e6e6e6; }
  .pagination .current {
    padding: 0.1875rem 0.625rem;
    background: transparent;
    color: #000000;
    cursor: default; }
  .pagination .disabled {
    padding: 0.1875rem 0.625rem;
    color: #cacaca;
    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: '\00ab'; }

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

.sticky-container {
  position: relative; }

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

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

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

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

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

.reveal {
  z-index: 1006;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  display: none;
  padding: 1rem;
  border: 1px solid #cacaca;
  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 {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 100%;
    margin-left: 0;
    border: 0;
    border-radius: 0; }
  @media screen and (max-width: 39.99875em) {
    .reveal {
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      width: 100%;
      max-width: none;
      height: 100%;
      min-height: 100%;
      margin-left: 0;
      border: 0;
      border-radius: 0; } }
  .reveal.without-overlay {
    position: fixed; }

table {
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 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 screen and (max-width: 63.99875em) {
  table.stack thead {
    display: none; }
  table.stack tfoot {
    display: none; }
  table.stack tr,
  table.stack th,
  table.stack td {
    display: block; }
  table.stack td {
    border-top: 0; } }

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

table.hover thead tr:hover {
  background-color: #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; }

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

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

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/*
  My custom styles:
  Add your scss files below to structure your project styles
*/
/************************************************

Stylesheet: Dev Helper

By creating a new constant called ENVIRONMENT in wp-config.php
we can do things like enable certain styles only when the site is
running locally.

The way this works is the header file looks for the constant and adds a class of 
.mode-{ENVIRONMENT} to the body. So if you set the constant to 'local' you'll have 
body class="mode-local" available to you. 

You could also use this CONSTANT to enable certain bits of code in specific environments.

If it's not already included in wp-config.php, add the following:

/** Used for turning things like GA tracking off in local env */
/** Set to local, staging, or live */
/*************************************************/
.mode-local footer:after {
  position: fixed;
  background: red;
  padding: 5px 10px;
  color: white;
  bottom: 0;
  right: 0;
  content: "LOCAL / BP: small";
  font-size: 0.875rem; }
  @media print, screen and (min-width: 40em) {
    .mode-local footer:after {
      content: "LOCAL / BP: medium"; } }
  @media print, screen and (min-width: 64em) {
    .mode-local footer:after {
      content: "LOCAL / BP: large"; } }
  @media screen and (min-width: 75em) {
    .mode-local footer:after {
      content: "LOCAL / BP: xlarge"; } }
  @media screen and (min-width: 90em) {
    .mode-local footer:after {
      content: "LOCAL / BP: xxlarge"; } }

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

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

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

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

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

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

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

.lead {
  font-size: 1.5rem; }
  @media (max-width: 1200px) {
    .lead {
      font-size: calc(1.275rem + 0.3vw) ; } }

h1, .h1, .h1 {
  font-size: 3.625rem; }
  @media (max-width: 1200px) {
    h1, .h1, .h1 {
      font-size: calc(1.4875rem + 2.85vw) ; } }


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


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


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


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


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

blockquote p {
  font-size: 1.25rem; }

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

p a:not(.button):not(.repeater-logo__link) {
  font-weight: 600;
  text-decoration: underline; }

#wpadminbar {
  position: fixed !important; }

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

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

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

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

.alignleft:not(.block):not(.wp-block-video):not(
.wp-block-embed.wp-block-embed-vimeo):not(
.wp-block-embed.wp-block-embed-youtube) {
  float: left;
  padding-right: 1rem;
  margin: 0; }

.alignright:not(.block):not(.wp-block-video):not(
.wp-block-embed.wp-block-embed-vimeo):not(
.wp-block-embed.wp-block-embed-youtube) {
  float: right;
  padding-left: 1rem;
  margin: 0; }

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

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

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

.has-primary-color {
  color: #720a10; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.footer {
  color: #ffffff; }
  .footer p,
  .footer li,
  .footer a {
    font-size: 14px; }
  .footer__top {
    background-color: #720a10;
    padding: 3rem 0 0; }
  .footer__bottom {
    background-color: #720a10;
    font-size: 12px;
    padding: 2rem 0; }
    @media print, screen and (min-width: 40em) {
      .footer__bottom {
        display: flex; } }
    .footer__bottom p,
    .footer__bottom li,
    .footer__bottom a {
      font-size: 12px; }
  @media print, screen and (min-width: 40em) {
    .footer__bottom-row {
      display: flex;
      justify-content: space-between; } }
  @media print, screen and (min-width: 40em) {
    .footer__bottom-left-portion {
      display: flex;
      flex-basis: 50%; } }
  .footer__bottom-right-portion {
    margin-top: 1rem; }
    @media print, screen and (min-width: 40em) {
      .footer__bottom-right-portion {
        display: flex;
        flex-basis: 50%;
        justify-content: flex-end;
        margin: 0; } }
  @media print, screen and (min-width: 40em) {
    .footer__legal-text, .footer__credits {
      margin-bottom: 0; } }
  .footer__widgets {
    text-align: center; }
    @media print, screen and (min-width: 40em) {
      .footer__widgets {
        text-align: left; } }
    .footer__widgets > *:last-child {
      margin-bottom: 0; }
      @media print, screen and (min-width: 40em) {
        .footer__widgets > *:last-child {
          text-align: right; } }
    @media print, screen and (min-width: 40em) {
      .footer__widgets {
        display: flex;
        flex-wrap: wrap; }
        .footer__widgets > * {
          flex: 0 0 33.33%; } }
  .footer .widget-title {
    color: #ffffff; }
  .footer .textwidget > *:last-child {
    margin-bottom: 0; }
  .footer .footer-widgets {
    margin-bottom: 3rem; }
    .footer .footer-widgets:last-child {
      margin-bottom: 0; }
    @media print, screen and (min-width: 40em) {
      .footer .footer-widgets {
        margin-bottom: 0; } }
  .footer ul {
    list-style-type: none;
    margin: 0; }
    .footer ul.footer-legal-menu {
      display: flex; }
      @media print, screen and (min-width: 40em) {
        .footer ul.footer-legal-menu {
          justify-content: flex-start; } }
      .footer ul.footer-legal-menu li {
        margin-right: 1rem; }
  .footer__social {
    margin: 1rem auto;
    display: flex;
    justify-content: space-between;
    max-width: 250px; }
  .footer a {
    color: #ffffff;
    text-decoration: none; }

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

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

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

.button, .wp-block-button .wp-block-button__link, #searchform .input-group .input-group-button .button, .repeater-logo__link {
  background-color: #720a10;
  border-color: #720a10;
  border-radius: 0;
  border-width: 2px;
  border-style: solid;
  color: #ffffff;
  display: inline-block;
  font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  font-weight: bold;
  font-size: 100%;
  line-height: 1;
  margin-bottom: 1rem;
  padding: 1rem 2rem;
  text-align: center;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  vertical-align: center;
  width: 100%; }
  @media print, screen and (min-width: 40em) {
    .button, .wp-block-button .wp-block-button__link, #searchform .input-group .input-group-button .button, .repeater-logo__link {
      font-size: 24px !important;
      width: auto; } }
  .button:hover, .wp-block-button .wp-block-button__link:hover, #searchform .input-group .input-group-button .button:hover, .repeater-logo__link:hover, .button:active, .wp-block-button .wp-block-button__link:active, #searchform .input-group .input-group-button .button:active, .repeater-logo__link:active, .button:focus, .wp-block-button .wp-block-button__link:focus, #searchform .input-group .input-group-button .button:focus, .repeater-logo__link:focus {
    background-color: transparent;
    border-color: #720a10;
    color: #720a10; }
  .button.primary, .wp-block-button .primary.wp-block-button__link, #searchform .input-group .input-group-button .primary.button, .primary.repeater-logo__link, .button--primary, .top-bar__button-one, .cta__buttons .button--cta-two, .repeater-logo__link, .pricing-table__table:nth-of-type(even) .pricing-table__button .button, .pricing-table__table:nth-of-type(even) .pricing-table__button .wp-block-button .wp-block-button__link, .wp-block-button .pricing-table__table:nth-of-type(even) .pricing-table__button .wp-block-button__link, .pricing-table__table:nth-of-type(even) .pricing-table__button #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .pricing-table__table:nth-of-type(even) .pricing-table__button .button, .pricing-table__table:nth-of-type(even) .pricing-table__button .repeater-logo__link {
    background-color: #720a10;
    border-color: #720a10;
    color: #ffffff; }
    .button.primary:hover, .wp-block-button .primary.wp-block-button__link:hover, #searchform .input-group .input-group-button .primary.button:hover, .primary.repeater-logo__link:hover, .button.primary:active, .wp-block-button .primary.wp-block-button__link:active, #searchform .input-group .input-group-button .primary.button:active, .primary.repeater-logo__link:active, .button.primary:focus, .wp-block-button .primary.wp-block-button__link:focus, #searchform .input-group .input-group-button .primary.button:focus, .primary.repeater-logo__link:focus, .button--primary:hover, .top-bar__button-one:hover, .cta__buttons .button--cta-two:hover, .repeater-logo__link:hover, .pricing-table__table:nth-of-type(even) .pricing-table__button .button:hover, .pricing-table__table:nth-of-type(even) .pricing-table__button .wp-block-button .wp-block-button__link:hover, .wp-block-button .pricing-table__table:nth-of-type(even) .pricing-table__button .wp-block-button__link:hover, .pricing-table__table:nth-of-type(even) .pricing-table__button #searchform .input-group .input-group-button .button:hover, #searchform .input-group .input-group-button .pricing-table__table:nth-of-type(even) .pricing-table__button .button:hover, .pricing-table__table:nth-of-type(even) .pricing-table__button .repeater-logo__link:hover, .button--primary:active, .top-bar__button-one:active, .cta__buttons .button--cta-two:active, .repeater-logo__link:active, .pricing-table__table:nth-of-type(even) .pricing-table__button .button:active, .pricing-table__table:nth-of-type(even) .pricing-table__button .wp-block-button .wp-block-button__link:active, .wp-block-button .pricing-table__table:nth-of-type(even) .pricing-table__button .wp-block-button__link:active, .pricing-table__table:nth-of-type(even) .pricing-table__button #searchform .input-group .input-group-button .button:active, #searchform .input-group .input-group-button .pricing-table__table:nth-of-type(even) .pricing-table__button .button:active, .pricing-table__table:nth-of-type(even) .pricing-table__button .repeater-logo__link:active, .button--primary:focus, .top-bar__button-one:focus, .cta__buttons .button--cta-two:focus, .repeater-logo__link:focus, .pricing-table__table:nth-of-type(even) .pricing-table__button .button:focus, .pricing-table__table:nth-of-type(even) .pricing-table__button .wp-block-button .wp-block-button__link:focus, .wp-block-button .pricing-table__table:nth-of-type(even) .pricing-table__button .wp-block-button__link:focus, .pricing-table__table:nth-of-type(even) .pricing-table__button #searchform .input-group .input-group-button .button:focus, #searchform .input-group .input-group-button .pricing-table__table:nth-of-type(even) .pricing-table__button .button:focus, .pricing-table__table:nth-of-type(even) .pricing-table__button .repeater-logo__link:focus {
      background-color: transparent;
      border-color: #720a10;
      color: #720a10; }
  .button--outline-primary {
    background-color: transparent;
    border-color: #720a10;
    color: #720a10; }
    .button--outline-primary:hover, .button--outline-primary:active, .button--outline-primary:focus {
      background-color: #720a10;
      border-color: #720a10;
      color: #ffffff; }
  .button--secondary, .button.secondary, .wp-block-button .secondary.wp-block-button__link, #searchform .input-group .input-group-button .secondary.button, .secondary.repeater-logo__link {
    background-color: #f7c95a;
    border-color: #f7c95a;
    color: #720a10; }
    .button--secondary:hover, .button--secondary:active, .button--secondary:focus, .button.secondary:hover, .wp-block-button .secondary.wp-block-button__link:hover, #searchform .input-group .input-group-button .secondary.button:hover, .secondary.repeater-logo__link:hover, .button.secondary:active, .wp-block-button .secondary.wp-block-button__link:active, #searchform .input-group .input-group-button .secondary.button:active, .secondary.repeater-logo__link:active, .button.secondary:focus, .wp-block-button .secondary.wp-block-button__link:focus, #searchform .input-group .input-group-button .secondary.button:focus, .secondary.repeater-logo__link:focus {
      background-color: transparent;
      border-color: #f7c95a;
      color: #f7c95a; }
  .button--outline-secondary {
    background-color: transparent;
    border-color: #f7c95a;
    color: #f7c95a; }
    .button--outline-secondary:hover, .button--outline-secondary:active, .button--outline-secondary:focus {
      background-color: #f7c95a;
      border-color: #f7c95a;
      color: #ffffff; }
  .button--white, .cta.block--primary .cta__buttons .button, .cta.block--primary .cta__buttons .wp-block-button .wp-block-button__link, .wp-block-button .cta.block--primary .cta__buttons .wp-block-button__link, .cta.block--primary .cta__buttons #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .cta.block--primary .cta__buttons .button, .cta.block--primary .cta__buttons .repeater-logo__link {
    background-color: #ffffff;
    border-color: #720a10;
    color: #000000; }
    .button--white:hover, .cta.block--primary .cta__buttons .button:hover, .cta.block--primary .cta__buttons .wp-block-button .wp-block-button__link:hover, .wp-block-button .cta.block--primary .cta__buttons .wp-block-button__link:hover, .cta.block--primary .cta__buttons #searchform .input-group .input-group-button .button:hover, #searchform .input-group .input-group-button .cta.block--primary .cta__buttons .button:hover, .cta.block--primary .cta__buttons .repeater-logo__link:hover, .button--white:active, .cta.block--primary .cta__buttons .button:active, .cta.block--primary .cta__buttons .wp-block-button .wp-block-button__link:active, .wp-block-button .cta.block--primary .cta__buttons .wp-block-button__link:active, .cta.block--primary .cta__buttons #searchform .input-group .input-group-button .button:active, #searchform .input-group .input-group-button .cta.block--primary .cta__buttons .button:active, .cta.block--primary .cta__buttons .repeater-logo__link:active, .button--white:focus, .cta.block--primary .cta__buttons .button:focus, .cta.block--primary .cta__buttons .wp-block-button .wp-block-button__link:focus, .wp-block-button .cta.block--primary .cta__buttons .wp-block-button__link:focus, .cta.block--primary .cta__buttons #searchform .input-group .input-group-button .button:focus, #searchform .input-group .input-group-button .cta.block--primary .cta__buttons .button:focus, .cta.block--primary .cta__buttons .repeater-logo__link:focus {
      background-color: transparent;
      border-color: #ffffff;
      color: #ffffff; }
  .button--outline-white {
    background-color: transparent;
    border-color: #ffffff;
    color: #ffffff; }
    .button--outline-white:hover, .button--outline-white:active, .button--outline-white:focus {
      background-color: #ffffff;
      border-color: #ffffff;
      color: #000000; }
  .button--small {
    padding-top: 0.85rem;
    padding-bottom: 0.8rem;
    min-height: 2.5rem; }

.card {
  background-color: #ffffff;
  box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  transition: all 0.3s ease-in-out;
  position: relative;
  z-index: 1; }
  .card:hover {
    position: relative;
    transform: scale(1.05);
    z-index: 1; }
  .card__image-container {
    position: relative;
    padding-top: 100%; }
  .card__image,
  .card picture {
    bottom: 0;
    height: 100%;
    left: 0;
    object-fit: cover;
    position: absolute;
    right: 0;
    top: 0;
    width: 100%; }
    .card__image.contain,
    .card picture.contain {
      object-fit: contain;
      padding: 2rem; }
  .card__content {
    align-items: flex-end;
    color: #000000;
    display: flex;
    flex: 1 0 auto;
    height: auto;
    padding: 0.5rem; }
  .card__title {
    line-height: 1.1;
    margin-bottom: 0; }
  .card__excerpt {
    margin-bottom: 0; }
  .card__category {
    color: #8a8a8a; }
  .card__footer {
    align-items: flex-end;
    justify-content: flex-end;
    display: flex;
    flex: 1 0 auto;
    padding: 0 2rem 2rem; }
  .card--search {
    background-color: #f7c95a;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    min-height: 264px; }
    .card--search:hover {
      transform: none;
      background-color: rgba(247, 201, 90, 0.55); }

.card--team {
  text-align: center; }
  .card--team .card__image,
  .card--team picture {
    object-fit: none; }
    .card--team .card__image img,
    .card--team picture img {
      border-radius: 50%; }

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

.card--event__event-date {
  color: #cacaca; }

.card--resource {
  border: 1px solid #cacaca;
  padding: 0; }
  .card--resource .card__content {
    align-items: flex-start;
    padding: 2rem 2rem 0; }
  .card--resource__heading {
    align-items: center;
    background-color: #f7c95a;
    display: flex;
    justify-content: center;
    margin-bottom: 0;
    padding: 1rem; }
  .card--resource__title {
    font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
    font-size: 18px; }
  .card--resource__icon {
    flex: 0 0 10%;
    margin-left: 1rem; }
    @media print, screen and (min-width: 40em) {
      .card--resource__icon {
        margin-left: 3rem; } }
  .card--resource__title {
    line-height: 1;
    margin: 0;
    transition: color 0.3s ease; }

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

.social-link {
  display: inline-block;
  margin: 0 1rem;
  padding: 0.375rem 0 0;
  text-align: center;
  transition: all 0.2s ease-out; }
  .social-link:hover {
    opacity: 0.8; }
  .social-link .icon-linkedin {
    margin-top: -1px; }
  .social-link svg {
    max-height: 35px; }

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

label span {
  color: #cc4b37; }

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

.link-inline, #cookie-law-info-bar #CONSTANT_OPEN_URL,
#cookie-law-info-bar .cli_settings_button {
  border-bottom: 2px solid #720a10;
  color: #720a10;
  font-weight: 600;
  position: relative;
  text-decoration: none;
  transition: border-bottom .2s ease-in; }
  .link-inline:hover, #cookie-law-info-bar #CONSTANT_OPEN_URL:hover,
  #cookie-law-info-bar .cli_settings_button:hover {
    border-bottom: 2px solid rgba(114, 10, 16, 0); }
  .link-inline--secondary {
    border-bottom: 2px solid #f7c95a;
    color: #f7c95a;
    transition: border-bottom .2s ease-in; }
    .link-inline--secondary:hover {
      border-bottom: 2px solid rgba(247, 201, 90, 0);
      color: #f7c95a; }

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

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

.pagination {
  color: #000000; }
  .pagination a,
  .pagination span {
    border-radius: 0;
    color: #720a10;
    display: inline-block;
    margin: 0;
    padding: 0.5rem 1rem;
    transition: all 0.3s ease; }
    .pagination a:hover,
    .pagination span:hover {
      background-color: #720a10;
      color: #ffffff; }
  .pagination .prev,
  .pagination .next {
    align-items: center;
    background-color: #ffffff;
    color: #000000;
    display: flex;
    font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
    font-size: 1rem;
    font-weight: 400;
    padding: 0 1rem; }
    .pagination .prev:hover,
    .pagination .next:hover {
      background-color: #ffffff;
      color: #720a10; }
  .pagination .next::after {
    content: url("../images/icons/chevron-right.svg");
    margin-left: 1rem; }
  .pagination .prev::before {
    content: url("../images/icons/chevron-right.svg");
    transform: rotate(180deg);
    margin-right: 1rem; }
  .pagination .current {
    background-color: #720a10;
    color: #ffffff;
    padding: 0.5rem 1rem; }

#searchform:focus {
  outline: none;
  box-shadow: none; }

#searchform .input-group {
  margin: 0; }
  #searchform .input-group .input-group-field {
    background-color: #ffffff;
    border-right: 0;
    border: 0;
    color: #000000;
    height: 4rem;
    border-radius: 50px;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    min-width: 280px;
    padding-left: 1rem; }
    @media print, screen and (min-width: 64em) {
      #searchform .input-group .input-group-field {
        min-width: 350px; } }
    #searchform .input-group .input-group-field::-webkit-input-placeholder {
      color: #000000; }
    #searchform .input-group .input-group-field:-ms-input-placeholder {
      color: #000000; }
    #searchform .input-group .input-group-field::placeholder {
      color: #000000; }
  #searchform .input-group .input-group-button .wp-block-button .wp-block-button__link, .wp-block-button #searchform .input-group .input-group-button .wp-block-button__link, #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .repeater-logo__link {
    margin-bottom: 0;
    min-width: inherit !important;
    padding-left: 2rem;
    padding-right: 2rem;
    height: 4rem;
    border-radius: 50px;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0; }

#searchform input[type="text"] {
  height: 4rem;
  line-height: 2; }
  #searchform input[type="text"]:focus {
    box-shadow: none; }

.reveal--search-modal {
  background-color: rgba(247, 201, 90, 0.95); }

.search-modal {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
  justify-content: center;
  align-items: center;
  text-align: center; }
  .search-modal .close-button {
    color: #ffffff;
    right: 2rem;
    top: 2rem;
    font-size: 3em; }

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

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

.widget {
  margin-bottom: 2rem; }

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

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

.site-header {
  background-color: #720a10;
  display: flex;
  height: auto;
  position: relative;
  transition: all linear 0.3s;
  width: 100%; }
  .site-header--fixed {
    left: 0;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 99; }
  .site-header--scrolled {
    box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.1); }

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

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

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

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

.mobile-hamburger {
  padding: 1rem; }

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

.off-canvas {
  background-color: #f7c95a;
  display: flex;
  flex-direction: column;
  overflow-x: hidden; }
  .off-canvas__header {
    display: flex;
    justify-content: flex-end;
    padding: 1rem 1rem 3rem; }
    .off-canvas__header .mobile-hamburger {
      padding-right: 0; }
  .off-canvas__footer {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    flex: 1 0 auto;
    justify-content: flex-end;
    padding: 0 1.5rem 4rem; }
    .off-canvas__footer .button, .off-canvas__footer .wp-block-button .wp-block-button__link, .wp-block-button .off-canvas__footer .wp-block-button__link, .off-canvas__footer #searchform .input-group .input-group-button .button, #searchform .input-group .input-group-button .off-canvas__footer .button, .off-canvas__footer .repeater-logo__link {
      font-size: 100%;
      margin-bottom: 0; }
    .off-canvas__footer .phone-number {
      color: #ffffff;
      display: block;
      font-size: 18px;
      font-weight: 600;
      margin-bottom: 1rem; }

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

/*
	Navigation styles for dropdown & mega menu variation
	*/
.dropdown {
  display: flex;
  list-style: none;
  margin-bottom: 0; }
  @media screen and (max-width: 63.99875em) {
    .dropdown {
      display: none !important; } }
  .dropdown li {
    display: flex;
    flex-direction: column;
    position: relative; }
    .dropdown li > a {
      color: #ffffff;
      height: 100%;
      display: flex;
      font-family: "Coustard", "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
      font-size: 22px;
      align-items: center;
      padding: 1.5rem 1rem; }
      .dropdown li > a:hover {
        color: #f7c95a; }
    .dropdown li:hover ul {
      display: flex;
      flex-wrap: wrap; }
      @supports ((display: -ms-grid) or (display: grid)) {
        .dropdown li:hover ul {
          display: -ms-grid;
          display: grid; } }
    .dropdown li.current-menu-item > a, .dropdown li.current-page-parent > a {
      color: #f7c95a; }
    .dropdown li.is-dropdown-submenu-parent > a {
      position: relative;
      padding-right: 2rem; }
      .dropdown li.is-dropdown-submenu-parent > a::after {
        border-style: solid;
        border-width: 2px 2px 0 0;
        content: "";
        display: inline-block;
        height: 8px;
        position: absolute;
        right: 1rem;
        top: calc(50% - 5px);
        transform: rotate(135deg);
        vertical-align: top;
        width: 8px; }
  .dropdown ul {
    background-color: #f7c95a;
    display: none;
    left: auto;
    right: 0;
    margin: 0;
    opacity: 0;
    position: absolute;
    top: 100%;
    transition: opacity ease-out 0.2s;
    width: 15rem;
    z-index: 2; }
    .dropdown ul li {
      width: 100%; }
      .dropdown ul li a {
        display: block;
        color: #720a10 !important;
        padding: 0.5rem 1rem; }
    .dropdown ul.js-dropdown-active {
      display: -ms-grid;
      display: grid;
      opacity: 1; }
  .dropdown.underlined-links > li {
    margin: 0 1rem; }
    .dropdown.underlined-links > li > a {
      border-bottom: 5px solid transparent;
      padding-left: 0;
      padding-right: 0; }
      .dropdown.underlined-links > li > a:hover {
        border-bottom-color: #720a10; }
    .dropdown.underlined-links > li.current-menu-item > a, .dropdown.underlined-links > li.current-page-parent > a {
      border-bottom-color: #720a10; }

/*
	Navigation styles for drilldown menu. _mobile-drilldown-menu.scss
	@TODO remove reliance on foundation press drilldown menu.
	*/
.is-drilldown {
  min-height: auto !important;
  max-width: 100% !important;
  overflow: initial; }
  .is-drilldown ul {
    margin-left: 0; }
  .is-drilldown li {
    position: static;
    width: 100%; }
    .is-drilldown li a {
      align-items: center;
      background-color: transparent;
      color: #720a10;
      display: flex;
      font-family: "Coustard", "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
      font-size: 28px;
      font-weight: normal;
      justify-content: space-between;
      padding: 0.5rem 1.5rem;
      width: 100%; }
    .is-drilldown li.js-drilldown-back a {
      font-size: 1rem;
      justify-content: flex-start; }
      .is-drilldown li.js-drilldown-back a::before {
        border: none;
        content: url("../images/icons/chevron-right.svg");
        height: auto;
        margin: 0 1rem 0 0;
        width: 6px;
        position: relative;
        top: 0;
        transform: rotate(180deg); }

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

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

.header-basic {
  margin: 0 auto 2rem;
  max-width: 100%;
  padding: 2rem 0; }
  @media print, screen and (min-width: 40em) {
    .header-basic {
      padding: 3rem 0; } }

.block, .wp-block-video,
.wp-block-embed.wp-block-embed-vimeo,
.wp-block-embed.wp-block-embed-youtube {
  margin-bottom: 4rem; }
  @media print, screen and (min-width: 40em) {
    .block, .wp-block-video,
    .wp-block-embed.wp-block-embed-vimeo,
    .wp-block-embed.wp-block-embed-youtube {
      margin-bottom: 4rem; } }
  .block:focus, .wp-block-video:focus,
  .wp-block-embed.wp-block-embed-vimeo:focus,
  .wp-block-embed.wp-block-embed-youtube:focus {
    outline-color: transparent; }
  .block.alignright, .alignright.wp-block-video,
  .alignright.wp-block-embed.wp-block-embed-vimeo,
  .alignright.wp-block-embed.wp-block-embed-youtube, .block.alightleft, .alightleft.wp-block-video,
  .alightleft.wp-block-embed.wp-block-embed-vimeo,
  .alightleft.wp-block-embed.wp-block-embed-youtube {
    float: none !important;
    padding-left: 0;
    padding-right: 0; }
  .block--small, .breadcrumbs, .archive__taxonomy-filter, .block__heading-row, .pricing-table__heading, .relationship__heading {
    margin-bottom: 2rem; }
  .block.no-margin, .no-margin.wp-block-video,
  .no-margin.wp-block-embed.wp-block-embed-vimeo,
  .no-margin.wp-block-embed.wp-block-embed-youtube {
    margin-bottom: 0; }
  .block--padding {
    padding: 2rem 0; }
    @media print, screen and (min-width: 40em) {
      .block--padding {
        padding: 4rem 0; } }
  .block--padding-hero {
    padding: 6rem 0; }
    @media print, screen and (min-width: 40em) {
      .block--padding-hero {
        padding: 10rem 0; } }
  .block--padding-small {
    padding: 1.5rem 0; }
    @media print, screen and (min-width: 40em) {
      .block--padding-small {
        padding: 2.5rem 0; } }
  .block--default {
    background-color: #ffffff; }
  .block--primary {
    background-color: #720a10; }
  .block--secondary {
    background-color: #f7c95a; }
  .block--colored-text h1, .block--primary h1, .block--colored-text .h1, .block--primary .h1,
  .block--colored-text h2,
  .block--primary h2,
  .block--colored-text .h2,
  .block--primary .h2,
  .block--colored-text .stats__item--content,
  .block--primary .stats__item--content,
  .block--colored-text h3,
  .block--primary h3,
  .block--colored-text .h3,
  .block--primary .h3,
  .block--colored-text .search-snippet__title,
  .block--primary .search-snippet__title,
  .block--colored-text .block__heading--small,
  .block--primary .block__heading--small,
  .block--colored-text .repeater-icon__item-heading,
  .block--primary .repeater-icon__item-heading,
  .block--colored-text .signpost__title,
  .block--primary .signpost__title,
  .block--colored-text h4,
  .block--primary h4,
  .block--colored-text .h4,
  .block--primary .h4,
  .block--colored-text .card--resource__title,
  .block--primary .card--resource__title,
  .block--colored-text .signpost__grid--col-3 .signpost__title,
  .signpost__grid--col-3 .block--colored-text .signpost__title,
  .block--primary .signpost__grid--col-3 .signpost__title,
  .signpost__grid--col-3 .block--primary .signpost__title,
  .block--colored-text h5,
  .block--primary h5,
  .block--colored-text .h5,
  .block--primary .h5,
  .block--colored-text .card__title,
  .block--primary .card__title,
  .block--colored-text h6,
  .block--primary h6,
  .block--colored-text .h6,
  .block--primary .h6,
  .block--colored-text .pagination a,
  .pagination .block--colored-text a,
  .block--primary .pagination a,
  .pagination .block--primary a,
  .block--colored-text .pagination span,
  .pagination .block--colored-text span,
  .block--primary .pagination span,
  .pagination .block--primary span,
  .block--colored-text .widget-title,
  .block--primary .widget-title,
  .block--colored-text p,
  .block--primary p,
  .block--colored-text li,
  .block--primary li,
  .block--colored-text label,
  .block--primary label,
  .block--colored-text cite,
  .block--primary cite {
    color: #ffffff; }
  .block--colored-text .card *, .block--primary .card * {
    color: #720a10; }
  .block__heading {
    margin-bottom: 0; }
    .block__heading--center {
      text-align: center; }
  .block__subheading {
    margin: 1rem 0 0;
    text-align: center; }
  .block__heading-wysywig > *:last-child {
    margin-bottom: 0; }

.mon-row, .footer__row, .hero__content, .hero-featured__content, .timeline__section-row, .wp-block-embed {
  margin: 0 auto;
  max-width: 75rem;
  padding: 0 1rem;
  width: 100%; }

footer {
  content-visibility: auto; }

.mon-accordion .accordion-title {
  background-color: #720a10;
  color: #ffffff;
  font-family: "Coustard", "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  font-size: 20px; }

.mon-accordion .accordion-item {
  margin-bottom: 0.5rem; }

.mon-accordion .accordion-content {
  border-bottom: 1px solid #e6e6e6; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.content-image--parallax .content-image__illustration {
  position: absolute; }

.content-image--parallax.content-image--contain .content-image__image {
  object-fit: contain; }

.cta__grid {
  text-align: center; }

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

.cta--global {
  background-color: #f7c95a;
  color: #720a10; }
  .cta--global .cta__buttons {
    margin-top: 1rem; }
    .cta--global .cta__buttons .button + .button, .cta--global .cta__buttons .wp-block-button .wp-block-button__link + .button, .wp-block-button .cta--global .cta__buttons .wp-block-button__link + .button, .cta--global .cta__buttons .repeater-logo__link + .button, .cta--global .cta__buttons .wp-block-button .button + .wp-block-button__link, .wp-block-button .cta--global .cta__buttons .button + .wp-block-button__link, .cta--global .cta__buttons .wp-block-button .wp-block-button__link + .wp-block-button__link, .wp-block-button .cta--global .cta__buttons .wp-block-button__link + .wp-block-button__link, .cta--global .cta__buttons #searchform .input-group .input-group-button .wp-block-button .button + .wp-block-button__link, .wp-block-button .cta--global .cta__buttons #searchform .input-group .input-group-button .button + .wp-block-button__link, #searchform .input-group .input-group-button .cta--global .cta__buttons .wp-block-button .button + .wp-block-button__link, .wp-block-button #searchform .input-group .input-group-button .cta--global .cta__buttons .button + .wp-block-button__link, .cta--global .cta__buttons .wp-block-button .repeater-logo__link + .wp-block-button__link, .wp-block-button .cta--global .cta__buttons .repeater-logo__link + .wp-block-button__link, .cta--global .cta__buttons .wp-block-button #searchform .input-group .input-group-button .wp-block-button__link + .button, #searchform .input-group .input-group-button .cta--global .cta__buttons .wp-block-button .wp-block-button__link + .button, .wp-block-button .cta--global .cta__buttons #searchform .input-group .input-group-button .wp-block-button__link + .button, #searchform .input-group .input-group-button .wp-block-button .cta--global .cta__buttons .wp-block-button__link + .button, .cta--global .cta__buttons #searchform .input-group .input-group-button .button + .button, #searchform .input-group .input-group-button .cta--global .cta__buttons .button + .button, .cta--global .cta__buttons #searchform .input-group .input-group-button .repeater-logo__link + .button, #searchform .input-group .input-group-button .cta--global .cta__buttons .repeater-logo__link + .button, .cta--global .cta__buttons .button + .repeater-logo__link, .cta--global .cta__buttons .wp-block-button .wp-block-button__link + .repeater-logo__link, .wp-block-button .cta--global .cta__buttons .wp-block-button__link + .repeater-logo__link, .cta--global .cta__buttons #searchform .input-group .input-group-button .button + .repeater-logo__link, #searchform .input-group .input-group-button .cta--global .cta__buttons .button + .repeater-logo__link, .cta--global .cta__buttons .repeater-logo__link + .repeater-logo__link {
      margin-top: 1rem; }
      @media print, screen and (min-width: 40em) {
        .cta--global .cta__buttons .button + .button, .cta--global .cta__buttons .wp-block-button .wp-block-button__link + .button, .wp-block-button .cta--global .cta__buttons .wp-block-button__link + .button, .cta--global .cta__buttons .repeater-logo__link + .button, .cta--global .cta__buttons .wp-block-button .button + .wp-block-button__link, .wp-block-button .cta--global .cta__buttons .button + .wp-block-button__link, .cta--global .cta__buttons .wp-block-button .wp-block-button__link + .wp-block-button__link, .wp-block-button .cta--global .cta__buttons .wp-block-button__link + .wp-block-button__link, .cta--global .cta__buttons #searchform .input-group .input-group-button .wp-block-button .button + .wp-block-button__link, .wp-block-button .cta--global .cta__buttons #searchform .input-group .input-group-button .button + .wp-block-button__link, #searchform .input-group .input-group-button .cta--global .cta__buttons .wp-block-button .button + .wp-block-button__link, .wp-block-button #searchform .input-group .input-group-button .cta--global .cta__buttons .button + .wp-block-button__link, .cta--global .cta__buttons .wp-block-button .repeater-logo__link + .wp-block-button__link, .wp-block-button .cta--global .cta__buttons .repeater-logo__link + .wp-block-button__link, .cta--global .cta__buttons .wp-block-button #searchform .input-group .input-group-button .wp-block-button__link + .button, #searchform .input-group .input-group-button .cta--global .cta__buttons .wp-block-button .wp-block-button__link + .button, .wp-block-button .cta--global .cta__buttons #searchform .input-group .input-group-button .wp-block-button__link + .button, #searchform .input-group .input-group-button .wp-block-button .cta--global .cta__buttons .wp-block-button__link + .button, .cta--global .cta__buttons #searchform .input-group .input-group-button .button + .button, #searchform .input-group .input-group-button .cta--global .cta__buttons .button + .button, .cta--global .cta__buttons #searchform .input-group .input-group-button .repeater-logo__link + .button, #searchform .input-group .input-group-button .cta--global .cta__buttons .repeater-logo__link + .button, .cta--global .cta__buttons .button + .repeater-logo__link, .cta--global .cta__buttons .wp-block-button .wp-block-button__link + .repeater-logo__link, .wp-block-button .cta--global .cta__buttons .wp-block-button__link + .repeater-logo__link, .cta--global .cta__buttons #searchform .input-group .input-group-button .button + .repeater-logo__link, #searchform .input-group .input-group-button .cta--global .cta__buttons .button + .repeater-logo__link, .cta--global .cta__buttons .repeater-logo__link + .repeater-logo__link {
          margin-left: 3rem; } }

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

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

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

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

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

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

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

.hero-archive {
  margin-bottom: 2rem; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

a.repeater-icon__item {
  display: block;
  transition: .25s linear all; }
  a.repeater-icon__item .repeater-icon__text {
    color: #000000; }
  a.repeater-icon__item:hover {
    border-color: #720a10; }
    a.repeater-icon__item:hover .repeater-icon__item-heading {
      color: #720a10; }

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

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

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

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

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

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

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

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

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

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

.signpost__heading {
  margin-bottom: 2rem; }

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

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

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

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

.signpost__text {
  margin-bottom: 0; }

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

.testimonial__icon {
  background-image: url(../images/white-out-logo.png);
  background-repeat: no-repeat;
  background-size: contain;
  display: block;
  height: 80px;
  margin: 0 auto 1.5rem;
  width: 80px; }

.testimonial__quote {
  color: #720a10; }

.testimonial__cite {
  color: #720a10;
  font-family: "Coustard", "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  font-style: normal; }

.relationship__view-all {
  margin-top: 2rem;
  text-align: center; }

.relationship__grid,
.relationship__grid--1 {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 100%;
  grid-gap: 0 !important; }
  @supports ((display: -ms-grid) or (display: grid)) {
    .relationship__grid,
    .relationship__grid--1 {
      display: -ms-grid;
      display: grid;
      grid-gap: 20px;
      -ms-grid-columns: (minmax(0, 1fr))[2];
          grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media print, screen and (min-width: 40em) {
    .relationship__grid,
    .relationship__grid--1 {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      margin: 0 auto;
      max-width: 100%;
      grid-gap: 0 !important; }
      @supports ((display: -ms-grid) or (display: grid)) {
        .relationship__grid,
        .relationship__grid--1 {
          display: -ms-grid;
          display: grid;
          grid-gap: 20px;
          -ms-grid-columns: (minmax(0, 1fr))[4];
              grid-template-columns: repeat(4, minmax(0, 1fr)); } } }

.relationship__grid--1 .relationship__content {
  padding: 3rem 2rem; }

@media print, screen and (min-width: 40em) {
  .relationship__grid--2 {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 0 auto;
    max-width: 100%; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .relationship__grid--2 {
        display: -ms-grid;
        display: grid;
        grid-gap: 20px;
        -ms-grid-columns: (minmax(0, 1fr))[2];
            grid-template-columns: repeat(2, minmax(0, 1fr)); } }
    .relationship__grid--2 > * {
      flex-basis: calc(50% - 1rem); } }

@media print, screen and (min-width: 40em) {
  .relationship__grid--3 {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 0 auto;
    max-width: 100%; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .relationship__grid--3 {
        display: -ms-grid;
        display: grid;
        grid-gap: 20px;
        -ms-grid-columns: (minmax(0, 1fr))[3];
            grid-template-columns: repeat(3, minmax(0, 1fr)); } }
    .relationship__grid--3 > * {
      flex-basis: calc(33.33% - 1rem); } }

@media print, screen and (min-width: 40em) {
  .relationship__grid--4 {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 0 auto;
    max-width: 100%; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .relationship__grid--4 {
        display: -ms-grid;
        display: grid;
        grid-gap: 20px;
        -ms-grid-columns: (minmax(0, 1fr))[4];
            grid-template-columns: repeat(4, minmax(0, 1fr)); } }
    .relationship__grid--4 > * {
      flex-basis: calc(25% - 1rem); } }

@media print, screen and (min-width: 40em) {
  .relationship__grid--5 {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 0 auto;
    max-width: 100%; }
    @supports ((display: -ms-grid) or (display: grid)) {
      .relationship__grid--5 {
        display: -ms-grid;
        display: grid;
        grid-gap: 20px;
        -ms-grid-columns: (minmax(0, 1fr))[5];
            grid-template-columns: repeat(5, minmax(0, 1fr)); } }
    .relationship__grid--5 > * {
      flex-basis: calc(20% - 1rem); } }

.relationship__grid--3 .card {
  display: block; }

.relationship-team .relationship__grid,
.relationship-team .relationship__grid--1 {
  display: -ms-grid;
  display: grid;
  grid-column-gap: 1rem;
  -ms-grid-columns: 1fr;
      grid-template-columns: 1fr; }

.relationship-team .relationship__grid--1 .relationship-team__content {
  padding: 3rem 2rem; }

.relationship-team .relationship__grid--2 {
  -ms-grid-columns: (1fr)[2];
      grid-template-columns: repeat(2, 1fr); }

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

@media print, screen and (min-width: 40em) {
  .relationship-team .relationship__grid--4 {
    grid-row-gap: 1rem;
    -ms-grid-columns: (1fr)[4];
        grid-template-columns: repeat(4, 1fr); } }

.timeline__section-background {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  padding: 5rem 0;
  position: relative; }
  .timeline__section-background::before {
    background-color: #000000;
    content: '';
    display: block;
    height: 100%;
    left: 1rem;
    position: absolute;
    top: 150px;
    width: 4px; }
    @media print, screen and (min-width: 40em) {
      .timeline__section-background::before {
        left: 50%; } }
  .timeline__section-background:last-of-type::before {
    bottom: 200px;
    top: auto; }

.timeline__title {
  flex: 0 0 100%;
  margin-bottom: 3rem;
  text-align: center; }

.timeline__marker {
  background: #720a10;
  border-radius: 50%;
  border: 3px solid #000000;
  height: 17px;
  margin-left: -7px;
  order: 2;
  position: absolute;
  top: 32px;
  width: 17px; }
  @media print, screen and (min-width: 40em) {
    .timeline__marker {
      height: 30px;
      margin-left: calc(5% - 13px);
      margin-top: 1.5rem;
      position: initial;
      width: 30px; } }

.timeline__card {
  background-color: #e6e6e6;
  flex: 0 0 100%;
  margin: 0 1rem 3rem 2rem;
  padding: 1.5rem;
  position: relative; }
  @media print, screen and (min-width: 40em) {
    .timeline__card {
      flex: 0 0 45%;
      margin: 0;
      margin-bottom: 3rem;
      order: 1;
      padding: 2rem; } }
  .timeline__card::before {
    border-bottom: 20px solid transparent;
    border-right: 20px solid #e6e6e6;
    border-top: 20px solid transparent;
    content: '';
    left: -20px;
    position: absolute;
    top: 20px; }
  .timeline__card__image {
    margin-bottom: 1rem; }
  .timeline__card__content p:last-of-type {
    margin-bottom: 0; }

.timeline__item {
  position: relative;
  z-index: 1; }
  @media print, screen and (min-width: 40em) {
    .timeline__item {
      display: flex; } }
  @media print, screen and (min-width: 40em) {
    .timeline__item--left + .timeline__item--left {
      margin-top: 0; } }
  @media print, screen and (min-width: 40em) {
    .timeline__item--left .timeline__card::before {
      left: auto;
      right: -20px;
      transform: rotate(180deg); } }
  @media print, screen and (min-width: 40em) {
    .timeline__item--right {
      flex-direction: row-reverse;
      margin-top: -20rem; } }
  @media print, screen and (min-width: 40em) {
    .timeline__item--right + .timeline__item--right {
      margin-top: 0; } }
  @media print, screen and (min-width: 40em) {
    .timeline__item--right .timeline__marker {
      margin-right: calc(5% - 17px); } }

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

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

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

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

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

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

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

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

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

/* Slider */
/* DO NOT EDIT THESE, USE THE RULES AT THE BOTTOM */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -khtml-user-select: none;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

.slick-list {
  position: relative;
  display: block;
  overflow: hidden;
  margin: 0;
  padding: 0; }

.slick-list:focus {
  outline: none; }

.slick-list.dragging {
  cursor: pointer;
  cursor: hand; }

.slick-slider .slick-track,
.slick-slider .slick-list {
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  top: 0;
  left: 0;
  display: block;
  margin-left: auto;
  margin-right: auto; }

.slick-track:before,
.slick-track:after {
  display: table;
  content: ""; }

.slick-track:after {
  clear: both; }

.slick-loading .slick-track {
  visibility: hidden; }

.slick-slide {
  display: none;
  float: left;
  height: 100%;
  min-height: 1px; }

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

.slider {
  padding-bottom: 1rem; }
  .slider .slider__image {
    min-height: 260px;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    padding-top: 56.25%;
    position: relative; }
    .slider .slider__image img,
    .slider .slider__image picture {
      left: 0;
      object-fit: cover;
      position: absolute;
      top: 0;
      width: 100%; }
  .slider .slick-dots {
    bottom: -2rem; }
    .slider .slick-dots li {
      margin: 0 0.5rem; }
      .slider .slick-dots li button:before {
        background-color: #e6e6e6;
        border: none;
        height: 16px;
        width: 16px; }
      .slider .slick-dots li.slick-active button:before {
        background-color: #720a10; }
  .slider .slick-arrow {
    background-color: #f7c95a;
    border-radius: 50%;
    height: 50px;
    top: calc(50% - 25px);
    transform-origin: 50% 25%;
    width: 50px;
    z-index: 3;
    opacity: 0.8; }
    @media print, screen and (min-width: 64em) {
      .slider .slick-arrow {
        color: #720a10;
        width: 110px;
        height: 110px; }
        .slider .slick-arrow.slick-next {
          right: 0; }
        .slider .slick-arrow.slick-prev {
          left: 1rem; } }
    @media print, screen and (min-width: 64em) {
      .slider .slick-arrow:before {
        content: url(../images/icons/chevron-right-large.svg); }
      .slider .slick-arrow:hover, .slider .slick-arrow:focus, .slider .slick-arrow:active {
        background: #720a10;
        color: #ffffff; } }
    .slider .slick-arrow.slick-next {
      margin-left: 1rem;
      right: 2rem; }
    .slider .slick-arrow.slick-prev {
      left: 2rem;
      transform: rotate(180deg); }
    .slider .slick-arrow:hover, .slider .slick-arrow:focus, .slider .slick-arrow:active {
      background: #f7c95a; }
    .slider .slick-arrow:hover {
      opacity: 1; }
    .slider .slick-arrow:before {
      color: #ffffff;
      content: url(../images/icons/chevron-right-large.svg);
      position: relative;
      right: 0;
      top: 0; }

/* Arrows */
.slick-prev,
.slick-next {
  position: absolute;
  display: block;
  height: 20px;
  width: 20px;
  line-height: 0px;
  font-size: 0px;
  cursor: pointer;
  background: transparent;
  color: transparent;
  top: 50%;
  transform: translate(0, -50%);
  padding: 0;
  border: none;
  outline: none; }
  .slick-prev:hover, .slick-prev:focus,
  .slick-next:hover,
  .slick-next:focus {
    outline: none;
    background: transparent;
    color: transparent; }
  .slick-prev:before,
  .slick-next:before {
    font-size: 20px;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }

.slick-prev {
  left: -25px; }
  [dir="rtl"] .slick-prev {
    left: auto;
    right: -25px; }

.slick-next {
  right: -25px; }
  [dir="rtl"] .slick-next {
    left: -25px;
    right: auto; }

/* Dots */
.slick-dotted.slick-slider {
  margin-bottom: 30px; }

.slick-dots {
  position: absolute;
  bottom: 0;
  list-style: none;
  display: block;
  text-align: center;
  padding: 0;
  margin: 0;
  width: 100%; }
  .slick-dots li {
    position: relative;
    display: inline-block;
    height: 0.625rem;
    width: 0.625rem;
    margin: 0 5px;
    padding: 0; }
    .slick-dots li button {
      border: 0;
      background: transparent;
      display: block;
      height: 0.625rem;
      width: 0.625rem;
      outline: none;
      line-height: 0px;
      font-size: 0px;
      color: transparent;
      padding: 5px;
      cursor: pointer; }
      .slick-dots li button:hover, .slick-dots li button:focus {
        outline: none; }
        .slick-dots li button:hover:before, .slick-dots li button:focus:before {
          border-color: #720a10; }
      .slick-dots li button:before {
        position: absolute;
        top: 0;
        left: 0;
        content: "";
        border-radius: 50%;
        width: 10px;
        height: 10px;
        line-height: 20px;
        text-align: center;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        transition: all .25s ease; }
    .slick-dots li.slick-active button:before {
      border-color: #720a10; }

.slider.standardSlider .slick-list {
  padding: 0; }

.slider.standardSlider .slick-slide {
  margin: 0 1rem; }

.slider.standardSlider .slider__image {
  padding-top: 56.25%;
  position: relative; }
  .slider.standardSlider .slider__image img,
  .slider.standardSlider .slider__image picture {
    height: 100%;
    left: 0;
    object-fit: cover;
    position: absolute;
    top: 0;
    width: 100%; }
  .slider.standardSlider .slider__image--has-caption {
    margin-bottom: 6rem; }

.slider__caption {
  bottom: -4rem;
  color: #720a10;
  font-size: 100%;
  left: 0;
  right: 0;
  max-width: 100%;
  padding: 0.5rem 1rem;
  position: absolute;
  text-align: center;
  width: 100%;
  z-index: 2; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3JldmVhbC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy92ZW5kb3Ivbm9ybWFsaXplLnNjc3MiLCJhcHAuY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCJfc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdW5pdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19oZWxwZXJzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fdGV4dC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fY2hlY2tib3guc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2xhYmVsLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19oZWxwLXRleHQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2lucHV0LWdyb3VwLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19maWVsZHNldC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fc2VsZWN0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19lcnJvci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2xvc2UtYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Jlc3BvbnNpdmUtZW1iZWQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWF0aC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19sYWJlbC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vZmYtY2FudmFzLnNjc3MiLCJnbG9iYWwvX2NvbG9ycy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N0aWNreS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJsZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19jb2xvci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aHVtYm5haWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwiYXBwLnNjc3MiLCJ0b29scy9fZGV2LWhlbHBlci5zY3NzIiwiZ2xvYmFsL19hY2Nlc3NpYmlsaXR5LnNjc3MiLCJnbG9iYWwvX3R5cG9ncmFwaHkuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZnMvc2Nzcy5zY3NzIiwiZ2xvYmFsL193cC1hZG1pbi5zY3NzIiwiZ2xvYmFsL193cC1vdmVycmlkZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19ndXR0ZXJzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2xheW91dC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jZWxsLnNjc3MiLCJnbG9iYWwvX2d1dGVuYmVyZy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19idXR0b24uc2NzcyIsIm1vZHVsZXMvX2Zvb3Rlci5zY3NzIiwibW9kdWxlcy9fbW9uLWdyaWQuc2NzcyIsIm1vZHVsZXMvX2NvbnRlbnQuc2NzcyIsImNvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCJjb21wb25lbnRzL19idXR0b25zLnNjc3MiLCJjb21wb25lbnRzL19jYXJkcy5zY3NzIiwiY29tcG9uZW50cy9fZGl2aWRlcnMuc2NzcyIsImNvbXBvbmVudHMvX2ljb25zLnNjc3MiLCJjb21wb25lbnRzL19mb3Jtcy5zY3NzIiwiY29tcG9uZW50cy9fbGlua3Muc2NzcyIsImNvbXBvbmVudHMvX2xpc3Quc2NzcyIsImNvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsImNvbXBvbmVudHMvX3NlYXJjaC1mb3JtLnNjc3MiLCJjb21wb25lbnRzL19zZWFyY2gtc25pcHBldC5zY3NzIiwiY29tcG9uZW50cy9fdGl0bGUtYmFyLnNjc3MiLCJjb21wb25lbnRzL193aWRnZXQuc2NzcyIsInRlbXBsYXRlcy9fYXJjaGl2ZS5zY3NzIiwiaGVhZGVyL190b3AtYmFyLnNjc3MiLCJoZWFkZXIvX2hhbWJ1cmdlci5zY3NzIiwiaGVhZGVyL19vZmZjYW52YXMuc2NzcyIsImhlYWRlci9fZGVza3RvcC1kcm9wZG93bi1tZW51LnNjc3MiLCJoZWFkZXIvX21vYmlsZS1kcmlsbGRvd24tbWVudS5zY3NzIiwiaGVhZGVyL19oZWFkZXItYmFzaWMuc2NzcyIsImJsb2Nrcy9fYmxvY2tzLnNjc3MiLCJibG9ja3MvX2NvbnRlbnQtdmlzaWJpbGl0eS5zY3NzIiwiYmxvY2tzL19ibG9jay1hY2NvcmRpb24uc2NzcyIsImJsb2Nrcy9fYmxvY2stY29sdW1ucy5zY3NzIiwiYmxvY2tzL19ibG9jay1jb250ZW50LWltYWdlLnNjc3MiLCJibG9ja3MvX2Jsb2NrLWNvbnRlbnQtaW1hZ2UtcGFyYWxsYXguc2NzcyIsImJsb2Nrcy9fYmxvY2stY3RhLnNjc3MiLCJibG9ja3MvX2Jsb2NrLWhlcm8uc2NzcyIsImJsb2Nrcy9fYmxvY2staGVyby1mZWF0dXJlZC5zY3NzIiwiYmxvY2tzL19ibG9jay1oZXJvLXZpZGVvLnNjc3MiLCJibG9ja3MvX2Jsb2NrLXJlcGVhdGVyLWljb24uc2NzcyIsImJsb2Nrcy9fYmxvY2staW1hZ2Uuc2NzcyIsImJsb2Nrcy9fYmxvY2stcmVwZWF0ZXItbG9nby5zY3NzIiwiYmxvY2tzL19ibG9jay1wcmljaW5nLXRhYmxlLnNjc3MiLCJibG9ja3MvX2Jsb2NrLXNpZ25wb3N0LnNjc3MiLCJibG9ja3MvX2Jsb2NrLXN0YXRpc3RpY3Muc2NzcyIsImJsb2Nrcy9fYmxvY2stdGVzdGltb25pYWwuc2NzcyIsImJsb2Nrcy9fYmxvY2stcmVsYXRpb25zaGlwLnNjc3MiLCJibG9ja3MvX2Jsb2NrLXJlbGF0aW9uc2hpcC10ZWFtLnNjc3MiLCJibG9ja3MvX2Jsb2NrLXRpbWVsaW5lLnNjc3MiLCJibG9ja3MvX2Jsb2NrLXZpZGVvLnNjc3MiLCJibG9ja3MvX2Jsb2NrLXd5c2l3eWcuc2NzcyIsImJsb2Nrcy9jb3JlL19jb3JlLWRlZmF1bHRzLnNjc3MiLCJibG9ja3MvX3NsaWNrLnNjc3MiLCJibG9ja3MvX3NsaWNrLXRoZW1lLnNjc3MiLCJibG9ja3MvX2Jsb2NrLXNsaWRlci5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FDaUtHO0VDekhKO0lBQ0UsWUFBVztJQUNYLFdBQVU7SUFDVixlQUFjLEVBQ2YsRUFBQTs7QUNoREQsNEVBQTRFO0FBUTVF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bUJBQWtCO0VBQ2xCLGlCRnpGc0I7RUUwRnRCLG1DRnhGeUMsRUV5RjFDOztBQUdEOztFQUVFLG1CQUFrQjtFQUNsQixxQkFBb0IsRUFDckI7O0FBR0Q7O0VBRUUsa0JGek1xQjtFRTBNckIscUJBQW9CLEVBQ3JCOztBTG5ORDtFS3VORSxlRi9HaUI7RUVnSGpCLHFCQUFvQixFQUNyQjs7QUx2UkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUtnU0UscUxGak8wQjtFRWtPMUIsbUJGM0tzQjtFRTRLdEIsb0JGOU55QjtFRStOekIsZUZwUGM7RUVxUGQsbUNGL0hzQyxFRXFJdkM7RUFoQkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFhSSxlQUFjO0lBQ2QsZUZsUGUsRUVtUGhCOztBTHpTSDtFS3FUVSxrQkN2UDZDO0VEbVE3QyxpQkZ4TVc7RUVnTlgsY0FBYTtFQU9iLHNCRnROaUIsRUV3TnBCOzs7QUFyR1A7OztFQXdFVSxtQkN2UDZDO0VEbVE3QyxpQkZ4TVc7RUVnTlgsY0FBYTtFQU9iLHNCRnROaUIsRUV3TnBCOzs7QUFwR1A7Ozs7OztFQXVFVSxxQkN2UDZDO0VEbVE3QyxpQkZ4TVc7RUVnTlgsY0FBYTtFQU9iLHNCRnROaUIsRUV3TnBCOzs7QUFuR1A7Ozs7RUFzRVUsb0JDdlA2QztFRG1RN0MsaUJGeE1XO0VFZ05YLGNBQWE7RUFPYixzQkZ0TmlCLEVFd05wQjs7O0FBbEdQOzs7RUFxRVUscUJDdlA2QztFRG1RN0MsaUJGeE1XO0VFZ05YLGNBQWE7RUFPYixzQkZ0TmlCLEVFd05wQjs7O0FBakdQOzs7OztFQW9FVSxnQkN2UDZDO0VEbVE3QyxpQkZ4TVc7RUVnTlgsY0FBYTtFQU9iLHNCRnROaUIsRUV3TnBCOztBUHRNSDtFRTVJSjtJS3FUVSxvQkN2UDZDLEVEb1JoRDs7RUFyR1A7OztJQXdFVSxrQkN2UDZDLEVEb1JoRDs7RUFwR1A7Ozs7OztJQXVFVSxxQkN2UDZDLEVEb1JoRDs7RUFuR1A7Ozs7SUFzRVUscUJDdlA2QyxFRG9SaEQ7O0VBbEdQOzs7SUFxRVUsbUJDdlA2QyxFRG9SaEQ7O0VBakdQOzs7OztJQW9FVSxnQkN2UDZDLEVEb1JoRCxFQUFBOztBTHBUUDtFSzJURSxxQkFBb0I7RUFDcEIsZUYzU2M7RUU0U2Qsc0JGeEt5QjtFRTBLekIsZ0JBQWUsRUFhaEI7RUFsQkQ7SUFTSSxlRi9LMkQsRUVtTDVEO0VBYkg7SUFnQkksVUFBUyxFQUNWOztBTDlWSDtFS21XRSxZQUFXO0VBRVgsaUJDbFRxRDtFRG1UckQsVUFBUztFQUNULHFCRjNMeUI7RUU2THpCLGNBQWE7RUFDYixnQkFBZTtFQUNmLGlDRmhVaUI7RUVpVWpCLGVBQWMsRUFDZjs7QUFHRDs7O0VBR0Usb0JGck4wQjtFRXNOMUIsNkJGcE15QjtFRXFNekIsaUJGeE5zQixFRXlOdkI7O0FBR0Q7RUFDRSxtQkFBa0IsRUFDbkI7O0FBR0Q7RUFDRSxxQkY5TXNCO0VFK010QixzQkZqTmtCLEVFa05uQjs7QUFHRDtFQUNFLHFCRnBOc0IsRUVxTnZCOztBQUdEO0VBRUkscUJGek4yQjtFRTBOM0IsaUJBQWdCLEVBQ2pCOztBQUlIO0VBQ0Usb0JGL055QixFRXFPMUI7RUFQRDtJQUlJLHNCRmhPOEI7SUVpTzlCLGtCRjNWbUIsRUU0VnBCOztBQUlIO0VBQ0UsaUJGOVAwQjtFRStQMUIsdUNDMVdxRDtFRDJXckQsZUZ0T2lCLEVFNE9sQjtFQVREO0lBTUksaUJGcFFvQjtJRXFRcEIsZUY1T29CLEVFNk9yQjs7QUFJSDtFQUNFLGVBQWM7RUFDZCxvQkN0WHFEO0VEdVhyRCxlRmhQZ0IsRUVxUGpCO0VBUkQ7SUFNSSxZRmxQa0IsRUVtUG5COztBQUlIO0VBQ0Usa0NGdFlXO0VFdVlYLGFBQVk7RUFDWixzQkFBcUIsRUFDdEI7O0FBR0Q7RUFDRSxVQUFTLEVBQ1Y7O0FBR0Q7RUFDRSxzQ0M1WXFEO0VEOFlyRCwwQkZ0WmlCO0VFdVpqQiwwQkZ4WmdCO0VFMFpoQiw2REZ4Vm1FO0VFeVZuRSxvQkY1WXlCO0VFNll6QixlRnpaVyxFRTBaWjs7QUFHRDtFQUNFLFVBQVM7RUFDVCw0QkNwWlM7RURzWlQsMEJGcGFnQjtFRXNhaEIsNkRGcFdtRTtF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SUc7STZDeElKO01DNERFLDRCQURnSDtNRmhEOUcsd0JBQTZEO01BQTdELHVCQUE2RCxFQ1RoRSxFQUFBO0U3Q3NJRztJNkN4SUo7TUM0REUsa0NBRGdIO01GaEQ5Ryx3QkFBNkQ7TUFBN0QsdUJBQTZELEVDVGhFLEVBQUE7RUFGRDtJQzRERSwyQkFEZ0g7SUZoRDlHLHVCQUE2RDtJQUE3RCxzQkFBNkQsRUNUaEU7RTdDc0lHO0k2Q3hJSjtNQzRERSw0QkFEZ0g7TUZoRDlHLHdCQUE2RDtNQUE3RCx1QkFBNkQsRUNUaEUsRUFBQTtFN0NzSUc7STZDeElKO01DNERFLDhCQURnSDtNRmhEOUcsd0JBQTZEO01BQTdELHVCQUE2RCxFQ1RoRSxFQUFBO0VBRkQ7SUM0REUsMkJBRGdIO0lGaEQ5Ryx1QkFBNkQ7SUFBN0Qsc0JBQTZELEVDVGhFO0U3Q3NJRztJNkN4SUo7TUM0REUsNEJBRGdIO01GaEQ5Ryx3QkFBNkQ7TUFBN0QsdUJBQTZELEVDVGhFLEVBQUE7RTdDc0lHO0k2Q3hJSjtNQzRERSxrQ0FEZ0g7TUZoRDlHLHdCQUE2RDtNQUE3RCx1QkFBNkQsRUNUaEUsRUFBQTtFSFlIO0lSVkUsc0JBQXFCO0lBQ3JCLGdCQUFlO0lBQ2Ysb0I3QnVEa0I7STZCckRsQiwwQjdCNkNhO0k2QjVDYixpQjdCMERlO0k2QnpEZix5QzdCMENhO0k2QnhDYixlQUFjO0lBSWQsc0M3QjB1QjhDLEVxQ3pzQjdDO0lSL0JEO01BRUUsK0M3QnVCYyxFNkJ0QmY7SUFFRDtNQUNFLGlCQUFnQixFQUNqQjtFUVhIO0lSVkUsc0JBQXFCO0lBQ3JCLGdCQUFlO0lBQ2Ysb0I3QnVEa0I7STZCckRsQiwwQjdCNkNhO0k2QjVDYixpQjdCMERlO0k2QnpEZix5QzdCMENhO0k2QnhDYixlQUFjLEVRd0NiOztBS2xGSDs7RUFFRTtBQUVGLGlDQUFpQztBQUcvQjtFQUNJLDBCMUNpRVksRTBDaEVmOztBQUVEO0VBQ0ksZTFDNkRZLEUwQzVEZjs7QUFORDtFQUNJLDBCMUNrRWMsRTBDakVqQjs7QUFFRDtFQUNJLGUxQzhEYyxFMEM3RGpCOztB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QUE0QjtFQUM1QixlNUZvQ2dCO0U0Rm5DaEIsZ0I1RitCcUI7RTRGOUJyQixRQUFPO0VBQ1AsU0FBUTtFQUNSLGdCQUFlO0VBQ2YscUI1RmtEbUI7RTRGakRuQixtQkFBa0I7RUFDbEIsbUJBQWtCO0VBQ2xCLFlBQVc7RUFDWCxXQUFVLEVBQ1giLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuICogVmVyc2lvbiA2LjUuMVxuICogZm91bmRhdGlvbi56dXJiLmNvbVxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cblxuLy8gRGVwZW5kZW5jaWVzXG5AaW1wb3J0ICd2ZW5kb3Ivbm9ybWFsaXplJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy9taXNzaW5nLWRlcGVuZGVuY2llcyc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvdHJ1ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9jb250YWluJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3B1cmdlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlbW92ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZXBsYWNlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3RvLWxpc3QnO1xuXG4vLyAtLS0gU2V0dGluZ3MgLS0tXG4vLyBpbXBvcnQgeW91ciBvd24gYHNldHRpbmdzYCBoZXJlIG9yXG4vLyBpbXBvcnQgYW5kIG1vZGlmeSB0aGUgZGVmYXVsdCBzZXR0aW5ncyB0aHJvdWdoXG4vLyBAaW1wb3J0ICdzZXR0aW5ncy9zZXR0aW5ncyc7XG5cbi8vIC0tLSBDb21wb25lbnRzIC0tLVxuLy8gVXRpbGl0aWVzXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuLy8gR2xvYmFsIHN0eWxlc1xuQGltcG9ydCAnZ2xvYmFsJztcbkBpbXBvcnQgJ2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHkvdHlwb2dyYXBoeSc7XG5cbi8vIEdyaWRzXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xuQGltcG9ydCAneHktZ3JpZC94eS1ncmlkJztcbi8vIEdlbmVyaWMgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jbG9zZS1idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYWJlbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Byb2dyZXNzLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NsaWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N3aXRjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlJztcbi8vIEJhc2ljIGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UnO1xuQGltcG9ydCAnY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhbGxvdXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYXJkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wYWdpbmF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbHRpcCc7XG5cbi8vIENvbnRhaW5lcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVkaWEtb2JqZWN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb3JiaXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXNwb25zaXZlLWVtYmVkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFicyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RodW1ibmFpbCc7XG4vLyBNZW51LWJhc2VkIGNvbnRhaW5lcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUtaWNvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJpbGxkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24tbWVudSc7XG5cbi8vIExheW91dCBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL29mZi1jYW52YXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXZlYWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zdGlja3knO1xuQGltcG9ydCAnY29tcG9uZW50cy90aXRsZS1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90b3AtYmFyJztcblxuLy8gSGVscGVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9mbG9hdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZsZXgnO1xuQGltcG9ydCAnY29tcG9uZW50cy92aXNpYmlsaXR5JztcbkBpbXBvcnQgJ3Byb3RvdHlwZS9wcm90b3R5cGUnO1xuXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWV2ZXJ5dGhpbmcoXG4gICRmbGV4OiB0cnVlLFxuICAkcHJvdG90eXBlOiBmYWxzZVxuKSB7XG4gIEBpZiAkZmxleCB7XG4gICAgJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICAvLyBHbG9iYWwgc3R5bGVzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuXG4gIC8vIEdyaWRzXG4gIEBpZiBub3QgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICR4eS1ncmlkIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgICB9XG4gIH1cblxuICAvLyBHZW5lcmljIGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbiAgLy8gQmFzaWMgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG5cbiAgLy8gQ29udGFpbmVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbiAgLy8gTWVudS1iYXNlZCBjb250YWluZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcblxuICAvLyBMYXlvdXQgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcblxuICAvLyBIZWxwZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcztcbiAgQGlmICRmbGV4IHsgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7IH1cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG4gIEBpZiAkcHJvdG90eXBlIHsgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtY2xhc3NlczsgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWtwb2ludHNcbi8vLy9cblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcy5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGFyZ2VzdCBuYW1lZCBicmVha3BvaW50IGluIHdoaWNoIHRvIGluY2x1ZGUgcHJpbnQgYXMgYSBtZWRpYSB0eXBlXG4vLy8gQHR5cGUgS2V5d29yZFxuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlICFkZWZhdWx0O1xuXG4kLXpmLXplcm8tYnJlYWtwb2ludDogc21hbGwgIWRlZmF1bHQ7XG5cbiQtemYtYnJlYWtwb2ludHMta2V5czogbWFwLXRvLWxpc3QoJGJyZWFrcG9pbnRzLCAna2V5cycpO1xuXG5AaWYgbnRoKG1hcC12YWx1ZXMoJGJyZWFrcG9pbnRzKSwgMSkgIT0gMCB7XG4gIEBlcnJvciAnVGhlIGZpcnN0IGtleSBpbiB0aGUgJGJyZWFrcG9pbnRzIG1hcCBtdXN0IGhhdmUgYSB2YWx1ZSBvZiBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogMDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIEV2ZW50dWFsIG91dHB1dFxuICAkc3RyOiAnJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcbiAgICBAcmV0dXJuICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJztcbiAgfVxuXG4gIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgICAgICAkYnAtbWF4OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgfVxuXG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgJG5hbWVkOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyICRicmVha3BvaW50cyBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udmVydCBhbnkgcGl4ZWwsIHJlbSwgb3IgdW5pdGxlc3MgdmFsdWUgdG8gZW1cbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcbiAgLy8gTWF4IHZhbHVlIGlzIDAuMnB4IHVuZGVyIHRoZSBuZXh0IGJyZWFrcG9pbnQgKDAuMDIgLyAxNiA9IDAuMDAxMjUpLlxuICAvLyBVc2UgYSBwcmVjaXNpb24gdW5kZXIgMXB4IHRvIHN1cHBvcnQgYnJvd3NlciB6b29tLCBidXQgbm90IHRvIGxvdyB0byBhdm9pZCByb3VuZGluZy5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzExMzEzXG4gIEBpZiAkYnAtbWF4IHtcbiAgICAkYnAtbWF4OiAtemYtYnAtdG8tZW0oJGJwLW1heCkgLSAuMDAxMjU7XG4gIH1cblxuICAvLyBDb25kaXRpb25zIHRvIHNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb25cbiAgLy8gLSBJdCdzIGEgbmFtZWQgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBkb3duXCIgb3IgXCIwIHVwXCJcbiAgLy8gLSBJdCdzIGEgbnVtZXJpYyBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIFwiICsgYW55dGhpbmdcbiAgQGlmICRicCA+IDBlbSBvciAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgLy8gYG9ubHlgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbikgYW5kIChtYXgtd2lkdGg6IG4pYFxuICAgIEBpZiAkZGlyID09ICdvbmx5JyB7XG4gICAgICAvLyBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gXCJvbmx5XCIgcmFuZ2VcbiAgICAgIEBpZiAkbmFtZWQgPT0gdHJ1ZSB7XG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWluLXdpZHRoXCIgaWYgdGhlIGZsb29yIGlzIGdyZWF0ZXIgdGhhbiAwXG4gICAgICAgIEBpZiAkYnAgPiAwZW0ge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG5cbiAgICAgICAgICAvLyBPbmx5IGFkZCBcImFuZFwiIHRvIHRoZSBtZWRpYSBxdWVyeSBpZiB0aGVyZSdzIGEgY2VpbGluZ1xuICAgICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICAgJHN0cjogJHN0ciArICcgYW5kICc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25seSB1c2UgXCJtYXgtd2lkdGhcIiBpZiB0aGVyZSdzIGEgY2VpbGluZ1xuICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JGJwLW1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gYG9ubHlgIHJhbmdlLic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYGRvd25gIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1heC13aWR0aDogbilgXG4gICAgQGVsc2UgaWYgJGRpciA9PSAnZG93bicge1xuICAgICAgJG1heDogaWYoJG5hbWVkLCAkYnAtbWF4LCAkYnApO1xuXG4gICAgICAvLyBTa2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uIGlmIGlucHV0IHZhbHVlIGlzIGV4YWN0bHkgXCIwIGRvd25cIixcbiAgICAgIC8vIHVubGVzcyB0aGUgZnVuY3Rpb24gd2FzIGNhbGxlZCBhcyBcInNtYWxsIGRvd25cIiwgaW4gd2hpY2ggY2FzZSBpdCdzIGp1c3QgXCJzbWFsbCBvbmx5XCJcbiAgICAgIEBpZiAkbmFtZWQgb3IgJGJwID4gMGVtIHtcbiAgICAgICAgQGlmICRtYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRtYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgdXBgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbilgXG4gICAgQGVsc2UgaWYgJGJwID4gMGVtIHtcbiAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gV3JhcHMgYSBtZWRpYSBxdWVyeSBhcm91bmQgdGhlIGNvbnRlbnQgeW91IHB1dCBpbnNpZGUgdGhlIG1peGluLiBUaGlzIG1peGluIGFjY2VwdHMgYSBudW1iZXIgb2YgdmFsdWVzOlxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcCwgYW5kIHVzZSBhIG1lZGlhIHF1ZXJ5IHRoZXJlLlxuLy8vICAtIElmIGEgcGl4ZWwgdmFsdWUgaXMgcGFzc2VkLCBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBlbSB2YWx1ZSB1c2luZyBgJGdsb2JhbC1mb250LXNpemVgIGFzIHRoZSBiYXNlLlxuLy8vICAtIElmIGEgcmVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHVuaXQgd2lsbCBiZSBjaGFuZ2VkIHRvIGVtLlxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vL1xuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlKSB7XG4gICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgJGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICR2YWx1ZSk7XG4gICRwYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHByaW50LWJyZWFrcG9pbnQpO1xuXG4gICRvbGQtemYtc2l6ZTogbnVsbDtcblxuICAvLyBNYWtlIGJyZWFrcG9pbnQgc2l6ZSBhdmFpbGFibGUgYXMgYSB2YXJpYWJsZVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICRvbGQtemYtc2l6ZTogJC16Zi1zaXplO1xuICB9XG4gICQtemYtc2l6ZTogbnRoKCR2YWx1ZSwgMSkgIWdsb2JhbDsgLy8gZ2V0IHRoZSBmaXJzdCB2YWx1ZSB0byBhY2NvdW50IGZvciBgb25seWAgYW5kIGBkb3duYCBrZXl3b3Jkc1xuXG4gIC8vIElmICRzdHIgaXMgc3RpbGwgYW4gZW1wdHkgc3RyaW5nLCBubyBtZWRpYSBxdWVyeSBpcyBuZWVkZWRcbiAgQGlmICRzdHIgPT0gJycge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcbiAgQGVsc2Uge1xuICAgIC8vIEZvciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHByaW50LWJyZWFrcG9pbnQsIGFkZCBwcmludCB0byB0aGUgbWVkaWEgdHlwZXNcbiAgICBAaWYgJGJwICE9IG51bGwgYW5kICRicCA8PSAkcGJwIHtcbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcbn1cblxuLy8vIENvbnZlcnRzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGxhc3QgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRrZXkpIHtcbiAgJGxpc3Q6ICgpO1xuICAkZm91bmRfa2V5OiBmYWxzZTtcblxuICBAZWFjaCAkbmFtZSBpbiAkLXpmLWJyZWFrcG9pbnRzLWtleXMge1xuICAgIEBpZiAoJG5hbWUgPT0gJGtleSkge1xuICAgICAgJGZvdW5kX2tleTogdHJ1ZTtcbiAgICB9XG4gICAgQGlmIG5vdCAkZm91bmRfa2V5IHtcbiAgICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRuYW1lKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgLSBhIG5hbWVkIG9yIG5vbi1uYW1lZCBicmVha3BvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgJGxhc3Q6ICQtemYtemVyby1icmVha3BvaW50O1xuICAkZm91bmQ6IGZhbHNlO1xuXG4gICR2YWx1ZTogdW5pdGxlc3MtY2FsYygkYnJlYWtwb2ludCwgMXB4KTtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgIEBpZiB1bml0bGVzcy1jYWxjKCR2YWwpID4gJHZhbHVlIHtcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRsYXN0OiAka2V5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxhc3Q7XG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0IHJlZ2FyZGxlc3Mgb2YgYCR2YWx1ZWAuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBkb2VzICpub3QqIGhhdmUgdGhlIGJyZWFrcG9pbnQsIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBpbiB0aGUgY29uZmlnIG1hcCBpcyByZXR1cm5lZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIFJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG4gIC8vIElmIHRoZSBnaXZlbiBtYXAgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdFxuICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkbWFwO1xuICB9XG5cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuJHNtYWxsLXVwOiAnJztcbiRzbWFsbC1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuJG1lZGl1bS11cDogJyc7XG4kbWVkaXVtLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcbiAgJG1lZGl1bS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0gb25seSl9Jyk7XG59XG5cbiRsYXJnZS11cDogJyc7XG4kbGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIGxhcmdlKSB7XG4gICRsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2UpfScpO1xuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XG59XG5cbiR4bGFyZ2UtdXA6ICcnO1xuJHhsYXJnZS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG4keHhsYXJnZS11cDogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcmV2ZWFsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdpZHRoIG9mIGEgbW9kYWwsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtd2lkdGg6IDYwMHB4ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXhpbXVtIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHotaW5kZXggZm9yIG1vZGFscy4gVGhlIG92ZXJsYXkgdXNlcyB0aGlzIHZhbHVlLCB3aGlsZSB0aGUgbW9kYWwgaXRzZWxmIHVzZXMgdGhpcyB2YWx1ZSBwbHVzIG9uZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtemluZGV4OiAxMDA1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBtb2RhbCBvdmVybGF5cy5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KSAhZGVmYXVsdDtcblxuXG4vLyBQbGFjZWhvbGRlciBzZWxlY3RvciBmb3IgbWVkaXVtLWFuZC11cCBtb2RhbHNcbi8vIFByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgd2hlbiBkZWZpbmluZyBtdWx0aXBsZSBSZXZlYWwgc2l6ZXNcbi8vIFRoaXMgc2hvdWxkIGJlIGluIHRoZSBzYW1lIGJyZWFrcG9pbnQgdGhlbiBgQG1peGluIHJldmVhbC1tb2RhbC13aWR0aGBcbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICVyZXZlYWwtY2VudGVyZWQge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbn1cblxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbW9kYWwgb3ZlcmxheS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgb3ZlcmxheS5cbkBtaXhpbiByZXZlYWwtb3ZlcmxheSgkYmFja2dyb3VuZDogJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQpIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4O1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXggKyAxO1xuICAvLyBXb3JrYXJvdW5kIGFuZHJvaWQgYnJvd3NlciB6LWluZGV4IGJ1Z1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHJldmVhbC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJHJldmVhbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyZXZlYWwtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZWFsLWJhY2tncm91bmQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gIC5jb2x1bW4ge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gIC8vIFN0cmlwIG1hcmdpbnMgZnJvbSB0aGUgbGFzdCBpdGVtIGluIHRoZSBtb2RhbFxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGp1c3RzIHRoZSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgbW9kYWwuIEdlbmVyYWxseSBhIHBlcmNlbnRhZ2UuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXgtd2lkdGggWyRyZXZlYWwtbWF4LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIG1vZGFsLlxuQG1peGluIHJldmVhbC1tb2RhbC13aWR0aChcbiAgJHdpZHRoOiAkcmV2ZWFsLXdpZHRoLFxuICAkbWF4LXdpZHRoOiAkcmV2ZWFsLW1heC13aWR0aFxuKSB7XG4gIC8vIEV4dGVuZHMgbXVzdCBiZSBtYWRlIG91dHNpZGUgb2YgYnJlYWtwb2ludHMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBuZXdlciBTYXNzIHZlcnNpb25zIChsaWJzYXNzIHYzLjUpXG4gIEBleHRlbmQgJXJldmVhbC1jZW50ZXJlZDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGZ1bGwtc2NyZWVuIG1vZGFsLCB3aGljaCBzdHJldGNoZXMgdGhlIGZ1bGwgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgd2luZG93LlxuQG1peGluIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuIHtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1yZXZlYWwge1xuXG4gIC8vLyBEaXNhYmxlcyB0aGUgc2Nyb2xsIHdoZW4gUmV2ZWFsIGlzIHNob3duIHRvIHByZXZlbnQgdGhlIGJhY2tncm91bmQgZnJvbSBzaGlmdGluZ1xuICBodG1sLmlzLXJldmVhbC1vcGVuIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgJi56Zi1oYXMtc2Nyb2xsIHtcbiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICB9XG5cbiAgICBib2R5IHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgLy8gT3ZlcmxheVxuICAucmV2ZWFsLW92ZXJsYXkge1xuICAgIEBpbmNsdWRlIHJldmVhbC1vdmVybGF5O1xuICB9XG5cbiAgLy8gTW9kYWwgY29udGFpbmVyXG4gIC5yZXZlYWwge1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlO1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgkcmV2ZWFsLXdpZHRoKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxMDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIFJlbW92ZSBwYWRkaW5nXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC8vIFNpemluZyBjbGFzc2VzXG4gICAgJi50aW55ICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgzMCUpOyB9XG4gICAgJi5zbWFsbCB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCg1MCUpOyB9XG4gICAgJi5sYXJnZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCg5MCUpOyB9XG5cbiAgICAvLyBGdWxsLXNjcmVlbiBtb2RlXG4gICAgJi5mdWxsIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuXG4gICAgJi53aXRob3V0LW92ZXJsYXkge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGZvdW5kYXRpb24tbm9ybWFsaXplKCkge1xuICAvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbiAgLy8gRG9jdW1lbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuXG4gIGh0bWwge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvLyAxXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG4gIH1cblxuICAvLyBTZWN0aW9uc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cblxuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gIC8vIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIG1hcmdpbjogMC42N2VtIDA7XG4gIH1cblxuICAvLyBHcm91cGluZyBjb250ZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAgLy8gMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG5cbiAgaHIge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvLyAxXG4gICAgaGVpZ2h0OiAwOyAvLyAxXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IC8vIDJcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cblxuICBwcmUge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMWVtOyAvLyAyXG4gIH1cblxuICAvLyBUZXh0LWxldmVsIHNlbWFudGljc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cblxuICBhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC8vIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gIC8vIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG5cbiAgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8vIDFcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLy8gMlxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLy8gMlxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cblxuICBiLFxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgY29kZSxcbiAga2JkLFxuICBzYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8vIDFcbiAgICBmb250LXNpemU6IDFlbTsgLy8gMlxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgLy8gUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gIC8vIGFsbCBicm93c2Vycy5cblxuICBzdWIsXG4gIHN1cCB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIHN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xuICB9XG5cbiAgc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbiAgfVxuXG4gIC8vIEVtYmVkZGVkIGNvbnRlbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuXG4gIGltZyB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICB9XG5cbiAgLy8gRm9ybXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMTAwJTsgLy8gMVxuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvLyAxXG4gICAgbWFyZ2luOiAwOyAvLyAyXG4gIH1cblxuICAvLyBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgLy8gMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cblxuICBidXR0b24sXG4gIGlucHV0IHsgLy8gMVxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gIC8vIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cblxuICBidXR0b24sXG4gIHNlbGVjdCB7IC8vIDFcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG5cbiAgYnV0dG9uLFxuICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgW3R5cGU9XCJyZXNldFwiXSxcbiAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cblxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG5cbiAgYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cblxuICBmaWVsZHNldCB7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAvLyAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gIC8vICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGxlZ2VuZCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIGNvbG9yOiBpbmhlcml0OyAvLyAyXG4gICAgZGlzcGxheTogdGFibGU7IC8vIDFcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIDFcbiAgICBwYWRkaW5nOiAwOyAvLyAzXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLy8gMVxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cblxuICBwcm9ncmVzcyB7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG5cbiAgdGV4dGFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gIC8vIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cblxuICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICBbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyAxXG4gICAgcGFkZGluZzogMDsgLy8gMlxuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuXG4gIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuXG4gIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gMVxuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvLyAyXG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG5cbiAgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gIC8vIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cblxuICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLy8gMVxuICAgIGZvbnQ6IGluaGVyaXQ7IC8vIDJcbiAgfVxuXG4gIC8vIEludGVyYWN0aXZlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cblxuICBkZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cblxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIH1cblxuICAvLyBNaXNjXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuXG4gIHRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG5cbiAgW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuICogVmVyc2lvbiA2LjUuMVxuICogZm91bmRhdGlvbi56dXJiLmNvbVxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yZXZlYWwsIC5yZXZlYWwudGlueSwgLnJldmVhbC5zbWFsbCwgLnJldmVhbC5sYXJnZSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW46IDAgYXV0bzsgfSB9XG5cbi8qISBub3JtYWxpemUuY3NzIHY4LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyB9XG5cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuaDEsIC5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyB9XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgfVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgbWFyZ2luOiAwOyB9XG5cbmJ1dHRvbixcbmlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgfVxuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDsgfVxuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDsgfVxuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTsgfVxuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZGlzcGxheTogdGFibGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfVxuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDsgfVxuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyB9XG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgZm9udDogaW5oZXJpdDsgfVxuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5mb3VuZGF0aW9uLW1xIHtcbiAgZm9udC1mYW1pbHk6IFwic21hbGw9MGVtJm1lZGl1bT00MGVtJmxhcmdlPTY0ZW0meGxhcmdlPTc1ZW0meHhsYXJnZT05MGVtJnh4eGxhcmdlPTEyMGVtXCI7IH1cblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMTAwJTsgfVxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJGaXJhIFNhbnNcIiwgXCJEcm9pZCBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbmltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IH1cblxudGV4dGFyZWEge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuc2VsZWN0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLm1hcF9jYW52YXMgaW1nLFxuLm1hcF9jYW52YXMgZW1iZWQsXG4ubWFwX2NhbnZhcyBvYmplY3QsXG4ubXFhLWRpc3BsYXkgaW1nLFxuLm1xYS1kaXNwbGF5IGVtYmVkLFxuLm1xYS1kaXNwbGF5IG9iamVjdCB7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OyB9XG5cbmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IGF1dG87IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuXG4uaXMtdmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5kaXYsXG5kbCxcbmR0LFxuZGQsXG51bCxcbm9sLFxubGksIGgxLCAuaDEsXG5oMixcbi5oMixcbi5zdGF0c19faXRlbS0tY29udGVudCxcbmgzLFxuLmgzLFxuLnNlYXJjaC1zbmlwcGV0X190aXRsZSxcbi5ibG9ja19faGVhZGluZy0tc21hbGwsXG4ucmVwZWF0ZXItaWNvbl9faXRlbS1oZWFkaW5nLFxuLnNpZ25wb3N0X190aXRsZSxcbmg0LFxuLmg0LFxuLmNhcmQtLXJlc291cmNlX190aXRsZSxcbi5zaWducG9zdF9fZ3JpZC0tY29sLTMgLnNpZ25wb3N0X190aXRsZSxcbmg1LFxuLmg1LFxuLmNhcmRfX3RpdGxlLFxuaDYsXG4uaDYsXG4ucGFnaW5hdGlvbiBhLFxuLnBhZ2luYXRpb24gc3Bhbixcbi53aWRnZXQtdGl0bGUsXG5wcmUsXG5mb3JtLFxucCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbnAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IH1cblxuZW0sXG5pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zdHJvbmcsXG5iIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbmgxLCAuaDEsIC5oMSxcbmgyLFxuLmgyLFxuLnN0YXRzX19pdGVtLS1jb250ZW50LCAuaDIsXG5oMyxcbi5oMyxcbi5zZWFyY2gtc25pcHBldF9fdGl0bGUsXG4uYmxvY2tfX2hlYWRpbmctLXNtYWxsLFxuLnJlcGVhdGVyLWljb25fX2l0ZW0taGVhZGluZyxcbi5zaWducG9zdF9fdGl0bGUsIC5oMywgLnNlYXJjaC1zbmlwcGV0X190aXRsZSxcbmg0LFxuLmg0LFxuLmNhcmQtLXJlc291cmNlX190aXRsZSxcbi5zaWducG9zdF9fZ3JpZC0tY29sLTMgLnNpZ25wb3N0X190aXRsZSwgLmg0LFxuaDUsXG4uaDUsXG4uY2FyZF9fdGl0bGUsIC5oNSxcbmg2LFxuLmg2LFxuLnBhZ2luYXRpb24gYSxcbi5wYWdpbmF0aW9uIHNwYW4sXG4ud2lkZ2V0LXRpdGxlLCAuaDYge1xuICBmb250LWZhbWlseTogXCJDb3VzdGFyZFwiLCBcIlJvYm90b1wiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJGaXJhIFNhbnNcIiwgXCJEcm9pZCBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzcyMGExMDtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsgfVxuICBoMSBzbWFsbCwgLmgxIHNtYWxsLCAuaDEgc21hbGwsXG4gIGgyIHNtYWxsLFxuICAuaDIgc21hbGwsXG4gIC5zdGF0c19faXRlbS0tY29udGVudCBzbWFsbCwgLmgyIHNtYWxsLFxuICBoMyBzbWFsbCxcbiAgLmgzIHNtYWxsLFxuICAuc2VhcmNoLXNuaXBwZXRfX3RpdGxlIHNtYWxsLFxuICAuYmxvY2tfX2hlYWRpbmctLXNtYWxsIHNtYWxsLFxuICAucmVwZWF0ZXItaWNvbl9faXRlbS1oZWFkaW5nIHNtYWxsLFxuICAuc2lnbnBvc3RfX3RpdGxlIHNtYWxsLCAuaDMgc21hbGwsIC5zZWFyY2gtc25pcHBldF9fdGl0bGUgc21hbGwsXG4gIGg0IHNtYWxsLFxuICAuaDQgc21hbGwsXG4gIC5jYXJkLS1yZXNvdXJjZV9fdGl0bGUgc21hbGwsXG4gIC5zaWducG9zdF9fZ3JpZC0tY29sLTMgLnNpZ25wb3N0X190aXRsZSBzbWFsbCwgLmg0IHNtYWxsLFxuICBoNSBzbWFsbCxcbiAgLmg1IHNtYWxsLFxuICAuY2FyZF9fdGl0bGUgc21hbGwsIC5oNSBzbWFsbCxcbiAgaDYgc21hbGwsXG4gIC5oNiBzbWFsbCxcbiAgLnBhZ2luYXRpb24gYSBzbWFsbCxcbiAgLnBhZ2luYXRpb24gc3BhbiBzbWFsbCxcbiAgLndpZGdldC10aXRsZSBzbWFsbCwgLmg2IHNtYWxsIHtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBjb2xvcjogI2NhY2FjYTsgfVxuXG5oMSwgLmgxLCAuaDEge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cblxuaDIsXG4uaDIsXG4uc3RhdHNfX2l0ZW0tLWNvbnRlbnQsIC5oMiB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cblxuaDMsXG4uaDMsXG4uc2VhcmNoLXNuaXBwZXRfX3RpdGxlLFxuLmJsb2NrX19oZWFkaW5nLS1zbWFsbCxcbi5yZXBlYXRlci1pY29uX19pdGVtLWhlYWRpbmcsXG4uc2lnbnBvc3RfX3RpdGxlLCAuaDMsIC5zZWFyY2gtc25pcHBldF9fdGl0bGUge1xuICBmb250LXNpemU6IDEuMTg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cblxuaDQsXG4uaDQsXG4uY2FyZC0tcmVzb3VyY2VfX3RpdGxlLFxuLnNpZ25wb3N0X19ncmlkLS1jb2wtMyAuc2lnbnBvc3RfX3RpdGxlLCAuaDQge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuXG5oNSxcbi5oNSxcbi5jYXJkX190aXRsZSwgLmg1IHtcbiAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5cbmg2LFxuLmg2LFxuLnBhZ2luYXRpb24gYSxcbi5wYWdpbmF0aW9uIHNwYW4sXG4ud2lkZ2V0LXRpdGxlLCAuaDYge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBoMSwgLmgxLCAuaDEge1xuICAgIGZvbnQtc2l6ZTogMy42MjVyZW07IH1cbiAgXG4gIGgyLFxuICAuaDIsXG4gIC5zdGF0c19faXRlbS0tY29udGVudCwgLmgyIHtcbiAgICBmb250LXNpemU6IDIuNXJlbTsgfVxuICBcbiAgaDMsXG4gIC5oMyxcbiAgLnNlYXJjaC1zbmlwcGV0X190aXRsZSxcbiAgLmJsb2NrX19oZWFkaW5nLS1zbWFsbCxcbiAgLnJlcGVhdGVyLWljb25fX2l0ZW0taGVhZGluZyxcbiAgLnNpZ25wb3N0X190aXRsZSwgLmgzLCAuc2VhcmNoLXNuaXBwZXRfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuOTM3NXJlbTsgfVxuICBcbiAgaDQsXG4gIC5oNCxcbiAgLmNhcmQtLXJlc291cmNlX190aXRsZSxcbiAgLnNpZ25wb3N0X19ncmlkLS1jb2wtMyAuc2lnbnBvc3RfX3RpdGxlLCAuaDQge1xuICAgIGZvbnQtc2l6ZTogMS41NjI1cmVtOyB9XG4gIFxuICBoNSxcbiAgLmg1LFxuICAuY2FyZF9fdGl0bGUsIC5oNSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIFxuICBoNixcbiAgLmg2LFxuICAucGFnaW5hdGlvbiBhLFxuICAucGFnaW5hdGlvbiBzcGFuLFxuICAud2lkZ2V0LXRpdGxlLCAuaDYge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfSB9XG5cbmEge1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICM3MjBhMTA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjNjIwOTBlOyB9XG4gIGEgaW1nIHtcbiAgICBib3JkZXI6IDA7IH1cblxuaHIge1xuICBjbGVhcjogYm90aDtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDEuMjVyZW0gYXV0bztcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLWxlZnQ6IDA7IH1cblxudWwsXG5vbCxcbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuXG5saSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuXG51bCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IH1cblxub2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTsgfVxuXG51bCB1bCwgb2wgdWwsIHVsIG9sLCBvbCBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICBkbCBkdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjU2MjVyZW0gMS4yNXJlbSAwIDEuMTg3NXJlbTtcbiAgYm9yZGVyLWxlZnQ6IDA7IH1cbiAgYmxvY2txdW90ZSwgYmxvY2txdW90ZSBwIHtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG5cbmNpdGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgY29sb3I6IGluaGVyaXQ7IH1cbiAgY2l0ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cblxuYWJiciwgYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDAwMDA7XG4gIGN1cnNvcjogaGVscDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG5jb2RlIHtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4zMTI1cmVtIDAuMDYyNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMDAwMDAwOyB9XG5cbmtiZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4yNXJlbSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgY29sb3I6ICMwMDAwMDA7IH1cblxuLnN1YmhlYWRlciB7XG4gIG1hcmdpbi10b3A6IDAuMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogIzhhOGE4YTsgfVxuXG4ubGVhZCB7XG4gIGZvbnQtc2l6ZTogMTI1JTtcbiAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuXG4uc3RhdCB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMTsgfVxuICBwICsgLnN0YXQge1xuICAgIG1hcmdpbi10b3A6IC0xcmVtOyB9XG5cbnVsLm5vLWJ1bGxldCwgb2wubm8tYnVsbGV0IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLnRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLm1lZGl1bS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAubWVkaXVtLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lZGl1bS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5sYXJnZS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAubGFyZ2UtdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubGFyZ2UtdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAueGxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAueGxhcmdlLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC54bGFyZ2UtdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAueGxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLnh4bGFyZ2UtdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC54eGxhcmdlLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC54eGxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnh4bGFyZ2UtdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwZW0pIHtcbiAgLnh4eGxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAueHh4bGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLnh4eGxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnh4eGxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbi5zaG93LWZvci1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQge1xuICAqIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICB0YWJsZS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB0aGVhZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdGJvZHkuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRyLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICB0ZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIHRoLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjsgfVxuICAuaXIgYTphZnRlcixcbiAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgYVtocmVmXj0nIyddOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJzsgfVxuICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiOyB9XG4gIHByZSxcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgdGhlYWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuICB0cixcbiAgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICBAcGFnZSB7XG4gICAgbWFyZ2luOiAwLjVjbTsgfVxuICBwLFxuICBoMixcbiAgLmgyLFxuICAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQsXG4gIGgzLFxuICAuaDMsXG4gIC5zZWFyY2gtc25pcHBldF9fdGl0bGUsXG4gIC5ibG9ja19faGVhZGluZy0tc21hbGwsXG4gIC5yZXBlYXRlci1pY29uX19pdGVtLWhlYWRpbmcsXG4gIC5zaWducG9zdF9fdGl0bGUge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzOyB9XG4gIFxuICBoMixcbiAgLmgyLFxuICAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQsXG4gIGgzLFxuICAuaDMsXG4gIC5zZWFyY2gtc25pcHBldF9fdGl0bGUsXG4gIC5ibG9ja19faGVhZGluZy0tc21hbGwsXG4gIC5yZXBlYXRlci1pY29uX19pdGVtLWhlYWRpbmcsXG4gIC5zaWducG9zdF9fdGl0bGUge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG4gIC5wcmludC1icmVhay1pbnNpZGUge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvOyB9IH1cblxuW3R5cGU9J3RleHQnXSwgW3R5cGU9J3Bhc3N3b3JkJ10sIFt0eXBlPSdkYXRlJ10sIFt0eXBlPSdkYXRldGltZSddLCBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSwgW3R5cGU9J21vbnRoJ10sIFt0eXBlPSd3ZWVrJ10sIFt0eXBlPSdlbWFpbCddLCBbdHlwZT0nbnVtYmVyJ10sIFt0eXBlPSdzZWFyY2gnXSwgW3R5cGU9J3RlbCddLCBbdHlwZT0ndGltZSddLCBbdHlwZT0ndXJsJ10sIFt0eXBlPSdjb2xvciddLFxudGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMi42ODc1cmVtO1xuICBtYXJnaW46IDAgMCAxLjI1cmVtO1xuICBwYWRkaW5nOiAwLjYyNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm94LXNoYWRvdzogMDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuICBhcHBlYXJhbmNlOiBub25lOyB9XG4gIFt0eXBlPSd0ZXh0J106Zm9jdXMsIFt0eXBlPSdwYXNzd29yZCddOmZvY3VzLCBbdHlwZT0nZGF0ZSddOmZvY3VzLCBbdHlwZT0nZGF0ZXRpbWUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ106Zm9jdXMsIFt0eXBlPSdtb250aCddOmZvY3VzLCBbdHlwZT0nd2VlayddOmZvY3VzLCBbdHlwZT0nZW1haWwnXTpmb2N1cywgW3R5cGU9J251bWJlciddOmZvY3VzLCBbdHlwZT0nc2VhcmNoJ106Zm9jdXMsIFt0eXBlPSd0ZWwnXTpmb2N1cywgW3R5cGU9J3RpbWUnXTpmb2N1cywgW3R5cGU9J3VybCddOmZvY3VzLCBbdHlwZT0nY29sb3InXTpmb2N1cyxcbiAgdGV4dGFyZWE6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggI2NhY2FjYTtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuXG50ZXh0YXJlYSB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICB0ZXh0YXJlYVtyb3dzXSB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG5cbmlucHV0OmRpc2FibGVkLCBpbnB1dFtyZWFkb25seV0sXG50ZXh0YXJlYTpkaXNhYmxlZCxcbnRleHRhcmVhW3JlYWRvbmx5XSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuW3R5cGU9J3N1Ym1pdCddLFxuW3R5cGU9J2J1dHRvbiddIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjY2FjYWNhOyB9XG5cblt0eXBlPSdmaWxlJ10sXG5bdHlwZT0nY2hlY2tib3gnXSxcblt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luOiAwIDAgMS4yNXJlbTsgfVxuXG5bdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBtYXJnaW4tbGVmdDogMC42MjVyZW07XG4gIG1hcmdpbi1yaWdodDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsW2Zvcl0sXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWxbZm9yXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbmxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG5sYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTsgfVxuXG5bdHlwZT0nZmlsZSddIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxubGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMS44O1xuICBjb2xvcjogIzAwMDAwMDsgfVxuICBsYWJlbC5taWRkbGUge1xuICAgIG1hcmdpbjogMCAwIDEuMjVyZW07XG4gICAgcGFkZGluZzogMC42ODc1cmVtIDA7IH1cblxuLmhlbHAtdGV4dCB7XG4gIG1hcmdpbi10b3A6IC0wLjYyNXJlbTtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6ICMwMDAwMDA7IH1cblxuLmlucHV0LWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gIC5pbnB1dC1ncm91cCA+IDpmaXJzdC1jaGlsZCwgLmlucHV0LWdyb3VwID4gOmZpcnN0LWNoaWxkLmlucHV0LWdyb3VwLWJ1dHRvbiA+ICoge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cbiAgLmlucHV0LWdyb3VwID4gOmxhc3QtY2hpbGQsIC5pbnB1dC1ncm91cCA+IDpsYXN0LWNoaWxkLmlucHV0LWdyb3VwLWJ1dHRvbiA+ICoge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLmlucHV0LWdyb3VwLWxhYmVsLCAuaW5wdXQtZ3JvdXAtZmllbGQsIC5pbnB1dC1ncm91cC1idXR0b24sIC5pbnB1dC1ncm91cC1idXR0b24gYSxcbi5pbnB1dC1ncm91cC1idXR0b24gaW5wdXQsXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGJ1dHRvbixcbi5pbnB1dC1ncm91cC1idXR0b24gbGFiZWwge1xuICBtYXJnaW46IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kOiAjZTZlNmU2O1xuICBjb2xvcjogIzAwMDAwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAwIDAgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuaW5wdXQtZ3JvdXAtbGFiZWw6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yaWdodDogMDsgfVxuICAuaW5wdXQtZ3JvdXAtbGFiZWw6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDA7IH1cblxuLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZmxleDogMSAxIDBweDtcbiAgbWluLXdpZHRoOiAwOyB9XG5cbi5pbnB1dC1ncm91cC1idXR0b24ge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAwIGF1dG87IH1cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGJ1dHRvbixcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBsYWJlbCB7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7IH1cblxubGVnZW5kIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTsgfVxuXG4uZmllbGRzZXQge1xuICBtYXJnaW46IDEuMTI1cmVtIDA7XG4gIHBhZGRpbmc6IDEuMjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7IH1cbiAgLmZpZWxkc2V0IGxlZ2VuZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC4xODc1cmVtO1xuICAgIHBhZGRpbmc6IDAgMC4xODc1cmVtOyB9XG5cbnNlbGVjdCB7XG4gIGhlaWdodDogMi42ODc1cmVtO1xuICBtYXJnaW46IDAgMCAxLjI1cmVtO1xuICBwYWRkaW5nOiAwLjYyNXJlbTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogcmdiJTI4MTM4LCAxMzgsIDEzOCUyOSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcbiAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAtMS4yNXJlbSBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcbiAgcGFkZGluZy1yaWdodDogMS44NzVyZW07XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBcXDApIHtcbiAgICBzZWxlY3Qge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PVwiKTsgfSB9XG4gIHNlbGVjdDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOGE4YThhO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAjY2FjYWNhO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIHNlbGVjdDpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gIHNlbGVjdDo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBzZWxlY3RbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuXG4uaXMtaW52YWxpZC1pbnB1dDpub3QoOmZvY3VzKSB7XG4gIGJvcmRlci1jb2xvcjogI2NjNGIzNztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZWRlYjsgfVxuICAuaXMtaW52YWxpZC1pbnB1dDpub3QoOmZvY3VzKTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjY2M0YjM3OyB9XG5cbi5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgY29sb3I6ICNjYzRiMzc7IH1cblxuLmZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAtMC42MjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjY2M0YjM3OyB9XG4gIC5mb3JtLWVycm9yLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5hY2NvcmRpb24ge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG4gIC5hY2NvcmRpb25bZGlzYWJsZWRdIC5hY2NvcmRpb24tdGl0bGUge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLmFjY29yZGlvbi1pdGVtOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuXG4uYWNjb3JkaW9uLWl0ZW06bGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuXG4uYWNjb3JkaW9uLXRpdGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMS4yNXJlbSAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItYm90dG9tOiAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzcyMGExMDsgfVxuICA6bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkgPiAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG4gIC5hY2NvcmRpb24tdGl0bGU6aG92ZXIsIC5hY2NvcmRpb24tdGl0bGU6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cbiAgLmFjY29yZGlvbi10aXRsZTo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICBjb250ZW50OiAnKyc7IH1cbiAgLmlzLWFjdGl2ZSA+IC5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gICAgY29udGVudDogJ1xcMjAxMyc7IH1cblxuLmFjY29yZGlvbi1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICMwMDAwMDA7IH1cbiAgOmxhc3QtY2hpbGQgPiAuYWNjb3JkaW9uLWNvbnRlbnQ6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTY7IH1cblxuLmJyZWFkY3J1bWJzIHtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIC5icmVhZGNydW1iczo6YmVmb3JlLCAuYnJlYWRjcnVtYnM6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAuYnJlYWRjcnVtYnM6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuYnJlYWRjcnVtYnMgbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgICAuYnJlYWRjcnVtYnMgbGk6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luOiAwIDAuNzVyZW07XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY29udGVudDogXCJ8XCI7XG4gICAgICBjb2xvcjogI2NhY2FjYTsgfVxuICAuYnJlYWRjcnVtYnMgYSB7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgICAuYnJlYWRjcnVtYnMgYTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuYnJlYWRjcnVtYnMgLmRpc2FibGVkIHtcbiAgICBjb2xvcjogI2NhY2FjYTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5jbG9zZS1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiAjOGE4YThhO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5jbG9zZS1idXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLmNsb3NlLWJ1dHRvbjpob3ZlciwgLmNsb3NlLWJ1dHRvbjpmb2N1cyB7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmNsb3NlLWJ1dHRvbi5zbWFsbCB7XG4gICAgcmlnaHQ6IDAuNjZyZW07XG4gICAgdG9wOiAwLjMzZW07XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICBsaW5lLWhlaWdodDogMTsgfVxuICAuY2xvc2UtYnV0dG9uLCAuY2xvc2UtYnV0dG9uLm1lZGl1bSB7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgdG9wOiAwLjVyZW07XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cblxuLmlzLWRyaWxsZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuaXMtZHJpbGxkb3duIGxpIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuaXMtZHJpbGxkb3duLmFuaW1hdGUtaGVpZ2h0IHtcbiAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC41czsgfVxuXG4uZHJpbGxkb3duIGEge1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjsgfVxuXG4uZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxMDAlO1xuICB6LWluZGV4OiAtMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXI7IH1cbiAgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUuaXMtYWN0aXZlIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiAgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUuaXMtY2xvc2luZyB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB9XG4gIC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51IGEge1xuICAgIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG5cbi5kcmlsbGRvd24gLm5lc3RlZC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmRyaWxsZG93biAuZHJpbGxkb3duLXN1Ym1lbnUtY292ZXItcHJldmlvdXMge1xuICBtaW4taGVpZ2h0OiAxMDAlOyB9XG5cbi5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzcyMGExMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICByaWdodDogMXJlbTsgfVxuXG4uZHJpbGxkb3duLmFsaWduLWxlZnQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzcyMGExMDtcbiAgcmlnaHQ6IDFyZW07XG4gIGxlZnQ6IGF1dG87IH1cblxuLmRyaWxsZG93bi5hbGlnbi1yaWdodCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjNzIwYTEwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMXJlbTsgfVxuXG4uZHJpbGxkb3duIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICM3MjBhMTAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTsgfVxuXG4ucmVzcG9uc2l2ZS1lbWJlZCwgLmlzLXR5cGUtdmlkZW8gLndwLWJsb2NrLWVtYmVkX193cmFwcGVyLCAuaXMtdHlwZS12aWRlbyAud3AtYmxvY2stZW1iZWRfX3dyYXBwZXIgLmNvbnRhaW5lci1sYXp5bG9hZCxcbi5mbGV4LXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnJlc3BvbnNpdmUtZW1iZWQgaWZyYW1lLCAuaXMtdHlwZS12aWRlbyAud3AtYmxvY2stZW1iZWRfX3dyYXBwZXIgaWZyYW1lLCAuaXMtdHlwZS12aWRlbyAud3AtYmxvY2stZW1iZWRfX3dyYXBwZXIgLmNvbnRhaW5lci1sYXp5bG9hZCBpZnJhbWUsXG4gIC5yZXNwb25zaXZlLWVtYmVkIG9iamVjdCxcbiAgLmlzLXR5cGUtdmlkZW8gLndwLWJsb2NrLWVtYmVkX193cmFwcGVyIG9iamVjdCxcbiAgLmlzLXR5cGUtdmlkZW8gLndwLWJsb2NrLWVtYmVkX193cmFwcGVyIC5jb250YWluZXItbGF6eWxvYWQgb2JqZWN0LFxuICAucmVzcG9uc2l2ZS1lbWJlZCBlbWJlZCxcbiAgLmlzLXR5cGUtdmlkZW8gLndwLWJsb2NrLWVtYmVkX193cmFwcGVyIGVtYmVkLFxuICAuaXMtdHlwZS12aWRlbyAud3AtYmxvY2stZW1iZWRfX3dyYXBwZXIgLmNvbnRhaW5lci1sYXp5bG9hZCBlbWJlZCxcbiAgLnJlc3BvbnNpdmUtZW1iZWQgdmlkZW8sXG4gIC5pcy10eXBlLXZpZGVvIC53cC1ibG9jay1lbWJlZF9fd3JhcHBlciB2aWRlbyxcbiAgLmlzLXR5cGUtdmlkZW8gLndwLWJsb2NrLWVtYmVkX193cmFwcGVyIC5jb250YWluZXItbGF6eWxvYWQgdmlkZW8sXG4gIC5mbGV4LXZpZGVvIGlmcmFtZSxcbiAgLmZsZXgtdmlkZW8gb2JqZWN0LFxuICAuZmxleC12aWRlbyBlbWJlZCxcbiAgLmZsZXgtdmlkZW8gdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLnJlc3BvbnNpdmUtZW1iZWQud2lkZXNjcmVlbiwgLmlzLXR5cGUtdmlkZW8gLndwLWJsb2NrLWVtYmVkX193cmFwcGVyLCAuaXMtdHlwZS12aWRlbyAud3AtYmxvY2stZW1iZWRfX3dyYXBwZXIgLmNvbnRhaW5lci1sYXp5bG9hZCxcbiAgLmZsZXgtdmlkZW8ud2lkZXNjcmVlbixcbiAgLmlzLXR5cGUtdmlkZW8gLmZsZXgtdmlkZW8ud3AtYmxvY2stZW1iZWRfX3dyYXBwZXIsXG4gIC5pcy10eXBlLXZpZGVvIC53cC1ibG9jay1lbWJlZF9fd3JhcHBlciAuZmxleC12aWRlby5jb250YWluZXItbGF6eWxvYWQge1xuICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7IH1cblxuLmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGJhY2tncm91bmQ6ICM3MjBhMTA7XG4gIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5sYWJlbC5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjNzIwYTEwO1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5sYWJlbC5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6ICNmN2M5NWE7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmxhYmVsLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmxhYmVsLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6ICNmZmFlMDA7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmxhYmVsLmFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kOiAjY2M0YjM3O1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG5cbi5pcy1vZmYtY2FudmFzLW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTE7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLCB2aXNpYmlsaXR5IDAuNXMgZWFzZTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtdmlzaWJsZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtY2xvc2FibGUge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5LmlzLW92ZXJsYXktYWJzb2x1dGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5LmlzLW92ZXJsYXktZml4ZWQge1xuICAgIHBvc2l0aW9uOiBmaXhlZDsgfVxuXG4ub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5vZmYtY2FudmFzIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjMkMzODQwOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub2ZmLWNhbnZhcyB7XG4gICAgb3V0bGluZTogMDsgfVxuICAub2ZmLWNhbnZhcy5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHotaW5kZXg6IDEyOyB9XG4gIC5vZmYtY2FudmFzLmlzLWNsb3NlZCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5vZmYtY2FudmFzLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogMTM7IH1cbiAgICAub2ZmLWNhbnZhcy5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAwOyB9XG4gIC5vZmYtY2FudmFzLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG5cbi5vZmYtY2FudmFzLWFic29sdXRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjMkMzODQwOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gICAgb3V0bGluZTogMDsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHotaW5kZXg6IDEyOyB9XG4gIC5vZmYtY2FudmFzLWFic29sdXRlLmlzLWNsb3NlZCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5vZmYtY2FudmFzLWFic29sdXRlLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogMTM7IH1cbiAgICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAwOyB9XG4gIC5vZmYtY2FudmFzLWFic29sdXRlLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG5cbi5wb3NpdGlvbi1sZWZ0IHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHdpZHRoOiAxMDB2dztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDB2dyk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1sZWZ0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMHZ3KTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tbGVmdC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tbGVmdC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwdncpOyB9XG4gIC5wb3NpdGlvbi1sZWZ0LmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgLTEzcHggMCAyMHB4IC0xM3B4IDA7IH1cblxuLnBvc2l0aW9uLXJpZ2h0IHtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB3aWR0aDogMTAwdnc7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDB2dyk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1yaWdodCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMHZ3KTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudC5pcy1vcGVuLXJpZ2h0Lmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwdncpOyB9XG4gIC5wb3NpdGlvbi1yaWdodC5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDEzcHggMCAyMHB4IC0xM3B4IDA7IH1cblxuLnBvc2l0aW9uLXRvcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tdG9wIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MHB4KTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tdG9wLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaXMtb3Blbi10b3AuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI1MHB4KTsgfVxuICAucG9zaXRpb24tdG9wLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMTNweCAyMHB4IC0xM3B4IDA7IH1cblxuLnBvc2l0aW9uLWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1ib3R0b20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLWJvdHRvbS5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tYm90dG9tLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20uaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDEzcHggMjBweCAtMTNweCAwOyB9XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1sZWZ0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMDB2dzsgfVxuICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMTAwdnc7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwMHZ3OyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwMHZ3OyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtdG9wIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwMHZ3OyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXRvcDogMTAwdnc7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1ib3R0b20ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTAwdnc7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMDB2dzsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtbGVmdCB7XG4gICAgICBtYXJnaW4tbGVmdDogMTAwdnc7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMTAwdnc7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwMHZ3OyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMTAwdnc7IH1cbiAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC10b3Age1xuICAgICAgbWFyZ2luLXRvcDogMTAwdnc7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDEwMHZ3OyB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtYm90dG9tIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwMHZ3OyB9XG4gICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMDB2dzsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci14bGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLXhsYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3IteGxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1sZWZ0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMDB2dzsgfVxuICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3IteGxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMTAwdnc7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3IteGxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3IteGxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3IteGxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwMHZ3OyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3IteGxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwMHZ3OyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci14bGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3IteGxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLXhsYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtdG9wIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwMHZ3OyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLXhsYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXRvcDogMTAwdnc7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLXhsYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci14bGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3IteGxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1ib3R0b20ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTAwdnc7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3IteGxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMDB2dzsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci14eGxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci14eGxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci14eGxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1sZWZ0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMDB2dzsgfVxuICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3IteHhsYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwMHZ3OyB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLXh4bGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci14eGxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3IteHhsYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtcmlnaHQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMDB2dzsgfVxuICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLXh4bGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMTAwdnc7IH1cbiAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLXh4bGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3IteHhsYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci14eGxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC10b3Age1xuICAgICAgbWFyZ2luLXRvcDogMTAwdnc7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3IteHhsYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXRvcDogMTAwdnc7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLXh4bGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3IteHhsYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci14eGxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1ib3R0b20ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTAwdnc7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3IteHhsYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTAwdnc7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjBlbSkge1xuICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLXh4eGxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci14eHhsYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3IteHh4bGFyZ2Uge1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLWxlZnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwMHZ3OyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci14eHhsYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwMHZ3OyB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLXh4eGxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3IteHh4bGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci14eHhsYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtcmlnaHQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMDB2dzsgfVxuICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLXh4eGxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwMHZ3OyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci14eHhsYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci14eHhsYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci14eHhsYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtdG9wIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwMHZ3OyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLXh4eGxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tdG9wOiAxMDB2dzsgfVxuICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3IteHh4bGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3IteHh4bGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3IteHh4bGFyZ2Uge1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLWJvdHRvbSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMDB2dzsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci14eHhsYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTAwdnc7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi1sZWZ0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi1yaWdodCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1tZWRpdW0ucG9zaXRpb24tdG9wLCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi1ib3R0b20ge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2Uge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB0cmFuc2l0aW9uOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZS5wb3NpdGlvbi1sZWZ0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlLnBvc2l0aW9uLXJpZ2h0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlLnBvc2l0aW9uLXRvcCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZS5wb3NpdGlvbi1ib3R0b20ge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXhsYXJnZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXhsYXJnZS5wb3NpdGlvbi1sZWZ0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXhsYXJnZS5wb3NpdGlvbi1yaWdodCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci14bGFyZ2UucG9zaXRpb24tdG9wLCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXhsYXJnZS5wb3NpdGlvbi1ib3R0b20ge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3IteGxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci14eGxhcmdlIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3IteHhsYXJnZS5wb3NpdGlvbi1sZWZ0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXh4bGFyZ2UucG9zaXRpb24tcmlnaHQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3IteHhsYXJnZS5wb3NpdGlvbi10b3AsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3IteHhsYXJnZS5wb3NpdGlvbi1ib3R0b20ge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3IteHhsYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjBlbSkge1xuICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXh4eGxhcmdlIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3IteHh4bGFyZ2UucG9zaXRpb24tbGVmdCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci14eHhsYXJnZS5wb3NpdGlvbi1yaWdodCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci14eHhsYXJnZS5wb3NpdGlvbi10b3AsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3IteHh4bGFyZ2UucG9zaXRpb24tYm90dG9tIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXh4eGxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5wYWdpbmF0aW9uIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgLnBhZ2luYXRpb246OmJlZm9yZSwgLnBhZ2luYXRpb246OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAucGFnaW5hdGlvbjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5wYWdpbmF0aW9uIGxpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAucGFnaW5hdGlvbiBsaTpsYXN0LWNoaWxkLCAucGFnaW5hdGlvbiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnBhZ2luYXRpb24gbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAucGFnaW5hdGlvbiBhLFxuICAucGFnaW5hdGlvbiBidXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgLnBhZ2luYXRpb24gYTpob3ZlcixcbiAgICAucGFnaW5hdGlvbiBidXR0b246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2U2ZTZlNjsgfVxuICAucGFnaW5hdGlvbiAuY3VycmVudCB7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAucGFnaW5hdGlvbiAuZGlzYWJsZWQge1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBjb2xvcjogI2NhY2FjYTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgLnBhZ2luYXRpb24gLmRpc2FibGVkOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIC5wYWdpbmF0aW9uIC5lbGxpcHNpczo6YWZ0ZXIge1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBjb250ZW50OiAnXFwyMDI2JztcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuXG4ucGFnaW5hdGlvbi1wcmV2aW91cyBhOjpiZWZvcmUsXG4ucGFnaW5hdGlvbi1wcmV2aW91cy5kaXNhYmxlZDo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgY29udGVudDogJ1xcMDBhYic7IH1cblxuLnBhZ2luYXRpb24tbmV4dCBhOjphZnRlcixcbi5wYWdpbmF0aW9uLW5leHQuZGlzYWJsZWQ6OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBjb250ZW50OiAnXFwwMGJiJzsgfVxuXG4uc3RpY2t5LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uc3RpY2t5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG5cbi5zdGlja3kuaXMtc3R1Y2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDU7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5zdGlja3kuaXMtc3R1Y2suaXMtYXQtdG9wIHtcbiAgICB0b3A6IDA7IH1cbiAgLnN0aWNreS5pcy1zdHVjay5pcy1hdC1ib3R0b20ge1xuICAgIGJvdHRvbTogMDsgfVxuXG4uc3RpY2t5LmlzLWFuY2hvcmVkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogYXV0bzsgfVxuICAuc3RpY2t5LmlzLWFuY2hvcmVkLmlzLWF0LWJvdHRvbSB7XG4gICAgYm90dG9tOiAwOyB9XG5cbmh0bWwuaXMtcmV2ZWFsLW9wZW4ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiBoaWRkZW47IH1cbiAgaHRtbC5pcy1yZXZlYWwtb3Blbi56Zi1oYXMtc2Nyb2xsIHtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7IH1cbiAgaHRtbC5pcy1yZXZlYWwtb3BlbiBib2R5IHtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47IH1cblxuLnJldmVhbC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40NSk7XG4gIG92ZXJmbG93LXk6IGF1dG87IH1cblxuLnJldmVhbCB7XG4gIHotaW5kZXg6IDEwMDY7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBvdmVyZmxvdy15OiBhdXRvOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAucmV2ZWFsIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbCB7XG4gICAgICBtaW4taGVpZ2h0OiAwOyB9IH1cbiAgLnJldmVhbCAuY29sdW1uIHtcbiAgICBtaW4td2lkdGg6IDA7IH1cbiAgLnJldmVhbCA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbCB7XG4gICAgICB3aWR0aDogNjAwcHg7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtOyB9IH1cbiAgLnJldmVhbC5jb2xsYXBzZSB7XG4gICAgcGFkZGluZzogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwudGlueSB7XG4gICAgICB3aWR0aDogMzAlO1xuICAgICAgbWF4LXdpZHRoOiA3NXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbC5zbWFsbCB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgbWF4LXdpZHRoOiA3NXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbC5sYXJnZSB7XG4gICAgICB3aWR0aDogOTAlO1xuICAgICAgbWF4LXdpZHRoOiA3NXJlbTsgfSB9XG4gIC5yZXZlYWwuZnVsbCB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgLnJldmVhbCB7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7IH0gfVxuICAucmV2ZWFsLndpdGhvdXQtb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGZpeGVkOyB9XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0Zm9vdCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2YyZjJmMjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gIGNhcHRpb24ge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICB0Zm9vdCB7XG4gICAgYmFja2dyb3VuZDogI2YyZjJmMjtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICB0aGVhZCB0cixcbiAgdGZvb3QgdHIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIHRoZWFkIHRoLFxuICB0aGVhZCB0ZCxcbiAgdGZvb3QgdGgsXG4gIHRmb290IHRkIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICB0Ym9keSB0aCxcbiAgdGJvZHkgdGQge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTsgfVxuICB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjsgfVxuICB0YWJsZS51bnN0cmlwZWQgdGJvZHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cbiAgICB0YWJsZS51bnN0cmlwZWQgdGJvZHkgdHIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjJmMmYyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45OTg3NWVtKSB7XG4gIHRhYmxlLnN0YWNrIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIHRhYmxlLnN0YWNrIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIHRhYmxlLnN0YWNrIHRyLFxuICB0YWJsZS5zdGFjayB0aCxcbiAgdGFibGUuc3RhY2sgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIHRhYmxlLnN0YWNrIHRkIHtcbiAgICBib3JkZXItdG9wOiAwOyB9IH1cblxudGFibGUuc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvOyB9XG5cbnRhYmxlLmhvdmVyIHRoZWFkIHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDsgfVxuXG50YWJsZS5ob3ZlciB0Zm9vdCB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7IH1cblxudGFibGUuaG92ZXIgdGJvZHkgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOyB9XG5cbnRhYmxlLmhvdmVyOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7IH1cblxuLnRhYmxlLXNjcm9sbCB7XG4gIG92ZXJmbG93LXg6IGF1dG87IH1cblxuLnRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBib3JkZXI6IHNvbGlkIDRweCAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBsaW5lLWhlaWdodDogMDsgfVxuXG5hLnRodW1ibmFpbCB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7IH1cbiAgYS50aHVtYm5haWw6aG92ZXIsIGEudGh1bWJuYWlsOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAwIDAgNnB4IDFweCByZ2JhKDExNCwgMTAsIDE2LCAwLjUpOyB9XG4gIGEudGh1bWJuYWlsIGltYWdlIHtcbiAgICBib3gtc2hhZG93OiBub25lOyB9XG5cbi5oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAuaGlkZS1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMGVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5zaG93LWZvci1zbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5zaG93LWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OTg3NWVtKSB7XG4gIC5oaWRlLWZvci1tZWRpdW0tb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTk4NzVlbSkge1xuICAuc2hvdy1mb3ItbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45OTg3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5oaWRlLWZvci14bGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgLnNob3ctZm9yLXhsYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkgYW5kIChtYXgtd2lkdGg6IDg5Ljk5ODc1ZW0pIHtcbiAgLmhpZGUtZm9yLXhsYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC5zaG93LWZvci14bGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAuaGlkZS1mb3IteHhsYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODkuOTk4NzVlbSkge1xuICAuc2hvdy1mb3IteHhsYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkgYW5kIChtYXgtd2lkdGg6IDExOS45OTg3NWVtKSB7XG4gIC5oaWRlLWZvci14eGxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5Ljk5ODc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMGVtKSB7XG4gIC5zaG93LWZvci14eGxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMGVtKSB7XG4gIC5oaWRlLWZvci14eHhsYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5Ljk5ODc1ZW0pIHtcbiAgLnNob3ctZm9yLXh4eGxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjBlbSkge1xuICAuaGlkZS1mb3IteHh4bGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5Ljk5ODc1ZW0pIHtcbiAgLnNob3ctZm9yLXh4eGxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5zaG93LWZvci1zcixcbi5zaG93LW9uLWZvY3VzIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXI6IDA7IH1cblxuLnNob3ctb24tZm9jdXM6YWN0aXZlLCAuc2hvdy1vbi1mb2N1czpmb2N1cyB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cblxuLnNob3ctZm9yLWxhbmRzY2FwZSxcbi5oaWRlLWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5oaWRlLWZvci1sYW5kc2NhcGUsXG4uc2hvdy1mb3ItcG9ydHJhaXQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbi8qXG4gIE15IGN1c3RvbSBzdHlsZXM6XG4gIEFkZCB5b3VyIHNjc3MgZmlsZXMgYmVsb3cgdG8gc3RydWN0dXJlIHlvdXIgcHJvamVjdCBzdHlsZXNcbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cblN0eWxlc2hlZXQ6IERldiBIZWxwZXJcblxuQnkgY3JlYXRpbmcgYSBuZXcgY29uc3RhbnQgY2FsbGVkIEVOVklST05NRU5UIGluIHdwLWNvbmZpZy5waHBcbndlIGNhbiBkbyB0aGluZ3MgbGlrZSBlbmFibGUgY2VydGFpbiBzdHlsZXMgb25seSB3aGVuIHRoZSBzaXRlIGlzXG5ydW5uaW5nIGxvY2FsbHkuXG5cblRoZSB3YXkgdGhpcyB3b3JrcyBpcyB0aGUgaGVhZGVyIGZpbGUgbG9va3MgZm9yIHRoZSBjb25zdGFudCBhbmQgYWRkcyBhIGNsYXNzIG9mIFxuLm1vZGUte0VOVklST05NRU5UfSB0byB0aGUgYm9keS4gU28gaWYgeW91IHNldCB0aGUgY29uc3RhbnQgdG8gJ2xvY2FsJyB5b3UnbGwgaGF2ZSBcbmJvZHkgY2xhc3M9XCJtb2RlLWxvY2FsXCIgYXZhaWxhYmxlIHRvIHlvdS4gXG5cbllvdSBjb3VsZCBhbHNvIHVzZSB0aGlzIENPTlNUQU5UIHRvIGVuYWJsZSBjZXJ0YWluIGJpdHMgb2YgY29kZSBpbiBzcGVjaWZpYyBlbnZpcm9ubWVudHMuXG5cbklmIGl0J3Mgbm90IGFscmVhZHkgaW5jbHVkZWQgaW4gd3AtY29uZmlnLnBocCwgYWRkIHRoZSBmb2xsb3dpbmc6XG5cbi8qKiBVc2VkIGZvciB0dXJuaW5nIHRoaW5ncyBsaWtlIEdBIHRyYWNraW5nIG9mZiBpbiBsb2NhbCBlbnYgKi9cbi8qKiBTZXQgdG8gbG9jYWwsIHN0YWdpbmcsIG9yIGxpdmUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLm1vZGUtbG9jYWwgZm9vdGVyOmFmdGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kOiByZWQ7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBjb2xvcjogd2hpdGU7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIGNvbnRlbnQ6IFwiTE9DQUwgLyBCUDogc21hbGxcIjtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5tb2RlLWxvY2FsIGZvb3RlcjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIkxPQ0FMIC8gQlA6IG1lZGl1bVwiOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubW9kZS1sb2NhbCBmb290ZXI6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJMT0NBTCAvIEJQOiBsYXJnZVwiOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgIC5tb2RlLWxvY2FsIGZvb3RlcjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIkxPQ0FMIC8gQlA6IHhsYXJnZVwiOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAgIC5tb2RlLWxvY2FsIGZvb3RlcjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIkxPQ0FMIC8gQlA6IHh4bGFyZ2VcIjsgfSB9XG5cbi5tb2RlLWRldmVsb3BtZW50IGZvb3RlcjphZnRlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2dyb3VuZDogb3JhbmdlO1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgY29sb3I6IGJsYWNrO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBjb250ZW50OiBcIlNUQUdJTkcgLyBCUDogc21hbGxcIjtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5tb2RlLWRldmVsb3BtZW50IGZvb3RlcjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlNUQUdJTkcgLyBCUDogbWVkaXVtXCI7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5tb2RlLWRldmVsb3BtZW50IGZvb3RlcjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlNUQUdJTkcgLyBCUDogbGFyZ2VcIjsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAubW9kZS1kZXZlbG9wbWVudCBmb290ZXI6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJTVEFHSU5HIC8gQlA6IHhsYXJnZVwiOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAgIC5tb2RlLWRldmVsb3BtZW50IGZvb3RlcjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlNUQUdJTkcgLyBCUDogeHhsYXJnZVwiOyB9IH1cblxuLnNjcmVlbi1yZWFkZXItdGV4dCB7XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMXB4O1xuICB3aWR0aDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5zY3JlZW4tcmVhZGVyLXRleHQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgY2xpcDogYXV0byAhaW1wb3J0YW50O1xuICBjb2xvcjogIzIxNzU5YjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGhlaWdodDogYXV0bztcbiAgbGVmdDogNXB4O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAxNXB4IDIzcHggMTRweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0b3A6IDVweDtcbiAgd2lkdGg6IGF1dG87XG4gIHotaW5kZXg6IDEwMDAwMDsgfVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAqLFxuICA6OmJlZm9yZSxcbiAgOjphZnRlciB7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAtMW1zICFpbXBvcnRhbnQ7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxbXMgIWltcG9ydGFudDtcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHMgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcyAhaW1wb3J0YW50OyB9IH1cblxuLmhlYWRpbmctdW5kZXJsaW5lLCAuYmxvY2tfX2hlYWRpbmctLXVuZGVybGluZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuaGVhZGluZy11bmRlcmxpbmU6OmFmdGVyLCAuYmxvY2tfX2hlYWRpbmctLXVuZGVybGluZTo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDNweDtcbiAgICBtYXJnaW46IDJyZW0gMDtcbiAgICB3aWR0aDogODBweDsgfVxuXG4uaGVhZGluZy11bmRlcmxpbmUtLWNlbnRlciwgLmJsb2NrX19oZWFkaW5nLS11bmRlcmxpbmUtY2VudGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmhlYWRpbmctdW5kZXJsaW5lLS1jZW50ZXI6OmFmdGVyLCAuYmxvY2tfX2hlYWRpbmctLXVuZGVybGluZS1jZW50ZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgbWFyZ2luOiAycmVtIGF1dG8gMnJlbTtcbiAgICB3aWR0aDogODBweDsgfVxuXG4uc3ViLWhlYWRpbmcge1xuICBmb250LXNpemU6IDEuMzc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgLnN1Yi1oZWFkaW5nIHtcbiAgICAgIGZvbnQtc2l6ZTogY2FsYygxLjI2MjVyZW0gKyAwLjE1dncpIDsgfSB9XG5cbi5sZWFkIHtcbiAgZm9udC1zaXplOiAxLjVyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIC5sZWFkIHtcbiAgICAgIGZvbnQtc2l6ZTogY2FsYygxLjI3NXJlbSArIDAuM3Z3KSA7IH0gfVxuXG5oMSwgLmgxLCAuaDEge1xuICBmb250LXNpemU6IDMuNjI1cmVtOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgICBoMSwgLmgxLCAuaDEge1xuICAgICAgZm9udC1zaXplOiBjYWxjKDEuNDg3NXJlbSArIDIuODV2dykgOyB9IH1cblxuXG5oMixcbi5oMixcbi5zdGF0c19faXRlbS0tY29udGVudCwgLmgyIHtcbiAgZm9udC1zaXplOiAyLjVyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIFxuICAgIGgyLFxuICAgIC5oMixcbiAgICAuc3RhdHNfX2l0ZW0tLWNvbnRlbnQsIC5oMiB7XG4gICAgICBmb250LXNpemU6IGNhbGMoMS4zNzVyZW0gKyAxLjV2dykgOyB9IH1cblxuXG5oMyxcbi5oMyxcbi5zZWFyY2gtc25pcHBldF9fdGl0bGUsXG4uYmxvY2tfX2hlYWRpbmctLXNtYWxsLFxuLnJlcGVhdGVyLWljb25fX2l0ZW0taGVhZGluZyxcbi5zaWducG9zdF9fdGl0bGUsIC5oMywgLnNlYXJjaC1zbmlwcGV0X190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS45Mzc1cmVtOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgICBcbiAgICBoMyxcbiAgICAuaDMsXG4gICAgLnNlYXJjaC1zbmlwcGV0X190aXRsZSxcbiAgICAuYmxvY2tfX2hlYWRpbmctLXNtYWxsLFxuICAgIC5yZXBlYXRlci1pY29uX19pdGVtLWhlYWRpbmcsXG4gICAgLnNpZ25wb3N0X190aXRsZSwgLmgzLCAuc2VhcmNoLXNuaXBwZXRfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogY2FsYygxLjMxODc1cmVtICsgMC44MjV2dykgOyB9IH1cblxuXG5oNCxcbi5oNCxcbi5jYXJkLS1yZXNvdXJjZV9fdGl0bGUsXG4uc2lnbnBvc3RfX2dyaWQtLWNvbC0zIC5zaWducG9zdF9fdGl0bGUsIC5oNCB7XG4gIGZvbnQtc2l6ZTogMS41NjI1cmVtOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgICBcbiAgICBoNCxcbiAgICAuaDQsXG4gICAgLmNhcmQtLXJlc291cmNlX190aXRsZSxcbiAgICAuc2lnbnBvc3RfX2dyaWQtLWNvbC0zIC5zaWducG9zdF9fdGl0bGUsIC5oNCB7XG4gICAgICBmb250LXNpemU6IGNhbGMoMS4yODEyNXJlbSArIDAuMzc1dncpIDsgfSB9XG5cblxuaDUsXG4uaDUsXG4uY2FyZF9fdGl0bGUsIC5oNSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuXG5cbmg2LFxuLmg2LFxuLnBhZ2luYXRpb24gYSxcbi5wYWdpbmF0aW9uIHNwYW4sXG4ud2lkZ2V0LXRpdGxlLCAuaDYge1xuICBmb250LXNpemU6IDFyZW07IH1cblxuYmxvY2txdW90ZSBwIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG5cbmZpZ2NhcHRpb24ge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogI2NhY2FjYTtcbiAgcGFkZGluZzogMXJlbSAwOyB9XG5cbnAgYTpub3QoLmJ1dHRvbik6bm90KC5yZXBlYXRlci1sb2dvX19saW5rKSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbiN3cGFkbWluYmFyIHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7IH1cblxuYm9keS5hZG1pbi1iYXIuZi10b3BiYXItZml4ZWQgLnN0aWNreS5maXhlZCB7XG4gIG1hcmdpbi10b3A6IDJyZW07IH1cblxuYm9keS5hZG1pbi1iYXIub2ZmY2FudmFzIC5vZmYtY2FudmFzLmlzLW9wZW4ge1xuICB0b3A6IDIuODc1cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4LjkzNzVlbSkge1xuICAgIGJvZHkuYWRtaW4tYmFyLm9mZmNhbnZhcyAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICAgIHRvcDogMnJlbTsgfSB9XG5cbi53cC1jYXB0aW9uIHtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgICAud3AtY2FwdGlvbi5hbGlnbmxlZnQsIC53cC1jYXB0aW9uLmFsaWducmlnaHQsIC53cC1jYXB0aW9uLmFsaWduY2VudGVyIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAgIC53cC1jYXB0aW9uLmFsaWdubGVmdCBpbWcsIC53cC1jYXB0aW9uLmFsaWducmlnaHQgaW1nLCAud3AtY2FwdGlvbi5hbGlnbmNlbnRlciBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5wLndwLWNhcHRpb24tdGV4dCB7XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBjb2xvcjogIzY2NjtcbiAgcGFkZGluZzogMC42MjVyZW0gMDsgfVxuXG4uYWxpZ25sZWZ0Om5vdCguYmxvY2spOm5vdCgud3AtYmxvY2stdmlkZW8pOm5vdChcbi53cC1ibG9jay1lbWJlZC53cC1ibG9jay1lbWJlZC12aW1lbyk6bm90KFxuLndwLWJsb2NrLWVtYmVkLndwLWJsb2NrLWVtYmVkLXlvdXR1YmUpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIG1hcmdpbjogMDsgfVxuXG4uYWxpZ25yaWdodDpub3QoLmJsb2NrKTpub3QoLndwLWJsb2NrLXZpZGVvKTpub3QoXG4ud3AtYmxvY2stZW1iZWQud3AtYmxvY2stZW1iZWQtdmltZW8pOm5vdChcbi53cC1ibG9jay1lbWJlZC53cC1ibG9jay1lbWJlZC15b3V0dWJlKSB7XG4gIGZsb2F0OiByaWdodDtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICBtYXJnaW46IDA7IH1cblxuLmFsaWduY2VudGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cblxuLmdhbGxlcnkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjYyNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5IHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMC45Mzc1cmVtOyB9IH1cbiAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTEgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjI1cmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0xID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0xID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTIgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjI1cmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0yID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0yID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtMyA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuMjVyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTMgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTMgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzJSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy00ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS4yNXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNCA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNCA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTUgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjI1cmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy01ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy01ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygyMCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNiA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuMjVyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTYgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTYgPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy03ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS4yNXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNyA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNyA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IGNhbGMoMTQuMjg1NzElIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTggPiAuZ2FsbGVyeS1pdGVtIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjI1cmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy04ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy04ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygxMi41JSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy05ID4gLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS4yNXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtOSA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtOSA+IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgd2lkdGg6IGNhbGMoMTEuMTExMTElIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLmdhbGxlcnkgLmdhbGxlcnktaWNvbiA+IGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBib3JkZXI6IHNvbGlkIDRweCAjZmZmZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0OyB9XG4gICAgLmdhbGxlcnkgLmdhbGxlcnktaWNvbiA+IGE6aG92ZXIsIC5nYWxsZXJ5IC5nYWxsZXJ5LWljb24gPiBhOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCA2cHggMXB4IHJnYmEoMTE0LCAxMCwgMTYsIDAuNSk7IH1cbiAgICAuZ2FsbGVyeSAuZ2FsbGVyeS1pY29uID4gYSBpbWFnZSB7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gIC5nYWxsZXJ5IC5nYWxsZXJ5LWljb24gPiBpbWcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBib3JkZXI6IHNvbGlkIDRweCAjZmZmZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICBsaW5lLWhlaWdodDogMDsgfVxuXG4vKlxuRnJvbnRlbmQgc3R5bGVzIGZvciBndXRlbmJlcmcgYmxvY2tzXG4qL1xuLyoqID09PSBCYXNlIENvbG9yIFBhbGF0dGUgPT09ICovXG4uaGFzLXByaW1hcnktYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MjBhMTA7IH1cblxuLmhhcy1wcmltYXJ5LWNvbG9yIHtcbiAgY29sb3I6ICM3MjBhMTA7IH1cblxuLmhhcy1zZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2M5NWE7IH1cblxuLmhhcy1zZWNvbmRhcnktY29sb3Ige1xuICBjb2xvcjogI2Y3Yzk1YTsgfVxuXG4uaGFzLXN1Y2Nlc3MtYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7IH1cblxuLmhhcy1zdWNjZXNzLWNvbG9yIHtcbiAgY29sb3I6ICMzYWRiNzY7IH1cblxuLmhhcy13YXJuaW5nLWJhY2tncm91bmQtY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwOyB9XG5cbi5oYXMtd2FybmluZy1jb2xvciB7XG4gIGNvbG9yOiAjZmZhZTAwOyB9XG5cbi5oYXMtYWxlcnQtYmFja2dyb3VuZC1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYzRiMzc7IH1cblxuLmhhcy1hbGVydC1jb2xvciB7XG4gIGNvbG9yOiAjY2M0YjM3OyB9XG5cbi8qKiA9PT0gQnV0dG9uID09PSAqL1xuLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLmhhcy1wcmltYXJ5LWJhY2tncm91bmQtY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzIwYTEwOyB9XG5cbi53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtcHJpbWFyeS1jb2xvciB7XG4gIGNvbG9yOiAjNzIwYTEwOyB9XG5cbi53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdjOTVhOyB9XG5cbi53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtc2Vjb25kYXJ5LWNvbG9yIHtcbiAgY29sb3I6ICNmN2M5NWE7IH1cblxuLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLmhhcy1zdWNjZXNzLWJhY2tncm91bmQtY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2OyB9XG5cbi53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtc3VjY2Vzcy1jb2xvciB7XG4gIGNvbG9yOiAjM2FkYjc2OyB9XG5cbi53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtd2FybmluZy1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDsgfVxuXG4ud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmsuaGFzLXdhcm5pbmctY29sb3Ige1xuICBjb2xvcjogI2ZmYWUwMDsgfVxuXG4ud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmsuaGFzLWFsZXJ0LWJhY2tncm91bmQtY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3OyB9XG5cbi53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5oYXMtYWxlcnQtY29sb3Ige1xuICBjb2xvcjogI2NjNGIzNzsgfVxuXG4ud3AtYmxvY2stYnV0dG9uLmlzLXN0eWxlLXNxdWFyZWQgLndwLWJsb2NrLWJ1dHRvbl9fbGluayB7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLyoqID09PSBGaWxlID09PSAqL1xuLndwLWJsb2NrLWZpbGUgLndwLWJsb2NrLWZpbGVfX2J1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBwYWRkaW5nOiAwLjg1ZW0gMWVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MjBhMTA7XG4gIGNvbG9yOiAjZmZmZmZmOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAud3AtYmxvY2stZmlsZSAud3AtYmxvY2stZmlsZV9fYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC53cC1ibG9jay1maWxlIC53cC1ibG9jay1maWxlX19idXR0b246aG92ZXIsIC53cC1ibG9jay1maWxlIC53cC1ibG9jay1maWxlX19idXR0b246Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2MTA5MGU7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cblxuLmZvb3RlciB7XG4gIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5mb290ZXIgcCxcbiAgLmZvb3RlciBsaSxcbiAgLmZvb3RlciBhIHtcbiAgICBmb250LXNpemU6IDE0cHg7IH1cbiAgLmZvb3Rlcl9fdG9wIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzIwYTEwO1xuICAgIHBhZGRpbmc6IDNyZW0gMCAwOyB9XG4gIC5mb290ZXJfX2JvdHRvbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzcyMGExMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZzogMnJlbSAwOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5mb290ZXJfX2JvdHRvbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAgIC5mb290ZXJfX2JvdHRvbSBwLFxuICAgIC5mb290ZXJfX2JvdHRvbSBsaSxcbiAgICAuZm9vdGVyX19ib3R0b20gYSB7XG4gICAgICBmb250LXNpemU6IDEycHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZm9vdGVyX19ib3R0b20tcm93IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5mb290ZXJfX2JvdHRvbS1sZWZ0LXBvcnRpb24ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtYmFzaXM6IDUwJTsgfSB9XG4gIC5mb290ZXJfX2JvdHRvbS1yaWdodC1wb3J0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5mb290ZXJfX2JvdHRvbS1yaWdodC1wb3J0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1iYXNpczogNTAlO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBtYXJnaW46IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5mb290ZXJfX2xlZ2FsLXRleHQsIC5mb290ZXJfX2NyZWRpdHMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIC5mb290ZXJfX3dpZGdldHMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuZm9vdGVyX193aWRnZXRzIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4gICAgLmZvb3Rlcl9fd2lkZ2V0cyA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAuZm9vdGVyX193aWRnZXRzID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5mb290ZXJfX3dpZGdldHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAgICAgLmZvb3Rlcl9fd2lkZ2V0cyA+ICoge1xuICAgICAgICAgIGZsZXg6IDAgMCAzMy4zMyU7IH0gfVxuICAuZm9vdGVyIC53aWRnZXQtdGl0bGUge1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5mb290ZXIgLnRleHR3aWRnZXQgPiAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmZvb3RlciAuZm9vdGVyLXdpZGdldHMge1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW07IH1cbiAgICAuZm9vdGVyIC5mb290ZXItd2lkZ2V0czpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmZvb3RlciAuZm9vdGVyLXdpZGdldHMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgLmZvb3RlciB1bCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5mb290ZXIgdWwuZm9vdGVyLWxlZ2FsLW1lbnUge1xuICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgLmZvb3RlciB1bC5mb290ZXItbGVnYWwtbWVudSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9IH1cbiAgICAgIC5mb290ZXIgdWwuZm9vdGVyLWxlZ2FsLW1lbnUgbGkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLmZvb3Rlcl9fc29jaWFsIHtcbiAgICBtYXJnaW46IDFyZW0gYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtYXgtd2lkdGg6IDI1MHB4OyB9XG4gIC5mb290ZXIgYSB7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5tb24tZ3JpZCwgLnNpZ25wb3N0X19ncmlkLCAucmVsYXRpb25zaGlwX19ncmlkLFxuLnJlbGF0aW9uc2hpcF9fZ3JpZC0tMSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5tb24tZ3JpZCwgLnNpZ25wb3N0X19ncmlkLCAucmVsYXRpb25zaGlwX19ncmlkLFxuICAgIC5yZWxhdGlvbnNoaXBfX2dyaWQtLTEge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtZ2FwOiAyMHB4O1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgLm1vbi1ncmlkID4gKiwgLnNpZ25wb3N0X19ncmlkID4gKiwgLnJlbGF0aW9uc2hpcF9fZ3JpZCA+ICosIC5yZWxhdGlvbnNoaXBfX2dyaWQtLTEgPiAqIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAubW9uLWdyaWQgPiAqLCAuc2lnbnBvc3RfX2dyaWQgPiAqLCAucmVsYXRpb25zaGlwX19ncmlkID4gKiwgLnJlbGF0aW9uc2hpcF9fZ3JpZC0tMSA+ICoge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm1vbi1ncmlkLS0yLCAuc2lnbnBvc3RfX2dyaWQtLWNvbC0yIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tb24tZ3JpZC0tMiwgLnNpZ25wb3N0X19ncmlkLS1jb2wtMiB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLWdhcDogMjBweDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7IH0gfVxuICAgICAgLm1vbi1ncmlkLS0yID4gKiwgLnNpZ25wb3N0X19ncmlkLS1jb2wtMiA+ICoge1xuICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDUwJSAtIDFyZW0pO1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoNTAlIC0gMXJlbSk7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5tb24tZ3JpZC0tMywgLnNpZ25wb3N0X19ncmlkLS1jb2wtMyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubW9uLWdyaWQtLTMsIC5zaWducG9zdF9fZ3JpZC0tY29sLTMge1xuICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgZ3JpZC1nYXA6IDIwcHg7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgICAgIC5tb24tZ3JpZC0tMyA+ICosIC5zaWducG9zdF9fZ3JpZC0tY29sLTMgPiAqIHtcbiAgICAgICAgZmxleC1iYXNpczogY2FsYygzMy4zMyUgLSAxcmVtKTtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDMzLjMzJSAtIDFyZW0pOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAubW9uLWdyaWQtLTQsIC5tb24tZ3JpZC0tYXJjaGl2ZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubW9uLWdyaWQtLTQsIC5tb24tZ3JpZC0tYXJjaGl2ZSB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLWdhcDogMjBweDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7IH0gfVxuICAgICAgLm1vbi1ncmlkLS00ID4gKiwgLm1vbi1ncmlkLS1hcmNoaXZlID4gKiB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMjUlIC0gMXJlbSk7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygyNSUgLSAxcmVtKTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm1vbi1ncmlkLS10ZWFtIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tb24tZ3JpZC0tdGVhbSB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLWdhcDogMjBweDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7IH0gfVxuICAgICAgLm1vbi1ncmlkLS10ZWFtID4gKiB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoNTAlIC0gMXJlbSk7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5tb24tZ3JpZC0tdGVhbSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubW9uLWdyaWQtLXRlYW0ge1xuICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgZ3JpZC1nYXA6IDIwcHg7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgICAgIC5tb24tZ3JpZC0tdGVhbSA+ICoge1xuICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDI1JSAtIDFyZW0pOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLm1haW4tY29udGVudC0tY2xhc3NpYyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDggLyAxMiAqIDEwMCUpO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfSB9XG5cbi5icmVhZGNydW1icyAuY3VycmVudC1pdGVtIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmJ1dHRvbiwgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uLCAucmVwZWF0ZXItbG9nb19fbGluayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MjBhMTA7XG4gIGJvcmRlci1jb2xvcjogIzcyMGExMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyLXdpZHRoOiAycHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJGaXJhIFNhbnNcIiwgXCJEcm9pZCBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiAgdmVydGljYWwtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYnV0dG9uLCAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmssICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b24sIC5yZXBlYXRlci1sb2dvX19saW5rIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweCAhaW1wb3J0YW50O1xuICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAuYnV0dG9uOmhvdmVyLCAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbms6aG92ZXIsICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b246aG92ZXIsIC5yZXBlYXRlci1sb2dvX19saW5rOmhvdmVyLCAuYnV0dG9uOmFjdGl2ZSwgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOmFjdGl2ZSwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbjphY3RpdmUsIC5yZXBlYXRlci1sb2dvX19saW5rOmFjdGl2ZSwgLmJ1dHRvbjpmb2N1cywgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOmZvY3VzLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uOmZvY3VzLCAucmVwZWF0ZXItbG9nb19fbGluazpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjNzIwYTEwO1xuICAgIGNvbG9yOiAjNzIwYTEwOyB9XG4gIC5idXR0b24ucHJpbWFyeSwgLndwLWJsb2NrLWJ1dHRvbiAucHJpbWFyeS53cC1ibG9jay1idXR0b25fX2xpbmssICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5wcmltYXJ5LmJ1dHRvbiwgLnByaW1hcnkucmVwZWF0ZXItbG9nb19fbGluaywgLmJ1dHRvbi0tcHJpbWFyeSwgLnRvcC1iYXJfX2J1dHRvbi1vbmUsIC5jdGFfX2J1dHRvbnMgLmJ1dHRvbi0tY3RhLXR3bywgLnJlcGVhdGVyLWxvZ29fX2xpbmssIC5wcmljaW5nLXRhYmxlX190YWJsZTpudGgtb2YtdHlwZShldmVuKSAucHJpY2luZy10YWJsZV9fYnV0dG9uIC5idXR0b24sIC5wcmljaW5nLXRhYmxlX190YWJsZTpudGgtb2YtdHlwZShldmVuKSAucHJpY2luZy10YWJsZV9fYnV0dG9uIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgLndwLWJsb2NrLWJ1dHRvbiAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLCAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAuYnV0dG9uLCAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAucmVwZWF0ZXItbG9nb19fbGluayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzcyMGExMDtcbiAgICBib3JkZXItY29sb3I6ICM3MjBhMTA7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAuYnV0dG9uLnByaW1hcnk6aG92ZXIsIC53cC1ibG9jay1idXR0b24gLnByaW1hcnkud3AtYmxvY2stYnV0dG9uX19saW5rOmhvdmVyLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAucHJpbWFyeS5idXR0b246aG92ZXIsIC5wcmltYXJ5LnJlcGVhdGVyLWxvZ29fX2xpbms6aG92ZXIsIC5idXR0b24ucHJpbWFyeTphY3RpdmUsIC53cC1ibG9jay1idXR0b24gLnByaW1hcnkud3AtYmxvY2stYnV0dG9uX19saW5rOmFjdGl2ZSwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLnByaW1hcnkuYnV0dG9uOmFjdGl2ZSwgLnByaW1hcnkucmVwZWF0ZXItbG9nb19fbGluazphY3RpdmUsIC5idXR0b24ucHJpbWFyeTpmb2N1cywgLndwLWJsb2NrLWJ1dHRvbiAucHJpbWFyeS53cC1ibG9jay1idXR0b25fX2xpbms6Zm9jdXMsICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5wcmltYXJ5LmJ1dHRvbjpmb2N1cywgLnByaW1hcnkucmVwZWF0ZXItbG9nb19fbGluazpmb2N1cywgLmJ1dHRvbi0tcHJpbWFyeTpob3ZlciwgLnRvcC1iYXJfX2J1dHRvbi1vbmU6aG92ZXIsIC5jdGFfX2J1dHRvbnMgLmJ1dHRvbi0tY3RhLXR3bzpob3ZlciwgLnJlcGVhdGVyLWxvZ29fX2xpbms6aG92ZXIsIC5wcmljaW5nLXRhYmxlX190YWJsZTpudGgtb2YtdHlwZShldmVuKSAucHJpY2luZy10YWJsZV9fYnV0dG9uIC5idXR0b246aG92ZXIsIC5wcmljaW5nLXRhYmxlX190YWJsZTpudGgtb2YtdHlwZShldmVuKSAucHJpY2luZy10YWJsZV9fYnV0dG9uIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazpob3ZlciwgLndwLWJsb2NrLWJ1dHRvbiAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOmhvdmVyLCAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uOmhvdmVyLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAuYnV0dG9uOmhvdmVyLCAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAucmVwZWF0ZXItbG9nb19fbGluazpob3ZlciwgLmJ1dHRvbi0tcHJpbWFyeTphY3RpdmUsIC50b3AtYmFyX19idXR0b24tb25lOmFjdGl2ZSwgLmN0YV9fYnV0dG9ucyAuYnV0dG9uLS1jdGEtdHdvOmFjdGl2ZSwgLnJlcGVhdGVyLWxvZ29fX2xpbms6YWN0aXZlLCAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAuYnV0dG9uOmFjdGl2ZSwgLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1vZi10eXBlKGV2ZW4pIC5wcmljaW5nLXRhYmxlX19idXR0b24gLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOmFjdGl2ZSwgLndwLWJsb2NrLWJ1dHRvbiAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOmFjdGl2ZSwgLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1vZi10eXBlKGV2ZW4pIC5wcmljaW5nLXRhYmxlX19idXR0b24gI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbjphY3RpdmUsICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5wcmljaW5nLXRhYmxlX190YWJsZTpudGgtb2YtdHlwZShldmVuKSAucHJpY2luZy10YWJsZV9fYnV0dG9uIC5idXR0b246YWN0aXZlLCAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAucmVwZWF0ZXItbG9nb19fbGluazphY3RpdmUsIC5idXR0b24tLXByaW1hcnk6Zm9jdXMsIC50b3AtYmFyX19idXR0b24tb25lOmZvY3VzLCAuY3RhX19idXR0b25zIC5idXR0b24tLWN0YS10d286Zm9jdXMsIC5yZXBlYXRlci1sb2dvX19saW5rOmZvY3VzLCAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAuYnV0dG9uOmZvY3VzLCAucHJpY2luZy10YWJsZV9fdGFibGU6bnRoLW9mLXR5cGUoZXZlbikgLnByaWNpbmctdGFibGVfX2J1dHRvbiAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbms6Zm9jdXMsIC53cC1ibG9jay1idXR0b24gLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1vZi10eXBlKGV2ZW4pIC5wcmljaW5nLXRhYmxlX19idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazpmb2N1cywgLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1vZi10eXBlKGV2ZW4pIC5wcmljaW5nLXRhYmxlX19idXR0b24gI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbjpmb2N1cywgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1vZi10eXBlKGV2ZW4pIC5wcmljaW5nLXRhYmxlX19idXR0b24gLmJ1dHRvbjpmb2N1cywgLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1vZi10eXBlKGV2ZW4pIC5wcmljaW5nLXRhYmxlX19idXR0b24gLnJlcGVhdGVyLWxvZ29fX2xpbms6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItY29sb3I6ICM3MjBhMTA7XG4gICAgICBjb2xvcjogIzcyMGExMDsgfVxuICAuYnV0dG9uLS1vdXRsaW5lLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xvcjogIzcyMGExMDtcbiAgICBjb2xvcjogIzcyMGExMDsgfVxuICAgIC5idXR0b24tLW91dGxpbmUtcHJpbWFyeTpob3ZlciwgLmJ1dHRvbi0tb3V0bGluZS1wcmltYXJ5OmFjdGl2ZSwgLmJ1dHRvbi0tb3V0bGluZS1wcmltYXJ5OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3MjBhMTA7XG4gICAgICBib3JkZXItY29sb3I6ICM3MjBhMTA7XG4gICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAuYnV0dG9uLS1zZWNvbmRhcnksIC5idXR0b24uc2Vjb25kYXJ5LCAud3AtYmxvY2stYnV0dG9uIC5zZWNvbmRhcnkud3AtYmxvY2stYnV0dG9uX19saW5rLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuc2Vjb25kYXJ5LmJ1dHRvbiwgLnNlY29uZGFyeS5yZXBlYXRlci1sb2dvX19saW5rIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdjOTVhO1xuICAgIGJvcmRlci1jb2xvcjogI2Y3Yzk1YTtcbiAgICBjb2xvcjogIzcyMGExMDsgfVxuICAgIC5idXR0b24tLXNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi0tc2Vjb25kYXJ5OmFjdGl2ZSwgLmJ1dHRvbi0tc2Vjb25kYXJ5OmZvY3VzLCAuYnV0dG9uLnNlY29uZGFyeTpob3ZlciwgLndwLWJsb2NrLWJ1dHRvbiAuc2Vjb25kYXJ5LndwLWJsb2NrLWJ1dHRvbl9fbGluazpob3ZlciwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLnNlY29uZGFyeS5idXR0b246aG92ZXIsIC5zZWNvbmRhcnkucmVwZWF0ZXItbG9nb19fbGluazpob3ZlciwgLmJ1dHRvbi5zZWNvbmRhcnk6YWN0aXZlLCAud3AtYmxvY2stYnV0dG9uIC5zZWNvbmRhcnkud3AtYmxvY2stYnV0dG9uX19saW5rOmFjdGl2ZSwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLnNlY29uZGFyeS5idXR0b246YWN0aXZlLCAuc2Vjb25kYXJ5LnJlcGVhdGVyLWxvZ29fX2xpbms6YWN0aXZlLCAuYnV0dG9uLnNlY29uZGFyeTpmb2N1cywgLndwLWJsb2NrLWJ1dHRvbiAuc2Vjb25kYXJ5LndwLWJsb2NrLWJ1dHRvbl9fbGluazpmb2N1cywgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLnNlY29uZGFyeS5idXR0b246Zm9jdXMsIC5zZWNvbmRhcnkucmVwZWF0ZXItbG9nb19fbGluazpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1jb2xvcjogI2Y3Yzk1YTtcbiAgICAgIGNvbG9yOiAjZjdjOTVhOyB9XG4gIC5idXR0b24tLW91dGxpbmUtc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sb3I6ICNmN2M5NWE7XG4gICAgY29sb3I6ICNmN2M5NWE7IH1cbiAgICAuYnV0dG9uLS1vdXRsaW5lLXNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi0tb3V0bGluZS1zZWNvbmRhcnk6YWN0aXZlLCAuYnV0dG9uLS1vdXRsaW5lLXNlY29uZGFyeTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdjOTVhO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZjdjOTVhO1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLmJ1dHRvbi0td2hpdGUsIC5jdGEuYmxvY2stLXByaW1hcnkgLmN0YV9fYnV0dG9ucyAuYnV0dG9uLCAuY3RhLmJsb2NrLS1wcmltYXJ5IC5jdGFfX2J1dHRvbnMgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLCAud3AtYmxvY2stYnV0dG9uIC5jdGEuYmxvY2stLXByaW1hcnkgLmN0YV9fYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uX19saW5rLCAuY3RhLmJsb2NrLS1wcmltYXJ5IC5jdGFfX2J1dHRvbnMgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbiwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmN0YS5ibG9jay0tcHJpbWFyeSAuY3RhX19idXR0b25zIC5idXR0b24sIC5jdGEuYmxvY2stLXByaW1hcnkgLmN0YV9fYnV0dG9ucyAucmVwZWF0ZXItbG9nb19fbGluayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXItY29sb3I6ICM3MjBhMTA7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgICAuYnV0dG9uLS13aGl0ZTpob3ZlciwgLmN0YS5ibG9jay0tcHJpbWFyeSAuY3RhX19idXR0b25zIC5idXR0b246aG92ZXIsIC5jdGEuYmxvY2stLXByaW1hcnkgLmN0YV9fYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbms6aG92ZXIsIC53cC1ibG9jay1idXR0b24gLmN0YS5ibG9jay0tcHJpbWFyeSAuY3RhX19idXR0b25zIC53cC1ibG9jay1idXR0b25fX2xpbms6aG92ZXIsIC5jdGEuYmxvY2stLXByaW1hcnkgLmN0YV9fYnV0dG9ucyAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uOmhvdmVyLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuY3RhLmJsb2NrLS1wcmltYXJ5IC5jdGFfX2J1dHRvbnMgLmJ1dHRvbjpob3ZlciwgLmN0YS5ibG9jay0tcHJpbWFyeSAuY3RhX19idXR0b25zIC5yZXBlYXRlci1sb2dvX19saW5rOmhvdmVyLCAuYnV0dG9uLS13aGl0ZTphY3RpdmUsIC5jdGEuYmxvY2stLXByaW1hcnkgLmN0YV9fYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSwgLmN0YS5ibG9jay0tcHJpbWFyeSAuY3RhX19idXR0b25zIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazphY3RpdmUsIC53cC1ibG9jay1idXR0b24gLmN0YS5ibG9jay0tcHJpbWFyeSAuY3RhX19idXR0b25zIC53cC1ibG9jay1idXR0b25fX2xpbms6YWN0aXZlLCAuY3RhLmJsb2NrLS1wcmltYXJ5IC5jdGFfX2J1dHRvbnMgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbjphY3RpdmUsICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5jdGEuYmxvY2stLXByaW1hcnkgLmN0YV9fYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSwgLmN0YS5ibG9jay0tcHJpbWFyeSAuY3RhX19idXR0b25zIC5yZXBlYXRlci1sb2dvX19saW5rOmFjdGl2ZSwgLmJ1dHRvbi0td2hpdGU6Zm9jdXMsIC5jdGEuYmxvY2stLXByaW1hcnkgLmN0YV9fYnV0dG9ucyAuYnV0dG9uOmZvY3VzLCAuY3RhLmJsb2NrLS1wcmltYXJ5IC5jdGFfX2J1dHRvbnMgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOmZvY3VzLCAud3AtYmxvY2stYnV0dG9uIC5jdGEuYmxvY2stLXByaW1hcnkgLmN0YV9fYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uX19saW5rOmZvY3VzLCAuY3RhLmJsb2NrLS1wcmltYXJ5IC5jdGFfX2J1dHRvbnMgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbjpmb2N1cywgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmN0YS5ibG9jay0tcHJpbWFyeSAuY3RhX19idXR0b25zIC5idXR0b246Zm9jdXMsIC5jdGEuYmxvY2stLXByaW1hcnkgLmN0YV9fYnV0dG9ucyAucmVwZWF0ZXItbG9nb19fbGluazpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1jb2xvcjogI2ZmZmZmZjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5idXR0b24tLW91dGxpbmUtd2hpdGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIC5idXR0b24tLW91dGxpbmUtd2hpdGU6aG92ZXIsIC5idXR0b24tLW91dGxpbmUtd2hpdGU6YWN0aXZlLCAuYnV0dG9uLS1vdXRsaW5lLXdoaXRlOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICBib3JkZXItY29sb3I6ICNmZmZmZmY7XG4gICAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLS1zbWFsbCB7XG4gICAgcGFkZGluZy10b3A6IDAuODVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuOHJlbTtcbiAgICBtaW4taGVpZ2h0OiAyLjVyZW07IH1cblxuLmNhcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiAwIDAgMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTsgfVxuICAuY2FyZDpob3ZlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgei1pbmRleDogMTsgfVxuICAuY2FyZF9faW1hZ2UtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy10b3A6IDEwMCU7IH1cbiAgLmNhcmRfX2ltYWdlLFxuICAuY2FyZCBwaWN0dXJlIHtcbiAgICBib3R0b206IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jYXJkX19pbWFnZS5jb250YWluLFxuICAgIC5jYXJkIHBpY3R1cmUuY29udGFpbiB7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgcGFkZGluZzogMnJlbTsgfVxuICAuY2FyZF9fY29udGVudCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAwIGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDAuNXJlbTsgfVxuICAuY2FyZF9fdGl0bGUge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY2FyZF9fZXhjZXJwdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY2FyZF9fY2F0ZWdvcnkge1xuICAgIGNvbG9yOiAjOGE4YThhOyB9XG4gIC5jYXJkX19mb290ZXIge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAwIGF1dG87XG4gICAgcGFkZGluZzogMCAycmVtIDJyZW07IH1cbiAgLmNhcmQtLXNlYXJjaCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3Yzk1YTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1pbi1oZWlnaHQ6IDI2NHB4OyB9XG4gICAgLmNhcmQtLXNlYXJjaDpob3ZlciB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NywgMjAxLCA5MCwgMC41NSk7IH1cblxuLmNhcmQtLXRlYW0ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmNhcmQtLXRlYW0gLmNhcmRfX2ltYWdlLFxuICAuY2FyZC0tdGVhbSBwaWN0dXJlIHtcbiAgICBvYmplY3QtZml0OiBub25lOyB9XG4gICAgLmNhcmQtLXRlYW0gLmNhcmRfX2ltYWdlIGltZyxcbiAgICAuY2FyZC0tdGVhbSBwaWN0dXJlIGltZyB7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7IH1cblxuLmNhcmQtLWV2ZW50X19ldmVudC12ZW51ZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5jYXJkLS1ldmVudF9fZXZlbnQtZGF0ZSB7XG4gIGNvbG9yOiAjY2FjYWNhOyB9XG5cbi5jYXJkLS1yZXNvdXJjZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLmNhcmQtLXJlc291cmNlIC5jYXJkX19jb250ZW50IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBwYWRkaW5nOiAycmVtIDJyZW0gMDsgfVxuICAuY2FyZC0tcmVzb3VyY2VfX2hlYWRpbmcge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3Yzk1YTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZzogMXJlbTsgfVxuICAuY2FyZC0tcmVzb3VyY2VfX3RpdGxlIHtcbiAgICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiT3h5Z2VuXCIsIFwiVWJ1bnR1XCIsIFwiQ2FudGFyZWxsXCIsIFwiRmlyYSBTYW5zXCIsIFwiRHJvaWQgU2Fuc1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxOHB4OyB9XG4gIC5jYXJkLS1yZXNvdXJjZV9faWNvbiB7XG4gICAgZmxleDogMCAwIDEwJTtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuY2FyZC0tcmVzb3VyY2VfX2ljb24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogM3JlbTsgfSB9XG4gIC5jYXJkLS1yZXNvdXJjZV9fdGl0bGUge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1hcmdpbjogMDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2U7IH1cblxuLmRvdHRlZCB7XG4gIGJvcmRlci1zdHlsZTogZGFzaGVkO1xuICBtYXJnaW46IDJyZW0gMDsgfVxuXG4uc29jaWFsLWxpbmsge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCAxcmVtO1xuICBwYWRkaW5nOiAwLjM3NXJlbSAwIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1vdXQ7IH1cbiAgLnNvY2lhbC1saW5rOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjg7IH1cbiAgLnNvY2lhbC1saW5rIC5pY29uLWxpbmtlZGluIHtcbiAgICBtYXJnaW4tdG9wOiAtMXB4OyB9XG4gIC5zb2NpYWwtbGluayBzdmcge1xuICAgIG1heC1oZWlnaHQ6IDM1cHg7IH1cblxuLnN2Zy1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDFyZW07XG4gIHRyYW5zaXRpb246IGZpbGwgMC4ycyBlYXNlLW91dDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgd2lkdGg6IDFyZW07XG4gIHN0cm9rZS13aWR0aDogMDtcbiAgc3Ryb2tlOiAjMDAwMDAwO1xuICBmaWxsOiAjMDAwMDAwOyB9XG4gIC5zdmctaWNvbi0tc29jaWFsIHtcbiAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgIHN0cm9rZTogI2ZmZmZmZjtcbiAgICBmaWxsOiAjZmZmZmZmOyB9XG5cbmxhYmVsIHNwYW4ge1xuICBjb2xvcjogI2NjNGIzNzsgfVxuXG5bZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSBhOmZvY3VzLCBidXR0b246Zm9jdXMgW2RhdGEtd2hhdGlucHV0PVwidG91Y2hcIl0gYTpmb2N1cywgYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4ubGluay1pbmxpbmUsICNjb29raWUtbGF3LWluZm8tYmFyICNDT05TVEFOVF9PUEVOX1VSTCxcbiNjb29raWUtbGF3LWluZm8tYmFyIC5jbGlfc2V0dGluZ3NfYnV0dG9uIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM3MjBhMTA7XG4gIGNvbG9yOiAjNzIwYTEwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSAuMnMgZWFzZS1pbjsgfVxuICAubGluay1pbmxpbmU6aG92ZXIsICNjb29raWUtbGF3LWluZm8tYmFyICNDT05TVEFOVF9PUEVOX1VSTDpob3ZlcixcbiAgI2Nvb2tpZS1sYXctaW5mby1iYXIgLmNsaV9zZXR0aW5nc19idXR0b246aG92ZXIge1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCByZ2JhKDExNCwgMTAsIDE2LCAwKTsgfVxuICAubGluay1pbmxpbmUtLXNlY29uZGFyeSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNmN2M5NWE7XG4gICAgY29sb3I6ICNmN2M5NWE7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSAuMnMgZWFzZS1pbjsgfVxuICAgIC5saW5rLWlubGluZS0tc2Vjb25kYXJ5OmhvdmVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCByZ2JhKDI0NywgMjAxLCA5MCwgMCk7XG4gICAgICBjb2xvcjogI2Y3Yzk1YTsgfVxuXG4uc2tpcC10by1jb250ZW50LWxpbmsge1xuICBiYWNrZ3JvdW5kOiAjNzIwYTEwO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgaGVpZ2h0OiA0MHB4O1xuICBsZWZ0OiAxMHB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA0MHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zczsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5za2lwLXRvLWNvbnRlbnQtbGluayB7XG4gICAgICB0b3A6IDA7IH0gfVxuICAuc2tpcC10by1jb250ZW50LWxpbms6Zm9jdXMge1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgei1pbmRleDogMjsgfVxuXG4ubGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmxpc3Qge1xuICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICAgIGNvbHVtbi1maWxsOiBiYWxhbmNlO1xuICAgICAgY29sdW1uLWdhcDogMnJlbTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfSB9XG4gIC5saXN0IGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjgzMzMzcmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmxpc3QtLXR3byB7XG4gICAgICBjb2x1bW5zOiAyOyB9IH1cbiAgLmxpc3QtLWRvd25sb2FkIGxpIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAubGlzdC0tZG93bmxvYWQgbGk6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9kb3dubG9hZC1pY29uLnN2Z1wiKTtcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgd2lkdGg6IDIwcHg7IH1cbiAgLmxpc3QtLXRpY2sgbGkge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAgIC5saXN0LS10aWNrIGxpOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBhdXRvO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvdGljay5zdmdcIik7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICB3aWR0aDogMjBweDsgfVxuICAubGlzdC0tc3R5bGVkLWJ1bGxldCBsaSB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBsaW5lLWhlaWdodDogMS4zOyB9XG4gICAgLmxpc3QtLXN0eWxlZC1idWxsZXQgbGk6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzIwYTEwO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNTcxNDNyZW07XG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICB3aWR0aDogMTBweDtcbiAgICAgIGZsZXg6IDAgMCAxMHB4OyB9XG5cbi5wYWdpbmF0aW9uIHtcbiAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLnBhZ2luYXRpb24gYSxcbiAgLnBhZ2luYXRpb24gc3BhbiB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBjb2xvcjogIzcyMGExMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7IH1cbiAgICAucGFnaW5hdGlvbiBhOmhvdmVyLFxuICAgIC5wYWdpbmF0aW9uIHNwYW46aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzcyMGExMDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5wYWdpbmF0aW9uIC5wcmV2LFxuICAucGFnaW5hdGlvbiAubmV4dCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIlJvYm90b1wiLCBcIk94eWdlblwiLCBcIlVidW50dVwiLCBcIkNhbnRhcmVsbFwiLCBcIkZpcmEgU2Fuc1wiLCBcIkRyb2lkIFNhbnNcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHBhZGRpbmc6IDAgMXJlbTsgfVxuICAgIC5wYWdpbmF0aW9uIC5wcmV2OmhvdmVyLFxuICAgIC5wYWdpbmF0aW9uIC5uZXh0OmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICBjb2xvcjogIzcyMGExMDsgfVxuICAucGFnaW5hdGlvbiAubmV4dDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy9jaGV2cm9uLXJpZ2h0LnN2Z1wiKTtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAucGFnaW5hdGlvbiAucHJldjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY2hldnJvbi1yaWdodC5zdmdcIik7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLnBhZ2luYXRpb24gLmN1cnJlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3MjBhMTA7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgcGFkZGluZzogMC41cmVtIDFyZW07IH1cblxuI3NlYXJjaGZvcm06Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiBub25lOyB9XG5cbiNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCB7XG4gIG1hcmdpbjogMDsgfVxuICAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgaGVpZ2h0OiA0cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgbWluLXdpZHRoOiAyODBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgICAgIG1pbi13aWR0aDogMzUwcHg7IH0gfVxuICAgICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtZmllbGQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgLndwLWJsb2NrLWJ1dHRvbiAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAucmVwZWF0ZXItbG9nb19fbGluayB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtaW4td2lkdGg6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgcGFkZGluZy1yaWdodDogMnJlbTtcbiAgICBoZWlnaHQ6IDRyZW07XG4gICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7IH1cblxuI3NlYXJjaGZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICBoZWlnaHQ6IDRyZW07XG4gIGxpbmUtaGVpZ2h0OiAyOyB9XG4gICNzZWFyY2hmb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiBub25lOyB9XG5cbi5yZXZlYWwtLXNlYXJjaC1tb2RhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ3LCAyMDEsIDkwLCAwLjk1KTsgfVxuXG4uc2VhcmNoLW1vZGFsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuc2VhcmNoLW1vZGFsIC5jbG9zZS1idXR0b24ge1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIHJpZ2h0OiAycmVtO1xuICAgIHRvcDogMnJlbTtcbiAgICBmb250LXNpemU6IDNlbTsgfVxuXG4uc2VhcmNoLXNuaXBwZXQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NhY2FjYTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgLnNlYXJjaC1zbmlwcGV0Omxhc3Qtb2YtdHlwZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIC5zZWFyY2gtc25pcHBldF9fbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTRweDsgfVxuICAuc2VhcmNoLXNuaXBwZXRfX3RpdGxlIHtcbiAgICBtYXJnaW46IDFyZW0gMDsgfVxuICAuc2VhcmNoLXNuaXBwZXRfX3RpdGxlLWxpbmsge1xuICAgIGNvbG9yOiAjNzIwYTEwO1xuICAgIHRyYW5zaXRpb246IC4ycyBsaW5lYXIgY29sb3I7IH1cbiAgICAuc2VhcmNoLXNuaXBwZXRfX3RpdGxlLWxpbms6aG92ZXIge1xuICAgICAgY29sb3I6ICM3MjBhMTA7IH1cblxuLnNpdGUtdGl0bGUtYmFyIHtcbiAgcGFkZGluZzogMC4zMTI1cmVtIDFyZW07IH1cblxuLndpZGdldCB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07IH1cblxuLndpZGdldC10aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uYXJjaGl2ZV9fdGF4b25vbXktZmlsdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmFyY2hpdmVfX3RheG9ub215LWZpbHRlciB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfSB9XG4gIC5hcmNoaXZlX190YXhvbm9teS1maWx0ZXIgI2R5bmFtaWNfc2VhcmNoZm9ybSB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmFyY2hpdmVfX3RheG9ub215LWZpbHRlciAjZHluYW1pY19zZWFyY2hmb3JtIHtcbiAgICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAxcmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5hcmNoaXZlX190YXhvbm9teS1maWx0ZXIgI2R5bmFtaWNfc2VhcmNoZm9ybSB7XG4gICAgICAgIGZsZXg6IDAgMCAzNSU7XG4gICAgICAgIG1heC13aWR0aDogMzUlOyB9IH1cbiAgLmFyY2hpdmVfX3RheG9ub215LWZpbHRlciAuZHluYW1pYy10YXhvbm9teS1maWx0ZXIge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5hcmNoaXZlX190YXhvbm9teS1maWx0ZXIgLmR5bmFtaWMtdGF4b25vbXktZmlsdGVyIHtcbiAgICAgICAgZmxleDogMCAwIDMwJTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAxcmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDMwJTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5hcmNoaXZlX190YXhvbm9teS1maWx0ZXIgLmR5bmFtaWMtdGF4b25vbXktZmlsdGVyIHtcbiAgICAgICAgZmxleDogMCAwIDIwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAyMCU7IH0gfVxuICAuYXJjaGl2ZV9fdGF4b25vbXktZmlsdGVyIHNlbGVjdCxcbiAgLmFyY2hpdmVfX3RheG9ub215LWZpbHRlciBpbnB1dCB7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmFyY2hpdmVfX3RheG9ub215LWZpbHRlciBzZWxlY3Qge1xuICAgIHBhZGRpbmc6IDAgMnJlbSAwIDEuMjVyZW07IH1cblxuLnNpdGUtaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzcyMGExMDtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGFsbCBsaW5lYXIgMC4zcztcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnNpdGUtaGVhZGVyLS1maXhlZCB7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHotaW5kZXg6IDk5OyB9XG4gIC5zaXRlLWhlYWRlci0tc2Nyb2xsZWQge1xuICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbmJvZHkuYWRtaW4tYmFyIC5zaXRlLWhlYWRlci0tZml4ZWQge1xuICB0b3A6IDQ2cHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICBib2R5LmFkbWluLWJhciAuc2l0ZS1oZWFkZXItLWZpeGVkIHtcbiAgICAgIHRvcDogMzJweDsgfSB9XG5cbi50b3AtYmFyIHtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogYXV0bztcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAudG9wLWJhciB7XG4gICAgICBwYWRkaW5nOiAwIDFyZW07IH0gfVxuICAudG9wLWJhcl9fbG9nbyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAxMDBweDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAudG9wLWJhcl9fbG9nbyB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIC50b3AtYmFyX19sZWZ0IHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAudG9wLWJhcl9fcmlnaHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAwIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgLnRvcC1iYXJfX2NvbXBhbnktbG9nbyB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDg1cHg7XG4gICAgcGFkZGluZzogNXB4OyB9XG4gIC50b3AtYmFyX19lbGVtZW50cyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBwYWRkaW5nOiAwIDFyZW07IH1cbiAgICAudG9wLWJhcl9fZWxlbWVudHMucmlnaHQge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAgIC50b3AtYmFyX19lbGVtZW50cy5qdXN0aWZpZWQge1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIC50b3AtYmFyX19kZXNrdG9wLXBob25lIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgb3JkZXI6IDE7IH1cbiAgLnRvcC1iYXJfX3NlYXJjaC1pY29uIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgb3JkZXI6IDA7XG4gICAgcGFkZGluZzogMC41cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAudG9wLWJhcl9fc2VhcmNoLWljb24ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICAudG9wLWJhcl9fYnV0dG9ucyB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC50b3AtYmFyX19idXR0b25zIHtcbiAgICAgICAgbWFyZ2luOiAwIC0xcmVtIDAgMDsgfSB9XG4gICAgLnRvcC1iYXJfX2J1dHRvbnMgLmJ1dHRvbiwgLnRvcC1iYXJfX2J1dHRvbnMgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLCAud3AtYmxvY2stYnV0dG9uIC50b3AtYmFyX19idXR0b25zIC53cC1ibG9jay1idXR0b25fX2xpbmssIC50b3AtYmFyX19idXR0b25zICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b24sICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC50b3AtYmFyX19idXR0b25zIC5idXR0b24sIC50b3AtYmFyX19idXR0b25zIC5yZXBlYXRlci1sb2dvX19saW5rIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBtYXJnaW46IDAgMXJlbSAwIDA7IH1cblxuLnNpdGUtbmF2aWdhdGlvbl9fYnV0dG9uIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiAzcmVtO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDNyZW07IH1cbiAgLnNpdGUtbmF2aWdhdGlvbl9fYnV0dG9uLWxhYmVsIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAjZjdjOTVhO1xuICAgIGZvbnQtc2l6ZTogMC41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAwLjVyZW07IH1cbiAgLnNpdGUtbmF2aWdhdGlvbl9fYnV0dG9uLS1waG9uZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLnNpdGUtbmF2aWdhdGlvbl9fYnV0dG9uLS1waG9uZTo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgbWFyZ2luOiAwIGF1dG8gMC4zMTI1cmVtO1xuICAgICAgd2lkdGg6IDFyZW07XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGhvbmUuc3ZnXCIpOyB9XG5cbi8qXG5cdEhhbWJ1cmdlciBTdHlsZXMgd2l0aCBhbmltYXRlZCBsaW5lcy4gX2hhbWJ1cmdlci5zY3NzXG5cdCovXG4uaGFtYnVyZ2VyIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiBhdXRvO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHdpZHRoOiBhdXRvO1xuICB6LWluZGV4OiA5OyB9XG4gIC5oYW1idXJnZXIgLmxpbmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2M5NWE7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgbWFyZ2luOiAzcHggMDtcbiAgICB3aWR0aDogMzJweDtcbiAgICB6LWluZGV4OiAyOyB9XG5cbi5tb2JpbGUtaGFtYnVyZ2VyIHtcbiAgcGFkZGluZzogMXJlbTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgfSB9XG5cbi5vZmYtY2FudmFzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3Yzk1YTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuOyB9XG4gIC5vZmYtY2FudmFzX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBwYWRkaW5nOiAxcmVtIDFyZW0gM3JlbTsgfVxuICAgIC5vZmYtY2FudmFzX19oZWFkZXIgLm1vYmlsZS1oYW1idXJnZXIge1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAub2ZmLWNhbnZhc19fZm9vdGVyIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleDogMSAwIGF1dG87XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBwYWRkaW5nOiAwIDEuNXJlbSA0cmVtOyB9XG4gICAgLm9mZi1jYW52YXNfX2Zvb3RlciAuYnV0dG9uLCAub2ZmLWNhbnZhc19fZm9vdGVyIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgLndwLWJsb2NrLWJ1dHRvbiAub2ZmLWNhbnZhc19fZm9vdGVyIC53cC1ibG9jay1idXR0b25fX2xpbmssIC5vZmYtY2FudmFzX19mb290ZXIgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbiwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLm9mZi1jYW52YXNfX2Zvb3RlciAuYnV0dG9uLCAub2ZmLWNhbnZhc19fZm9vdGVyIC5yZXBlYXRlci1sb2dvX19saW5rIHtcbiAgICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAub2ZmLWNhbnZhc19fZm9vdGVyIC5waG9uZS1udW1iZXIge1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG5cbi5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNSk7IH1cblxuLypcblx0TmF2aWdhdGlvbiBzdHlsZXMgZm9yIGRyb3Bkb3duICYgbWVnYSBtZW51IHZhcmlhdGlvblxuXHQqL1xuLmRyb3Bkb3duIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45OTg3NWVtKSB7XG4gICAgLmRyb3Bkb3duIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gIC5kcm9wZG93biBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5kcm9wZG93biBsaSA+IGEge1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZm9udC1mYW1pbHk6IFwiQ291c3RhcmRcIiwgXCJSb2JvdG9cIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiT3h5Z2VuXCIsIFwiVWJ1bnR1XCIsIFwiQ2FudGFyZWxsXCIsIFwiRmlyYSBTYW5zXCIsIFwiRHJvaWQgU2Fuc1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcGFkZGluZzogMS41cmVtIDFyZW07IH1cbiAgICAgIC5kcm9wZG93biBsaSA+IGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogI2Y3Yzk1YTsgfVxuICAgIC5kcm9wZG93biBsaTpob3ZlciB1bCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLmRyb3Bkb3duIGxpOmhvdmVyIHVsIHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkOyB9IH1cbiAgICAuZHJvcGRvd24gbGkuY3VycmVudC1tZW51LWl0ZW0gPiBhLCAuZHJvcGRvd24gbGkuY3VycmVudC1wYWdlLXBhcmVudCA+IGEge1xuICAgICAgY29sb3I6ICNmN2M5NWE7IH1cbiAgICAuZHJvcGRvd24gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07IH1cbiAgICAgIC5kcm9wZG93biBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAycHggMnB4IDAgMDtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMXJlbTtcbiAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDVweCk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIHdpZHRoOiA4cHg7IH1cbiAgLmRyb3Bkb3duIHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdjOTVhO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgZWFzZS1vdXQgMC4ycztcbiAgICB3aWR0aDogMTVyZW07XG4gICAgei1pbmRleDogMjsgfVxuICAgIC5kcm9wZG93biB1bCBsaSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLmRyb3Bkb3duIHVsIGxpIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29sb3I6ICM3MjBhMTAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07IH1cbiAgICAuZHJvcGRvd24gdWwuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5kcm9wZG93bi51bmRlcmxpbmVkLWxpbmtzID4gbGkge1xuICAgIG1hcmdpbjogMCAxcmVtOyB9XG4gICAgLmRyb3Bkb3duLnVuZGVybGluZWQtbGlua3MgPiBsaSA+IGEge1xuICAgICAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgICAgLmRyb3Bkb3duLnVuZGVybGluZWQtbGlua3MgPiBsaSA+IGE6aG92ZXIge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjNzIwYTEwOyB9XG4gICAgLmRyb3Bkb3duLnVuZGVybGluZWQtbGlua3MgPiBsaS5jdXJyZW50LW1lbnUtaXRlbSA+IGEsIC5kcm9wZG93bi51bmRlcmxpbmVkLWxpbmtzID4gbGkuY3VycmVudC1wYWdlLXBhcmVudCA+IGEge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzcyMGExMDsgfVxuXG4vKlxuXHROYXZpZ2F0aW9uIHN0eWxlcyBmb3IgZHJpbGxkb3duIG1lbnUuIF9tb2JpbGUtZHJpbGxkb3duLW1lbnUuc2Nzc1xuXHRAVE9ETyByZW1vdmUgcmVsaWFuY2Ugb24gZm91bmRhdGlvbiBwcmVzcyBkcmlsbGRvd24gbWVudS5cblx0Ki9cbi5pcy1kcmlsbGRvd24ge1xuICBtaW4taGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaW5pdGlhbDsgfVxuICAuaXMtZHJpbGxkb3duIHVsIHtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuaXMtZHJpbGxkb3duIGxpIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmlzLWRyaWxsZG93biBsaSBhIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjNzIwYTEwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkNvdXN0YXJkXCIsIFwiUm9ib3RvXCIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIlJvYm90b1wiLCBcIk94eWdlblwiLCBcIlVidW50dVwiLCBcIkNhbnRhcmVsbFwiLCBcIkZpcmEgU2Fuc1wiLCBcIkRyb2lkIFNhbnNcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAxLjVyZW07XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5pcy1kcmlsbGRvd24gbGkuanMtZHJpbGxkb3duLWJhY2sgYSB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgICAgIC5pcy1kcmlsbGRvd24gbGkuanMtZHJpbGxkb3duLWJhY2sgYTo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY2hldnJvbi1yaWdodC5zdmdcIik7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwIDFyZW0gMCAwO1xuICAgICAgICB3aWR0aDogNnB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuXG4uZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2M5NWE7IH1cblxuLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy9jaGV2cm9uLXJpZ2h0LnN2Z1wiKTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogNnB4O1xuICBwb3NpdGlvbjogc3RhdGljOyB9XG5cbi5oZWFkZXItYmFzaWMge1xuICBtYXJnaW46IDAgYXV0byAycmVtO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDJyZW0gMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5oZWFkZXItYmFzaWMge1xuICAgICAgcGFkZGluZzogM3JlbSAwOyB9IH1cblxuLmJsb2NrLCAud3AtYmxvY2stdmlkZW8sXG4ud3AtYmxvY2stZW1iZWQud3AtYmxvY2stZW1iZWQtdmltZW8sXG4ud3AtYmxvY2stZW1iZWQud3AtYmxvY2stZW1iZWQteW91dHViZSB7XG4gIG1hcmdpbi1ib3R0b206IDRyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYmxvY2ssIC53cC1ibG9jay12aWRlbyxcbiAgICAud3AtYmxvY2stZW1iZWQud3AtYmxvY2stZW1iZWQtdmltZW8sXG4gICAgLndwLWJsb2NrLWVtYmVkLndwLWJsb2NrLWVtYmVkLXlvdXR1YmUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNHJlbTsgfSB9XG4gIC5ibG9jazpmb2N1cywgLndwLWJsb2NrLXZpZGVvOmZvY3VzLFxuICAud3AtYmxvY2stZW1iZWQud3AtYmxvY2stZW1iZWQtdmltZW86Zm9jdXMsXG4gIC53cC1ibG9jay1lbWJlZC53cC1ibG9jay1lbWJlZC15b3V0dWJlOmZvY3VzIHtcbiAgICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAuYmxvY2suYWxpZ25yaWdodCwgLmFsaWducmlnaHQud3AtYmxvY2stdmlkZW8sXG4gIC5hbGlnbnJpZ2h0LndwLWJsb2NrLWVtYmVkLndwLWJsb2NrLWVtYmVkLXZpbWVvLFxuICAuYWxpZ25yaWdodC53cC1ibG9jay1lbWJlZC53cC1ibG9jay1lbWJlZC15b3V0dWJlLCAuYmxvY2suYWxpZ2h0bGVmdCwgLmFsaWdodGxlZnQud3AtYmxvY2stdmlkZW8sXG4gIC5hbGlnaHRsZWZ0LndwLWJsb2NrLWVtYmVkLndwLWJsb2NrLWVtYmVkLXZpbWVvLFxuICAuYWxpZ2h0bGVmdC53cC1ibG9jay1lbWJlZC53cC1ibG9jay1lbWJlZC15b3V0dWJlIHtcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5ibG9jay0tc21hbGwsIC5icmVhZGNydW1icywgLmFyY2hpdmVfX3RheG9ub215LWZpbHRlciwgLmJsb2NrX19oZWFkaW5nLXJvdywgLnByaWNpbmctdGFibGVfX2hlYWRpbmcsIC5yZWxhdGlvbnNoaXBfX2hlYWRpbmcge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgLmJsb2NrLm5vLW1hcmdpbiwgLm5vLW1hcmdpbi53cC1ibG9jay12aWRlbyxcbiAgLm5vLW1hcmdpbi53cC1ibG9jay1lbWJlZC53cC1ibG9jay1lbWJlZC12aW1lbyxcbiAgLm5vLW1hcmdpbi53cC1ibG9jay1lbWJlZC53cC1ibG9jay1lbWJlZC15b3V0dWJlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5ibG9jay0tcGFkZGluZyB7XG4gICAgcGFkZGluZzogMnJlbSAwOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5ibG9jay0tcGFkZGluZyB7XG4gICAgICAgIHBhZGRpbmc6IDRyZW0gMDsgfSB9XG4gIC5ibG9jay0tcGFkZGluZy1oZXJvIHtcbiAgICBwYWRkaW5nOiA2cmVtIDA7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmJsb2NrLS1wYWRkaW5nLWhlcm8ge1xuICAgICAgICBwYWRkaW5nOiAxMHJlbSAwOyB9IH1cbiAgLmJsb2NrLS1wYWRkaW5nLXNtYWxsIHtcbiAgICBwYWRkaW5nOiAxLjVyZW0gMDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuYmxvY2stLXBhZGRpbmctc21hbGwge1xuICAgICAgICBwYWRkaW5nOiAyLjVyZW0gMDsgfSB9XG4gIC5ibG9jay0tZGVmYXVsdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuICAuYmxvY2stLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3MjBhMTA7IH1cbiAgLmJsb2NrLS1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2M5NWE7IH1cbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgaDEsIC5ibG9jay0tcHJpbWFyeSBoMSwgLmJsb2NrLS1jb2xvcmVkLXRleHQgLmgxLCAuYmxvY2stLXByaW1hcnkgLmgxLFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCBoMixcbiAgLmJsb2NrLS1wcmltYXJ5IGgyLFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCAuaDIsXG4gIC5ibG9jay0tcHJpbWFyeSAuaDIsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgLmJsb2NrLS1wcmltYXJ5IC5zdGF0c19faXRlbS0tY29udGVudCxcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgaDMsXG4gIC5ibG9jay0tcHJpbWFyeSBoMyxcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgLmgzLFxuICAuYmxvY2stLXByaW1hcnkgLmgzLFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCAuc2VhcmNoLXNuaXBwZXRfX3RpdGxlLFxuICAuYmxvY2stLXByaW1hcnkgLnNlYXJjaC1zbmlwcGV0X190aXRsZSxcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgLmJsb2NrX19oZWFkaW5nLS1zbWFsbCxcbiAgLmJsb2NrLS1wcmltYXJ5IC5ibG9ja19faGVhZGluZy0tc21hbGwsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IC5yZXBlYXRlci1pY29uX19pdGVtLWhlYWRpbmcsXG4gIC5ibG9jay0tcHJpbWFyeSAucmVwZWF0ZXItaWNvbl9faXRlbS1oZWFkaW5nLFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCAuc2lnbnBvc3RfX3RpdGxlLFxuICAuYmxvY2stLXByaW1hcnkgLnNpZ25wb3N0X190aXRsZSxcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgaDQsXG4gIC5ibG9jay0tcHJpbWFyeSBoNCxcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgLmg0LFxuICAuYmxvY2stLXByaW1hcnkgLmg0LFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCAuY2FyZC0tcmVzb3VyY2VfX3RpdGxlLFxuICAuYmxvY2stLXByaW1hcnkgLmNhcmQtLXJlc291cmNlX190aXRsZSxcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgLnNpZ25wb3N0X19ncmlkLS1jb2wtMyAuc2lnbnBvc3RfX3RpdGxlLFxuICAuc2lnbnBvc3RfX2dyaWQtLWNvbC0zIC5ibG9jay0tY29sb3JlZC10ZXh0IC5zaWducG9zdF9fdGl0bGUsXG4gIC5ibG9jay0tcHJpbWFyeSAuc2lnbnBvc3RfX2dyaWQtLWNvbC0zIC5zaWducG9zdF9fdGl0bGUsXG4gIC5zaWducG9zdF9fZ3JpZC0tY29sLTMgLmJsb2NrLS1wcmltYXJ5IC5zaWducG9zdF9fdGl0bGUsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IGg1LFxuICAuYmxvY2stLXByaW1hcnkgaDUsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IC5oNSxcbiAgLmJsb2NrLS1wcmltYXJ5IC5oNSxcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgLmNhcmRfX3RpdGxlLFxuICAuYmxvY2stLXByaW1hcnkgLmNhcmRfX3RpdGxlLFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCBoNixcbiAgLmJsb2NrLS1wcmltYXJ5IGg2LFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCAuaDYsXG4gIC5ibG9jay0tcHJpbWFyeSAuaDYsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IC5wYWdpbmF0aW9uIGEsXG4gIC5wYWdpbmF0aW9uIC5ibG9jay0tY29sb3JlZC10ZXh0IGEsXG4gIC5ibG9jay0tcHJpbWFyeSAucGFnaW5hdGlvbiBhLFxuICAucGFnaW5hdGlvbiAuYmxvY2stLXByaW1hcnkgYSxcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgLnBhZ2luYXRpb24gc3BhbixcbiAgLnBhZ2luYXRpb24gLmJsb2NrLS1jb2xvcmVkLXRleHQgc3BhbixcbiAgLmJsb2NrLS1wcmltYXJ5IC5wYWdpbmF0aW9uIHNwYW4sXG4gIC5wYWdpbmF0aW9uIC5ibG9jay0tcHJpbWFyeSBzcGFuLFxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCAud2lkZ2V0LXRpdGxlLFxuICAuYmxvY2stLXByaW1hcnkgLndpZGdldC10aXRsZSxcbiAgLmJsb2NrLS1jb2xvcmVkLXRleHQgcCxcbiAgLmJsb2NrLS1wcmltYXJ5IHAsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IGxpLFxuICAuYmxvY2stLXByaW1hcnkgbGksXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IGxhYmVsLFxuICAuYmxvY2stLXByaW1hcnkgbGFiZWwsXG4gIC5ibG9jay0tY29sb3JlZC10ZXh0IGNpdGUsXG4gIC5ibG9jay0tcHJpbWFyeSBjaXRlIHtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAuYmxvY2stLWNvbG9yZWQtdGV4dCAuY2FyZCAqLCAuYmxvY2stLXByaW1hcnkgLmNhcmQgKiB7XG4gICAgY29sb3I6ICM3MjBhMTA7IH1cbiAgLmJsb2NrX19oZWFkaW5nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmJsb2NrX19oZWFkaW5nLS1jZW50ZXIge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5ibG9ja19fc3ViaGVhZGluZyB7XG4gICAgbWFyZ2luOiAxcmVtIDAgMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmJsb2NrX19oZWFkaW5nLXd5c3l3aWcgPiAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLm1vbi1yb3csIC5mb290ZXJfX3JvdywgLmhlcm9fX2NvbnRlbnQsIC5oZXJvLWZlYXR1cmVkX19jb250ZW50LCAudGltZWxpbmVfX3NlY3Rpb24tcm93LCAud3AtYmxvY2stZW1iZWQge1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgcGFkZGluZzogMCAxcmVtO1xuICB3aWR0aDogMTAwJTsgfVxuXG5mb290ZXIge1xuICBjb250ZW50LXZpc2liaWxpdHk6IGF1dG87IH1cblxuLm1vbi1hY2NvcmRpb24gLmFjY29yZGlvbi10aXRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MjBhMTA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LWZhbWlseTogXCJDb3VzdGFyZFwiLCBcIlJvYm90b1wiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJGaXJhIFNhbnNcIiwgXCJEcm9pZCBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAyMHB4OyB9XG5cbi5tb24tYWNjb3JkaW9uIC5hY2NvcmRpb24taXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG4ubW9uLWFjY29yZGlvbiAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTZlNjsgfVxuXG4ubW9uLWFjY29yZGlvbiAuYWNjb3JkaW9uX192aWV3LWFsbCB7XG4gIG1hcmdpbi10b3A6IDNyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuY29sdW1uc19fZ3JpZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5jb2x1bW5zX19ncmlkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC1nYXA6IDIwcHg7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpOyB9IH1cbiAgICAuY29sdW1uc19fZ3JpZCAuY29sdW1uc19fY29udGVudCB7XG4gICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIGZsZXgtYmFzaXM6IGNhbGMoNTAlIC0gMjBweCk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAuY29sdW1uc19fZ3JpZCAuY29sdW1uc19fY29udGVudCB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IGF1dG8gLyBzcGFuIDY7IH0gfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5jb2x1bW5zX19ncmlkLS0zIC5jb2x1bW5zX19jb250ZW50IHtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZmxleC1iYXNpczogY2FsYygzMy4zMyUgLSAyMHB4KTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmNvbHVtbnNfX2dyaWQtLTMgLmNvbHVtbnNfX2NvbnRlbnQge1xuICAgICAgICBncmlkLWNvbHVtbjogYXV0byAvIHNwYW4gNDsgfSB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNvbHVtbnNfX2dyaWQtLTQgLmNvbHVtbnNfX2NvbnRlbnQge1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBmbGV4LWJhc2lzOiBjYWxjKDI1JSAtIDIwcHgpOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuY29sdW1uc19fZ3JpZC0tNCAuY29sdW1uc19fY29udGVudCB7XG4gICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiAzOyB9IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuY29sdW1uc19fZ3JpZC0tMS0zIC5jb2x1bW5zX19jb250ZW50IHtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZmxleC1iYXNpczogY2FsYygzMy4zMyUgLSAyMHB4KTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmNvbHVtbnNfX2dyaWQtLTEtMyAuY29sdW1uc19fY29udGVudCB7XG4gICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiA0OyB9IH1cbiAgICAuY29sdW1uc19fZ3JpZC0tMS0zIC5jb2x1bW5zX19jb250ZW50Omxhc3QtY2hpbGQge1xuICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBmbGV4LWJhc2lzOiBjYWxjKDY2JSAtIDIwcHgpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLmNvbHVtbnNfX2dyaWQtLTEtMyAuY29sdW1uc19fY29udGVudDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogYXV0byAvIHNwYW4gODsgfSB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNvbHVtbnNfX2dyaWQtLTMtMSAuY29sdW1uc19fY29udGVudCB7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGZsZXgtYmFzaXM6IGNhbGMoNjYlIC0gMjBweCk7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5jb2x1bW5zX19ncmlkLS0zLTEgLmNvbHVtbnNfX2NvbnRlbnQge1xuICAgICAgICBncmlkLWNvbHVtbjogYXV0byAvIHNwYW4gODsgfSB9XG4gICAgLmNvbHVtbnNfX2dyaWQtLTMtMSAuY29sdW1uc19fY29udGVudDpsYXN0LWNoaWxkIHtcbiAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgZmxleC1iYXNpczogY2FsYygzMy4zMyUgLSAyMHB4KTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5jb2x1bW5zX19ncmlkLS0zLTEgLmNvbHVtbnNfX2NvbnRlbnQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IGF1dG8gLyBzcGFuIDQ7IH0gfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLmNvbnRlbnQtaW1hZ2UgKyAuY29udGVudC1pbWFnZSB7XG4gICAgbWFyZ2luLXRvcDogM3JlbTsgfSB9XG5cbi5jb250ZW50LWltYWdlX19ncmlkIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLmNvbnRlbnQtaW1hZ2VfX2dyaWQge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgZ3JpZC1yb3ctZ2FwOiAxMHB4OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5jb250ZW50LWltYWdlX19ncmlkIHtcbiAgICAgICAgZ3JpZC1nYXA6IDQwcHg7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpOyB9IH0gfVxuXG4uY29udGVudC1pbWFnZV9fY29udGVudCB7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5jb250ZW50LWltYWdlX19jb250ZW50IHtcbiAgICAgIGZsZXgtYmFzaXM6IGNhbGMoNTAlIC0gM3JlbSk7XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoNTAlIC0gM3JlbSk7IH0gfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuY29udGVudC1pbWFnZV9fY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgLmNvbnRlbnQtaW1hZ2VfX2NvbnRlbnQgPiAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuY29udGVudC1pbWFnZV9fY29udGVudCA+ICo6bGFzdC1jaGlsZCAqOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uY29udGVudC1pbWFnZV9fY29udGFpbmVyIHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIGhlaWdodDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXRvcDogNTAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmNvbnRlbnQtaW1hZ2VfX2NvbnRhaW5lciB7XG4gICAgICBmbGV4LWJhc2lzOiBjYWxjKDUwJSAtIDNyZW0pO1xuICAgICAgbWF4LXdpZHRoOiBjYWxjKDUwJSAtIDNyZW0pOyB9IH1cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLmNvbnRlbnQtaW1hZ2VfX2NvbnRhaW5lciB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXRvcDogMTAwJTsgfSB9XG5cbi5jb250ZW50LWltYWdlX19maWd1cmUge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5jb250ZW50LWltYWdlX19maWd1cmUge1xuICAgICAgZmxleC1iYXNpczogY2FsYyg1MCUgLSAzcmVtKTtcbiAgICAgIG1heC13aWR0aDogY2FsYyg1MCUgLSAzcmVtKTsgfSB9XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5jb250ZW50LWltYWdlX19maWd1cmUge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgLmNvbnRlbnQtaW1hZ2VfX2ZpZ3VyZSAuY29udGVudC1pbWFnZV9faW1hZ2Uge1xuICAgIHBvc2l0aW9uOiBpbml0aWFsOyB9XG5cbi5jb250ZW50LWltYWdlX19pbWFnZSB7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuY29udGVudC1pbWFnZS0tbGVmdCAuY29udGVudC1pbWFnZV9fY29udGFpbmVyLFxuICAuY29udGVudC1pbWFnZS0tbGVmdCAuY29udGVudC1pbWFnZV9fZmlndXJlIHtcbiAgICBncmlkLWNvbHVtbjogMSAvIDc7IH1cbiAgLmNvbnRlbnQtaW1hZ2UtLWxlZnQgLmNvbnRlbnQtaW1hZ2VfX2NvbnRlbnQge1xuICAgIGdyaWQtY29sdW1uOiA3IC8gLTE7XG4gICAgZ3JpZC1yb3c6IDEgLyAxOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNvbnRlbnQtaW1hZ2UtLXJpZ2h0IC5jb250ZW50LWltYWdlX19jb250ZW50IHtcbiAgICBncmlkLWNvbHVtbjogMSAvIDc7XG4gICAgb3JkZXI6IDE7IH1cbiAgLmNvbnRlbnQtaW1hZ2UtLXJpZ2h0IC5jb250ZW50LWltYWdlX19jb250YWluZXIsXG4gIC5jb250ZW50LWltYWdlLS1yaWdodCAuY29udGVudC1pbWFnZV9fZmlndXJlIHtcbiAgICBncmlkLWNvbHVtbjogNyAvIC0xO1xuICAgIGdyaWQtcm93OiAxIC8gMTtcbiAgICBvcmRlcjogMjsgfSB9XG5cbi5jb250ZW50LWltYWdlLS1mdWxsLWJsZWVkIC5jb250ZW50LWltYWdlX19jb250ZW50IHtcbiAgcGFkZGluZzogMXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5jb250ZW50LWltYWdlLS1mdWxsLWJsZWVkIC5jb250ZW50LWltYWdlX19jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDRyZW0gMXJlbTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAuY29udGVudC1pbWFnZS0tZnVsbC1ibGVlZCAuY29udGVudC1pbWFnZV9fY29udGVudCB7XG4gICAgICBwYWRkaW5nOiA2cmVtIDFyZW07IH0gfVxuXG4uY29udGVudC1pbWFnZS0tZnVsbC1ibGVlZCAuY29udGVudC1pbWFnZV9fY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgcGFkZGluZy10b3A6IDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY29udGVudC1pbWFnZS0tZnVsbC1ibGVlZCAuY29udGVudC1pbWFnZV9fY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAuY29udGVudC1pbWFnZS0tZnVsbC1ibGVlZCAuY29udGVudC1pbWFnZS0tbGVmdCAuY29udGVudC1pbWFnZV9fY29udGFpbmVyIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5jb250ZW50LWltYWdlLS1mdWxsLWJsZWVkIC5jb250ZW50LWltYWdlLS1sZWZ0IC5jb250ZW50LWltYWdlX19jb250ZW50IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMuODc1cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuY29udGVudC1pbWFnZS0tZnVsbC1ibGVlZCAuY29udGVudC1pbWFnZS0tbGVmdCAuY29udGVudC1pbWFnZV9fY29udGVudCB7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCgxMDAlIC0gKDM3LjVyZW0gLSAoMXJlbSkpKSk7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC5jb250ZW50LWltYWdlLS1mdWxsLWJsZWVkIC5jb250ZW50LWltYWdlLS1yaWdodCAuY29udGVudC1pbWFnZV9fY29udGFpbmVyIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuY29udGVudC1pbWFnZS0tZnVsbC1ibGVlZCAuY29udGVudC1pbWFnZS0tcmlnaHQgLmNvbnRlbnQtaW1hZ2VfX2NvbnRlbnQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDMuODc1cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuY29udGVudC1pbWFnZS0tZnVsbC1ibGVlZCAuY29udGVudC1pbWFnZS0tcmlnaHQgLmNvbnRlbnQtaW1hZ2VfX2NvbnRlbnQge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKCAoIDEwMCUgLSAoIDM3LjVyZW0gLSAoIDFyZW0gKSApICkpOyB9IH1cblxuLmNvbnRlbnQtaW1hZ2UtLXBhcmFsbGF4IC5jb250ZW50LWltYWdlX19pbGx1c3RyYXRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cblxuLmNvbnRlbnQtaW1hZ2UtLXBhcmFsbGF4LmNvbnRlbnQtaW1hZ2UtLWNvbnRhaW4gLmNvbnRlbnQtaW1hZ2VfX2ltYWdlIHtcbiAgb2JqZWN0LWZpdDogY29udGFpbjsgfVxuXG4uY3RhX19ncmlkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5jdGFfX2J1dHRvbnMge1xuICBtYXJnaW4tdG9wOiAycmVtOyB9XG4gIC5jdGFfX2J1dHRvbnMgLmJ1dHRvbiwgLmN0YV9fYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53cC1ibG9jay1idXR0b24gLmN0YV9fYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uX19saW5rLCAuY3RhX19idXR0b25zICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b24sICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5jdGFfX2J1dHRvbnMgLmJ1dHRvbiwgLmN0YV9fYnV0dG9ucyAucmVwZWF0ZXItbG9nb19fbGluayB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uY3RhLS1nbG9iYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdjOTVhO1xuICBjb2xvcjogIzcyMGExMDsgfVxuICAuY3RhLS1nbG9iYWwgLmN0YV9fYnV0dG9ucyB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICAgIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC5idXR0b24gKyAuYnV0dG9uLCAuY3RhLS1nbG9iYWwgLmN0YV9fYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmsgKyAuYnV0dG9uLCAud3AtYmxvY2stYnV0dG9uIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC53cC1ibG9jay1idXR0b25fX2xpbmsgKyAuYnV0dG9uLCAuY3RhLS1nbG9iYWwgLmN0YV9fYnV0dG9ucyAucmVwZWF0ZXItbG9nb19fbGluayArIC5idXR0b24sIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC53cC1ibG9jay1idXR0b24gLmJ1dHRvbiArIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53cC1ibG9jay1idXR0b24gLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgLmJ1dHRvbiArIC53cC1ibG9jay1idXR0b25fX2xpbmssIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluayArIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53cC1ibG9jay1idXR0b24gLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgLndwLWJsb2NrLWJ1dHRvbl9fbGluayArIC53cC1ibG9jay1idXR0b25fX2xpbmssIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC53cC1ibG9jay1idXR0b24gLmJ1dHRvbiArIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53cC1ibG9jay1idXR0b24gLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbiArIC53cC1ibG9jay1idXR0b25fX2xpbmssICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC53cC1ibG9jay1idXR0b24gLmJ1dHRvbiArIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53cC1ibG9jay1idXR0b24gI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgLmJ1dHRvbiArIC53cC1ibG9jay1idXR0b25fX2xpbmssIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC53cC1ibG9jay1idXR0b24gLnJlcGVhdGVyLWxvZ29fX2xpbmsgKyAud3AtYmxvY2stYnV0dG9uX19saW5rLCAud3AtYmxvY2stYnV0dG9uIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC5yZXBlYXRlci1sb2dvX19saW5rICsgLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgLndwLWJsb2NrLWJ1dHRvbiAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rICsgLmJ1dHRvbiwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rICsgLmJ1dHRvbiwgLndwLWJsb2NrLWJ1dHRvbiAuY3RhLS1nbG9iYWwgLmN0YV9fYnV0dG9ucyAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rICsgLmJ1dHRvbiwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLndwLWJsb2NrLWJ1dHRvbiAuY3RhLS1nbG9iYWwgLmN0YV9fYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uX19saW5rICsgLmJ1dHRvbiwgLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbiArIC5idXR0b24sICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC5idXR0b24gKyAuYnV0dG9uLCAuY3RhLS1nbG9iYWwgLmN0YV9fYnV0dG9ucyAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAucmVwZWF0ZXItbG9nb19fbGluayArIC5idXR0b24sICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC5yZXBlYXRlci1sb2dvX19saW5rICsgLmJ1dHRvbiwgLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgLmJ1dHRvbiArIC5yZXBlYXRlci1sb2dvX19saW5rLCAuY3RhLS1nbG9iYWwgLmN0YV9fYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmsgKyAucmVwZWF0ZXItbG9nb19fbGluaywgLndwLWJsb2NrLWJ1dHRvbiAuY3RhLS1nbG9iYWwgLmN0YV9fYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uX19saW5rICsgLnJlcGVhdGVyLWxvZ29fX2xpbmssIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b24gKyAucmVwZWF0ZXItbG9nb19fbGluaywgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgLmJ1dHRvbiArIC5yZXBlYXRlci1sb2dvX19saW5rLCAuY3RhLS1nbG9iYWwgLmN0YV9fYnV0dG9ucyAucmVwZWF0ZXItbG9nb19fbGluayArIC5yZXBlYXRlci1sb2dvX19saW5rIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC5idXR0b24gKyAuYnV0dG9uLCAuY3RhLS1nbG9iYWwgLmN0YV9fYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmsgKyAuYnV0dG9uLCAud3AtYmxvY2stYnV0dG9uIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC53cC1ibG9jay1idXR0b25fX2xpbmsgKyAuYnV0dG9uLCAuY3RhLS1nbG9iYWwgLmN0YV9fYnV0dG9ucyAucmVwZWF0ZXItbG9nb19fbGluayArIC5idXR0b24sIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC53cC1ibG9jay1idXR0b24gLmJ1dHRvbiArIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53cC1ibG9jay1idXR0b24gLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgLmJ1dHRvbiArIC53cC1ibG9jay1idXR0b25fX2xpbmssIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluayArIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53cC1ibG9jay1idXR0b24gLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgLndwLWJsb2NrLWJ1dHRvbl9fbGluayArIC53cC1ibG9jay1idXR0b25fX2xpbmssIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC53cC1ibG9jay1idXR0b24gLmJ1dHRvbiArIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53cC1ibG9jay1idXR0b24gLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbiArIC53cC1ibG9jay1idXR0b25fX2xpbmssICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC53cC1ibG9jay1idXR0b24gLmJ1dHRvbiArIC53cC1ibG9jay1idXR0b25fX2xpbmssIC53cC1ibG9jay1idXR0b24gI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgLmJ1dHRvbiArIC53cC1ibG9jay1idXR0b25fX2xpbmssIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC53cC1ibG9jay1idXR0b24gLnJlcGVhdGVyLWxvZ29fX2xpbmsgKyAud3AtYmxvY2stYnV0dG9uX19saW5rLCAud3AtYmxvY2stYnV0dG9uIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC5yZXBlYXRlci1sb2dvX19saW5rICsgLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgLndwLWJsb2NrLWJ1dHRvbiAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rICsgLmJ1dHRvbiwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rICsgLmJ1dHRvbiwgLndwLWJsb2NrLWJ1dHRvbiAuY3RhLS1nbG9iYWwgLmN0YV9fYnV0dG9ucyAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rICsgLmJ1dHRvbiwgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLndwLWJsb2NrLWJ1dHRvbiAuY3RhLS1nbG9iYWwgLmN0YV9fYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uX19saW5rICsgLmJ1dHRvbiwgLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbiArIC5idXR0b24sICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC5idXR0b24gKyAuYnV0dG9uLCAuY3RhLS1nbG9iYWwgLmN0YV9fYnV0dG9ucyAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAucmVwZWF0ZXItbG9nb19fbGluayArIC5idXR0b24sICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zIC5yZXBlYXRlci1sb2dvX19saW5rICsgLmJ1dHRvbiwgLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgLmJ1dHRvbiArIC5yZXBlYXRlci1sb2dvX19saW5rLCAuY3RhLS1nbG9iYWwgLmN0YV9fYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmsgKyAucmVwZWF0ZXItbG9nb19fbGluaywgLndwLWJsb2NrLWJ1dHRvbiAuY3RhLS1nbG9iYWwgLmN0YV9fYnV0dG9ucyAud3AtYmxvY2stYnV0dG9uX19saW5rICsgLnJlcGVhdGVyLWxvZ29fX2xpbmssIC5jdGEtLWdsb2JhbCAuY3RhX19idXR0b25zICNzZWFyY2hmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5idXR0b24gKyAucmVwZWF0ZXItbG9nb19fbGluaywgI3NlYXJjaGZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24gLmN0YS0tZ2xvYmFsIC5jdGFfX2J1dHRvbnMgLmJ1dHRvbiArIC5yZXBlYXRlci1sb2dvX19saW5rLCAuY3RhLS1nbG9iYWwgLmN0YV9fYnV0dG9ucyAucmVwZWF0ZXItbG9nb19fbGluayArIC5yZXBlYXRlci1sb2dvX19saW5rIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogM3JlbTsgfSB9XG5cbi5oZXJvIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXgtaGVpZ2h0OiA3MDBweDtcbiAgcGFkZGluZzogMjUlIDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuaGVybyB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC1nYXA6IDFyZW07XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KDFyZW0sIDJyZW0pIG1pbi1jb250ZW50IG1pbm1heCgxcmVtLCAycmVtKTtcbiAgICAgIG1heC1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgLmhlcm9fX2ltYWdlLFxuICAuaGVybyBwaWN0dXJlIHtcbiAgICBib3R0b206IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAwO1xuICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmhlcm9fX2ltYWdlLFxuICAgICAgLmhlcm8gcGljdHVyZSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICAgIGdyaWQtcm93OiAxIC8gLTE7IH0gfVxuICAuaGVyb19fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuaGVyb19fY29udGVudCB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICAgIGdyaWQtcm93OiAyIC8gMztcbiAgICAgICAgei1pbmRleDogMjsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAuaGVyb19fY29udGVudCB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgMWZyKTtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCgyLCBhdXRvKTsgfSB9IH1cbiAgLmhlcm8gLmVudHJ5LXRpdGxlLFxuICAuaGVybyAuaGVyb19fdGl0bGUge1xuICAgIHdpZHRoOiA2NiU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuaGVybyAuZW50cnktdGl0bGUsXG4gICAgICAuaGVybyAuaGVyb19fdGl0bGUge1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC5oZXJvX19leGNlcnB0IHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIHdpZHRoOiA2NiU7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5oZXJvX19leGNlcnB0IHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAxMTtcbiAgICAgICAgZ3JpZC1yb3c6IDIgLyAzO1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gICAgLmhlcm9fX2V4Y2VycHQgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmhlcm8tLXBhZGRpbmctbGFyZ2Uge1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCgycmVtLCAxMHJlbSkgbWluLWNvbnRlbnQgbWlubWF4KDJyZW0sIDEwcmVtKTsgfSB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5oZXJvLS1wYWRkaW5nLWxhcmdlIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtaW5tYXgoMnJlbSwgMTByZW0pIG1pbi1jb250ZW50IG1pbm1heCgycmVtLCAxMHJlbSk7IH0gfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgICAuaGVyby0tc3RhY2stb24tbW9iaWxlIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogNTB2dyBtaW4tY29udGVudDsgfVxuICAgICAgLmhlcm8tLXN0YWNrLW9uLW1vYmlsZSAuaGVyb19faW1hZ2UsXG4gICAgICAuaGVyby0tc3RhY2stb24tbW9iaWxlIHBpY3R1cmUge1xuICAgICAgICBncmlkLXJvdzogMSAvIHNwYW4gMTsgfVxuICAgICAgLmhlcm8tLXN0YWNrLW9uLW1vYmlsZSAuaGVyb19fY29udGVudCB7XG4gICAgICAgIGdyaWQtcm93OiAyIC8gc3BhbiAxOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLmhlcm8tLWxlZnQgLmVudHJ5LXRpdGxlLFxuICAgIC5oZXJvLS1sZWZ0IC5oZXJvX190aXRsZSB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIC0xOyB9IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuaGVyby0tbGVmdCAuaGVyb19fZXhjZXJwdCB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIDc7IH0gfSB9XG5cbi5oZXJvLS1yaWdodCAuaGVyb19fY29udGVudCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuaGVyby0tcmlnaHQgLmVudHJ5LXRpdGxlLFxuICAgIC5oZXJvLS1yaWdodCAuaGVyb19fdGl0bGUge1xuICAgICAgZ3JpZC1jb2x1bW46IDcgLyAtMTsgfSB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLmhlcm8tLXJpZ2h0IC5oZXJvX19leGNlcnB0IHtcbiAgICAgIGdyaWQtY29sdW1uOiA3IC8gLTE7XG4gICAgICBncmlkLXJvdzogMiAvIDM7IH0gfSB9XG5cbi5oZXJvLS1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmhlcm8tLWNlbnRlciAuaGVyb19fY29udGVudCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmhlcm8tLWNlbnRlciAuZW50cnktdGl0bGUsXG4gICAgICAuaGVyby0tY2VudGVyIC5oZXJvX190aXRsZSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiA0IC8gc3BhbiA2O1xuICAgICAgICBncmlkLXJvdzogMSAvIDI7IH0gfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuaGVyby0tY2VudGVyIC5oZXJvX19leGNlcnB0IHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDQgLyBzcGFuIDY7XG4gICAgICAgIGdyaWQtcm93OiAyIC8gMzsgfSB9IH1cblxuLmhlcm8tYXJjaGl2ZSB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07IH1cblxuLmhlcm8tZmVhdHVyZWQge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC1oZWlnaHQ6IDcwMHB4O1xuICBwYWRkaW5nOiAyNSUgMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5oZXJvLWZlYXR1cmVkIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLWdhcDogMXJlbTtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtaW5tYXgoMnJlbSwgNHJlbSkgbWluLWNvbnRlbnQgbWlubWF4KDJyZW0sIDRyZW0pO1xuICAgICAgbWF4LWhlaWdodDogaW5oZXJpdDtcbiAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAuaGVyby1mZWF0dXJlZF9faW1hZ2UsXG4gIC5oZXJvLWZlYXR1cmVkIHBpY3R1cmUge1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDA7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5oZXJvLWZlYXR1cmVkX19pbWFnZSxcbiAgICAgIC5oZXJvLWZlYXR1cmVkIHBpY3R1cmUge1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICBncmlkLXJvdzogMSAvIC0xOyB9IH1cbiAgLmhlcm8tZmVhdHVyZWRfX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmhlcm8tZmVhdHVyZWRfX2NvbnRlbnQge1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICBncmlkLXJvdzogMiAvIDM7XG4gICAgICAgIHotaW5kZXg6IDI7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLmhlcm8tZmVhdHVyZWRfX2NvbnRlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoMiwgYXV0byk7IH0gfSB9XG4gIC5oZXJvLWZlYXR1cmVkIC5lbnRyeS10aXRsZSxcbiAgLmhlcm8tZmVhdHVyZWQgLmhlcm8tZmVhdHVyZWRfX3RpdGxlIHtcbiAgICB3aWR0aDogNjYlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmhlcm8tZmVhdHVyZWQgLmVudHJ5LXRpdGxlLFxuICAgICAgLmhlcm8tZmVhdHVyZWQgLmhlcm8tZmVhdHVyZWRfX3RpdGxlIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyA3O1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC5oZXJvLWZlYXR1cmVkX19leGNlcnB0IHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIHdpZHRoOiA2NiU7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5oZXJvLWZlYXR1cmVkX19leGNlcnB0IHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyA3O1xuICAgICAgICBncmlkLXJvdzogMiAvIDM7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgICAuaGVyby1mZWF0dXJlZF9fZXhjZXJwdCA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuaGVyby1mZWF0dXJlZC0tcGFkZGluZy1sYXJnZSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KDJyZW0sIDEwcmVtKSBtaW4tY29udGVudCBtaW5tYXgoMnJlbSwgMTByZW0pOyB9IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmhlcm8tZmVhdHVyZWQtLXBhZGRpbmctbGFyZ2Uge1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCgycmVtLCAxNXJlbSkgbWluLWNvbnRlbnQgbWlubWF4KDJyZW0sIDE1cmVtKTsgfSB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAgIC5oZXJvLWZlYXR1cmVkLS1zdGFjay1vbi1tb2JpbGUge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiA1MHZ3IG1pbi1jb250ZW50OyB9XG4gICAgICAuaGVyby1mZWF0dXJlZC0tc3RhY2stb24tbW9iaWxlIC5oZXJvLWZlYXR1cmVkX19pbWFnZSxcbiAgICAgIC5oZXJvLWZlYXR1cmVkLS1zdGFjay1vbi1tb2JpbGUgcGljdHVyZSB7XG4gICAgICAgIGdyaWQtcm93OiAxIC8gc3BhbiAxOyB9XG4gICAgICAuaGVyby1mZWF0dXJlZC0tc3RhY2stb24tbW9iaWxlIC5oZXJvLWZlYXR1cmVkX19jb250ZW50IHtcbiAgICAgICAgZ3JpZC1yb3c6IDIgLyBzcGFuIDE7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuaGVyby1mZWF0dXJlZC0tbGVmdCAuZW50cnktdGl0bGUsXG4gICAgLmhlcm8tZmVhdHVyZWQtLWxlZnQgLmhlcm8tZmVhdHVyZWRfX3RpdGxlIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gNzsgfSB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLmhlcm8tZmVhdHVyZWQtLWxlZnQgLmhlcm8tZmVhdHVyZWRfX2V4Y2VycHQge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyA3OyB9IH0gfVxuXG4uaGVyby1mZWF0dXJlZC0tcmlnaHQgLmhlcm8tZmVhdHVyZWRfX2NvbnRlbnQge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLmhlcm8tZmVhdHVyZWQtLXJpZ2h0IC5lbnRyeS10aXRsZSxcbiAgICAuaGVyby1mZWF0dXJlZC0tcmlnaHQgLmhlcm8tZmVhdHVyZWRfX3RpdGxlIHtcbiAgICAgIGdyaWQtY29sdW1uOiA3IC8gLTE7IH0gfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5oZXJvLWZlYXR1cmVkLS1yaWdodCAuaGVyby1mZWF0dXJlZF9fZXhjZXJwdCB7XG4gICAgICBncmlkLWNvbHVtbjogNyAvIC0xO1xuICAgICAgZ3JpZC1yb3c6IDIgLyAzOyB9IH0gfVxuXG4uaGVyby1mZWF0dXJlZC0tY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5oZXJvLWZlYXR1cmVkLS1jZW50ZXIgLmhlcm8tZmVhdHVyZWRfX2NvbnRlbnQge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5oZXJvLWZlYXR1cmVkLS1jZW50ZXIgLmVudHJ5LXRpdGxlLFxuICAgICAgLmhlcm8tZmVhdHVyZWQtLWNlbnRlciAuaGVyby1mZWF0dXJlZF9fdGl0bGUge1xuICAgICAgICBncmlkLWNvbHVtbjogNCAvIHNwYW4gNjtcbiAgICAgICAgZ3JpZC1yb3c6IDEgLyAyOyB9IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmhlcm8tZmVhdHVyZWQtLWNlbnRlciAuaGVyby1mZWF0dXJlZF9fZXhjZXJwdCB7XG4gICAgICAgIGdyaWQtY29sdW1uOiA0IC8gc3BhbiA2O1xuICAgICAgICBncmlkLXJvdzogMiAvIDM7IH0gfSB9XG5cbi5oZXJvLS12aWRlby5oZXJvLS1jb2xvcmVkLXRleHQgLmhlcm9fX2NvbnRlbnQgKjpub3QoLmJ1dHRvbik6bm90KC5yZXBlYXRlci1sb2dvX19saW5rKSB7XG4gIGNvbG9yOiAjZmZmZmZmOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLmhlcm8tLXZpZGVvLmhlcm8tLXN0YWNrLW9uLW1vYmlsZSAuaGVyb19fY29udGVudCAqOm5vdCguYnV0dG9uKTpub3QoLnJlcGVhdGVyLWxvZ29fX2xpbmspIHtcbiAgICBjb2xvcjogIzAwMDAwMDsgfSB9XG5cbi5yZXBlYXRlci1pY29uX19pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LXNocmluazogMDtcbiAgbWFyZ2luOiAwIDEwcHggMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAucmVwZWF0ZXItaWNvbl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgICAucmVwZWF0ZXItaWNvbl9faXRlbTpudGgtY2hpbGQobis0KSB7XG4gICAgICBmbGV4LWdyb3c6IDA7IH0gfVxuXG4ucmVwZWF0ZXItaWNvbl9faXRlbS1oZWFkaW5nIHtcbiAgbWFyZ2luOiAxcmVtIDA7XG4gIHRyYW5zaXRpb246IC4yNXMgbGluZWFyIGFsbDsgfVxuXG4ucmVwZWF0ZXItaWNvbl9faW1hZ2Uge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnJlcGVhdGVyLWljb25fX3RleHQge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJlcGVhdGVyLWljb25fX2dyaWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbjogLTAuNXJlbTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLnJlcGVhdGVyLWljb25fX2dyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLWdhcDogMjBweDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG4gICAgICAgIG1hcmdpbjogMDsgfSB9IH1cblxuLnJlcGVhdGVyLWljb25fX2dyaWQtLWNlbnRlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnJlcGVhdGVyLWljb25fX2dyaWQtLWxlZnQgLnJlcGVhdGVyLWljb25fX2l0ZW0sXG4ucmVwZWF0ZXItaWNvbl9fZ3JpZC0tbGVmdCAucmVwZWF0ZXItaWNvbl9faW1hZ2UsXG4ucmVwZWF0ZXItaWNvbl9fZ3JpZC0tbGVmdCAucmVwZWF0ZXItaWNvbl9faXRlbS1oZWFkaW5nLFxuLnJlcGVhdGVyLWljb25fX2dyaWQtLWxlZnQgLnJlcGVhdGVyLWljb25fX3RleHQge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi5yZXBlYXRlci1pY29uX19ncmlkLS1jYXJkIC5yZXBlYXRlci1pY29uX19pdGVtIHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBwYWRkaW5nOiAycmVtOyB9XG5cbi5yZXBlYXRlci1pY29uX19ncmlkLS1jYXJkIC5yZXBlYXRlci1pY29uX19pbWFnZSxcbi5yZXBlYXRlci1pY29uX19ncmlkLS1jYXJkIC5yZXBlYXRlci1pY29uX19pdGVtLWhlYWRpbmcsXG4ucmVwZWF0ZXItaWNvbl9fZ3JpZC0tY2FyZCAucmVwZWF0ZXItaWNvbl9fdGV4dCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnJlcGVhdGVyLWljb25fX2dyaWQtLWNhcmQgLnJlcGVhdGVyLWljb25fX2hlYWRpbmcge1xuICBhbGlnbi1zZWxmOiBzdGFydDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucmVwZWF0ZXItaWNvbl9fZ3JpZC0tMiAucmVwZWF0ZXItaWNvbl9faXRlbSB7XG4gICAgZmxleC1iYXNpczogY2FsYyg1MCUgLSAyMHB4KTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoNTAlIC0gMjBweCk7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5yZXBlYXRlci1pY29uX19ncmlkLS0yIC5yZXBlYXRlci1pY29uX19pdGVtIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IGF1dG8gLyBzcGFuIDY7IH0gfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yZXBlYXRlci1pY29uX19ncmlkLS0zIC5yZXBlYXRlci1pY29uX19pdGVtIHtcbiAgICBmbGV4LWJhc2lzOiBjYWxjKDMzLjMzJSAtIDIwcHgpO1xuICAgIG1heC13aWR0aDogY2FsYygzMy4zMyUgLSAyMHB4KTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLnJlcGVhdGVyLWljb25fX2dyaWQtLTMgLnJlcGVhdGVyLWljb25fX2l0ZW0ge1xuICAgICAgICBncmlkLWNvbHVtbjogYXV0byAvIHNwYW4gNDsgfSB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJlcGVhdGVyLWljb25fX2dyaWQtLTQgLnJlcGVhdGVyLWljb25fX2l0ZW0ge1xuICAgIGZsZXgtYmFzaXM6IGNhbGMoMjUlIC0gMjBweCk7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDI1JSAtIDIwcHgpOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAucmVwZWF0ZXItaWNvbl9fZ3JpZC0tNCAucmVwZWF0ZXItaWNvbl9faXRlbSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiAzOyB9IH0gfVxuXG5hLnJlcGVhdGVyLWljb25fX2l0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdHJhbnNpdGlvbjogLjI1cyBsaW5lYXIgYWxsOyB9XG4gIGEucmVwZWF0ZXItaWNvbl9faXRlbSAucmVwZWF0ZXItaWNvbl9fdGV4dCB7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgYS5yZXBlYXRlci1pY29uX19pdGVtOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICM3MjBhMTA7IH1cbiAgICBhLnJlcGVhdGVyLWljb25fX2l0ZW06aG92ZXIgLnJlcGVhdGVyLWljb25fX2l0ZW0taGVhZGluZyB7XG4gICAgICBjb2xvcjogIzcyMGExMDsgfVxuXG4uc3RhbmRhcmQtaW1hZ2Uge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuc3RhbmRhcmQtaW1hZ2Uge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtZ2FwOiAyMHB4OyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAuc3RhbmRhcmQtaW1hZ2Uge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoYXV0bywgY2FsYygxMiAvIDEyICogMTAwJSkpIGF1dG87IH0gfSB9XG4gIC5zdGFuZGFyZC1pbWFnZSBpbWcsXG4gIC5zdGFuZGFyZC1pbWFnZSBmaWd1cmUsXG4gIC5zdGFuZGFyZC1pbWFnZSBwaWN0dXJlIHtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLnN0YW5kYXJkLWltYWdlIGltZyxcbiAgICAgIC5zdGFuZGFyZC1pbWFnZSBmaWd1cmUsXG4gICAgICAuc3RhbmRhcmQtaW1hZ2UgcGljdHVyZSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyIC8gc3BhbiAxOyB9IH1cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLnN0YW5kYXJkLWltYWdlLS1jZW50ZXIge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heChhdXRvLCBjYWxjKDEwIC8gMTIgKiAxMDAlKSkgYXV0bzsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgLnN0YW5kYXJkLWltYWdlLS1jZW50ZXIge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoYXV0bywgY2FsYyg4IC8gMTIgKiAxMDAlKSkgYXV0bzsgfSB9IH1cbiAgLnN0YW5kYXJkLWltYWdlLS1jZW50ZXIgaW1nLFxuICAuc3RhbmRhcmQtaW1hZ2UtLWNlbnRlciBmaWd1cmUsXG4gIC5zdGFuZGFyZC1pbWFnZS0tY2VudGVyIHBpY3R1cmUge1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHdpZHRoOiA4MCU7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5zdGFuZGFyZC1pbWFnZS0tY2VudGVyIGltZyxcbiAgICAgIC5zdGFuZGFyZC1pbWFnZS0tY2VudGVyIGZpZ3VyZSxcbiAgICAgIC5zdGFuZGFyZC1pbWFnZS0tY2VudGVyIHBpY3R1cmUge1xuICAgICAgICBncmlkLWNvbHVtbjogMiAvIHNwYW4gMTtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAuc3RhbmRhcmQtaW1hZ2UtLXdpZGUge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuc3RhbmRhcmQtaW1hZ2UtLXdpZGUge1xuICAgICAgICBncmlkLWdhcDogMDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH0gfVxuICAgIC5zdGFuZGFyZC1pbWFnZS0td2lkZSBpbWcsXG4gICAgLnN0YW5kYXJkLWltYWdlLS13aWRlIGZpZ3VyZSxcbiAgICAuc3RhbmRhcmQtaW1hZ2UtLXdpZGUgcGljdHVyZSB7XG4gICAgICBtYXgtaGVpZ2h0OiA3MDBweDsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5zdGFuZGFyZC1pbWFnZS0td2lkZSBpbWcsXG4gICAgICAgIC5zdGFuZGFyZC1pbWFnZS0td2lkZSBmaWd1cmUsXG4gICAgICAgIC5zdGFuZGFyZC1pbWFnZS0td2lkZSBwaWN0dXJlIHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMTsgfSB9XG4gIC5zdGFuZGFyZC1pbWFnZSBmaWdjYXB0aW9uIHtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICBjb2xvcjogIzk5OTtcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4ucmVwZWF0ZXItbG9nbyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAucmVwZWF0ZXItbG9nb19faXRlbXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IC0ycmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5yZXBlYXRlci1sb2dvX19pdGVtcyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAucmVwZWF0ZXItbG9nb19faXRlbSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDAgMSBjYWxjKCA1MCUgLSAxcmVtKTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwIDAuNXJlbSAycmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5yZXBlYXRlci1sb2dvX19pdGVtIHtcbiAgICAgICAgZmxleDogMCAwIDIwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAyMCU7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucHJpY2luZy10YWJsZV9fZ3JpZCwgLnByaWNpbmctdGFibGVfX2dyaWQtLWhvcml6b250YWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5wcmljaW5nLXRhYmxlX19ncmlkLS1ob3Jpem9udGFsIC5wcmljaW5nLXRhYmxlX190YWJsZSB7XG4gICAgZmxleC1iYXNpczogY2FsYyggNTAlIC0gMXJlbSk7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoIDUwJSAtIDFyZW0pOyB9XG4gICAgLnByaWNpbmctdGFibGVfX2dyaWQtLWhvcml6b250YWwgLnByaWNpbmctdGFibGVfX3RhYmxlOmxhc3QtY2hpbGQsIC5wcmljaW5nLXRhYmxlX19ncmlkLS1ob3Jpem9udGFsIC5wcmljaW5nLXRhYmxlX190YWJsZTpudGgtbGFzdC1jaGlsZCgyKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnByaWNpbmctdGFibGVfX2dyaWQtLWhvcml6b250YWwgLnByaWNpbmctdGFibGVfX3RhYmxlIHtcbiAgICBmbGV4LWJhc2lzOiBjYWxjKCAyNSUgLSAxcmVtKTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1heC13aWR0aDogY2FsYyggMjUlIC0gMXJlbSk7IH0gfVxuXG4ucHJpY2luZy10YWJsZV9fdGFibGUge1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDJyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgLnByaWNpbmctdGFibGVfX3RhYmxlOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucHJpY2luZy10YWJsZV9fdGFibGUge1xuICAgICAgZmxleC1iYXNpczogY2FsYyggNTAlIC0gMXJlbSk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgbWF4LXdpZHRoOiBjYWxjKCA1MCUgLSAxcmVtKTsgfVxuICAgICAgLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1sYXN0LWNoaWxkKDIpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG5cbi5wcmljaW5nLXRhYmxlX19idXR0b24ge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZ3JvdzogMTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAucHJpY2luZy10YWJsZV9fYnV0dG9uIC5idXR0b24sIC5wcmljaW5nLXRhYmxlX19idXR0b24gLndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLCAud3AtYmxvY2stYnV0dG9uIC5wcmljaW5nLXRhYmxlX19idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluaywgLnByaWNpbmctdGFibGVfX2J1dHRvbiAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuYnV0dG9uLCAjc2VhcmNoZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiAucHJpY2luZy10YWJsZV9fYnV0dG9uIC5idXR0b24sIC5wcmljaW5nLXRhYmxlX19idXR0b24gLnJlcGVhdGVyLWxvZ29fX2xpbmsge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLnByaWNpbmctdGFibGVfX2hpZ2hsaWdodCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ucHJpY2luZy10YWJsZV9fbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1vZi10eXBlKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzcyMGExMDtcbiAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1vZi10eXBlKGV2ZW4pIC5oNCxcbiAgLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1vZi10eXBlKGV2ZW4pIC5wcmljaW5nLXRhYmxlX19oaWdobGlnaHQge1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG5cbi5zaWducG9zdF9faGVhZGluZyB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnNpZ25wb3N0X19ncmlkLS1jb2wtMiB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsgfSB9XG5cbi5zaWducG9zdF9fZ3JpZC0tY29sLTMge1xuICBncmlkLWdhcDogMXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5zaWducG9zdF9fZ3JpZC0tY29sLTMge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsgfSB9XG5cbi5zaWducG9zdF9faXRlbSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDFyZW0gNHJlbSAxcmVtIDFyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2Utb3V0IC4yczsgfVxuICAuc2lnbnBvc3RfX2l0ZW06YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgY29udGVudDogdXJsKC4uL2ltYWdlcy9pY29ucy9jaGV2cm9uLXJpZ2h0LnN2Zyk7XG4gICAgbWFyZ2luLXRvcDogLThweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDJyZW07XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjQpOyB9XG4gIC5zaWducG9zdF9faXRlbTpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjZjdjOTVhOyB9XG4gICAgLnNpZ25wb3N0X19pdGVtOmhvdmVyIC5zaWducG9zdF9fdGl0bGUge1xuICAgICAgY29sb3I6ICM3MjBhMTA7IH1cbiAgICAuc2lnbnBvc3RfX2l0ZW06aG92ZXIgLnNpZ25wb3N0X190ZXh0IHtcbiAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG5cbi5zaWducG9zdF9fdGl0bGUge1xuICB0cmFuc2l0aW9uOiBjb2xvciBlYXNlLW91dCAuMnM7IH1cblxuLnNpZ25wb3N0X190ZXh0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uc3RhdHMge1xuICBwYWRkaW5nOiAzcmVtIDA7IH1cbiAgLnN0YXRzX193cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnN0YXRzX193cmFwcGVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgZmxleC13cmFwOiB3cmFwOyB9IH1cbiAgLnN0YXRzX19pdGVtIHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnN0YXRzX19pdGVtIHtcbiAgICAgICAgZmxleDogMSAwIDUwJTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zdGF0c19faXRlbSB7XG4gICAgICAgIGZsZXg6IDEgMCAyNSU7IH0gfVxuICAgIC5zdGF0c19faXRlbS0taGVhZGluZyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLnN0YXRzX19pdGVtLXByZWZpeCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC04cHg7IH1cbiAgICAuc3RhdHNfX2l0ZW0tc3ltYm9sIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4OyB9XG5cbi50ZXN0aW1vbmlhbF9faWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvd2hpdGUtb3V0LWxvZ28ucG5nKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiA4MHB4O1xuICBtYXJnaW46IDAgYXV0byAxLjVyZW07XG4gIHdpZHRoOiA4MHB4OyB9XG5cbi50ZXN0aW1vbmlhbF9fcXVvdGUge1xuICBjb2xvcjogIzcyMGExMDsgfVxuXG4udGVzdGltb25pYWxfX2NpdGUge1xuICBjb2xvcjogIzcyMGExMDtcbiAgZm9udC1mYW1pbHk6IFwiQ291c3RhcmRcIiwgXCJSb2JvdG9cIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiT3h5Z2VuXCIsIFwiVWJ1bnR1XCIsIFwiQ2FudGFyZWxsXCIsIFwiRmlyYSBTYW5zXCIsIFwiRHJvaWQgU2Fuc1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG4ucmVsYXRpb25zaGlwX192aWV3LWFsbCB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ucmVsYXRpb25zaGlwX19ncmlkLFxuLnJlbGF0aW9uc2hpcF9fZ3JpZC0tMSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBncmlkLWdhcDogMCAhaW1wb3J0YW50OyB9XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5yZWxhdGlvbnNoaXBfX2dyaWQsXG4gICAgLnJlbGF0aW9uc2hpcF9fZ3JpZC0tMSB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC1nYXA6IDIwcHg7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZWxhdGlvbnNoaXBfX2dyaWQsXG4gICAgLnJlbGF0aW9uc2hpcF9fZ3JpZC0tMSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBncmlkLWdhcDogMCAhaW1wb3J0YW50OyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLnJlbGF0aW9uc2hpcF9fZ3JpZCxcbiAgICAgICAgLnJlbGF0aW9uc2hpcF9fZ3JpZC0tMSB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLWdhcDogMjBweDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7IH0gfSB9XG5cbi5yZWxhdGlvbnNoaXBfX2dyaWQtLTEgLnJlbGF0aW9uc2hpcF9fY29udGVudCB7XG4gIHBhZGRpbmc6IDNyZW0gMnJlbTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucmVsYXRpb25zaGlwX19ncmlkLS0yIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAucmVsYXRpb25zaGlwX19ncmlkLS0yIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC1nYXA6IDIwcHg7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTsgfSB9XG4gICAgLnJlbGF0aW9uc2hpcF9fZ3JpZC0tMiA+ICoge1xuICAgICAgZmxleC1iYXNpczogY2FsYyg1MCUgLSAxcmVtKTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yZWxhdGlvbnNoaXBfX2dyaWQtLTMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5yZWxhdGlvbnNoaXBfX2dyaWQtLTMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLWdhcDogMjBweDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgICAucmVsYXRpb25zaGlwX19ncmlkLS0zID4gKiB7XG4gICAgICBmbGV4LWJhc2lzOiBjYWxjKDMzLjMzJSAtIDFyZW0pOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJlbGF0aW9uc2hpcF9fZ3JpZC0tNCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLnJlbGF0aW9uc2hpcF9fZ3JpZC0tNCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtZ2FwOiAyMHB4O1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7IH0gfVxuICAgIC5yZWxhdGlvbnNoaXBfX2dyaWQtLTQgPiAqIHtcbiAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMjUlIC0gMXJlbSk7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucmVsYXRpb25zaGlwX19ncmlkLS01IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAucmVsYXRpb25zaGlwX19ncmlkLS01IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC1nYXA6IDIwcHg7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIG1pbm1heCgwLCAxZnIpKTsgfSB9XG4gICAgLnJlbGF0aW9uc2hpcF9fZ3JpZC0tNSA+ICoge1xuICAgICAgZmxleC1iYXNpczogY2FsYygyMCUgLSAxcmVtKTsgfSB9XG5cbi5yZWxhdGlvbnNoaXBfX2dyaWQtLTMgLmNhcmQge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ucmVsYXRpb25zaGlwLXRlYW0gLnJlbGF0aW9uc2hpcF9fZ3JpZCxcbi5yZWxhdGlvbnNoaXAtdGVhbSAucmVsYXRpb25zaGlwX19ncmlkLS0xIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1jb2x1bW4tZ2FwOiAxcmVtO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfVxuXG4ucmVsYXRpb25zaGlwLXRlYW0gLnJlbGF0aW9uc2hpcF9fZ3JpZC0tMSAucmVsYXRpb25zaGlwLXRlYW1fX2NvbnRlbnQge1xuICBwYWRkaW5nOiAzcmVtIDJyZW07IH1cblxuLnJlbGF0aW9uc2hpcC10ZWFtIC5yZWxhdGlvbnNoaXBfX2dyaWQtLTIge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yZWxhdGlvbnNoaXAtdGVhbSAucmVsYXRpb25zaGlwX19ncmlkLS0zIHtcbiAgICBncmlkLXJvdy1nYXA6IDFyZW07XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yZWxhdGlvbnNoaXAtdGVhbSAucmVsYXRpb25zaGlwX19ncmlkLS00IHtcbiAgICBncmlkLXJvdy1nYXA6IDFyZW07XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTsgfSB9XG5cbi50aW1lbGluZV9fc2VjdGlvbi1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgcGFkZGluZzogNXJlbSAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnRpbWVsaW5lX19zZWN0aW9uLWJhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMXJlbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxNTBweDtcbiAgICB3aWR0aDogNHB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC50aW1lbGluZV9fc2VjdGlvbi1iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgICAgICBsZWZ0OiA1MCU7IH0gfVxuICAudGltZWxpbmVfX3NlY3Rpb24tYmFja2dyb3VuZDpsYXN0LW9mLXR5cGU6OmJlZm9yZSB7XG4gICAgYm90dG9tOiAyMDBweDtcbiAgICB0b3A6IGF1dG87IH1cblxuLnRpbWVsaW5lX190aXRsZSB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnRpbWVsaW5lX19tYXJrZXIge1xuICBiYWNrZ3JvdW5kOiAjNzIwYTEwO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogM3B4IHNvbGlkICMwMDAwMDA7XG4gIGhlaWdodDogMTdweDtcbiAgbWFyZ2luLWxlZnQ6IC03cHg7XG4gIG9yZGVyOiAyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzJweDtcbiAgd2lkdGg6IDE3cHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAudGltZWxpbmVfX21hcmtlciB7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBtYXJnaW4tbGVmdDogY2FsYyg1JSAtIDEzcHgpO1xuICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgICB3aWR0aDogMzBweDsgfSB9XG5cbi50aW1lbGluZV9fY2FyZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXJnaW46IDAgMXJlbSAzcmVtIDJyZW07XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnRpbWVsaW5lX19jYXJkIHtcbiAgICAgIGZsZXg6IDAgMCA0NSU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICAgICAgb3JkZXI6IDE7XG4gICAgICBwYWRkaW5nOiAycmVtOyB9IH1cbiAgLnRpbWVsaW5lX19jYXJkOjpiZWZvcmUge1xuICAgIGJvcmRlci1ib3R0b206IDIwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAyMHB4IHNvbGlkICNlNmU2ZTY7XG4gICAgYm9yZGVyLXRvcDogMjBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb250ZW50OiAnJztcbiAgICBsZWZ0OiAtMjBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyMHB4OyB9XG4gIC50aW1lbGluZV9fY2FyZF9faW1hZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgLnRpbWVsaW5lX19jYXJkX19jb250ZW50IHA6bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi50aW1lbGluZV9faXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC50aW1lbGluZV9faXRlbSB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAudGltZWxpbmVfX2l0ZW0tLWxlZnQgKyAudGltZWxpbmVfX2l0ZW0tLWxlZnQge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnRpbWVsaW5lX19pdGVtLS1sZWZ0IC50aW1lbGluZV9fY2FyZDo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogLTIwcHg7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAudGltZWxpbmVfX2l0ZW0tLXJpZ2h0IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgIG1hcmdpbi10b3A6IC0yMHJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnRpbWVsaW5lX19pdGVtLS1yaWdodCArIC50aW1lbGluZV9faXRlbS0tcmlnaHQge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnRpbWVsaW5lX19pdGVtLS1yaWdodCAudGltZWxpbmVfX21hcmtlciB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoNSUgLSAxN3B4KTsgfSB9XG5cbi52aWRlbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAudmlkZW9fX2ltYWdlIHtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgIC52aWRlb19faW1hZ2Uge1xuICAgICAgICBtYXgtaGVpZ2h0OiA3MDBweDsgfSB9XG4gIC52aWRlb19fdmlkZW8ge1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC52aWRlb19fdmlkZW8ge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICAgLnZpZGVvX192aWRlbyB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDcwMHB4OyB9IH1cbiAgICAudmlkZW9fX3ZpZGVvLS1yZXNwb25zaXZlIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgICAgLnZpZGVvX192aWRlby0tcmVzcG9uc2l2ZSBpZnJhbWUsXG4gICAgICAudmlkZW9fX3ZpZGVvLS1yZXNwb25zaXZlIG9iamVjdCxcbiAgICAgIC52aWRlb19fdmlkZW8tLXJlc3BvbnNpdmUgZW1iZWQsXG4gICAgICAudmlkZW9fX3ZpZGVvLS1yZXNwb25zaXZlIHZpZGVvIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnd5c2l3eWdfX2NvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogY2FsYyg4IC8gMTIgKiAxMDAlKTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAud3lzaXd5Z19fY29udGVudC0td2lkZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwIC8gMTIgKiAxMDAlKTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAud3lzaXd5Z19fY29udGVudC0tZnVsbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEyIC8gMTIgKiAxMDAlKTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH0gfVxuXG4ud3lzaXd5Z19fY29udGVudCA+ICo6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnd5c2l3eWdfX2NvbnRlbnQgPiAqOmxhc3QtY2hpbGQgKjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi53eXNpd3lnX19jb250ZW50IGZpZ3VyZSB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuLndwLWJsb2NrLXZpZGVvIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgcGFkZGluZzogMCAxcmVtO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC53cC1ibG9jay12aWRlbyB2aWRlbyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC53cC1ibG9jay12aWRlbyB2aWRlbyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTIgLyAxMiAqIDEwMCUpO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLndwLWJsb2NrLXZpZGVvIC53cC1ibG9jay1lbWJlZF9fd3JhcHBlcixcbiAgLndwLWJsb2NrLWVtYmVkLndwLWJsb2NrLWVtYmVkLXZpbWVvIC53cC1ibG9jay1lbWJlZF9fd3JhcHBlcixcbiAgLndwLWJsb2NrLWVtYmVkLndwLWJsb2NrLWVtYmVkLXlvdXR1YmUgLndwLWJsb2NrLWVtYmVkX193cmFwcGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTIgLyAxMiAqIDEwMCUpO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfSB9XG5cbi5tb24taWZyYW1lIGlmcmFtZSB7XG4gIGhlaWdodDogMzUwcHg7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm1vbi1pZnJhbWUgaWZyYW1lIHtcbiAgICAgIGhlaWdodDogNDAwcHg7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5tb24taWZyYW1lIGlmcmFtZSB7XG4gICAgICBoZWlnaHQ6IDU1MHB4OyB9IH1cblxuLyogU2xpZGVyICovXG4vKiBETyBOT1QgRURJVCBUSEVTRSwgVVNFIFRIRSBSVUxFUyBBVCBUSEUgQk9UVE9NICovXG4uc2xpY2stc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5zbGljay1saXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi5zbGljay1saXN0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4uc2xpY2stbGlzdC5kcmFnZ2luZyB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY3Vyc29yOiBoYW5kOyB9XG5cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uc2xpY2stdHJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cblxuLnNsaWNrLXRyYWNrOmJlZm9yZSxcbi5zbGljay10cmFjazphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiBcIlwiOyB9XG5cbi5zbGljay10cmFjazphZnRlciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5zbGljay1sb2FkaW5nIC5zbGljay10cmFjayB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpY2stc2xpZGUge1xuICBkaXNwbGF5OiBub25lO1xuICBmbG9hdDogbGVmdDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxcHg7IH1cblxuW2Rpcj1cInJ0bFwiXSAuc2xpY2stc2xpZGUge1xuICBmbG9hdDogcmlnaHQ7IH1cblxuLnNsaWNrLXNsaWRlIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5zbGljay1zbGlkZS5zbGljay1sb2FkaW5nIGltZyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnNsaWNrLXNsaWRlLmRyYWdnaW5nIGltZyB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5zbGljay1pbml0aWFsaXplZCAuc2xpY2stc2xpZGUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uc2xpY2stbG9hZGluZyAuc2xpY2stc2xpZGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWNrLXZlcnRpY2FsIC5zbGljay1zbGlkZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG5cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5zbGlkZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTsgfVxuICAuc2xpZGVyIC5zbGlkZXJfX2ltYWdlIHtcbiAgICBtaW4taGVpZ2h0OiAyNjBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgcGFkZGluZy10b3A6IDU2LjI1JTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuc2xpZGVyIC5zbGlkZXJfX2ltYWdlIGltZyxcbiAgICAuc2xpZGVyIC5zbGlkZXJfX2ltYWdlIHBpY3R1cmUge1xuICAgICAgbGVmdDogMDtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLnNsaWRlciAuc2xpY2stZG90cyB7XG4gICAgYm90dG9tOiAtMnJlbTsgfVxuICAgIC5zbGlkZXIgLnNsaWNrLWRvdHMgbGkge1xuICAgICAgbWFyZ2luOiAwIDAuNXJlbTsgfVxuICAgICAgLnNsaWRlciAuc2xpY2stZG90cyBsaSBidXR0b246YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIHdpZHRoOiAxNnB4OyB9XG4gICAgICAuc2xpZGVyIC5zbGljay1kb3RzIGxpLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzcyMGExMDsgfVxuICAuc2xpZGVyIC5zbGljay1hcnJvdyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3Yzk1YTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIHRvcDogY2FsYyg1MCUgLSAyNXB4KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMjUlO1xuICAgIHdpZHRoOiA1MHB4O1xuICAgIHotaW5kZXg6IDM7XG4gICAgb3BhY2l0eTogMC44OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zbGlkZXIgLnNsaWNrLWFycm93IHtcbiAgICAgICAgY29sb3I6ICM3MjBhMTA7XG4gICAgICAgIHdpZHRoOiAxMTBweDtcbiAgICAgICAgaGVpZ2h0OiAxMTBweDsgfVxuICAgICAgICAuc2xpZGVyIC5zbGljay1hcnJvdy5zbGljay1uZXh0IHtcbiAgICAgICAgICByaWdodDogMDsgfVxuICAgICAgICAuc2xpZGVyIC5zbGljay1hcnJvdy5zbGljay1wcmV2IHtcbiAgICAgICAgICBsZWZ0OiAxcmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnNsaWRlciAuc2xpY2stYXJyb3c6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogdXJsKC4uL2ltYWdlcy9pY29ucy9jaGV2cm9uLXJpZ2h0LWxhcmdlLnN2Zyk7IH1cbiAgICAgIC5zbGlkZXIgLnNsaWNrLWFycm93OmhvdmVyLCAuc2xpZGVyIC5zbGljay1hcnJvdzpmb2N1cywgLnNsaWRlciAuc2xpY2stYXJyb3c6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzcyMGExMDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7IH0gfVxuICAgIC5zbGlkZXIgLnNsaWNrLWFycm93LnNsaWNrLW5leHQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICByaWdodDogMnJlbTsgfVxuICAgIC5zbGlkZXIgLnNsaWNrLWFycm93LnNsaWNrLXByZXYge1xuICAgICAgbGVmdDogMnJlbTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cbiAgICAuc2xpZGVyIC5zbGljay1hcnJvdzpob3ZlciwgLnNsaWRlciAuc2xpY2stYXJyb3c6Zm9jdXMsIC5zbGlkZXIgLnNsaWNrLWFycm93OmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjdjOTVhOyB9XG4gICAgLnNsaWRlciAuc2xpY2stYXJyb3c6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5zbGlkZXIgLnNsaWNrLWFycm93OmJlZm9yZSB7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGNvbnRlbnQ6IHVybCguLi9pbWFnZXMvaWNvbnMvY2hldnJvbi1yaWdodC1sYXJnZS5zdmcpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IDA7IH1cblxuLyogQXJyb3dzICovXG4uc2xpY2stcHJldixcbi5zbGljay1uZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDBweDtcbiAgZm9udC1zaXplOiAwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdG9wOiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTsgfVxuICAuc2xpY2stcHJldjpob3ZlciwgLnNsaWNrLXByZXY6Zm9jdXMsXG4gIC5zbGljay1uZXh0OmhvdmVyLFxuICAuc2xpY2stbmV4dDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLnNsaWNrLXByZXY6YmVmb3JlLFxuICAuc2xpY2stbmV4dDpiZWZvcmUge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbi5zbGljay1wcmV2IHtcbiAgbGVmdDogLTI1cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAuc2xpY2stcHJldiB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogLTI1cHg7IH1cblxuLnNsaWNrLW5leHQge1xuICByaWdodDogLTI1cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAuc2xpY2stbmV4dCB7XG4gICAgbGVmdDogLTI1cHg7XG4gICAgcmlnaHQ6IGF1dG87IH1cblxuLyogRG90cyAqL1xuLnNsaWNrLWRvdHRlZC5zbGljay1zbGlkZXIge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cbi5zbGljay1kb3RzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnNsaWNrLWRvdHMgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAwLjYyNXJlbTtcbiAgICB3aWR0aDogMC42MjVyZW07XG4gICAgbWFyZ2luOiAwIDVweDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgLnNsaWNrLWRvdHMgbGkgYnV0dG9uIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDAuNjI1cmVtO1xuICAgICAgd2lkdGg6IDAuNjI1cmVtO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwcHg7XG4gICAgICBmb250LXNpemU6IDBweDtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyLCAuc2xpY2stZG90cyBsaSBidXR0b246Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lOyB9XG4gICAgICAgIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpob3ZlcjpiZWZvcmUsIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1czpiZWZvcmUge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogIzcyMGExMDsgfVxuICAgICAgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjI1cyBlYXNlOyB9XG4gICAgLnNsaWNrLWRvdHMgbGkuc2xpY2stYWN0aXZlIGJ1dHRvbjpiZWZvcmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjNzIwYTEwOyB9XG5cbi5zbGlkZXIuc3RhbmRhcmRTbGlkZXIgLnNsaWNrLWxpc3Qge1xuICBwYWRkaW5nOiAwOyB9XG5cbi5zbGlkZXIuc3RhbmRhcmRTbGlkZXIgLnNsaWNrLXNsaWRlIHtcbiAgbWFyZ2luOiAwIDFyZW07IH1cblxuLnNsaWRlci5zdGFuZGFyZFNsaWRlciAuc2xpZGVyX19pbWFnZSB7XG4gIHBhZGRpbmctdG9wOiA1Ni4yNSU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuc2xpZGVyLnN0YW5kYXJkU2xpZGVyIC5zbGlkZXJfX2ltYWdlIGltZyxcbiAgLnNsaWRlci5zdGFuZGFyZFNsaWRlciAuc2xpZGVyX19pbWFnZSBwaWN0dXJlIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5zbGlkZXIuc3RhbmRhcmRTbGlkZXIgLnNsaWRlcl9faW1hZ2UtLWhhcy1jYXB0aW9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiA2cmVtOyB9XG5cbi5zbGlkZXJfX2NhcHRpb24ge1xuICBib3R0b206IC00cmVtO1xuICBjb2xvcjogIzcyMGExMDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAyOyB9XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgbm8tY29sb3ItbGl0ZXJhbHMsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMxNzc5YmEsXG4gIHNlY29uZGFyeTogIzc2NzY3NixcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNjYzRiMzcsXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbGlnaHQgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTYgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBtZWRpdW0gZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJG1lZGl1bS1ncmF5OiAjY2FjYWNhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgZGFyayBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZGFyay1ncmF5OiAjOGE4YThhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgYmxhY2sgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibGFjazogIzBhMGEwYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIHdoaXRlIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kd2hpdGU6ICNmZWZlZmUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIExpc3RcbiRib2R5LWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBvc2l0aW9uaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBDYW4gYmUgb3ZlcndyaXR0ZW4gYXQgaW5kaXZpZHVhbCBtZW51IGNvbXBvbmVudCBsZXZlbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIE5lc3RlZCBtYXJnaW4gZm9yIHN1Ym1lbnUuXG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLWZsZXhib3g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVkIHJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHByb3RvdHlwZXMgaWYgYXBwbGljYWJsZVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJ1dHRvbiBjdXJzb3IncyB2YWx1ZSwgYGF1dG9gIGJ5IGRlZmF1bHRcbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLWJ1dHRvbi1jdXJzb3I6IGF1dG8gIWRlZmF1bHQ7XG5cbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICBAZXJyb3IgJ0luICRmb3VuZGF0aW9uLXBhbGV0dGUsIHlvdSBtdXN0IGhhdmUgYSBjb2xvciBuYW1lZCBcInByaW1hcnlcIi4nO1xufVxuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgdGV4dCBkaXJlY3Rpb25cbiRnbG9iYWwtbGVmdDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIHJpZ2h0LCBsZWZ0KTtcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlIHRoYXQgY29udGFpbnMgdGhlIGZsZXgganVzdGlmeWluZyBvcHRpb25zXG4kLXpmLWZsZXgtanVzdGlmeTogLXpmLWZsZXgtanVzdGlmeSgkZ2xvYmFsLXRleHQtZGlyZWN0aW9uKTtcblxuLy8vIEdsb2JhbCB0b2xlcmFuY2UgZm9yIGNvbG9yIHBpY2sgY29udHJhc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgY29sb3JzXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW5vcm1hbGl6ZTtcblxuICAvLyBUaGVzZSBzdHlsZXMgYXJlIGFwcGxpZWQgdG8gYSA8bWV0YT4gdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHRcbiAgLmZvdW5kYXRpb24tbXEge1xuICAgIGZvbnQtZmFtaWx5OiAnI3stemYtYnAtc2VyaWFsaXplKCRicmVha3BvaW50cyl9JztcbiAgfVxuXG4gIGh0bWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG4gICosXG4gICo6OmJlZm9yZSxcbiAgKjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG5cbiAgICBAaWYgKCRib2R5LWFudGlhbGlhc2VkKSB7XG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICAvLyBHZXQgcmlkIG9mIGdhcCB1bmRlciBpbWFnZXMgYnkgbWFraW5nIHRoZW0gZGlzcGxheTogaW5saW5lLWJsb2NrOyBieSBkZWZhdWx0XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAvLyBHcmlkIGRlZmF1bHRzIHRvIGdldCBpbWFnZXMgYW5kIGVtYmVkcyB0byB3b3JrIHByb3Blcmx5XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHRleHRhcmVhIHRha2VzIG9uIGhlaWdodCBhdXRvbWF0aWNhbGx5XG4gIHRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIE1ha2Ugc2VsZWN0IGVsZW1lbnRzIGFyZSAxMDAlIHdpZHRoIGJ5IGRlZmF1bHRcbiAgc2VsZWN0IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gU3R5bGVzIEdvb2dsZSBNYXBzIGFuZCBNYXBRdWVzdCBlbWJlZHMgcHJvcGVybHlcbiAgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1pZHNcbiAgLm1hcF9jYW52YXMsXG4gIC5tcWEtZGlzcGxheSB7XG4gICAgaW1nLFxuICAgIGVtYmVkLFxuICAgIG9iamVjdCB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCA8YnV0dG9uPiBzdHlsZXMgY3JlYXRlZCBieSBtb3N0IGJyb3dzZXJzXG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiAkZ2xvYmFsLWJ1dHRvbi1jdXJzb3I7XG4gIH1cblxuICAvLyBQcmV2ZW50IHRleHQgb3ZlcmZsb3cgb24gcHJlXG4gIHByZSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAvLyBNYWtlIHJlc2V0IGluaGVyaXQgZm9udC1mYW1pbHkgaW5zdGVhZCBvZiBzZXR0aW5ncyBzYW5zLXNlcmlmXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEludGVybmFsIGNsYXNzZXMgdG8gc2hvdy9oaWRlIGVsZW1lbnRzIGluIEphdmFTY3JpcHRcbiAgLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaXMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi8vICBGb3VuZGF0aW9uUHJlc3Mgc2V0dGluZ3MuXG4vLyAgQmFzZWQgb24gRm91bmRhdGlvbiBmb3IgU2l0ZXMgdjYuNC4zXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAgVGFibGUgb2YgQ29udGVudHM6XG4vL1xuLy8gICAxLiBHbG9iYWxcbi8vICAgMi4gQnJlYWtwb2ludHNcbi8vICAgMy4gVGhlIEdyaWRcbi8vICAgNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAgIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gICA2LiBBYmlkZVxuLy8gICA3LiBBY2NvcmRpb25cbi8vICAgOC4gQWNjb3JkaW9uIE1lbnVcbi8vICAgOS4gQmFkZ2Vcbi8vICAxMC4gQnJlYWRjcnVtYnNcbi8vICAxMS4gQnV0dG9uXG4vLyAgMTIuIEJ1dHRvbiBHcm91cFxuLy8gIDEzLiBDYWxsb3V0XG4vLyAgMTQuIENhcmRcbi8vICAxNS4gQ2xvc2UgQnV0dG9uXG4vLyAgMTYuIERyaWxsZG93blxuLy8gIDE3LiBEcm9wZG93blxuLy8gIDE4LiBEcm9wZG93biBNZW51XG4vLyAgMTkuIEZsZXhib3ggVXRpbGl0aWVzXG4vLyAgMjAuIEZvcm1zXG4vLyAgMjEuIExhYmVsXG4vLyAgMjIuIE1lZGlhIE9iamVjdFxuLy8gIDIzLiBNZW51XG4vLyAgMjQuIE1ldGVyXG4vLyAgMjUuIE9mZi1jYW52YXNcbi8vICAyNi4gT3JiaXRcbi8vICAyNy4gUGFnaW5hdGlvblxuLy8gIDI4LiBQcm9ncmVzcyBCYXJcbi8vICAyOS4gUHJvdG90eXBlIEFycm93XG4vLyAgMzAuIFByb3RvdHlwZSBCb3JkZXItQm94XG4vLyAgMzEuIFByb3RvdHlwZSBCb3JkZXItTm9uZVxuLy8gIDMyLiBQcm90b3R5cGUgQm9yZGVyZWRcbi8vICAzMy4gUHJvdG90eXBlIERpc3BsYXlcbi8vICAzNC4gUHJvdG90eXBlIEZvbnQtU3R5bGluZ1xuLy8gIDM1LiBQcm90b3R5cGUgTGlzdC1TdHlsZS1UeXBlXG4vLyAgMzYuIFByb3RvdHlwZSBPdmVyZmxvd1xuLy8gIDM3LiBQcm90b3R5cGUgUG9zaXRpb25cbi8vICAzOC4gUHJvdG90eXBlIFJvdW5kZWRcbi8vICAzOS4gUHJvdG90eXBlIFNlcGFyYXRvclxuLy8gIDQwLiBQcm90b3R5cGUgU2hhZG93XG4vLyAgNDEuIFByb3RvdHlwZSBTaXppbmdcbi8vICA0Mi4gUHJvdG90eXBlIFNwYWNpbmdcbi8vICA0My4gUHJvdG90eXBlIFRleHQtRGVjb3JhdGlvblxuLy8gIDQ0LiBQcm90b3R5cGUgVGV4dC1UcmFuc2Zvcm1hdGlvblxuLy8gIDQ1LiBQcm90b3R5cGUgVGV4dC1VdGlsaXRpZXNcbi8vICA0Ni4gUmVzcG9uc2l2ZSBFbWJlZFxuLy8gIDQ3LiBSZXZlYWxcbi8vICA0OC4gU2xpZGVyXG4vLyAgNDkuIFN3aXRjaFxuLy8gIDUwLiBUYWJsZVxuLy8gIDUxLiBUYWJzXG4vLyAgNTIuIFRodW1ibmFpbFxuLy8gIDUzLiBUaXRsZSBCYXJcbi8vICA1NC4gVG9vbHRpcFxuLy8gIDU1LiBUb3AgQmFyXG4vLyAgNTYuIFh5IEdyaWRcblxuQGltcG9ydCBcInV0aWwvdXRpbFwiO1xuQGltcG9ydCBcImdsb2JhbC9jb2xvcnNcIjtcblxuLy8gMS4gR2xvYmFsXG4vLyAtLS0tLS0tLS1cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCU7XG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKTtcbiRnbG9iYWwtbGluZWhlaWdodDogMS41O1xuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICBwcmltYXJ5OiAjNzIwYTEwLFxuICBzZWNvbmRhcnk6ICNmN2M5NWEsXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gIHdhcm5pbmc6ICNmZmFlMDAsXG4gIGFsZXJ0OiAjY2M0YjM3LFxuKTtcbiRsaWdodC1ncmF5OiAjZTZlNmU2O1xuJG1lZGl1bS1ncmF5OiAjY2FjYWNhO1xuJGRhcmstZ3JheTogIzhhOGE4YTtcbiRibGFjazogIzAwMDAwMDtcbiR3aGl0ZTogI2ZmZmZmZjtcbiRkYXJrLXB1cnBsZTogIzM3MTEzODtcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjaztcbiRib2R5LWZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIixcbiAgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJGaXJhIFNhbnNcIiwgXCJEcm9pZCBTYW5zXCIsXG4gIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlO1xuJGdsb2JhbC1tYXJnaW46IDFyZW07XG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW07XG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtO1xuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWw7XG4kZ2xvYmFsLXdlaWdodC1tZWRpdW06IDYwMDtcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQ7XG4kZ2xvYmFsLXJhZGl1czogMDtcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtO1xuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyO1xuJGdsb2JhbC1mbGV4Ym94OiB0cnVlO1xuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlO1xuJGdsb2JhbC1idXR0b24tY3Vyc29yOiBhdXRvO1xuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMDtcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZTtcbiRnbG9iYWwtYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4vLyBDdXJyZW50bHkgdXNlZCBvbiB0aGUgY29udGVudC1pbWFnZSB0byBzdG9wIGZ1bGwgYmxlZWQgaW1hZ2VzIGJlY29taW5nIHRvbyBodWdlLlxuJGdsb2JhbC1tYXgtYmxlZWQtc2l6ZTogMTAwMHB4O1xuXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbi8vIDIuIEJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4gIHh4eGxhcmdlOiAxOTIwcHgsXG4pO1xuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlO1xuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSB4bGFyZ2UgeHhsYXJnZSB4eHhsYXJnZSk7XG5cbi8vIDMuIFRoZSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4kZ3JpZC1yb3ctd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyO1xuJGdyaWQtY29sdW1uLWd1dHRlcjogKFxuICBzbWFsbDogMjBweCxcbiAgbWVkaXVtOiAzMHB4LFxuKTtcbiRncmlkLWNvbHVtbi1hbGlnbi1lZGdlOiB0cnVlO1xuJGdyaWQtY29sdW1uLWFsaWFzOiBcImNvbHVtbnNcIjtcbiRibG9jay1ncmlkLW1heDogODtcblxuLy8gNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cblxuJGhlYWRlci1mb250LWZhbWlseTogXCJDb3VzdGFyZFwiLCAkYm9keS1mb250LWZhbWlseTtcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsO1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiRoZWFkZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgXCJoMVwiOiAoXG4gICAgICBcImZvbnQtc2l6ZVwiOiAyNCxcbiAgICApLFxuICAgIFwiaDJcIjogKFxuICAgICAgXCJmb250LXNpemVcIjogMjAsXG4gICAgKSxcbiAgICBcImgzXCI6IChcbiAgICAgIFwiZm9udC1zaXplXCI6IDE5LFxuICAgICksXG4gICAgXCJoNFwiOiAoXG4gICAgICBcImZvbnQtc2l6ZVwiOiAxOCxcbiAgICApLFxuICAgIFwiaDVcIjogKFxuICAgICAgXCJmb250LXNpemVcIjogMTcsXG4gICAgKSxcbiAgICBcImg2XCI6IChcbiAgICAgIFwiZm9udC1zaXplXCI6IDE2LFxuICAgICksXG4gICksXG4gIG1lZGl1bTogKFxuICAgIFwiaDFcIjogKFxuICAgICAgXCJmb250LXNpemVcIjogNTgsXG4gICAgKSxcbiAgICBcImgyXCI6IChcbiAgICAgIFwiZm9udC1zaXplXCI6IDQwLFxuICAgICksXG4gICAgXCJoM1wiOiAoXG4gICAgICBcImZvbnQtc2l6ZVwiOiAzMSxcbiAgICApLFxuICAgIFwiaDRcIjogKFxuICAgICAgXCJmb250LXNpemVcIjogMjUsXG4gICAgKSxcbiAgICBcImg1XCI6IChcbiAgICAgIFwiZm9udC1zaXplXCI6IDIwLFxuICAgICksXG4gICAgXCJoNlwiOiAoXG4gICAgICBcImZvbnQtc2l6ZVwiOiAxNixcbiAgICApLFxuICApLFxuKTtcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRzbWFsbC1mb250LXNpemU6IDgwJTtcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjY7XG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW07XG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kY29kZS1jb2xvcjogJGJsYWNrO1xuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSk7XG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmU7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZTtcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0bztcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW07XG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW07XG4kYmxvY2txdW90ZS1jb2xvcjogaW5oZXJpdDtcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSk7XG4kYmxvY2txdW90ZS1ib3JkZXI6IDA7XG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiRjaXRlLWNvbG9yOiBpbmhlcml0O1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6IFwiXCI7XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2s7XG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCk7XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrO1xuXG4vLyA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyAkbGVhZC1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICogMS4yNTtcbiRsZWFkLWxpbmVoZWlnaHQ6IDEuNjtcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40O1xuJHN1YmhlYWRlci1jb2xvcjogJGRhcmstZ3JheTtcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtO1xuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW07XG4kc3RhdC1mb250LXNpemU6IDIuNXJlbTtcblxuLy8gNi4gQWJpZGVcbi8vIC0tLS0tLS0tXG5cbiRhYmlkZS1pbnB1dHM6IHRydWU7XG4kYWJpZGUtbGFiZWxzOiB0cnVlO1xuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCk7XG4kaW5wdXQtZXJyb3ItY29sb3I6IGdldC1jb2xvcihhbGVydCk7XG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG5cbi8vIDcuIEFjY29yZGlvblxuLy8gLS0tLS0tLS0tLS0tXG5cbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlO1xuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWU7XG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDguIEFjY29yZGlvbiBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9ubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luO1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nO1xuJGFjY29yZGlvbm1lbnUtYXJyb3dzOiB0cnVlO1xuJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3I6ICR3aGl0ZTtcbiRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDogbnVsbDtcbiRhY2NvcmRpb25tZW51LWJvcmRlcjogbnVsbDtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ6IG51bGw7XG4kYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg6IDQwcHg7XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1oZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xuXG4vLyA5LiBCYWRnZVxuLy8gLS0tLS0tLS1cblxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJhZGdlLWNvbG9yOiAkd2hpdGU7XG4kYmFkZ2UtY29sb3ItYWx0OiAkYmxhY2s7XG4kYmFkZ2UtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbTtcbiRiYWRnZS1taW53aWR0aDogMi4xZW07XG4kYmFkZ2UtZm9udC1zaXplOiAwLjZyZW07XG5cbi8vIDEwLiBCcmVhZGNydW1ic1xuLy8gLS0tLS0tLS0tLS0tLS0tXG5cbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwO1xuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjaztcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW07XG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IGZhbHNlO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiB0cnVlO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW06IFwifFwiO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsOiBcIlxcXFxcIjtcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuXG4vLyAxMi4gQnV0dG9uIEdyb3VwXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW07XG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4O1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiBcIi5idXR0b25cIjtcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2O1xuJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoOiB0cnVlO1xuXG4vLyAxMy4gQ2FsbG91dFxuLy8gLS0tLS0tLS0tLS1cblxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSU7XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSk7XG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDA7XG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtO1xuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kO1xuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRjYWxsb3V0LWxpbmstdGludDogMzAlO1xuXG4vLyAxNC4gQ2FyZFxuLy8gLS0tLS0tLS1cblxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGNhcmQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRjYXJkLWRpdmlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kY2FyZC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiRjYXJkLXNoYWRvdzogbm9uZTtcbiRjYXJkLWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGNhcmQtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJGNhcmQtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG5cbi8vIDE1LiBDbG9zZSBCdXR0b25cbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3A7XG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcbiAgc21hbGw6IDAuNjZyZW0sXG4gIG1lZGl1bTogMXJlbSxcbik7XG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAoXG4gIHNtYWxsOiAwLjMzZW0sXG4gIG1lZGl1bTogMC41cmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXG4gIHNtYWxsOiAxLjVlbSxcbiAgbWVkaXVtOiAyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDE7XG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXk7XG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjaztcblxuLy8gMTYuIERyaWxsZG93blxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXI7XG4kZHJpbGxkb3duLWFycm93czogdHJ1ZTtcbiRkcmlsbGRvd24tcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kZHJpbGxkb3duLW5lc3RlZC1tYXJnaW46IDA7XG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmc7XG4kZHJpbGxkb3duLXN1Ym1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyaWxsZG93bi1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kZHJpbGxkb3duLWFycm93LXNpemU6IDZweDtcblxuLy8gMTcuIERyb3Bkb3duXG4vLyAtLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3duLXBhZGRpbmc6IDFyZW07XG4kZHJvcGRvd24tYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcbiRkcm9wZG93bi1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtO1xuJGRyb3Bkb3duLXdpZHRoOiAzMDBweDtcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbik7XG5cbi8vIDE4LiBEcm9wZG93biBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZTtcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3I7XG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweDtcbiRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZzogMS41cmVtO1xuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDIwMHB4O1xuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiAkZGFyay1uYXYtY29sb3I7XG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kO1xuJGRyb3Bkb3dubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRkcm9wZG93bm1lbnUtbmVzdGVkLW1hcmdpbjogMDtcbiRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmc7XG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkbGlnaHQtZ3JheTtcbiRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IHRyYW5zcGFyZW50O1xuXG4vLyAxOS4gRmxleGJveCBVdGlsaXRpZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kZmxleC1zb3VyY2Utb3JkZXJpbmctY291bnQ6IDY7XG4kZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzOiB0cnVlO1xuXG4vLyAyMC4gRm9ybXNcbi8vIC0tLS0tLS0tLVxuXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApO1xuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpO1xuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMjApO1xuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2s7XG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljO1xuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtO1xuJGZvcm0tbGFiZWwtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlO1xuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheTtcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRpbnB1dC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJGJvZHktZm9udC1jb2xvcjtcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuJGlucHV0LXBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyO1xuJGlucHV0LXNoYWRvdzogMDtcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5O1xuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQ7XG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlO1xuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjEuIExhYmVsXG4vLyAtLS0tLS0tLS1cblxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGxhYmVsLWNvbG9yOiAkd2hpdGU7XG4kbGFiZWwtY29sb3ItYWx0OiAkYmxhY2s7XG4kbGFiZWwtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbTtcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbTtcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMi4gTWVkaWEgT2JqZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlO1xuXG4vLyAyMy4gTWVudVxuLy8gLS0tLS0tLS1cblxuJG1lbnUtbWFyZ2luOiAwO1xuJG1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW47XG4kbWVudS1pdGVtcy1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRtZW51LXNpbXBsZS1tYXJnaW46IDFyZW07XG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlO1xuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpO1xuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRtZW51LXN0YXRlLWJhY2stY29tcGF0OiB0cnVlO1xuJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQ6IHRydWU7XG4kbWVudS1pY29ucy1iYWNrLWNvbXBhdDogdHJ1ZTtcblxuLy8gMjQuIE1ldGVyXG4vLyAtLS0tLS0tLS1cblxuJG1ldGVyLWhlaWdodDogMXJlbTtcbiRtZXRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRtZXRlci1maWxsLWdvb2Q6ICRzdWNjZXNzLWNvbG9yO1xuJG1ldGVyLWZpbGwtbWVkaXVtOiAkd2FybmluZy1jb2xvcjtcbiRtZXRlci1maWxsLWJhZDogJGFsZXJ0LWNvbG9yO1xuXG4vLyAyNS4gT2ZmLWNhbnZhc1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJG9mZmNhbnZhcy1zaXplczogKFxuICBzbWFsbDogMTAwdncsXG4pO1xuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pO1xuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkZGFyay1uYXYtY29sb3I7XG4kb2ZmY2FudmFzLXNoYWRvdzogMDtcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDIwcHg7XG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogMDtcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExO1xuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTI7XG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMztcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTI7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAwLjVzO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZTtcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlO1xuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KTtcbiRtYWluY29udGVudC1jbGFzczogXCJvZmYtY2FudmFzLWNvbnRlbnRcIjtcblxuLy8gMjYuIE9yYml0XG4vLyAtLS0tLS0tLS1cblxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5O1xuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW46IDAuMXJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDogMC44cmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW07XG4kb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwO1xuXG4vLyAyNy4gUGFnaW5hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS1cblxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCk7XG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6IHJlbS1jYWxjKDEwKTtcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6IHRyYW5zcGFyZW50O1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiAkYm9keS1mb250LWNvbG9yO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7XG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZTtcbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZTtcblxuLy8gMjguIFByb2dyZXNzIEJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtO1xuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRwcm9ncmVzcy1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm9ncmVzcy1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyOS4gUHJvdG90eXBlIEFycm93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uczogKGRvd24sIHVwLCByaWdodCwgbGVmdCk7XG4kcHJvdG90eXBlLWFycm93LXNpemU6IDAuNDM3NXJlbTtcbiRwcm90b3R5cGUtYXJyb3ctY29sb3I6ICRibGFjaztcblxuLy8gMzAuIFByb3RvdHlwZSBCb3JkZXItQm94XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1ib3JkZXItYm94LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzEuIFByb3RvdHlwZSBCb3JkZXItTm9uZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlci1ub25lLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzIuIFByb3RvdHlwZSBCb3JkZXJlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtYm9yZGVyLXdpZHRoOiByZW0tY2FsYygxKTtcbiRwcm90b3R5cGUtYm9yZGVyLXR5cGU6IHNvbGlkO1xuJHByb3RvdHlwZS1ib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcblxuLy8gMzMuIFByb3RvdHlwZSBEaXNwbGF5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1kaXNwbGF5LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtZGlzcGxheTogKGlubGluZSwgaW5saW5lLWJsb2NrLCBibG9jaywgdGFibGUsIHRhYmxlLWNlbGwpO1xuXG4vLyAzNC4gUHJvdG90eXBlIEZvbnQtU3R5bGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1mb250LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoNCk7XG4kcHJvdG90eXBlLWZvbnQtbm9ybWFsOiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kcHJvdG90eXBlLWZvbnQtYm9sZDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gMzUuIFByb3RvdHlwZSBMaXN0LVN0eWxlLVR5cGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkOiAoZGlzYywgY2lyY2xlLCBzcXVhcmUpO1xuJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQ6IChcbiAgZGVjaW1hbCxcbiAgbG93ZXItYWxwaGEsXG4gIGxvd2VyLWxhdGluLFxuICBsb3dlci1yb21hbixcbiAgdXBwZXItYWxwaGEsXG4gIHVwcGVyLWxhdGluLFxuICB1cHBlci1yb21hblxuKTtcblxuLy8gMzYuIFByb3RvdHlwZSBPdmVyZmxvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLW92ZXJmbG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtb3ZlcmZsb3c6ICh2aXNpYmxlLCBoaWRkZW4sIHNjcm9sbCk7XG5cbi8vIDM3LiBQcm90b3R5cGUgUG9zaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1wb3NpdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXBvc2l0aW9uOiAoc3RhdGljLCByZWxhdGl2ZSwgYWJzb2x1dGUsIGZpeGVkKTtcbiRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleDogOTc1O1xuXG4vLyAzOC4gUHJvdG90eXBlIFJvdW5kZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXJvdW5kZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzOiByZW0tY2FsYygzKTtcblxuLy8gMzkuIFByb3RvdHlwZSBTZXBhcmF0b3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWFsaWduOiBjZW50ZXI7XG4kcHJvdG90eXBlLXNlcGFyYXRvci1oZWlnaHQ6IHJlbS1jYWxjKDIpO1xuJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGg6IDNyZW07XG4kcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLW1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luO1xuXG4vLyA0MC4gUHJvdG90eXBlIFNoYWRvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTYpLFxuICAwIDJweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcblxuLy8gNDEuIFByb3RvdHlwZSBTaXppbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2l6aW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc2l6aW5nOiAod2lkdGgsIGhlaWdodCk7XG4kcHJvdG90eXBlLXNpemVzOiAoXG4gIDI1OiAyNSUsXG4gIDUwOiA1MCUsXG4gIDc1OiA3NSUsXG4gIDEwMDogMTAwJSxcbik7XG5cbi8vIDQyLiBQcm90b3R5cGUgU3BhY2luZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc3BhY2luZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXNwYWNlcnMtY291bnQ6IDM7XG5cbi8vIDQzLiBQcm90b3R5cGUgVGV4dC1EZWNvcmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWRlY29yYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb246IChvdmVybGluZSwgdW5kZXJsaW5lLCBsaW5lLXRocm91Z2gpO1xuXG4vLyA0NC4gUHJvdG90eXBlIFRleHQtVHJhbnNmb3JtYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXRyYW5zZm9ybWF0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbjogKGxvd2VyY2FzZSwgdXBwZXJjYXNlLCBjYXBpdGFsaXplKTtcblxuLy8gNDUuIFByb3RvdHlwZSBUZXh0LVV0aWxpdGllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXV0aWxpdGllcy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4vLyA0Ni4gUmVzcG9uc2l2ZSBFbWJlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpO1xuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zOiAoXG4gIGRlZmF1bHQ6IDQgYnkgMyxcbiAgd2lkZXNjcmVlbjogMTYgYnkgOSxcbik7XG5cbi8vIDQ3LiBSZXZlYWxcbi8vIC0tLS0tLS0tLS1cblxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kcmV2ZWFsLXdpZHRoOiA2MDBweDtcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRyZXZlYWwtemluZGV4OiAxMDA1O1xuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KTtcblxuLy8gNDguIFNsaWRlclxuLy8gLS0tLS0tLS0tLVxuXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW07XG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuJHNsaWRlci1oZWlnaHQ6IDAuNXJlbTtcbiRzbGlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kc2xpZGVyLWZpbGwtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHNsaWRlci1oYW5kbGUtaGVpZ2h0OiAxLjRyZW07XG4kc2xpZGVyLWhhbmRsZS13aWR0aDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG4kc2xpZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDQ5LiBTd2l0Y2hcbi8vIC0tLS0tLS0tLS1cblxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvcjtcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtO1xuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtO1xuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW07XG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtO1xuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHN3aXRjaC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luO1xuJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDogJHdoaXRlO1xuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtO1xuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcblxuLy8gNTAuIFRhYmxlXG4vLyAtLS0tLS0tLS1cblxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWJsZS1jb2xvci1zY2FsZTogNSU7XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCk7XG4kdGFibGUtaG92ZXItc2NhbGU6IDIlO1xuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbihcbiAgJHRhYmxlLWJhY2tncm91bmQsXG4gICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZVxuKTtcbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlO1xuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtc3RyaXBlOiBldmVuO1xuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpO1xuJHRhYmxlLWhlYWQtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWhlYWQtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLWZvb3Qtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWZvb3QtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZTtcbiR0YWJsZS1zdGFjay1icmVha3BvaW50OiBtZWRpdW07XG5cbi8vIDUxLiBUYWJzXG4vLyAtLS0tLS0tLVxuXG4kdGFiLW1hcmdpbjogMDtcbiR0YWItYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYi1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheTtcbiR0YWItYWN0aXZlLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkd2hpdGU7XG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG4kdGFiLWV4cGFuZC1tYXg6IDY7XG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXk7XG4kdGFiLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcblxuLy8gNTIuIFRodW1ibmFpbFxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kdGh1bWJuYWlsLWJvcmRlcjogc29saWQgNHB4ICR3aGl0ZTtcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpO1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSk7XG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7XG4kdGh1bWJuYWlsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDUzLiBUaXRsZSBCYXJcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICRkYXJrLW5hdi1jb2xvcjtcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlO1xuJHRpdGxlYmFyLXBhZGRpbmc6IDAuNXJlbTtcbiR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0OiBib2xkO1xuJHRpdGxlYmFyLWljb24tY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXk7XG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xuXG4vLyA1NC4gVG9vbHRpcFxuLy8gLS0tLS0tLS0tLS1cblxuJGhhcy10aXAtY3Vyc29yOiBoZWxwO1xuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXk7XG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4kdG9vbHRpcC1jb2xvcjogJHdoaXRlO1xuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbTtcbiR0b29sdGlwLW1heC13aWR0aDogMTByZW07XG4kdG9vbHRpcC1mb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW07XG4kdG9vbHRpcC1waXAtaGVpZ2h0OiAkdG9vbHRpcC1waXAtd2lkdGggKiAwLjg2NjtcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDU1LiBUb3AgQmFyXG4vLyAtLS0tLS0tLS0tLVxuXG4kdG9wYmFyLXBhZGRpbmc6IDA7XG4kdG9wYmFyLWJhY2tncm91bmQ6ICRkYXJrLW5hdi1jb2xvcjtcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwO1xuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHg7XG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4vLyA1Ni4gWHkgR3JpZFxuLy8gLS0tLS0tLS0tLS1cblxuJHh5LWdyaWQ6IHRydWU7XG4kZ3JpZC1jb250YWluZXI6ICRnbG9iYWwtd2lkdGg7XG4kZ3JpZC1jb2x1bW5zOiAxMjtcbiRncmlkLW1hcmdpbi1ndXR0ZXJzOiAoXG4gIHNtYWxsOiAyMHB4LFxuICBtZWRpdW06IDMwcHgsXG4pO1xuJGdyaWQtcGFkZGluZy1ndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycztcbiRncmlkLWNvbnRhaW5lci1wYWRkaW5nOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnM7XG4kZ3JpZC1jb250YWluZXItbWF4OiAkZ2xvYmFsLXdpZHRoO1xuJHh5LWJsb2NrLWdyaWQtbWF4OiA4O1xuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGFuIGlubmVyIGJveC1zaGFkb3cgZm9yIG9ubHkgb25lIHNpZGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpZGUgLSBTaWRlIHRoZSBzaGFkb3cgaXMgc3VwcG9zZWQgdG8gYXBwZWFyLiBDYW4gYmUgYHRvcGAsIGBsZWZ0YCwgYHJpZ2h0YCBvciBgYm90dG9tYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgLSBXaWR0aCBmb3IgdGhlIHRhcmdldCBzaWRlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIG9mIHRoZSBzaGFkb3cuXG5AbWl4aW4gaW5uZXItc2lkZS1zaGFkb3coXG4gICRzaWRlOiBib3R0b20sXG4gICRzaXplOiAyMHB4LFxuICAkY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KVxuKSB7XG5cbiAgJGhlbHBlcjogcm91bmQoJHNpemUgKiAwLjY1KTtcblxuICBAaWYgKCRzaWRlID09IHRvcCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBsZWZ0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IHJpZ2h0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgKC0xKSokaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gYm90dG9tKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAoLTEpKiRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcblxuICBib3JkZXI6IGluc2V0ICR0cmlhbmdsZS1zaXplO1xuXG4gIGNvbnRlbnQ6ICcnO1xuXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBkb3duKSB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdXApIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgbWVudSBpY29uIHdpdGggYSBzZXQgd2lkdGgsIGhlaWdodCwgbnVtYmVyIG9mIGJhcnMsIGFuZCBjb2xvcnMuIFRoZSBtaXhpbiB1c2VzIHRoZSBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgdGhlIGJhcnMgdG8gZGV0ZXJtaW5lIHNwYWNpbmcuIDxkaXYgY2xhc3M9XCJkb2NzLWV4YW1wbGUtYnVyZ2VyXCI+PC9kaXY+XG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvci1ob3ZlciBbJGRhcmstZ3JheV0gLSBDb2xvciB0byB1c2Ugd2hlbiB0aGUgaWNvbiBpcyBob3ZlcmVkIG92ZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMjBweF0gLSBXaWR0aCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMTZweF0gLSBIZWlnaHQgb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWzJweF0gLSBIZWlnaHQgb2YgaW5kaXZpZHVhbCBiYXJzIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFycyBbM10gLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cbkBtaXhpbiBoYW1idXJnZXIoXG4gICRjb2xvcjogJGJsYWNrLFxuICAkY29sb3ItaG92ZXI6ICRkYXJrLWdyYXksXG4gICR3aWR0aDogMjBweCxcbiAgJGhlaWdodDogMTZweCxcbiAgJHdlaWdodDogMnB4LFxuICAkYmFyczogM1xuKSB7XG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxuICAkc2hhZG93OiAoKTtcbiAgJGhvdmVyLXNoYWRvdzogKCk7XG5cbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXG4gICRzcGFjaW5nOiAoJGhlaWdodCAtICgkd2VpZ2h0ICogJGJhcnMpKSAvICgkYmFycyAtIDEpO1xuXG4gIEBpZiB1bml0KCRzcGFjaW5nKSA9PSAncHgnIHtcbiAgICAkc3BhY2luZzogZmxvb3IoJHNwYWNpbmcpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLCBjb21tYSk7XG4gIH1cblxuICAvLyBJY29uIGNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gSWNvbiBiYXJzXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgQGlmICRjb2xvci1ob3ZlciB7XG4gICAgLy8gR2VuZXJhdGUgQ1NTXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJGhvdmVyLXNoYWRvdzogYXBwZW5kKCRob3Zlci1zaGFkb3csIDAgJG9mZnNldCAwICRjb2xvci1ob3ZlciwgY29tbWEpO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcbiAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxuLy8vIFRoZXJlIGFyZSB0d28gUE5HIGZhbGxiYWNrczogYSBibGFjayB0cmlhbmdsZSBhbmQgYSB3aGl0ZSB0cmlhbmdsZS4gVGhlIG9uZSB1c2VkIGRlcGVuZHMgb24gdGhlIGxpZ2h0bmVzcyBvZiB0aGUgaW5wdXQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cbkBtaXhpbiBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRjb2xvcjogJGJsYWNrKSB7XG4gICRyZ2I6ICdyZ2IlMjgje3JvdW5kKHJlZCgkY29sb3IpKX0sICN7cm91bmQoZ3JlZW4oJGNvbG9yKSl9LCAje3JvdW5kKGJsdWUoJGNvbG9yKSl9JTI5JztcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6ICN7JHJnYn0nPjwvcG9seWdvbj48L3N2Zz5cIik7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSAvICRpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgdGhlIGZvY3VzIHJpbmcgYXJvdW5kIGFuIGVsZW1lbnQgd2hlbiBhIG1vdXNlIGlucHV0IGlzIGRldGVjdGVkLlxuQG1peGluIGRpc2FibGUtbW91c2Utb3V0bGluZSB7XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAmIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGFjY2Vzc2libGUgdG8ga2V5Ym9hcmRzIGFuZCBhc3Npc3RpdmUgZGV2aWNlcy5cbi8vLyBAbGluayBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5IEhpZGluZyBDb250ZW50IGZvciBBY2Nlc3NpYmlsaXR5XG4vLy8gQGxpbmsgaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLDAsMCwwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIGl0ZXJhdGUgb3ZlciBicmVha3BvaW50cyB3aXRob3V0IGRvaW5nIHRoZSBtZWRpYSBxdWVyeSBpdHNlbGYuIFVzZWZ1bCBmb3IgbW9yZSBjb21wbGV4IG1lZGlhIHF1ZXJ5IGdlbmVyYXRpb24gYXMgaW4gdGhlIG1hcmdpbiBncmlkLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlLCAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHM6IHRydWUpIHtcbiAgJGxpc3Q6ICRicmVha3BvaW50LWNsYXNzZXM7XG5cbiAgQGlmIG5vdCAkc21hbGwge1xuICAgICRsaXN0OiBzbC1yZW1vdmUoJGxpc3QsICQtemYtemVyby1icmVha3BvaW50KTtcbiAgfVxuXG4gIEBlYWNoICRuYW1lIGluICRsaXN0IHtcbiAgICAkb2xkLXpmLXNpemU6IG51bGw7XG4gICAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAgICRvbGQtemYtc2l6ZTogJC16Zi1zaXplO1xuICAgIH1cbiAgICAkLXpmLXNpemU6ICRuYW1lICFnbG9iYWw7XG5cbiAgICBAaWYgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHRoZSBgQGNvbnRlbnRgIHBhc3NlZCB0byB0aGUgbWl4aW4gd2l0aCBhIHZhbHVlIGAkLXpmLWJwLXZhbHVlYCByZWxhdGVkIHRvIGEgYnJlYWtwb2ludCwgZGVwZW5kaW5nIG9uIHRoZSBgJG5hbWVgIHBhcmFtZXRlcjpcbi8vLyAtIEZvciBhIHNpbmdsZSB2YWx1ZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoaXMgdmFsdWUuXG4vLy8gLSBGb3IgYSBicmVha3BvaW50IG5hbWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYC5cbi8vLyAtIEZvciBcImF1dG9cIiwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgIGFuZCBpcyBwYXNzZWQgdG8gYEBjb250ZW50YCwgd2hpY2ggaXMgbWFkZSByZXNwb25zaXZlIGZvciBlYWNoIGJyZWFrcG9pbnQgb2YgYCRtYXBgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfEFycmF5fEtleXdvcmR9ICRuYW1lIFthdXRvXSAtIFNpbmdsZSB2YWx1ZSwgYnJlYWtwb2ludCBuYW1lLCBvciBsaXN0IG9mIGJyZWFrcG9pbnQgbmFtZXMgdG8gdXNlLiBcImF1dG9cIiBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIE1hcCBvZiBicmVha3BvaW50cyBhbmQgdmFsdWVzIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuXG5AbWl4aW4gLXpmLWJyZWFrcG9pbnQtdmFsdWUoXG4gICRuYW1lOiBhdXRvLFxuICAkbWFwOiBudWxsXG4pIHtcbiAgQGlmICRuYW1lID09IGF1dG8gYW5kIHR5cGUtb2YoJG1hcCkgPT0gJ21hcCcge1xuICAgIC8vIFwiYXV0b1wiXG4gICAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkaykge1xuICAgICAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkdiwgJG1hcCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBicmVha3BvaW50IG5hbWVcbiAgICBAaWYgdHlwZS1vZigkbmFtZSkgPT0gJ3N0cmluZycge1xuICAgICAgJG5hbWU6IC16Zi1nZXQtYnAtdmFsKCRtYXAsICRuYW1lKTtcbiAgICB9XG5cbiAgICAvLyBicmVha3BvaW50IHZhbHVlXG4gICAgJC16Zi1icC12YWx1ZTogJG5hbWUgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1iYXNlXG4vLy8vXG5cbi8vIEJhc2UgVHlwb2dyYXBoeVxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbi8vIFRoZXNlIGFyZSBzdHlsZXMgYXBwbGllZCB0byBiYXNpYyBIVE1MIHRhZ3MsIGluY2x1ZGluZzpcbi8vICAgLSBQYXJhZ3JhcGhzIDxwPlxuLy8gICAtIEJvbGQvaXRhbGljcyA8Yj4gPHN0cm9uZz4gPGk+IDxlbT5cbi8vICAgLSBTbWFsbCB0ZXh0IDxzbWFsbD5cbi8vICAgLSBIZWFkaW5ncyA8aDE+LTxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyBmb3IgaGVhZGluZ3MgYXQgdmFyaW91cyBzY3JlZW4gc2l6ZXMuIEVhY2gga2V5IGlzIGEgYnJlYWtwb2ludCwgYW5kIGVhY2ggdmFsdWUgaXMgYSBtYXAgb2YgaGVhZGluZyBzdHlsZXMuXG4vLy8gQHR5cGUgTWFwXG4kaGVhZGVyLXN0eWxlczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDQ4KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMxKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI1KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vICRoZWFkZXItc3R5bGVzIG1hcCBpcyBidWlsdCBmcm9tICRoZWFkZXItc2l6ZXMgaW4gb3JkZXIgdG8gZW5zdXJlIGRvd253YXJkIGNvbXBhdGliaWxpdHlcbi8vIHdoZW4gJGhlYWRlci1zaXplcyBpcyBkZXByZWNpYXRlZCwgJGhlYWRlci1zdHlsZXMgbmVlZHMgdG8gZ2V0ICFkZWZhdWx0IHZhbHVlcyBsaWtlIHNldHRpbmdzLnNjc3NcbkBmdW5jdGlvbiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKSB7XG4gIEB3YXJuICdOb3RlLCB0aGF0ICRoZWFkZXItc2l6ZXMgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAkaGVhZGVyLXN0eWxlcy4gJGhlYWRlci1zaXplcyBzdGlsbCB3b3JrcywgYnV0IGl0IGlzIGdvaW5nIHRvIGJlIGRlcHJlY2lhdGVkLic7XG4gICRoZWFkZXItc3R5bGVzOiAoKTtcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc2l6ZXMge1xuICAgICRoZWFkZXItbWFwOiAoKTtcbiAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcbiAgICAgICRoZWFkZXItbWFwOiBtYXAtbWVyZ2UoJGhlYWRlci1tYXAsICgkaGVhZGVyOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUpKSk7XG4gICAgfVxuICAgICRoZWFkZXItc3R5bGVzOiBtYXAtbWVyZ2UoJGhlYWRlci1zdHlsZXMsICgkc2l6ZTogJGhlYWRlci1tYXApKTtcbiAgfVxuICBAcmV0dXJuICRoZWFkZXItc3R5bGVzO1xufVxuXG4vLyBJZiBpdCBleGlzdHMgJGhlYWRlcnMtc2l6ZXMgaXMgdXNlZCB0byBidWlsZCAkaGVhZGVyLXN0eWxlcy4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhoZWFkZXItc2l6ZXMpIHtcbiAgJGhlYWRlci1zdHlsZXM6IGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpO1xufVxuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5zaWRlIGA8cD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBMaXN0XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3MuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIExpc3RcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcblxuLy8vIEJ1bGxldCB0eXBlIHRvIHVzZSBmb3IgdW5vcmRlcmVkIGxpc3RzIChlLmcuLCBgc3F1YXJlYCwgYGNpcmNsZWAsIGBkaXNjYCkuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjICFkZWZhdWx0O1xuXG4vLy8gUG9zaXRpb25pbmcgZm9yIGJ1bGxldHMgb24gdW5vcmRlcmVkIGxpc3QgaXRlbXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGxpc3RzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBhIGxpc3QgaW5zaWRlIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGA8ZGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGA8ZHQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBgPGR0PmAgYW5kIGA8ZGQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSBgPGJsb2NrcXVvdGU+YCBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XG5cbi8vLyBTaWRlIGJvcmRlciBmb3IgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUHNldWRvIGNvbnRlbnQgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJyAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFBhcmFncmFwaHNcbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gIH1cblxuICAvLyBFbXBoYXNpemVkIHRleHRcbiAgZW0sXG4gIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFN0cm9uZyB0ZXh0XG4gIHN0cm9uZyxcbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTbWFsbCB0ZXh0XG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBIZWFkaW5nc1xuICBoMSwgLmgxLFxuICBoMiwgLmgyLFxuICBoMywgLmgzLFxuICBoNCwgLmg0LFxuICBoNSwgLmg1LFxuICBoNiwgLmg2IHtcbiAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG5cbiAgICBzbWFsbCB7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzdHlsZXNcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc3R5bGVzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkaGVhZGVyLCAkaGVhZGVyLWRlZnMgaW4gJGhlYWRlcnMge1xuICAgICAgICAkZm9udC1zaXplLXRlbXA6IDFyZW07XG4gICAgICAgICN7JGhlYWRlcn0sIC4jeyRoZWFkZXJ9IHtcblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZnMpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZzKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGgpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYygkaGVhZGVyLWxpbmVoZWlnaHQsICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbXQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtdCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYikpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJGhlYWRlci1tYXJnaW4tYm90dG9tKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xuICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvcml6b250YWwgcnVsZVxuICBociB7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAkaHItbWFyZ2luO1xuXG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuXG4gIC8vIExpc3RzXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zXG4gIGxpIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBVbm9yZGVyZWQgbGlzdHNcbiAgdWwge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogJGxpc3Qtc3R5bGUtdHlwZTtcbiAgfVxuXG4gIC8vIE9yZGVyZWQgbGlzdHNcbiAgb2wge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXG4gIHVsLCBvbCB7XG4gICAgJiAmIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XG5cbiAgICBkdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tO1xuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcbiAgICB9XG4gIH1cblxuICAvLyBCbG9ja3F1b3Rlc1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAmLCBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2l0YXRpb25zXG4gIGNpdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGNpdGUtZm9udC1zaXplO1xuICAgIGNvbG9yOiAkY2l0ZS1jb2xvcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICRjaXRlLXBzZXVkby1jb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIEFiYnJldmlhdGlvbnNcbiAgYWJiciwgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206ICRhYmJyLXVuZGVybGluZTtcbiAgICBjdXJzb3I6IGhlbHA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gRmlndXJlc1xuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIENvZGVcbiAgY29kZSB7XG4gICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcblxuICAgIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUgYXMgdGhlIGJhc2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2U6IG51bGwpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgLy8gVGhpcyBpcyBiZWNhdXNlIDEwMCUgZm9udCBzaXplID0gMTZweCBpbiBtb3N0IGFsbCBicm93c2Vyc1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gVXNpbmcgcmVtIGFzIGJhc2UgYWxsb3dzIGNvcnJlY3Qgc2NhbGluZ1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgJGNvdW50ID09IDEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG5cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9ICdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkgKyAnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gZW0gaW50byByZW0gaWYgc29tZW9uZSBoYW5kcyBvdmVyICdlbSdzXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW0gb3IgZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cblxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWUgPT0gMHJlbSB7XG4gICAgJHZhbHVlOiAwO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsLCBwZXJjZW50YWdlLCByZW0gb3IgZW0gdmFsdWUgdG8gYSB1bml0bGVzcyB2YWx1ZSBiYXNlZCBvbiBhIGdpdmVuIGZvbnQgc2l6ZS4gSWRlYWwgZm9yIHdvcmtpbmcgb3V0IHVuaXRsZXNzIGxpbmUgaGVpZ2h0cy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBjb252ZXJ0IHRvIGEgdW5pdGxlc3MgbGluZSBoZWlnaHRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgZm9udCBzaXplIHRvIHVzZSB0byB3b3JrIG91dCB0aGUgbGluZSBoZWlnaHQgLSBkZWZhdWx0cyB0byAkZ2xvYmFsLWZvbnQtc2l6ZVxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIFVuaXRsZXNzIG51bWJlclxuQGZ1bmN0aW9uIHVuaXRsZXNzLWNhbGMoJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIEZpcnN0LCBsZXRzIGNvbnZlcnQgb3VyICRiYXNlIHRvIHBpeGVsc1xuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBOb3cgbGV0J3MgY29udmVydCBvdXIgdmFsdWUgdG8gcGl4ZWxzIHRvb1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICclJyB7XG4gICAgJHZhbHVlOiAoJHZhbHVlIC8gMTAwJSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICAvLyAncHgnXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyB7XG4gICAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIC8vIGFzc3VtZSB0aGF0IGxpbmUtaGVpZ2h0cyBncmVhdGVyIHRoYW4gMTAgYXJlIG1lYW50IHRvIGJlIGFic29sdXRlIGluICdweCdcbiAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICgkdmFsdWUgPiAxMCkge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRzdWJoZWFkZXItY29sb3I7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYW4gaW50cm9kdWN0b3J5IGxlYWQsIGRlY2ssIGJsdXJiLCBldGMuXG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxlYWQtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhIGxhcmdlIG51bWJlciB0byBkaXNwbGF5IGEgc3RhdGlzdGljXG4gIC5zdGF0IHtcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIHAgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxuXG4gIHVsLCBvbCB7XG4gICAgLy8gVXNlIHRvIHJlbW92ZSBudW1iZXJzIGZyb20gb3JkZXJlZCBsaXN0ICYgYnVsbGV0cyBmcm9tIHVub3JkZXJlZCBsaXN0XG4gICAgJi5uby1idWxsZXQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLnRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSWYgYHRydWVgLCBhbGwgZWxlbWVudHMgd2lsbCBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzIHdoZW4gcHJpbnRlZCwgdG8gc2F2ZSBvbiBpbmsuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgZGlzcGxheXMgbmV4dCB0byBhbGwgbGlua3MgdGhlaXIgXCJocmVmXCIgd2hlbiBwcmludGVkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtaHJlZnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIHNhc3MtbGludDpkaXNhYmxlLWFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3NcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgLy8gRGlzcGxheSB0aGUgVVJMIG9mIGEgbGluayBhZnRlciB0aGUgdGV4dFxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgIEBpZiAkcHJpbnQtaHJlZnMge1xuICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cbiAgICB9XG5cbiAgICAvLyBEb24ndCBkaXNwbGF5IHRoZSBVUkwgZm9yIGltYWdlcyBvciBKYXZhU2NyaXB0L2ludGVybmFsIGxpbmtzXG4gICAgLmlyIGE6YWZ0ZXIsXG4gICAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgICBhW2hyZWZePScjJ106YWZ0ZXIgeyBjb250ZW50OiAnJzsgfVxuXG4gICAgLy8gRGlzcGxheSB3aGF0IGFuIGFiYnJldmlhdGlvbiBzdGFuZHMgZm9yIGFmdGVyIHRoZSB0ZXh0XG4gICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJzsgfVxuXG4gICAgLy8gUHJldmVudCBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGEgYmxvY2txdW90ZSBvciBwcmVmb3JtYXR0ZWQgdGV4dCBibG9ja1xuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gaDVicC5jb20vdFxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgb3JwaGFuczogMztcbiAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBwYWdlIGJyZWFrcyBhZnRlciBhIGhlYWRpbmdcbiAgICBoMixcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAvLyBIZWxwZXIgdG8gcmUtYWxsb3cgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBjZXJ0YWluIGVsZW1lbnRzIChlLmcuIHByZSwgYmxvY2txdW90ZSwgdHIpXG4gICAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgcGxhY2Vob2xkZXIgdGV4dCB3aXRoaW4gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgRm9udFxuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDIgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGluc2lkZSB0ZXh0IGlucHV0cyB3aGVuIG5vdCBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBvdXRzaWRlIHRleHQgaW5wdXRzIHdoZW4gZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxuLy8vIEB0eXBlIEN1cnNvclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQgIWRlZmF1bHQ7XG5cbi8vLyBQcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb24gb24gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyB0aGUgdXAvZG93biBidXR0b25zIHRoYXQgQ2hyb21lIGFuZCBGaXJlZm94IGFkZCB0byBgPGlucHV0IHR5cGU9J251bWJlcic+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gUmFkaXVzIGZvciB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgZm9ybSBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiB1bml0bGVzcy1jYWxjKCRpbnB1dC1saW5lLWhlaWdodCkpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcblxuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tdGV4dCB7XG4gIC8vIFRleHQgaW5wdXRzXG4gICN7dGV4dC1pbnB1dHMoKX0sXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRleHQgYXJlYXNcbiAgdGV4dGFyZWEge1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICZbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0LFxuICB0ZXh0YXJlYSB7XG4gICAgLy8gRGlzYWJsZWQvcmVhZG9ubHkgc3RhdGVcbiAgICAmOmRpc2FibGVkLFxuICAgICZbcmVhZG9ubHldIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvbiBidXR0b24tbGlrZSBpbnB1dHNcbiAgW3R5cGU9J3N1Ym1pdCddLFxuICBbdHlwZT0nYnV0dG9uJ10ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogJGZvcm0tYnV0dG9uLXJhZGl1cztcbiAgfVxuXG4gIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xuICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBOdW1iZXIgaW5wdXQgc3R5bGVzXG4gIFt0eXBlPSdudW1iZXInXSB7XG4gICAgQGlmIG5vdCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzIHtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuXG4gICAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFBsYWNlaG9sZGVyIHRleHRcbiAgOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1jaGVja2JveCB7XG4gIFt0eXBlPSdmaWxlJ10sXG4gIFt0eXBlPSdjaGVja2JveCddLFxuICBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXQvbGFiZWwgc2libGluZ3NcbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICZbZm9yXSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dHMgaW5zaWRlIGxhYmVsc1xuICBsYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxuICBsYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSBmaWxlIGlucHV0IHdpZHRoXG4gIFt0eXBlPSdmaWxlJ10ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcblxuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcbn1cblxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XG5cbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyICsgcmVtLWNhbGMoJGlucHV0LWJvcmRlci13aWR0aCkpIDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tbGFiZWwge1xuICBsYWJlbCB7XG4gICAgQGluY2x1ZGUgZm9ybS1sYWJlbDtcblxuICAgICYubWlkZGxlIHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tbGFiZWwtbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHN0eWxlIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1oZWxwdGV4dCB7XG4gIC5oZWxwLXRleHQge1xuICAgICRtYXJnaW4tdG9wOiAoJGZvcm0tc3BhY2luZyAqIDAuNSkgKiAtMTtcblxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xuICAgIGZvbnQtc2l6ZTogJGhlbHB0ZXh0LWZvbnQtc2l6ZTtcbiAgICBmb250LXN0eWxlOiAkaGVscHRleHQtZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0L3JpZ2h0IHBhZGRpbmcgb2YgYW4gcHJlL3Bvc3RmaXhlZCBpbnB1dCBsYWJlbFxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXByZXBvc3RmaXgge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqICRpbnB1dC1saW5lLWhlaWdodCkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIHRhYmxlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICAmLCAmLmlucHV0LWdyb3VwLWJ1dHRvbiA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAmLCAmLmlucHV0LWdyb3VwLWJ1dHRvbiA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cywgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJWlucHV0LWdyb3VwLWNoaWxkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1sYWJlbCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZzogMCAkaW5wdXQtcHJlZml4LXBhZGRpbmc7XG4gICAgYm9yZGVyOiAkaW5wdXQtcHJlZml4LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtcHJlZml4LWJhY2tncm91bmQ7XG5cbiAgICBjb2xvcjogJGlucHV0LXByZWZpeC1jb2xvcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXByZWZpeC1ib3JkZXIpIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBhLFxuICAgIGlucHV0LFxuICAgIGJ1dHRvbixcbiAgICBsYWJlbCB7XG4gICAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcblxuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgfVxuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWZpY2l0eSBidW1wIG5lZWRlZCB0byBwcmV2ZW50IG92ZXJyaWRlIGJ5IGJ1dHRvbnNcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC5pbnB1dC1ncm91cCB7XG4gICAgICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBiZXR3ZWVuIHRoZSBsZWdlbmQgdGV4dCBhbmQgZmllbGRzZXQgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xuXG5AbWl4aW4gZmllbGRzZXQge1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXI7XG5cbiAgbGVnZW5kIHtcbiAgICAvLyBDb3ZlcnMgdXAgdGhlIGZpZWxkc2V0J3MgYm9yZGVyIHRvIGNyZWF0ZSBhcnRpZmljaWFsIHBhZGRpbmdcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogcmVtLWNhbGMoLTMpO1xuICAgIHBhZGRpbmc6ICRsZWdlbmQtcGFkZGluZztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAuZmllbGRzZXQge1xuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG5cbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcbiAgfVxuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gdXNlIGZvciBsYWJlbHMgb2YgaW52YWxpZCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWNrZ3JvdW5kLWxpZ2h0ZW4gWzEwJV0gLSBMaWdodG5lc3MgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQsXG4gICRiYWNrZ3JvdW5kLWxpZ2h0ZW46IDEwJVxuKSB7XG4gICY6bm90KDpmb2N1cykge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCRiYWNrZ3JvdW5kLCAkd2hpdGUsICRiYWNrZ3JvdW5kLWxpZ2h0ZW4pO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBlcnJvciBzdHlsZXMgdG8gYSBmb3JtIGVsZW1lbnQsIHVzaW5nIHRoZSB2YWx1ZXMgaW4gdGhlIHNldHRpbmdzIGZpbGUuXG5AbWl4aW4gZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6ICRmb3JtLXNwYWNpbmcgKiAtMC41O1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gIGZvbnQtc2l6ZTogJGlucHV0LWVycm9yLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1mb250LXdlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1lcnJvci1jb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1lcnJvciB7XG4gIEBpZiAkYWJpZGUtaW5wdXRzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgaW52YWxpZCBpbnB1dHNcbiAgICAuaXMtaW52YWxpZC1pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWlucHV0LWVycm9yO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkYWJpZGUtbGFiZWxzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgbGFiZWxzIG9mIGludmFsaWQgb3V0cHV0c1xuICAgIC5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZvcm0gZXJyb3IgZWxlbWVudFxuICAuZm9ybS1lcnJvciB7XG4gICAgQGluY2x1ZGUgZm9ybS1lcnJvcjtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjY29yZGlvbiBncm91cC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgcGx1cyBhbmQgbWludXMgaWNvbnMgdG8gdGhlIHNpZGUgb2YgZWFjaCBhY2NvcmRpb24gdGl0bGUuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYWNjb3JkaW9uIHRpdGxlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gYWNjb3JkaW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgc2FtZSBlbGVtZW50IHRoYXQgZ2V0cyBgZGF0YS1hY2NvcmRpb25gLlxuQG1peGluIGFjY29yZGlvbi1jb250YWluZXIgKFxuICAkYmFja2dyb3VuZDogJGFjY29yZGlvbi1iYWNrZ3JvdW5kXG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAmW2Rpc2FibGVkXSB7XG4gICAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGlzdCBpdGVtIHdpdGhpbiBhbiBhY2NvcmRpb24gdWwuXG5AbWl4aW4gYWNjb3JkaW9uLWl0ZW0ge1xuICAmOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cyAwIDA7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHRpdGxlIG9mIGFuIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaW5rIHdpdGhpbiBhbiBhY2NvcmRpb24gaXRlbS5cbkBtaXhpbiBhY2NvcmRpb24tdGl0bGUgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1pdGVtLXBhZGRpbmcsXG4gICRmb250LXNpemU6ICRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplLFxuICAkY29sb3I6ICRhY2NvcmRpb24taXRlbS1jb2xvcixcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gJiB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxuXG4gIEBpZiAkYWNjb3JkaW9uLXBsdXNtaW51cyB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgfVxuXG4gICAgLmlzLWFjdGl2ZSA+ICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDEzJztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhY2NvcmRpb24gY29udGVudC4gQXBwbHkgdGhpcyB0byB0aGUgY29udGVudCBwYW5lIGJlbG93IGFuIGFjY29yZGlvbiBpdGVtJ3MgdGl0bGUuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRlbnQgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmcsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWNvbnRlbnQtY29sb3Jcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQgPiAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5hY2NvcmRpb24taXRlbSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWl0ZW07XG4gIH1cblxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XG4gIH1cblxuICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVhZGNydW1ic1xuLy8vL1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBhY3RpdmUgYnJlYWRjcnVtYiBsaW5rLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBPcGFjaXR5IG9mIGRpc2FibGVkIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnJlYWRjcnVtYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgbWFrZXMgYnJlYWRjcnVtYiBsaW5rcyB1cHBlcmNhc2UuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIGEgc2VwZXJhdG9yIGJldHdlZW4gYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIElmIGl0IGV4aXN0cyAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCBpcyB1c2VkIHRvIGJ1aWxkICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhicmVhZGNydW1icy1pdGVtLXNsYXNoKSB7XG4gICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2g7XG59XG5cbi8vLyBVc2VkIGNoYXJhY3RlciBmb3IgdGhlIGJyZWFkY3J1bWIgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIENvbnRlbnRcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtOiAnLycgIWRlZmF1bHQ7XG5cbi8vLyBVc2VkIGNoYXJhY3RlciBmb3IgdGhlIGJyZWFkY3J1bWIgc2VwYXJhdG9yIGluIHJ0bCBtb2RlLlxuLy8vIEB0eXBlIENvbnRlbnRcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bDogJ1xcXFwnICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gSWYgaXQgZXhpc3RzICRicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yIGlzIHVzZWQgdG8gYnVpbGQgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3IpIHtcbiAgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvcjtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lciwgYWxvbmcgd2l0aCB0aGUgc3R5bGVzIGZvciB0aGUgYDxsaT5gIGFuZCBgPGE+YCBlbGVtZW50cyBpbnNpZGUgb2YgaXQuXG5AbWl4aW4gYnJlYWRjcnVtYnMtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJGJyZWFkY3J1bWJzLW1hcmdpbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAvLyBJdGVtIHdyYXBwZXJcbiAgbGkge1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgICBmb250LXNpemU6ICRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvciB7XG4gICAgICAvLyBOZWVkIHRvIGVzY2FwZSB0aGUgYmFja3NsYXNoXG4gICAgICAkc2VwYXJhdG9yOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdsdHInLCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbSwgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsKTtcblxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBtYXJnaW46IDAgJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgY29udGVudDogJHNlcGFyYXRvcjtcbiAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhIHtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1icmVhZGNydW1icyB7XG4gIC5icmVhZGNydW1icyB7XG4gICAgQGluY2x1ZGUgYnJlYWRjcnVtYnMtY29udGFpbmVyO1xuXG4gICAgLmRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjbG9zZS1idXR0b25cbi8vLy9cblxuLy8vIERlZmF1bHQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi4gVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBgcmlnaHRgIG9yIGBsZWZ0YCwgYW5kIHRoZSBzZWNvbmQgdmFsdWUgc2hvdWxkIGJlIGB0b3BgIG9yIGBib3R0b21gLlxuLy8vIEB0eXBlIExpc3RcbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wICFkZWZhdWx0O1xuXG4vLy8gUmlnaHQgKG9yIGxlZnQpIG9mZnNldChzKSBmb3IgYSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsOiAoXG4gIHNtYWxsOiAwLjY2cmVtLFxuICBtZWRpdW06IDFyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gVG9wIChvciBib3R0b20pIG9mZnNldChzKSBmb3IgYSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogKFxuICBzbWFsbDogMC4zM2VtLFxuICBtZWRpdW06IDAuNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZShzKSBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXG4gIHNtYWxsOiAxLjVlbSxcbiAgbWVkaXVtOiAyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBjbG9zZSBidXR0b24uIEl0IGFmZmVjdHMgdGhlIHNwYWNpbmcgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uIHdoZW4gYmVpbmcgaG92ZXJlZCBvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2sgIWRlZmF1bHQ7XG5cblxuLy8vIEdldCB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gZm9yIGEgY2xvc2UgYnV0dG9uLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBudW1iZXIsIHRoZSBudW1iZXIgaXMgcmV0dXJuZWQuIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIGNvbmZpZyBtYXAgYW5kIHRoZSBtYXAgaGFzIHRoZSBrZXkgYCRzaXplYCwgdGhlIHZhbHVlIGlzIHJldHVybmVkLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkdmFsdWUgLSBBIG51bWJlciBvciBtYXAgdGhhdCByZXByZXNlbnRzIHRoZSBzaXplIG9yIHBvc2l0aW9uIHZhbHVlKHMpIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSBjbG9zZSBidXR0b24gdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSBUaGUgZ2l2ZW4gbnVtYmVyIG9yIHRoZSB2YWx1ZSBmb3VuZCBpbiB0aGUgbWFwLlxuQGZ1bmN0aW9uIC16Zi1nZXQtc2l6ZS12YWwoJHZhbHVlLCAkc2l6ZSkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgLy8gSWYgaXQgaXMsIGp1c3QgcmV0dXJuIHRoZSBudW1iZXJcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBzaXplIG5hbWUgZXhpc3RzIGluIHRoZSB2YWx1ZSBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJHZhbHVlLCAkc2l6ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJHZhbHVlLCAkc2l6ZSk7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgW21lZGl1bV0gLSBUaGUgc2l6ZSB0byB1c2UuIFNldCB0byBgc21hbGxgIHRvIGNyZWF0ZSBhIHNtYWxsIGNsb3NlIGJ1dHRvbi4gVGhlICdtZWRpdW0nIHZhbHVlcyBkZWZpbmVkIGluIGAkY2xvc2VidXR0b24tKmAgdmFyaWFibGVzIHdpbGwgYmUgdXNlZCBhcyB0aGUgZGVmYXVsdCBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuQG1peGluIGNsb3NlLWJ1dHRvbi1zaXplKCRzaXplKSB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gICN7JHh9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbCwgJHNpemUpO1xuICAjeyR5fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsLCAkc2l6ZSk7XG4gIGZvbnQtc2l6ZTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tc2l6ZSwgJHNpemUpO1xuICBsaW5lLWhlaWdodDogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tbGluZWhlaWdodCwgJHNpemUpO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2xvc2UgYnV0dG9uLCB1c2luZyB0aGUgc3R5bGVzIGluIHRoZSBzZXR0aW5ncyB2YXJpYWJsZXMuXG5AbWl4aW4gY2xvc2UtYnV0dG9uIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbiB7XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIEBpbmNsdWRlIGNsb3NlLWJ1dHRvbjtcblxuICAgICYuc21hbGwgeyBAaW5jbHVkZSBjbG9zZS1idXR0b24tc2l6ZShzbWFsbCkgfVxuICAgICYsICYubWVkaXVtIHsgQGluY2x1ZGUgY2xvc2UtYnV0dG9uLXNpemUobWVkaXVtKSB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyaWxsZG93blxuLy8vL1xuXG4vLy8gVHJhbnNpdGlvbiBwcm9wZXJ0eSB0byB1c2UgZm9yIGFuaW1hdGluZyBtZW51cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGFycm93cyB0byBkcmlsbGRvd24gaXRlbXMgd2l0aCBzdWJtZW51cywgYXMgd2VsbCBhcyB0aGUgYmFjayBidXR0b24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyaWxsZG93bi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcmlsbGRvd24tcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBtZW51IG5lc3RlZCBtYXJnaW5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biB0b3AgbGV2ZWwgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBpdGVtIHBhZGRpbmcgaW4gdGhlIHN1Ym1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLXN1Ym1lbnUtcGFkZGluZzogJGRyaWxsZG93bi1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHN1Ym1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLXN1Ym1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJpbGxkb3duLWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuQG1peGluIHpmLWRyaWxsZG93bi1sZWZ0LXJpZ2h0LWFycm93cyB7XG4gIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyaWxsZG93bi1hcnJvdy1zaXplLCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLXJpZ2h0KTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAkZHJpbGxkb3duLWFycm93LXNpemU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgIH1cbiAgfVxuXG4gICYuYWxpZ24tbGVmdCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIHJpZ2h0KTtcbiAgICByaWdodDogMXJlbTtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG5cbiAgJi5hbGlnbi1yaWdodCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDFyZW07XG4gIH1cblxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudSB7XG4gIC8vIEFwcGxpZWQgdG8gdGhlIE1lbnUgY29udGFpbmVyXG4gIC5pcy1kcmlsbGRvd24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJi5hbmltYXRlLWhlaWdodCB7XG4gICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC41cztcbiAgICB9XG4gIH1cblxuICAvLyBUaGUgdG9wIGxldmVsIDx1bD5cbiAgLmRyaWxsZG93biB7XG4gICAgYSB7XG4gICAgICBwYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmc7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgLy8gQXBwbGllZCB0byBzdWJtZW51IDx1bD5zXG4gICAgLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICAgIHotaW5kZXg6IC0xO1xuXG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kO1xuICAgICAgdHJhbnNpdGlvbjogJGRyaWxsZG93bi10cmFuc2l0aW9uO1xuXG4gICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIC0xMDAlLCAxMDAlKSk7XG4gICAgICB9XG5cbiAgICAgICYuaXMtY2xvc2luZyB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgMTAwJSwgLTEwMCUpKTtcbiAgICAgIH1cblxuICAgICAgLy8gU3VibWVudSBpdGVtIHBhZGRpbmdcbiAgICAgIGEge1xuICAgICAgICBwYWRkaW5nOiAkZHJpbGxkb3duLXN1Ym1lbnUtcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubmVzdGVkLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgLmRyaWxsZG93bi1zdWJtZW51LWNvdmVyLXByZXZpb3VzIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmICRkcmlsbGRvd24tYXJyb3dzIHtcbiAgICAgIEBpbmNsdWRlIHpmLWRyaWxsZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcblxuICAgICAgLmpzLWRyaWxsZG93bi1iYWNrID4gYTo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1sZWZ0KTtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC43NXJlbTsgLy8gQ3JlYXRlcyBzcGFjZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHRcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgcGlsbCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgc2ltcGxlIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYW4gaWNvbiBhbmQgdGV4dCBpbiBhIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgc3RhdGUuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGBhY3RpdmVgIHdpdGggYGlzLWFjdGl2ZWAuIFxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBhY3RpdmVgIHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1zdGF0ZS1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgY2VudGVyZWQuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGAubWVudS1jZW50ZXJlZCA+IC5tZW51YCB3aXRoIGAubWVudS5hbGlnbi1jZW50ZXJgLiBcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgbWVudS1jZW50ZXJlZGAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgdXNpbmcgYGljb24tKmAgY2xhc3NlcyB3aXRob3V0IGAuaWNvbnNgIGNsYXNzZXNcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCB0aGlzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWljb25zLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gIGxpIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cblxuICBhLFxuICAuYnV0dG9uIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJG1lbnUtaXRlbXMtcGFkZGluZztcbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvZiBpbm5lciBlbGVtZW50c1xuICBpbnB1dCxcbiAgc2VsZWN0LFxuICBhLFxuICBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbi8vLyBFeHBhbmRzIHRoZSBpdGVtcyBvZiBhIE1lbnUsIHNvIGVhY2ggaXRlbSBpcyB0aGUgc2FtZSB3aWR0aC5cbkBtaXhpbiBtZW51LWV4cGFuZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBbGlnbiBtZW51IGl0ZW1zLlxuQG1peGluIG1lbnUtYWxpZ24oJGFsaWdubWVudCkge1xuICBAaWYgJGFsaWdubWVudCA9PSBsZWZ0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYudmVydGljYWwgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gY2VudGVyIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIGEgTWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgW2hvcml6b250YWxdIC0gRGlyZWN0aW9uIG9mIHRoZSBNZW51LiBDYW4gYmUgYGhvcml6b250YWxgIG9yIGB2ZXJ0aWNhbGAuXG5AbWl4aW4gbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIG1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW1wbGUgTWVudSwgd2hpY2ggaGFzIG5vIHBhZGRpbmcgb3IgaG92ZXIgc3RhdGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFskZ2xvYmFsLWxlZnRdIC0gRGlyZWN0aW9uIG9mIHRoZSBtZW51LiBUaGlzIGVmZmVjdHMgdGhlIHNpZGUgb2YgdGhlIGA8bGk+YCB0aGF0IHJlY2VpdmVzIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LXNpbXBsZS1tYXJnaW5dIC0gVGhlIG1hcmdpbiB0byBhcHBseSB0byBlYWNoIGA8bGk+YC5cbkBtaXhpbiBtZW51LXNpbXBsZSgkZGlyOiAkZ2xvYmFsLWxlZnQsICRtYXJnaW46ICRtZW51LXNpbXBsZS1tYXJnaW4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIGxpICsgbGkge1xuICAgIG1hcmdpbi0jeyRkaXJ9OiAkbWFyZ2luO1xuICB9XG5cbiAgYSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbmVzdGVkIE1lbnUsIGJ5IGFkZGluZyBgbWFyZ2luLWxlZnRgIHRvIHRoZSBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LW5lc3RlZC1tYXJnaW5dIC0gTGVuZ3RoIG9mIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkbmVzdGVkLWFsaWdubWVudCBbbGVmdF0gLSBBbGlnbm1lbnQgb2YgdGhlIG5lc3RlZCBjbGFzc1xuQG1peGluIG1lbnUtbmVzdGVkKFxuICAkbWFyZ2luOiAkbWVudS1uZXN0ZWQtbWFyZ2luLFxuICAkbmVzdGVkLWFsaWdubWVudDogbGVmdFxuKSB7XG4gIEBpZiAkbmVzdGVkLWFsaWdubWVudCA9PSByaWdodCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRtYXJnaW47XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG1hcmdpbjtcbiAgfVxuXG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgaWNvbnMgaW4gbWVudXMuXG5AbWl4aW4gbWVudS1pY29ucygpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgaW1nLFxuICAgIGksXG4gICAgc3ZnIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICsgc3BhbiB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHBvc2l0aW9uIGNsYXNzZXMgZm9yIGljb25zIHdpdGhpbiBhIG1lbnUuXG5AbWl4aW4gbWVudS1pY29uLXBvc2l0aW9uKCRwb3NpdGlvbjogbGVmdCwgJHNwYWNpbmc6ICRtZW51LWljb24tc3BhY2luZykge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAgYXV0byAkc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAkc3BhY2luZyBhdXRvIDA7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZW51LXRleHQge1xuICBwYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcblxuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5AbWl4aW4gbWVudS1zdGF0ZS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICBjb2xvcjogJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUge1xuICAubWVudSB7XG4gICAgQGluY2x1ZGUgbWVudS1iYXNlO1xuXG4gICAgLy8gRGVmYXVsdCBvcmllbnRhdGlvbjogaG9yaXpvbnRhbFxuICAgICYsICYuaG9yaXpvbnRhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBvcmllbnRhdGlvbiBtb2RpZmllclxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggbW9kaWZpZXIgZm9yIGhvcml6b250YWwgb3JpZW50YXRpb25cbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgIH1cblxuICAgIC8vIFNpbXBsZVxuICAgICYuc2ltcGxlIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlO1xuICAgIH1cblxuICAgIC8vIEJyZWFrcG9pbnQgc3BlY2lmaWMgdmVyc2lvbnNcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogZmFsc2UpIHtcbiAgICAgICYuI3skLXpmLXNpemV9LWhvcml6b250YWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tdmVydGljYWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LWV4cGFuZGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXNpbXBsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmLm5lc3RlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZDtcbiAgICB9XG5cbiAgICAvLyBJY29uIEJhc2UgU3R5bGVzXG4gICAgJi5pY29ucyB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuICAgIH1cblxuICAgIC8vIEJhY2t3YXJkIENvbXBhdGliaWxpdHkgZm9yIGFjdGl2ZSBzdGF0ZVxuICAgIEBpZiAkbWVudS1pY29ucy1iYWNrLWNvbXBhdCB7XG4gICAgICAmLmljb24tdG9wLFxuICAgICAgJi5pY29uLXJpZ2h0LFxuICAgICAgJi5pY29uLWJvdHRvbSxcbiAgICAgICYuaWNvbi1sZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJY29uIExlZnRcbiAgICAmLmljb24tbGVmdCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24obGVmdCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBSaWdodFxuICAgICYuaWNvbi1yaWdodCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24ocmlnaHQpO1xuICAgIH1cblxuICAgIC8vIEljb24gVG9wXG4gICAgJi5pY29uLXRvcCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24odG9wKTtcbiAgICB9XG5cbiAgICAvLyBJY29uIEJvdHRvbVxuICAgICYuaWNvbi1ib3R0b20ge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKGJvdHRvbSk7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgfVxuICAgIFxuICAgIC8vIEJhY2t3YXJkIENvbXBhdGliaWxpdHkgZm9yIGFjdGl2ZSBzdGF0ZVxuICAgIEBpZiAkbWVudS1zdGF0ZS1iYWNrLWNvbXBhdCB7XG4gICAgICAuYWN0aXZlID4gYSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtc3RhdGUtYWN0aXZlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIGxlZnRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1sZWZ0fSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGxlZnQpO1xuICAgIH1cblxuICAgIC8vIEFsaWduIHJpZ2h0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24ocmlnaHQpO1xuXG4gICAgICAubmVzdGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJG5lc3RlZC1hbGlnbm1lbnQ6IHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBjZW50ZXJcbiAgICAmLmFsaWduLWNlbnRlciB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgfVxuXG4gICAgLm1lbnUtdGV4dCB7XG4gICAgICBAaW5jbHVkZSBtZW51LXRleHQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0IHtcbiAgICAubWVudS1jZW50ZXJlZCB7XG4gICAgICA+IC5tZW51IHtcbiAgICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24oY2VudGVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmV2ZW50IEZPVUMgd2hlbiB1c2luZyB0aGUgUmVzcG9uc2l2ZSBNZW51IHBsdWdpblxuICAubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcmVzcG9uc2l2ZS1lbWJlZFxuLy8vL1xuXG4vLy8gTWFyZ2luIGJlbG93IGEgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBBc3BlY3QgcmF0aW9zIHVzZWQgdG8gZGV0ZXJtaW5lIHBhZGRpbmctYm90dG9tIG9mIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVycy5cbi8vLyBAdHlwZSBNYXBcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxuICBkZWZhdWx0OiA0IGJ5IDMsXG4gIHdpZGVzY3JlZW46IDE2IGJ5IDksXG4pICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7U3RyaW5nfExpc3R9ICRyYXRpbyBbZGVmYXVsdF0gLSBSYXRpbyBvZiB0aGUgY29udGFpbmVyLiBDYW4gYmUgYSBrZXkgZnJvbSB0aGUgYCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvc2AgbWFwIG9yIGEgbGlzdCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG5AbWl4aW4gcmVzcG9uc2l2ZS1lbWJlZCgkcmF0aW86IGRlZmF1bHQpIHtcbiAgQGlmIHR5cGUtb2YoJHJhdGlvKSA9PSAnc3RyaW5nJyB7XG4gICAgJHJhdGlvOiBtYXAtZ2V0KCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvcywgJHJhdGlvKTtcbiAgfVxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWJvdHRvbTogJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTtcbiAgcGFkZGluZy1ib3R0b206IHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBpZnJhbWUsXG4gIG9iamVjdCxcbiAgZW1iZWQsXG4gIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZCB7XG4gIC5yZXNwb25zaXZlLWVtYmVkLFxuICAuZmxleC12aWRlbyB7XG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1lbWJlZCgkcmF0aW86IGRlZmF1bHQpO1xuXG4gICAgJHJhdGlvczogbWFwLXJlbW92ZSgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsZGVmYXVsdCk7XG5cbiAgICBAZWFjaCAkbmFtZSwgJHJhdGlvIGluICRyYXRpb3Mge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIEZpbmRzIHRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvciBvZiB0d28gaW50ZWdlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGEgLSBGaXJzdCBudW1iZXIgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGIgLSBTZWNvbmQgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3IuXG5AZnVuY3Rpb24gZ2NkKCRhLCAkYikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvR3JlYXRlc3RfY29tbW9uX2Rpdmlzb3IjSmF2YVNjcmlwdFxuICBAaWYgKCRiICE9IDApIHtcbiAgICBAcmV0dXJuIGdjZCgkYiwgJGEgJSAkYik7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gYWJzKCRhKTtcbiAgfVxufVxuXG4vLy8gSGFuZGxlcyBkZWNpbWFsIGV4cG9uZW50cyBieSB0cnlpbmcgdG8gY29udmVydCB0aGVtIGludG8gYSBmcmFjdGlvbiBhbmQgdGhlbiB1c2UgYSBudGgtcm9vdC1hbGdvcml0aG0gZm9yIHBhcnRzIG9mIHRoZSBjYWxjdWxhdGlvblxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGJhc2UgbnVtYmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZXhwb25lbnQgLSBUaGUgZXhwb25lbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgcHJvZHVjdCBvZiB0aGUgZXhwb25lbnRpYXRpb24uXG5AZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwb25lbnQsICRwcmVjOiAxNikge1xuICBAaWYgKGZsb29yKCRleHBvbmVudCkgIT0gJGV4cG9uZW50KSB7XG4gICAgJHByZWMyIDogcG93KDEwLCAkcHJlYyk7XG4gICAgJGV4cG9uZW50OiByb3VuZCgkZXhwb25lbnQgKiAkcHJlYzIpO1xuICAgICRkZW5vbWluYXRvcjogZ2NkKCRleHBvbmVudCwgJHByZWMyKTtcbiAgICBAcmV0dXJuIG50aC1yb290KHBvdygkYmFzZSwgJGV4cG9uZW50IC8gJGRlbm9taW5hdG9yKSwgJHByZWMyIC8gJGRlbm9taW5hdG9yLCAkcHJlYyk7XG4gIH1cblxuICAkdmFsdWU6ICRiYXNlO1xuICBAaWYgJGV4cG9uZW50ID4gMSB7XG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiAkYmFzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cG9uZW50IDwgMSB7XG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAtJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlIC8gJGJhc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBudGgtcm9vdCgkbnVtLCAkbjogMiwgJHByZWM6IDEyKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9OdGhfcm9vdCNKYXZhU2NyaXB0XG4gICR4OiAxO1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHByZWMge1xuICAgICR4OiAxIC8gJG4gKiAoKCRuIC0gMSkgKiAkeCArICgkbnVtIC8gcG93KCR4LCAkbiAtIDEpKSk7XG4gIH1cblxuICBAcmV0dXJuICR4O1xufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgd2lkdGggZm9yIGEgZ2l2ZW4gcmF0aW8uXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gLSBSYXRpbyB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBoZWlnaHQsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IEEgcGVyY2VudGFnZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCByZWxhdGl2ZSB0byB0aGUgd2lkdGggb2YgYSByZXNwb25zaXZlIGNvbnRhaW5lci5cbkBmdW5jdGlvbiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbykge1xuICAkdzogbnRoKCRyYXRpbywgMSk7XG4gICRoOiBudGgoJHJhdGlvLCAzKTtcbiAgQHJldHVybiAkaCAvICR3ICogMTAwJTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGxhYmVsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRlIHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kbGFiZWwtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIG9mIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGJhc2Ugc3R5bGVzIGZvciBhIGxhYmVsLlxuQG1peGluIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAkbGFiZWwtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiAkbGFiZWwtcmFkaXVzO1xuXG4gIGZvbnQtc2l6ZTogJGxhYmVsLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbGFiZWwge1xuICAubGFiZWwge1xuICAgIEBpbmNsdWRlIGxhYmVsO1xuXG4gICAgYmFja2dyb3VuZDogJGxhYmVsLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGxhYmVsLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGNvbG9yLCAoJGxhYmVsLWNvbG9yLCAkbGFiZWwtY29sb3ItYWx0KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvZmYtY2FudmFzXG4vLy8vXG5cbi8vLyBXaWR0aCBtYXAgb2YgYSBsZWZ0L3JpZ2h0IG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTWFwXG4kb2ZmY2FudmFzLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgbWFwIG9mIGEgdG9wL2JvdHRvbSBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE1hcFxuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBmb3IgdGhlIG9mZi1jYW52YXMgb3ZlcmxhcCBwYW5lbC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KSAhZGVmYXVsdDtcblxuLy8vIElubmVyIGJveCBzaGFkb3cgc2l6ZSBmb3IgdGhlIG9mZi1jYW52YXMgcHVzaCBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vLyBJbm5lciBib3ggc2hhZG93IGNvbG9yIGZvciB0aGUgb2ZmLWNhbnZhcyBwdXNoIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIGNvbnRlbnQgb3ZlcmxheS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBwdXNoYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgd2l0aCB0aGUgYG92ZXJsYXBgIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMyAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB1c2luZyB0aGUgYHJldmVhbC1mb3ItKmAgY2xhc3NlcyBvciBtaXhpbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBMZW5ndGggb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cyAhZGVmYXVsdDtcblxuLy8vIFRpbWluZyBmdW5jdGlvbiBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgS2V5d29yZFxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYSByZXZlYWxlZCBvZmYtY2FudmFzIHdpbGwgYmUgZml4ZWQtcG9zaXRpb24sIGFuZCBzY3JvbGwgd2l0aCB0aGUgc2NyZWVuLlxuLy8vIEB0eXBlIEJvb2xcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIG92ZXJsYXkgdGhhdCBhcHBlYXJzIHdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gQ1NTIGNsYXNzIHVzZWQgZm9yIHRoZSBtYWluIGNvbnRlbnQgYXJlYS4gVGhlIG9mZi1jYW52YXMgbWl4aW5zIHVzZSB0aGlzIHRvIHRhcmdldCB0aGUgcGFnZSBjb250ZW50LlxuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzZWxpbmUgc3R5bGVzIGZvciBvZmYtY2FudmFzLiBUaGlzIENTUyBpcyByZXF1aXJlZCB0byBtYWtlIHRoZSBvdGhlciBwaWVjZXMgd29yay5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2ljcyB7XG5cbiAgLy8vIFRyYW5zZm9ybSBkZXByZWNhdGVkIHNpemUgc2V0dGluZ3MgaW50byBtYXAgJiBzaG93IHdhcm5pbmdcbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhvZmZjYW52YXMtc2l6ZSkge1xuICAgICRvZmZjYW52YXMtc2l6ZXM6IChzbWFsbDogJG9mZmNhbnZhcy1zaXplLCBtZWRpdW06ICRvZmZjYW52YXMtc2l6ZSkgIWdsb2JhbDtcbiAgICBAd2FybiAnJG9mZmNhbnZhcy1zaXplIGlzIGRlcHJlY2F0ZWQgYW5kIG5vdCB1c2VkIGFueW1vcmUhIFBsZWFzZSB1cGRhdGUgeW91ciBzZXR0aW5ncyBhbmQgdXNlIHRoZSBtYXAgJG9mZmNhbnZhcy1zaXplcyBpbnN0ZWFkJztcbiAgfVxuICBAaWYgdmFyaWFibGUtZXhpc3RzKG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSB7XG4gICAgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKHNtYWxsOiAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUsIG1lZGl1bTogJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSAhZ2xvYmFsO1xuICAgIEB3YXJuICckb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUgaXMgZGVwcmVjYXRlZCBhbmQgbm90IHVzZWQgYW55bW9yZSEgUGxlYXNlIHVwZGF0ZSB5b3VyIHNldHRpbmdzIGFuZCB1c2UgdGhlIG1hcCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzIGluc3RlYWQnO1xuICB9XG5cbiAgLy8gQ2hlY2tzIHRoZSB6LWluZGV4ZXMgYW5kIGluY3JlYXNlIHRoZW0gZHVlIHRvIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBvdmVybGF5J3Mgei1pbmRleCBpcyBuZXcgc2luY2UgdjYuNCBhbmQgbWF5IGJlIGlkZW50aWNhbCB0byB0aGUgdXNlciBjdXN0b20gc2V0dGluZ3Mgb2YgdGhlIHB1c2ggei1pbmRleC5cbiAgQGlmICRvZmZjYW52YXMtcHVzaC16aW5kZXggPD0gJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCB7ICRvZmZjYW52YXMtcHVzaC16aW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXggPD0gJG9mZmNhbnZhcy1wdXNoLXppbmRleCB7ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCA8PSAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4IHsgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4ICsgMSAhZ2xvYmFsOyB9XG5cbiAgLy8gSGlkZXMgb3ZlcmZsb3cgb24gYm9keSB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbiAgLmlzLW9mZi1jYW52YXMtb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgb3ZlcmxheSAoZ2VuZXJhdGVkIGJ5IEphdmFTY3JpcHQpXG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4O1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsIHZpc2liaWxpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuXG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ7XG5cbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zYWJsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWFic29sdXRlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICAmLmlzLW92ZXJsYXktZml4ZWQge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuXG4vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyB3cmFwcGVyLlxuQG1peGluIG9mZi1jYW52YXMtd3JhcHBlcigpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgcGFuZWwuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNlKFxuICAkYmFja2dyb3VuZDogJG9mZmNhbnZhcy1iYWNrZ3JvdW5kLFxuICAkdHJhbnNpdGlvbjogJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLFxuICAkZml4ZWQ6IHRydWVcbikge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgQGlmICRmaXhlZCA9PSB0cnVlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC8vIFNldCB0aGUgb2ZmLWNhbnZhcyB6LWluZGV4LlxuICB6LWluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4O1xuXG4gIC8vIEluY3JlYXNlIENTUyBzcGVjaWZpY2l0eVxuICAmLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcbiAgfVxuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gIC8vIEhpZGUgaW5hY3RpdmUgb2ZmLWNhbnZhcyB3aXRoaW4gdGhlIGNvbnRlbnQgdGhhdCBoYXZlIHRoZSBzYW1lIHBvc2l0aW9uXG4gICYuaXMtY2xvc2VkIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBPdmVybGFwIG9ubHkgc3R5bGVzLlxuICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDtcblxuICAgICYuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAkb2ZmY2FudmFzLXNoYWRvdztcbiAgICB9XG4gIH1cblxuICAvLyBTZXRzIHRyYW5zZm9ybSB0byAwIHRvIHNob3cgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbiAgJi5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gcG9zaXRpb24gYW4gb2ZmLWNhbnZhcyBwYW5lbCB0byB0aGUgbGVmdC9yaWdodC90b3AvYm90dG9tLlxuQG1peGluIG9mZi1jYW52YXMtcG9zaXRpb24oXG4gICRwb3NpdGlvbjogbGVmdCxcbiAgJG9yaWVudGF0aW9uOiBob3Jpem9udGFsLFxuICAkc2l6ZXM6IGlmKCRvcmllbnRhdGlvbiA9PSBob3Jpem9udGFsLCAkb2ZmY2FudmFzLXNpemVzLCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzKVxuKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcblxuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICB3aWR0aDogJHNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUgaXMgc2V0LCBhZGQgaW5uZXIgYm94LXNoYWRvdy5cbiAgLy8gVGhpcyBtaW1pY3MgdGhlIG9mZi1jYW52YXMgcGFuZWwgaGF2aW5nIGEgbG93ZXIgei1pbmRleCwgd2l0aG91dCBoYXZpbmcgdG8gaGF2ZSBvbmUuXG4gIEBpZiAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplIHtcbiAgICAmLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhyaWdodCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3cobGVmdCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KGJvdHRvbSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KHRvcCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbi8vLyBTZXRzIHRoZSBzdHlsZXMgZm9yIHRoZSBjb250ZW50IGNvbnRhaW5lci5cbkBtaXhpbiBvZmYtY2FudmFzLWNvbnRlbnQoKSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIC8vIFRyYW5zZm9ybSBzY29wZSB1bnRpbCB0aGUgZWxlbWVudCBpcyBjbG9zZWQgKG1ha2VzIHN1cmUgdHJhbnNpdGlvbmVuZCBnZXRzIHRyaWdnZXJlZClcbiAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxuXG4gIC8vIENvbnNpZGVyIGVsZW1lbnQgJiBjb250ZW50LCBuZXN0ZWQgaW4gYW5vdGhlciBjb250ZW50XG4gIC5vZmYtY2FudmFzLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0aGF0IHJldmVhbCBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtcmV2ZWFsKFxuJHBvc2l0aW9uOiBsZWZ0LFxuJHppbmRleDogJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LFxuJGNvbnRlbnQ6ICRtYWluY29udGVudC1jbGFzcyxcbiRicmVha3BvaW50OiBzbWFsbFxuKSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgei1pbmRleDogJHppbmRleDtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcblxuICBAaWYgbm90ICRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gQ29uc2lkZXIgcmV2ZWFsZWQgZWxlbWVudCBpcyBuZXN0ZWQgaW4gY29udGVudFxuICAuI3skbWFpbmNvbnRlbnQtY2xhc3N9ICYge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIEBhdC1yb290IC4jeyRjb250ZW50fS5oYXMtcmV2ZWFsLSN7JHBvc2l0aW9ufSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogLXpmLWdldC1icC12YWwoJG9mZmNhbnZhcy1zaXplcywgJGJyZWFrcG9pbnQpO1xuICB9XG5cbiAgLy8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgKHByaW9yIHRvIHY2LjQpXG4gICYgfiAuI3skY29udGVudH0ge1xuICAgIG1hcmdpbi0jeyRwb3NpdGlvbn06IC16Zi1nZXQtYnAtdmFsKCRvZmZjYW52YXMtc2l6ZXMsICRicmVha3BvaW50KTtcbiAgfVxufVxuXG4vLy8gT3ZlcnJpZGVzIHRoZSBvZmYtY2FudmFzIHN0eWxlc1xuQG1peGluIGluLWNhbnZhcygpIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB3aWR0aDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHRyYW5zaXRpb246IG5vbmU7XG5cbiAgLy8gSW5jcmVhc2UgQ1NTIHNwZWNpZmljaXR5XG4gICYucG9zaXRpb24tbGVmdCxcbiAgJi5wb3NpdGlvbi1yaWdodCxcbiAgJi5wb3NpdGlvbi10b3AsXG4gICYucG9zaXRpb24tYm90dG9tIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tb2ZmLWNhbnZhcyB7XG4gIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzaWNzO1xuXG4gIC8vIE9mZi1jYW52YXMgd3JhcHBlclxuICAub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXdyYXBwZXI7XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lclxuICAub2ZmLWNhbnZhcyB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlO1xuXG4gICAgLy8gRm9yY2UgcG9zaXRpb24gYWJzb2x1dGUgZm9yIG5lc3RlZCBvZmYtY2FudmFzIGJlY2F1c2UgZml4ZWQgZG9lc24ndCB3b3JrIGZvciBwdXNoIHRyYW5zaXRpb24gd2l0aGluIHRoZSB0cmFuc2Zvcm0gc2NvcGUuXG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAmIHtcbiAgICAgIC8vIE5PVEU6IHNpbmNlIG92ZXJsYXAgdHJhbnNpdGlvbiBpcyBjdXJyZW50bHkgZm9yY2VkIGlmIG5lc3RlZCwgdGhlcmUncyBubyBuZWVkIHRvIGZvcmNlIHBvc2l0aW9uIGFic29sdXRlIHVudGlsIG5lc3RlZCBwdXNoIHRyYW5zaXRpb24gaXMgc3VwcG9ydGVkLlxuICAgICAgLy8gcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgY29udGFpbmVyIHdpdGggYWJzb2x1dGUgcG9zaXRpb25cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZSgkZml4ZWQ6IGZhbHNlKTtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgcG9zaXRpb24gY2xhc3Nlc1xuICAucG9zaXRpb24tbGVmdCAgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24obGVmdCwgICBob3Jpem9udGFsKTsgfVxuICAucG9zaXRpb24tcmlnaHQgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24ocmlnaHQsICBob3Jpem9udGFsKTsgfVxuICAucG9zaXRpb24tdG9wICAgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24odG9wLCAgICB2ZXJ0aWNhbCk7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbSAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGJvdHRvbSwgdmVydGljYWwpOyB9XG5cbiAgLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1jb250ZW50O1xuICB9XG5cbiAgLy8gUmV2ZWFsIG9mZi1jYW52YXMgcGFuZWwgb24gbGFyZ2VyIHNjcmVlbnNcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG5hbWUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChsZWZ0LCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHJpZ2h0LCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbCh0b3AsICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGJvdHRvbSwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE1vdmUgaW4tY2FudmFzIGZvciBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGluLWNhbnZhcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iLCIkZGFyay1uYXYtY29sb3I6ICMyQzM4NDA7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwYWdpbmF0aW9uXG4vLy8vXG5cbi8vLyBGb250IHNpemUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIG9mIHRoZSBwYWdpbmF0aW9uIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKSAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IG1hcmdpbiB0byBzZXBhcmF0ZSBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBwYWdpbmF0aW9uIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGVsbGlwc2lzIGluIGEgcGFnaW5hdGlvbiBtZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gSWYgYGZhbHNlYCwgZG9uJ3QgZGlzcGxheSBwYWdlIG51bWJlciBsaW5rcyBvbiBtb2JpbGUsIG9ubHkgbmV4dC9wcmV2aW91cyBsaW5rc1xuLy8vIGFuZCBvcHRpb25hbGx5IGN1cnJlbnQgcGFnZSBudW1iZXIuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgZGlzcGxheSB0aGUgY3VycmVudCBwYWdlIG51bWJlciBvbiBtb2JpbGUgZXZlbiBpZiBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zYCBpcyBzZXQgdG8gYGZhbHNlYC5cbi8vLyBUaGlzIHBhcmFtZXRlciB3aWxsIG9ubHkgb3ZlcnJpZGUgdGhlIHZpc2liaWxpdHkgc2V0dGluZyBvZiB0aGUgY3VycmVudCBpdGVtIGZvciBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZTtgLFxuLy8vIGl0IHdpbGwgbm90IGFmZmVjdCB0aGUgY3VycmVudCBwYWdlIG51bWJlciB2aXNpYmlsaXR5IHdoZW4gYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtc2AgaXMgc2V0IHRvIGB0cnVlYC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYXJyb3dzIGFyZSBhZGRlZCB0byB0aGUgbmV4dCBhbmQgcHJldmlvdXMgbGlua3Mgb2YgcGFnaW5hdGlvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwYWdpbmF0aW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWNvbnRhaW5lciAoXG4gICRtYXJnaW4tYm90dG9tOiAkcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tLFxuICAkZm9udC1zaXplOiAkcGFnaW5hdGlvbi1mb250LXNpemUsXG4gICRzcGFjaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcsXG4gICRyYWRpdXM6ICRwYWdpbmF0aW9uLXJhZGl1cyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tYm90dG9tO1xuXG4gIC8vIExpc3QgaXRlbVxuICBsaSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuXG4gICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICY6bGFzdC1jaGlsZCxcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtIHtcbiAgICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBjdXJyZW50IHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudCAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRiYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50LFxuICAkY29sb3ItY3VycmVudDogJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50XG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWN1cnJlbnQ7XG4gIGNvbG9yOiAkY29sb3ItY3VycmVudDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZCAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZFxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBjb2xvcjogJGNvbG9yO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gZWxsaXBzaXMgZm9yIHVzZSBpbiBhIHBhZ2luYXRpb24gbGlzdC5cbkBtaXhpbiBwYWdpbmF0aW9uLWVsbGlwc2lzIChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvclxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBjb250ZW50OiAnXFwyMDI2JztcbiAgY29sb3I6ICRjb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcGFnaW5hdGlvbiB7XG4gIC5wYWdpbmF0aW9uIHtcbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWNvbnRhaW5lcjtcblxuICAgIC5jdXJyZW50IHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1jdXJyZW50O1xuICAgIH1cblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLmVsbGlwc2lzOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWVsbGlwc2lzO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkcGFnaW5hdGlvbi1hcnJvd3Mge1xuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cy5kaXNhYmxlZDo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjVyZW07XG4gICAgICBjb250ZW50OiAnXFwwMGFiJztcbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbi1uZXh0IGE6OmFmdGVyLFxuICAgIC5wYWdpbmF0aW9uLW5leHQuZGlzYWJsZWQ6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICdcXDAwYmInO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXN0aWNreSB7XG4gIC5zdGlja3ktY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuc3RpY2t5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgLnN0aWNreS5pcy1zdHVjayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmLmlzLWF0LXRvcCB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5zdGlja3kuaXMtYW5jaG9yZWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCB0YWJsZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgdGFibGUgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZSAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHN0cmlwZWQgdGFibGUgcm93cyBhbmQgdGhlIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1jb2xvci1zY2FsZTogNSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHN0eWxlIGZvciB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWJsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0YW5kYXJkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdHJpcGVkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgdGFibGVzIGFyZSBzdHJpcGVkIGJ5IGRlZmF1bHQgYW5kIGFuIC51bnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC4gSWYgYGZhbHNlYCwgYSAuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBzdHJpcGVkIHJvd3MuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgc3RyaXBlIG9uIHJvd3Mgb2YgdGhlIHRhYmxlcywgZXhjbHVkaW5nIHRoZSBoZWFkZXIgYW5kIGZvb3Rlci4gSWYgZXZlbiwgdGhlIGV2ZW4gcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBvZGQsIHRoZSBvZGQgcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBlbXB0eSwgb3IgYW55IG90aGVyIHZhbHVlLCB0aGUgdGFibGUgcm93cyB3aWxsIGhhdmUgbm8gc3RyaXBpbmcuXG4vLy8gQHR5cGUgS2V5d29yZFxuJHRhYmxlLXN0cmlwZTogZXZlbiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlYWRlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlIC8gMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBmb290ZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGhlYWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9vdGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgaGVhZGVyIHdoZW4gdXNpbmcgc3RhY2tlZCB0YWJsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggc3RhY2tlZCB0YWJsZSBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuQG1peGluIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSkge1xuICB0ciB7XG4gICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBldmVuLCBkYXJrZW4gdGhlIGV2ZW4gcm93cy5cbiAgICBAaWYgJHN0cmlwZSA9PSBldmVuIHtcbiAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIG9kZCwgZGFya2VuIHRoZSBvZGQgcm93cy5cbiAgICBAZWxzZSBpZiAkc3RyaXBlID09IG9kZCB7XG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIC16Zi10YWJsZS11bnN0cmlwZSgpIHtcbiAgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlOiAkdGFibGUtc3RyaXBlLCAkaXMtc3RyaXBlZDogJHRhYmxlLWlzLXN0cmlwZWQpIHtcbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0Zm9vdCB7XG4gICAgYm9yZGVyOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2FwdGlvblxuICBjYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWRcbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBmb290XG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtZm9vdC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtZm9vdC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZCBhbmQgZm9vdFxuICB0aGVhZCxcbiAgdGZvb3Qge1xuICAgIC8vIFJvd3Mgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0ciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAvLyBDZWxscyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICB0ZXh0LWFsaWduOiAjeyRnbG9iYWwtbGVmdH07XG4gICAgfVxuICB9XG5cbiAgLy8gVGFibGUgcm93c1xuICB0Ym9keSB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBzdHJpcGVkXG4gIEBpZiAkaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgIH1cblxuICAgICYudW5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgbm90IHN0cmlwZWRcbiAgQGVsc2UgaWYgJGlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgIH1cblxuICAgICYuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGFibGVzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0cmlwZSBbJHRhYmxlLXN0cmlwZV0gLSBVc2VzIGtleXdvcmRzIGV2ZW4sIG9kZCwgb3Igbm9uZSB0byBkYXJrZW4gcm93cyBvZiB0aGUgdGFibGUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGV2ZW4uXG5AbWl4aW4gdGFibGUoXG4gICRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsXG4gICRuZXN0OiBmYWxzZVxuKSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbiAgQGlmICRuZXN0IHtcbiAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgYWJpbGl0eSB0byBob3Jpem9udGFsbHkgc2Nyb2xsIHRoZSB0YWJsZSB3aGVuIHRoZSBjb250ZW50IG92ZXJmbG93cyBob3Jpem9udGFsbHkuXG5AbWl4aW4gdGFibGUtc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4vLy8gU2xpZ2h0bHkgZGFya2VucyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbkBtaXhpbiB0YWJsZS1ob3ZlciB7XG4gIHRoZWFkIHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWhlYWQtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWZvb3Qtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIG5vbi1zdHJpcGVkIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2UgaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZSBpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWNrZWQgdGFibGUuIFVzZWZ1bCBmb3Igc21hbGwtc2NyZWVuIGxheW91dHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaGVhZGVyIFskc2hvdy1oZWFkZXItZm9yLXN0YWNrZWRdIC0gU2hvdyB0aGUgZmlyc3QgdGggb2YgaGVhZGVyIHdoZW4gc3RhY2tlZC5cbkBtaXhpbiB0YWJsZS1zdGFjaygkaGVhZGVyOiAkc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQpIHtcbiAgQGlmICRoZWFkZXIge1xuICAgIHRoZWFkIHtcbiAgICAgIHRoIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHIsXG4gIHRoLFxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJsZSgkbmVzdDogZmFsc2UpIHtcbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XG4gIH1cblxuICB0YWJsZS5zdGFjayB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdGFibGUtc3RhY2stYnJlYWtwb2ludCBkb3duKSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZS1zdGFjaztcbiAgICB9XG4gIH1cblxuICB0YWJsZS5zY3JvbGwge1xuICAgIEBpbmNsdWRlIHRhYmxlLXNjcm9sbDtcbiAgfVxuXG4gIHRhYmxlLmhvdmVyIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1ob3ZlcjtcbiAgfVxuXG4gIC50YWJsZS1zY3JvbGwge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ21hdGgnO1xuXG4kY29udHJhc3Qtd2FybmluZ3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIGNoZWNrIHRoZSBsdW1pbmFuY2Ugb2YuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuQGZ1bmN0aW9uIGNvbG9yLWx1bWluYW5jZSgkY29sb3IpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI3JlbGF0aXZlbHVtaW5hbmNlZGVmXG4gICRyZ2JhOiByZWQoJGNvbG9yKSwgZ3JlZW4oJGNvbG9yKSwgYmx1ZSgkY29sb3IpO1xuICAkcmdiYTI6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMyB7XG4gICAgJHJnYjogbnRoKCRyZ2JhLCAkaSk7XG4gICAgJHJnYjogJHJnYiAvIDI1NTtcblxuICAgICRyZ2I6IGlmKCRyZ2IgPCAwLjAzOTI4LCAkcmdiIC8gMTIuOTIsIHBvdygoJHJnYiArIDAuMDU1KSAvIDEuMDU1LCAyLjQpKTtcblxuICAgICRyZ2JhMjogYXBwZW5kKCRyZ2JhMiwgJHJnYik7XG4gIH1cblxuICBAcmV0dXJuIDAuMjEyNiAqIG50aCgkcmdiYTIsIDEpICsgMC43MTUyICogbnRoKCRyZ2JhMiwgMikgKyAwLjA3MjIgKiBudGgoJHJnYmEyLCAzKTtcbn1cblxuLy8vIENoZWNrcyB0aGUgY29udHJhc3QgcmF0aW8gb2YgdHdvIGNvbG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjEgLSBGaXJzdCBjb2xvciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjIgLSBTZWNvbmQgY29sb3IgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBjb250cmFzdCByYXRpbyBvZiB0aGUgY29tcGFyZWQgY29sb3JzLlxuQGZ1bmN0aW9uIGNvbG9yLWNvbnRyYXN0KCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI2NvbnRyYXN0LXJhdGlvZGVmXG4gICRsdW1pbmFuY2UxOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMSkgKyAwLjA1O1xuICAkbHVtaW5hbmNlMjogY29sb3ItbHVtaW5hbmNlKCRjb2xvcjIpICsgMC4wNTtcbiAgJHJhdGlvOiAkbHVtaW5hbmNlMSAvICRsdW1pbmFuY2UyO1xuXG4gIEBpZiAkbHVtaW5hbmNlMiA+ICRsdW1pbmFuY2UxIHtcbiAgICAkcmF0aW86IDEgLyAkcmF0aW87XG4gIH1cblxuICAkcmF0aW86IHJvdW5kKCRyYXRpbyAqIDEwKSAvIDEwO1xuXG4gIEByZXR1cm4gJHJhdGlvO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRiYXNlYCwgYW5kIHJldHVybnMgdGhlIGNvbG9yIGZyb20gYCRjb2xvcnNgIChsaXN0IG9mIGNvbG9ycykgdGhhdCBoYXMgdGhlIG1vc3QgY29udHJhc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFzZSAtIENvbG9yIHRvIGNoZWNrIGx1bWluYW5jZS5cbi8vLyBAcGFyYW0ge0xpc3R9ICRjb2xvcnMgWygkd2hpdGUsICRibGFjayldIC0gQ29sb3JzIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b2xlcmFuY2UgWyRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2VdIC0gQ29udHJhc3QgdG9sZXJhbmNlLlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbkBmdW5jdGlvbiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYXNlLCAkY29sb3JzOiAoJHdoaXRlLCAkYmxhY2spLCAkdG9sZXJhbmNlOiAkZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlKSB7XG4gICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAxKSk7XG4gICRiZXN0OiBudGgoJGNvbG9ycywgMSk7XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCBsZW5ndGgoJGNvbG9ycykge1xuICAgICRjdXJyZW50LWNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgQGlmICgkY3VycmVudC1jb250cmFzdCAtICRjb250cmFzdCA+ICR0b2xlcmFuY2UpIHtcbiAgICAgICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAkaSkpO1xuICAgICAgJGJlc3Q6IG50aCgkY29sb3JzLCAkaSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkY29udHJhc3Qtd2FybmluZ3MgYW5kICRjb250cmFzdCA8IDMpIHtcbiAgICBAd2FybiBcIkNvbnRyYXN0IHJhdGlvIG9mICN7JGJlc3R9IG9uICN7JGJhc2V9IGlzIHByZXR0eSBiYWQsIGp1c3QgI3skY29udHJhc3R9XCI7XG4gIH1cblxuICBAcmV0dXJuICRiZXN0O1xufVxuXG4vLy8gU2NhbGVzIGEgY29sb3IgdG8gYmUgZGFya2VyIGlmIGl0J3MgbGlnaHQsIG9yIGxpZ2h0ZXIgaWYgaXQncyBkYXJrLiBVc2UgdGhpcyBmdW5jdGlvbiB0byB0aW50IGEgY29sb3IgYXBwcm9wcmlhdGUgdG8gaXRzIGxpZ2h0bmVzcy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIHNjYWxlLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHNjYWxlIFs1JV0gLSBBbW91bnQgdG8gc2NhbGUgdXAgb3IgZG93bi5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzQwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IEEgc2NhbGVkIGNvbG9yLlxuQGZ1bmN0aW9uIHNtYXJ0LXNjYWxlKCRjb2xvciwgJHNjYWxlOiA1JSwgJHRocmVzaG9sZDogNDAlKSB7XG4gIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA+ICR0aHJlc2hvbGQge1xuICAgICRzY2FsZTogLSRzY2FsZTtcbiAgfVxuICBAcmV0dXJuIHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJHNjYWxlKTtcbn1cblxuLy8vIEdldCBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHBhcmFtIHtrZXl9IGNvbG9yIGtleSBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuQGZ1bmN0aW9uIGdldC1jb2xvcigka2V5KSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ2dpdmVuICRrZXkgaXMgbm90IGF2YWlsYWJsZSBpbiAkZm91bmRhdGlvbi1wYWxldHRlJztcbiAgfVxufVxuXG4vLy8gVHJhbnNmZXJzIHRoZSBjb2xvcnMgaW4gdGhlIGAkZm91bmRhdGlvbi1wYWxldHRlYCBtYXAgaW50byB2YXJpYWJsZXMsIHN1Y2ggYXMgYCRwcmltYXJ5LWNvbG9yYCBhbmQgYCRzZWNvbmRhcnktY29sb3JgLiBDYWxsIHRoaXMgbWl4aW4gYmVsb3cgdGhlIEdsb2JhbCBzZWN0aW9uIG9mIHlvdXIgc2V0dGluZ3MgZmlsZSB0byBwcm9wZXJseSBtaWdyYXRlIHlvdXIgY29kZWJhc2UuXG5AbWl4aW4gYWRkLWZvdW5kYXRpb24tY29sb3JzKCkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICAgICRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRwcmltYXJ5LWNvbG9yOiAjMTc3OWJhICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkge1xuICAgICRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkc2Vjb25kYXJ5LWNvbG9yOiAjNzY3Njc2ICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogIzNhZGI3NiAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSB7XG4gICAgJHdhcm5pbmctY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHdhcm5pbmctY29sb3I6ICNmZmFlMDAgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpIHtcbiAgICAkYWxlcnQtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRhbGVydC1jb2xvcjogI2NjNGIzNyAhZ2xvYmFsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aHVtYm5haWxcbi8vLy9cblxuLy8vIEJvcmRlciBhcm91bmQgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBCb3JkZXJcbiR0aHVtYm5haWwtYm9yZGVyOiA0cHggc29saWQgJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BydGllcyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgdGh1bWJuYWlsIHN0eWxlcyB0byBhbiBlbGVtZW50LlxuQG1peGluIHRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkdGh1bWJuYWlsLW1hcmdpbi1ib3R0b207XG5cbiAgYm9yZGVyOiAkdGh1bWJuYWlsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHRodW1ibmFpbC1yYWRpdXM7XG4gIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93O1xuXG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG5AbWl4aW4gdGh1bWJuYWlsLWxpbmsge1xuICB0cmFuc2l0aW9uOiAkdGh1bWJuYWlsLXRyYW5zaXRpb247XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10aHVtYm5haWwge1xuICAudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWw7XG4gIH1cblxuICBhLnRodW1ibmFpbCB7XG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsLWxpbms7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgLy8gTWF4IHZhbHVlIGlzIDAuMnB4IHVuZGVyIHRoZSBuZXh0IGJyZWFrcG9pbnQgKDAuMDIgLyAxNiA9IDAuMDAxMjUpLlxuICAvLyBVc2UgYSBwcmVjaXNpb24gdW5kZXIgMXB4IHRvIHN1cHBvcnQgYnJvd3NlciB6b29tLCBidXQgbm90IHRvIGxvdyB0byBhdm9pZCByb3VuZGluZy5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzExMzEzXG4gICRzaXplOiAtemYtYnAtdG8tZW0oJHNpemUpIC0gLjAwMTI1O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCB3aXRoaW4gYSBjZXJ0YWluIGJyZWFrcG9pbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XG4gICRsb3dlci1ib3VuZC1zaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xuXG4gIC8vIG1vcmUgb2Z0ZW4gdGhhbiBub3QgdGhpcyB3aWxsIGJlIGNvcnJlY3QsIGp1c3Qgb25lIHRpbWUgcm91bmQgdGhlIGxvb3AgaXQgd29uJ3Qgc28gc2V0IGluIHNjb3BlIGhlcmVcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gLjAwMTI1O1xuICAvLyB0ZXN0IGFjdHVhbCBsb3dlci1ib3VuZC1zaXplLCBpZiAwIHNldCBpdCB0byAwZW1cbiAgQGlmIHN0cmlwLXVuaXQoJGxvd2VyLWJvdW5kLXNpemUpID09IDAge1xuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcbiAgfVxuXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgJ3V0Zi04JztcblxuQGltcG9ydCBcInNldHRpbmdzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvblwiO1xuLy8gQGltcG9ydCAnbW90aW9uLXVpJztcbkBpbXBvcnQgXCJub2RlX21vZHVsZXMvcmZzL3Njc3NcIjtcblxuLy8gJGFvcy1kaXN0YW5jZTogNDBweDsgLy8gSXQgaGFzIHRvIGJlIGFib3ZlIGltcG9ydFxuLy8gQGltcG9ydCAnbm9kZV9tb2R1bGVzL2Fvcy9zcmMvc2Fzcy9hb3Muc2Nzcyc7XG5cbi8vIFRPRE86IEdvIHRocm91Z2ggdGhpcyBhbmQgcmVtb3ZlIGFsbCBzdHlsaW5nIHVubGlla2x5IHRvIGJlIHJlcXVpcmVkXG5cbkBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcblxuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcztcbkBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1yYW5nZS1pbnB1dDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhcmQ7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcblxuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtY2xhc3NlcztcblxuLy8gQGluY2x1ZGUgbW90aW9uLXVpLXRyYW5zaXRpb25zO1xuLy8gQGluY2x1ZGUgbW90aW9uLXVpLWFuaW1hdGlvbnM7XG5cbi8qXG4gIE15IGN1c3RvbSBzdHlsZXM6XG4gIEFkZCB5b3VyIHNjc3MgZmlsZXMgYmVsb3cgdG8gc3RydWN0dXJlIHlvdXIgcHJvamVjdCBzdHlsZXNcbiovXG5cbi8vIFRvb2xzXG5AaW1wb3J0IFwidG9vbHMvZGV2LWhlbHBlclwiOyAvLyBEZXYgaGVscGVyIHNob3dpbmcgYnJlYWtwb2ludHMuXG5cbi8vIEdsb2JhbFxuQGltcG9ydCBcImdsb2JhbC9hY2Nlc3NpYmlsaXR5XCI7XG5AaW1wb3J0IFwiZ2xvYmFsL2NvbG9yc1wiO1xuQGltcG9ydCBcImdsb2JhbC90eXBvZ3JhcGh5XCI7XG5AaW1wb3J0IFwiZ2xvYmFsL3dwLWFkbWluXCI7XG5AaW1wb3J0IFwiZ2xvYmFsL3dwLW92ZXJyaWRlc1wiO1xuQGltcG9ydCBcImdsb2JhbC9ndXRlbmJlcmdcIjtcblxuLy8gTW9kdWxlc1xuQGltcG9ydCBcIm1vZHVsZXMvZm9vdGVyXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9tb24tZ3JpZFwiO1xuQGltcG9ydCBcIm1vZHVsZXMvY29udGVudFwiO1xuXG4vLyBBbmltYXRpb25zXG4vL0BpbXBvcnQgXCJhbmltYXRpb25zL2ZhZGUtaW5cIjtcblxuLy8gQ29tcG9uZW50c1xuQGltcG9ydCBcImNvbXBvbmVudHMvYnJlYWRjcnVtYnNcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2NhcmRzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9kaXZpZGVyc1wiO1xuLy9AaW1wb3J0IFwiY29tcG9uZW50cy9mZWF0dXJlZC1pbWFnZVwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvaWNvbnNcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Zvcm1zXCI7XG4vLyBAaW1wb3J0IFwiY29tcG9uZW50cy9mcmVzY28tYmFzZVwiO1xuLy8gQGltcG9ydCBcImNvbXBvbmVudHMvZnJlc2NvLXRoZW1lXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9saW5rc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvbGlzdFwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvcGFnaW5hdGlvblwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvc2VhcmNoLWZvcm1cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3NlYXJjaC1zbmlwcGV0XCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy90aXRsZS1iYXJcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3dpZGdldFwiO1xuXG4vLyBUZW1wbGF0ZXNcbi8vIEBpbXBvcnQgXCJ0ZW1wbGF0ZXMvZnJvbnRcIjtcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvYXJjaGl2ZVwiO1xuLy9AaW1wb3J0IFwidGVtcGxhdGVzL3NpbmdsZS1ldmVudFwiO1xuLy9AaW1wb3J0IFwidGVtcGxhdGVzL3NpbmdsZS10ZWFtXCI7XG5cbi8vIFBhdHRlcm4gbGlicmFyeSBoZWFkZXIgY29tcG9uZW50c1xuQGltcG9ydCBcImhlYWRlci90b3AtYmFyXCI7XG5AaW1wb3J0IFwiaGVhZGVyL2hhbWJ1cmdlclwiO1xuQGltcG9ydCBcImhlYWRlci9vZmZjYW52YXNcIjtcbkBpbXBvcnQgXCJoZWFkZXIvZGVza3RvcC1kcm9wZG93bi1tZW51XCI7XG4vL0BpbXBvcnQgXCJoZWFkZXIvbW9iaWxlLWFjY29yZGlvbi1tZW51XCI7XG5AaW1wb3J0IFwiaGVhZGVyL21vYmlsZS1kcmlsbGRvd24tbWVudVwiO1xuXG4vLyBQYXR0ZXJuIGxpYnJhcnkgaGVhZGVyIGNvbXBvbmVudHNcbkBpbXBvcnQgXCJoZWFkZXIvaGVhZGVyLWJhc2ljXCI7XG5cbi8vIENvcmUgYmxvY2sgcGFydGlhbHNcbkBpbXBvcnQgXCJibG9ja3NcIjtcblxuLy8gSWYgY29va2llIGxhdyBpbmZvIHBsdWdpbiBpcyBlbmFibGVkXG5AaW1wb3J0IFwidGhpcmQtcGFydHkvY29va2llLWxhdy1pbmZvXCI7XG5cbi8vIElmIGxhenkgbG9hZCB2aWRlbyBwbHVnaW4gdXNlZCwgbG9hZCB0aGUgU0FTUyBwYXJ0aWFsIGhlcmUuXG4vLyBAaW1wb3J0IFwidGhpcmQtcGFydHkvbGF6eWxvYWQtdmlkZW9cIjtcbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuU3R5bGVzaGVldDogRGV2IEhlbHBlclxuXG5CeSBjcmVhdGluZyBhIG5ldyBjb25zdGFudCBjYWxsZWQgRU5WSVJPTk1FTlQgaW4gd3AtY29uZmlnLnBocFxud2UgY2FuIGRvIHRoaW5ncyBsaWtlIGVuYWJsZSBjZXJ0YWluIHN0eWxlcyBvbmx5IHdoZW4gdGhlIHNpdGUgaXNcbnJ1bm5pbmcgbG9jYWxseS5cblxuVGhlIHdheSB0aGlzIHdvcmtzIGlzIHRoZSBoZWFkZXIgZmlsZSBsb29rcyBmb3IgdGhlIGNvbnN0YW50IGFuZCBhZGRzIGEgY2xhc3Mgb2YgXG4ubW9kZS17RU5WSVJPTk1FTlR9IHRvIHRoZSBib2R5LiBTbyBpZiB5b3Ugc2V0IHRoZSBjb25zdGFudCB0byAnbG9jYWwnIHlvdSdsbCBoYXZlIFxuYm9keSBjbGFzcz1cIm1vZGUtbG9jYWxcIiBhdmFpbGFibGUgdG8geW91LiBcblxuWW91IGNvdWxkIGFsc28gdXNlIHRoaXMgQ09OU1RBTlQgdG8gZW5hYmxlIGNlcnRhaW4gYml0cyBvZiBjb2RlIGluIHNwZWNpZmljIGVudmlyb25tZW50cy5cblxuSWYgaXQncyBub3QgYWxyZWFkeSBpbmNsdWRlZCBpbiB3cC1jb25maWcucGhwLCBhZGQgdGhlIGZvbGxvd2luZzpcblxuLyoqIFVzZWQgZm9yIHR1cm5pbmcgdGhpbmdzIGxpa2UgR0EgdHJhY2tpbmcgb2ZmIGluIGxvY2FsIGVudiAqL1xuLyoqIFNldCB0byBsb2NhbCwgc3RhZ2luZywgb3IgbGl2ZSAqL1xuLy8gZGVmaW5lKCdFTlZJUk9OTUVOVCcsICdsb2NhbCcpOyAoVW5jb21tZW50IHRoaXMgbGluZSEhKVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLm1vZGUtbG9jYWwge1xuICAvLyBBbnl0aGluZyBpbiB0aGlzIGJsb2NrIHdpbGwgb25seSBkaXNwbGF5IGlmIEVOVklST05NRU5UIGNvbnN0YW50IHNldCB0byAnbGl2ZScgaW4gd3AtY29uZmlnLnBocFxuXG4gIGZvb3RlcjphZnRlciB7XG4gICAgLy8gVGhpcyBhZGQgYSBwc2V1ZG8gZWxlbWVudCB0byB0aGUgc2l0ZSBmb290ZXIgc2hvd2luZyB0aGUgY3VycmVudCBicmVhayBwb2ludFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBiYWNrZ3JvdW5kOiByZWQ7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICBjb250ZW50OiBcIkxPQ0FMIC8gQlA6IHNtYWxsXCI7XG4gICAgZm9udC1zaXplOiByZW1fY2FsYygxNHB4KTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgY29udGVudDogXCJMT0NBTCAvIEJQOiBtZWRpdW1cIjtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgY29udGVudDogXCJMT0NBTCAvIEJQOiBsYXJnZVwiO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuICAgICAgY29udGVudDogXCJMT0NBTCAvIEJQOiB4bGFyZ2VcIjtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlKSB7XG4gICAgICBjb250ZW50OiBcIkxPQ0FMIC8gQlA6IHh4bGFyZ2VcIjtcbiAgICB9XG4gIH1cbn1cblxuLm1vZGUtZGV2ZWxvcG1lbnQge1xuICAvLyBBbnl0aGluZyBpbiB0aGlzIGJsb2NrIHdpbGwgb25seSBkaXNwbGF5IGlmIEVOVklST05NRU5UIGNvbnN0YW50IHNldCB0byAnc3RhZ2luZycgaW4gd3AtY29uZmlnLnBocFxuXG4gIGZvb3RlcjphZnRlciB7XG4gICAgLy8gVGhpcyBhZGQgYSBwc2V1ZG8gZWxlbWVudCB0byB0aGUgc2l0ZSBmb290ZXIgc2hvd2luZyB0aGUgY3VycmVudCBicmVhayBwb2ludFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBiYWNrZ3JvdW5kOiBvcmFuZ2U7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICBjb250ZW50OiBcIlNUQUdJTkcgLyBCUDogc21hbGxcIjtcbiAgICBmb250LXNpemU6IHJlbV9jYWxjKDE0cHgpO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBjb250ZW50OiBcIlNUQUdJTkcgLyBCUDogbWVkaXVtXCI7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGNvbnRlbnQ6IFwiU1RBR0lORyAvIEJQOiBsYXJnZVwiO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuICAgICAgY29udGVudDogXCJTVEFHSU5HIC8gQlA6IHhsYXJnZVwiO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UpIHtcbiAgICAgIGNvbnRlbnQ6IFwiU1RBR0lORyAvIEJQOiB4eGxhcmdlXCI7XG4gICAgfVxuICB9XG59XG5cbi8vIEhpZ2hsaWdodCBtaXNzaW5nIGFsdCB0YWdzIHdpdGggcmVkIHNoYWRvdyBib3JkZXIgb24gZGV2IGxpbmsgb25seS5cbi8vIC5tb2RlLWRldmVsb3BtZW50IGltZ1thbHQ9XCJcIl0ge1xuLy8gXHRib3gtc2hhZG93OiAwIDAgMCA1cHggcmVkO1xuLy8gfVxuXG4vLyAubW9kZS1kZXZlbG9wbWVudCBpbWdbYWx0PVwiXCJdICsgZGl2IHtcbi8vICAgJjo6YWZ0ZXIge1xuLy8gICAgIGNvbnRlbnQ6IFwiSW1hZ2VzIGhpZ2hsaWdodGVkIHJlZCBuZWVkIGFsdCB0ZXh0XCI7XG4vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xuLy8gICAgIGJvdHRvbTogMDtcbi8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vICAgICBmb250LXNpemU6IDEycHg7XG4vLyAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4vLyAgICAgbGVmdDogMDtcbi8vICAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgKiAwLjUgJGdsb2JhbC1wYWRkaW5nO1xuLy8gICAgIHBvc2l0aW9uOiBmaXhlZDtcbi8vICAgICB6LWluZGV4OiA5OTtcbi8vICAgfVxuLy8gfVxuIiwiLy8gVGV4dCBtZWFudCBvbmx5IGZvciBzY3JlZW4gcmVhZGVycy4gQWRkcmVzc2VzIHBhcnQgb2YgdGhlbWUtY2hlY2sgaXNzdWUgIzg0MC5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9BdXRvbWF0dGljL19zL2Jsb2IvbWFzdGVyL3N0eWxlLmNzc1xuLnNjcmVlbi1yZWFkZXItdGV4dCB7XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMXB4O1xuICB3aWR0aDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uc2NyZWVuLXJlYWRlci10ZXh0OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiAwIDAgMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIGNsaXA6IGF1dG8gIWltcG9ydGFudDtcbiAgY29sb3I6ICMyMTc1OWI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBoZWlnaHQ6IGF1dG87XG4gIGxlZnQ6IDVweDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgcGFkZGluZzogMTVweCAyM3B4IDE0cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdG9wOiA1cHg7XG4gIHdpZHRoOiBhdXRvO1xuICB6LWluZGV4OiAxMDAwMDA7IC8vIEFib3ZlIFdQIHRvb2xiYXIuXG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZW1vdmUgYWxsIGFuaW1hdGlvbnMgaWYgdGhlIHVzZXIgaGFzIGl0IHNldC4gVGhpcyBvbmx5IHRha2VzIGVmZmVjdCBpZiB0aGUgdXNlciBoYXMgc2V0IHRoaXMgb24gdGhlaXIgc3lzdGVtcyEgQHRvZG8gU2hvdWxkIHRoaXMgYmUgaW4gYSBkaWZmZXJlbnQgZmlsZSBhbmQgaW5jbHVkZWQgbGFzdCBvdXQgb2YgYWxsIHRoZSBmaWxlcyBpbiBhcHAuc2Nzcz9cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAqLFxuICA6OmJlZm9yZSxcbiAgOjphZnRlciB7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAtMW1zICFpbXBvcnRhbnQ7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxbXMgIWltcG9ydGFudDtcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHMgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcyAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvLyBSZXR1cm4gZGVlcGx5IG5lc3RlZCB2YWx1ZSBmcm9tIGEgbWFwLlxuQGZ1bmN0aW9uIG1hcC1kZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuICBAZWFjaCAka2V5IGluICRrZXlzIHtcbiAgICAkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICB9XG4gIEByZXR1cm4gJG1hcDtcbn1cblxuLy8gQ3JlYXRlIHRoZSBoZWFkaW5ncyBzdHlsZXMuXG4uaDEge1xuICBAZXh0ZW5kIGgxO1xufVxuXG4uaDIge1xuICBAZXh0ZW5kIGgyO1xufVxuXG4uaDMge1xuICBAZXh0ZW5kIGgzO1xufVxuXG4uaDQge1xuICBAZXh0ZW5kIGg0O1xufVxuXG4uaDUge1xuICBAZXh0ZW5kIGg1O1xufVxuXG4uaDYge1xuICBAZXh0ZW5kIGg2O1xufVxuXG4vLyBBZGRzIGFuIHVuZGVybGluZSB0byBhbiBlbGVtZW50LlxuLmhlYWRpbmctdW5kZXJsaW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1mb250LWNvbG9yO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgLy8gVGhpcyBtaWdodCBuZWVkIHRoZSBsZWZ0IG1hcmdpbiB0d2Vha2luZyBkZXBlbmRpbmcgb24gdGhlIGZvbnQgc3BhY2luZy5cbiAgICBtYXJnaW46ICgkZ2xvYmFsLW1hcmdpbiAqIDIpIDA7XG4gICAgd2lkdGg6IDgwcHg7XG4gIH1cbn1cblxuLy8gU2FkbHkgaGFkIHRvIGR1cGxpY2F0ZSB0aGlzIHNvbWV3aGF0IGFzIHVzaW5nIEBleHRlbmQgb24gdGhlIGJsb2NrX19oZWFkaW5nIGNhbnQgaGFuZGxlIGRlZXBseSBuZXN0ZWQgcHNldWRvIHJ1bGVzLlxuLmhlYWRpbmctdW5kZXJsaW5lLS1jZW50ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAmOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogJGJvZHktZm9udC1jb2xvcjtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogM3B4O1xuICAgIG1hcmdpbjogKCRnbG9iYWwtbWFyZ2luICogMikgYXV0byAoJGdsb2JhbC1tYXJnaW4gKiAyKTtcbiAgICB3aWR0aDogODBweDtcbiAgfVxufVxuXG4vLyBTdWJoZWFkaW5nLlxuLnN1Yi1oZWFkaW5nIHtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDIycHgpO1xuXG4gIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xufVxuXG4vLyBMZWFkIHRleHQuXG4ubGVhZCB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgyNHB4KTtcbn1cblxuLy8gR2V0IHRoZSBoZWFkZXIgZm9udC1zaXplcyBmcm9tIHRoZSBzZXR0aW5ncyBmaWxlIGFuZCBpbmNsdWRlIHRoZW0gYXMgcmVzcG9uc2l2ZSBmb250IHNpemVzLlxuaDEsXG4uaDEge1xuICBAaW5jbHVkZSBmb250LXNpemUobWFwLWRlZXAtZ2V0KCRoZWFkZXItc3R5bGVzLCBtZWRpdW0sIGgxLCBmb250LXNpemUpKTtcbn1cbmgyLFxuLmgyIHtcbiAgQGluY2x1ZGUgZm9udC1zaXplKG1hcC1kZWVwLWdldCgkaGVhZGVyLXN0eWxlcywgbWVkaXVtLCBoMiwgZm9udC1zaXplKSk7XG59XG5oMyxcbi5oMyB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZShtYXAtZGVlcC1nZXQoJGhlYWRlci1zdHlsZXMsIG1lZGl1bSwgaDMsIGZvbnQtc2l6ZSkpO1xufVxuaDQsXG4uaDQge1xuICBAaW5jbHVkZSBmb250LXNpemUobWFwLWRlZXAtZ2V0KCRoZWFkZXItc3R5bGVzLCBtZWRpdW0sIGg0LCBmb250LXNpemUpKTtcbn1cbmg1LFxuLmg1IHtcbiAgQGluY2x1ZGUgZm9udC1zaXplKG1hcC1kZWVwLWdldCgkaGVhZGVyLXN0eWxlcywgbWVkaXVtLCBoNSwgZm9udC1zaXplKSk7XG59XG5oNixcbi5oNiB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZShtYXAtZGVlcC1nZXQoJGhlYWRlci1zdHlsZXMsIG1lZGl1bSwgaDYsIGZvbnQtc2l6ZSkpO1xufVxuXG4vLyBCbG9ja3F1b3RlIG92ZXJyaWRlcywgbWFpbiBvcHRpb25zIGFyZSBpbiBfc2V0dGluZ3Muc2Nzc1xuYmxvY2txdW90ZSB7XG4gIHAge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMHB4KTtcbiAgfVxufVxuXG4vLyBGaWdjYXB0aW9uIG92ZXJyaWRlc1xuZmlnY2FwdGlvbiB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGNvbG9yOiAkbWVkaXVtLWdyYXk7XG4gIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAwO1xufVxuXG5wIGE6bm90KC5idXR0b24pIHtcbiAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW1lZGl1bTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBwcm9wZXJ0eS1ibGFja2xpc3QsIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcblxuLy8gU0NTUyBSRlMgbWl4aW5cbi8vXG4vLyBBdXRvbWF0ZWQgcmVzcG9uc2l2ZSBmb250IHNpemVzXG4vL1xuLy8gTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9yZnMvYmxvYi9tYXN0ZXIvTElDRU5TRSlcblxuLy8gQ29uZmlndXJhdGlvblxuXG4vLyBCYXNlIGZvbnQgc2l6ZVxuJHJmcy1iYXNlLWZvbnQtc2l6ZTogMS4yNXJlbSAhZGVmYXVsdDtcbiRyZnMtZm9udC1zaXplLXVuaXQ6IHJlbSAhZGVmYXVsdDtcblxuQGlmICRyZnMtZm9udC1zaXplLXVuaXQgIT0gcmVtIGFuZCAkcmZzLWZvbnQtc2l6ZS11bml0ICE9IHB4IHtcbiAgQGVycm9yIFwiYCN7JHJmcy1mb250LXNpemUtdW5pdH1gIGlzIG5vdCBhIHZhbGlkIHVuaXQgZm9yICRyZnMtZm9udC1zaXplLXVuaXQuIFVzZSBgcHhgIG9yIGByZW1gLlwiO1xufVxuXG4vLyBCcmVha3BvaW50IGF0IHdoZXJlIGZvbnQtc2l6ZSBzdGFydHMgZGVjcmVhc2luZyBpZiBzY3JlZW4gd2lkdGggaXMgc21hbGxlclxuJHJmcy1icmVha3BvaW50OiAxMjAwcHggIWRlZmF1bHQ7XG4kcmZzLWJyZWFrcG9pbnQtdW5pdDogcHggIWRlZmF1bHQ7XG5cbkBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdCAhPSBweCBhbmQgJHJmcy1icmVha3BvaW50LXVuaXQgIT0gZW0gYW5kICRyZnMtYnJlYWtwb2ludC11bml0ICE9IHJlbSB7XG4gIEBlcnJvciBcImAjeyRyZnMtYnJlYWtwb2ludC11bml0fWAgaXMgbm90IGEgdmFsaWQgdW5pdCBmb3IgJHJmcy1icmVha3BvaW50LXVuaXQuIFVzZSBgcHhgLCBgZW1gIG9yIGByZW1gLlwiO1xufVxuXG4vLyBSZXNpemUgZm9udCBzaXplIGJhc2VkIG9uIHNjcmVlbiBoZWlnaHQgYW5kIHdpZHRoXG4kcmZzLXR3by1kaW1lbnNpb25hbDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIEZhY3RvciBvZiBkZWNyZWFzZVxuJHJmcy1mYWN0b3I6IDEwICFkZWZhdWx0O1xuXG5AaWYgdHlwZS1vZigkcmZzLWZhY3RvcikgIT0gXCJudW1iZXJcIiBvciAkcmZzLWZhY3RvciA8PSAxIHtcbiAgQGVycm9yIFwiYCN7JHJmcy1mYWN0b3J9YCBpcyBub3QgYSB2YWxpZCAgJHJmcy1mYWN0b3IsIGl0IG11c3QgYmUgZ3JlYXRlciB0aGFuIDEuXCI7XG59XG5cbi8vIEdlbmVyYXRlIGVuYWJsZSBvciBkaXNhYmxlIGNsYXNzZXMuIFBvc3NpYmlsaXRpZXM6IGZhbHNlLCBcImVuYWJsZVwiIG9yIFwiZGlzYWJsZVwiXG4kcmZzLWNsYXNzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gMSByZW0gPSAkcmZzLXJlbS12YWx1ZSBweFxuJHJmcy1yZW0tdmFsdWU6IDE2ICFkZWZhdWx0O1xuXG4vLyBTYWZhcmkgaWZyYW1lIHJlc2l6ZSBidWc6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL3Jmcy9pc3N1ZXMvMTRcbiRyZnMtc2FmYXJpLWlmcmFtZS1yZXNpemUtYnVnLWZpeDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIERpc2FibGUgUkZTIGJ5IHNldHRpbmcgJGVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZXMgdG8gZmFsc2VcbiRlbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemVzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBDYWNoZSAkcmZzLWJhc2UtZm9udC1zaXplIHVuaXRcbiRyZnMtYmFzZS1mb250LXNpemUtdW5pdDogdW5pdCgkcmZzLWJhc2UtZm9udC1zaXplKTtcblxuLy8gUmVtb3ZlIHB4LXVuaXQgZnJvbSAkcmZzLWJhc2UtZm9udC1zaXplIGZvciBjYWxjdWxhdGlvbnNcbkBpZiAkcmZzLWJhc2UtZm9udC1zaXplLXVuaXQgPT0gXCJweFwiIHtcbiAgJHJmcy1iYXNlLWZvbnQtc2l6ZTogJHJmcy1iYXNlLWZvbnQtc2l6ZSAvICgkcmZzLWJhc2UtZm9udC1zaXplICogMCArIDEpO1xufVxuQGVsc2UgaWYgJHJmcy1iYXNlLWZvbnQtc2l6ZS11bml0ID09IFwicmVtXCIge1xuICAkcmZzLWJhc2UtZm9udC1zaXplOiAkcmZzLWJhc2UtZm9udC1zaXplIC8gKCRyZnMtYmFzZS1mb250LXNpemUgKiAwICsgMSAvICRyZnMtcmVtLXZhbHVlKTtcbn1cblxuLy8gQ2FjaGUgJHJmcy1icmVha3BvaW50IHVuaXQgdG8gcHJldmVudCBtdWx0aXBsZSBjYWxsc1xuJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGU6IHVuaXQoJHJmcy1icmVha3BvaW50KTtcblxuLy8gUmVtb3ZlIHVuaXQgZnJvbSAkcmZzLWJyZWFrcG9pbnQgZm9yIGNhbGN1bGF0aW9uc1xuQGlmICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IFwicHhcIiB7XG4gICRyZnMtYnJlYWtwb2ludDogJHJmcy1icmVha3BvaW50IC8gKCRyZnMtYnJlYWtwb2ludCAqIDAgKyAxKTtcbn1cbkBlbHNlIGlmICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IFwicmVtXCIgb3IgJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGUgPT0gXCJlbVwiIHtcbiAgJHJmcy1icmVha3BvaW50OiAkcmZzLWJyZWFrcG9pbnQgLyAoJHJmcy1icmVha3BvaW50ICogMCArIDEgLyAkcmZzLXJlbS12YWx1ZSk7XG59XG5cbi8vIEludGVybmFsIG1peGluIHRoYXQgYWRkcyBkaXNhYmxlIGNsYXNzZXMgdG8gdGhlIHNlbGVjdG9yIGlmIG5lZWRlZC5cbkBtaXhpbiBfcmZzLWRpc2FibGUtY2xhc3Mge1xuICBAaWYgJHJmcy1jbGFzcyA9PSBcImRpc2FibGVcIiB7XG4gICAgLy8gQWRkaW5nIGFuIGV4dHJhIGNsYXNzIGluY3JlYXNlcyBzcGVjaWZpY2l0eSwgd2hpY2ggcHJldmVudHMgdGhlIG1lZGlhIHF1ZXJ5IHRvIG92ZXJyaWRlIHRoZSBmb250IHNpemVcbiAgICAmLFxuICAgIC5kaXNhYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplICYsXG4gICAgJi5kaXNhYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gSW50ZXJuYWwgbWl4aW4gdGhhdCBhZGRzIGVuYWJsZSBjbGFzc2VzIHRvIHRoZSBzZWxlY3RvciBpZiBuZWVkZWQuXG5AbWl4aW4gX3Jmcy1lbmFibGUtY2xhc3Mge1xuICBAaWYgJHJmcy1jbGFzcyA9PSBcImVuYWJsZVwiIHtcbiAgICAuZW5hYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplICYsXG4gICAgJi5lbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemUge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBJbnRlcm5hbCBtaXhpbiB1c2VkIHRvIGRldGVybWluZSB3aGljaCBtZWRpYSBxdWVyeSBuZWVkcyB0byBiZSB1c2VkXG5AbWl4aW4gX3Jmcy1tZWRpYS1xdWVyeSgkbXEtdmFsdWUpIHtcbiAgQGlmICRyZnMtdHdvLWRpbWVuc2lvbmFsIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogI3skbXEtdmFsdWV9KSwgKG1heC1oZWlnaHQ6ICN7JG1xLXZhbHVlfSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogI3skbXEtdmFsdWV9KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gUmVzcG9uc2l2ZSBmb250IHNpemUgbWl4aW5cbkBtaXhpbiByZnMoJGZzLCAkaW1wb3J0YW50OiBmYWxzZSkge1xuICAvLyBDYWNoZSAkZnMgdW5pdFxuICAkZnMtdW5pdDogaWYodHlwZS1vZigkZnMpID09IFwibnVtYmVyXCIsIHVuaXQoJGZzKSwgZmFsc2UpO1xuXG4gIC8vIEFkZCAhaW1wb3J0YW50IHN1ZmZpeCBpZiBuZWVkZWRcbiAgJHJmcy1zdWZmaXg6IGlmKCRpbXBvcnRhbnQsIFwiICFpbXBvcnRhbnRcIiwgXCJcIik7XG5cbiAgLy8gSWYgJGZzIGlzbid0IGEgbnVtYmVyIChsaWtlIGluaGVyaXQpIG9yICRmcyBoYXMgYSB1bml0IChub3QgcHggb3IgcmVtLCBsaWtlIDEuNWVtKSBvciAkIGlzIDAsIGp1c3QgcHJpbnQgdGhlIHZhbHVlXG4gIEBpZiBub3QgJGZzLXVuaXQgb3IgJGZzLXVuaXQgIT0gXCJcIiBhbmQgJGZzLXVuaXQgIT0gXCJweFwiIGFuZCAkZnMtdW5pdCAhPSBcInJlbVwiIG9yICRmcyA9PSAwIHtcbiAgICBmb250LXNpemU6ICN7JGZzfSN7JHJmcy1zdWZmaXh9O1xuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBSZW1vdmUgdW5pdCBmcm9tICRmcyBmb3IgY2FsY3VsYXRpb25zXG4gICAgQGlmICRmcy11bml0ID09IFwicHhcIiB7XG4gICAgICAkZnM6ICRmcyAvICgkZnMgKiAwICsgMSk7XG4gICAgfVxuICAgIEBlbHNlIGlmICRmcy11bml0ID09IFwicmVtXCIge1xuICAgICAgJGZzOiAkZnMgLyAoJGZzICogMCArIDEgLyAkcmZzLXJlbS12YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gU2V0IGRlZmF1bHQgZm9udCBzaXplXG4gICAgJHJmcy1zdGF0aWM6IGlmKCRyZnMtZm9udC1zaXplLXVuaXQgPT0gcmVtLCAjeyRmcyAvICRyZnMtcmVtLXZhbHVlfXJlbSwgI3skZnN9cHgpO1xuXG4gICAgLy8gT25seSBhZGQgdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZSBmb250IHNpemUgaXMgYmlnZ2VyIHRoYW4gdGhlIG1pbmltdW0gZm9udCBzaXplXG4gICAgQGlmICRmcyA8PSAkcmZzLWJhc2UtZm9udC1zaXplIG9yIG5vdCAkZW5hYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplcyB7XG4gICAgICBmb250LXNpemU6ICN7JHJmcy1zdGF0aWN9I3skcmZzLXN1ZmZpeH07XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbWluaW11bSBmb250IHNpemUgZm9yICRmc1xuICAgICAgJGZzLW1pbjogJHJmcy1iYXNlLWZvbnQtc2l6ZSArICgkZnMgLSAkcmZzLWJhc2UtZm9udC1zaXplKSAvICRyZnMtZmFjdG9yO1xuXG4gICAgICAvLyBDYWxjdWxhdGUgZGlmZmVyZW5jZSBiZXR3ZWVuICRmcyBhbmQgdGhlIG1pbmltdW0gZm9udCBzaXplXG4gICAgICAkZnMtZGlmZjogJGZzIC0gJGZzLW1pbjtcblxuICAgICAgLy8gQmFzZSBmb250LXNpemUgZm9ybWF0dGluZ1xuICAgICAgJG1pbi13aWR0aDogaWYoJHJmcy1mb250LXNpemUtdW5pdCA9PSByZW0sICN7JGZzLW1pbiAvICRyZnMtcmVtLXZhbHVlfXJlbSwgI3skZnMtbWlufXB4KTtcblxuICAgICAgLy8gVXNlIGB2bWluYCBpZiB0d28tZGltZW5zaW9uYWwgaXMgZW5hYmxlZFxuICAgICAgJHZhcmlhYmxlLXVuaXQ6IGlmKCRyZnMtdHdvLWRpbWVuc2lvbmFsLCB2bWluLCB2dyk7XG5cbiAgICAgIC8vIENhbGN1bGF0ZSB0aGUgdmFyaWFibGUgd2lkdGggYmV0d2VlbiAwIGFuZCAkcmZzLWJyZWFrcG9pbnRcbiAgICAgICR2YXJpYWJsZS13aWR0aDogI3skZnMtZGlmZiAqIDEwMCAvICRyZnMtYnJlYWtwb2ludH0jeyR2YXJpYWJsZS11bml0fTtcblxuICAgICAgLy8gU2V0IHRoZSBjYWxjdWxhdGVkIGZvbnQtc2l6ZVxuICAgICAgJHJmcy1mbHVpZDogY2FsYygjeyRtaW4td2lkdGh9ICsgI3skdmFyaWFibGUtd2lkdGh9KSAjeyRyZnMtc3VmZml4fTtcblxuICAgICAgLy8gQnJlYWtwb2ludCBmb3JtYXR0aW5nXG4gICAgICAkbXEtdmFsdWU6IGlmKCRyZnMtYnJlYWtwb2ludC11bml0ID09IHB4LCAjeyRyZnMtYnJlYWtwb2ludH1weCwgI3skcmZzLWJyZWFrcG9pbnQgLyAkcmZzLXJlbS12YWx1ZX0jeyRyZnMtYnJlYWtwb2ludC11bml0fSk7XG5cbiAgICAgIEBpbmNsdWRlIF9yZnMtZGlzYWJsZS1jbGFzcyB7XG4gICAgICAgIGZvbnQtc2l6ZTogI3skcmZzLXN0YXRpY30jeyRyZnMtc3VmZml4fTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgX3Jmcy1tZWRpYS1xdWVyeSgkbXEtdmFsdWUpIHtcbiAgICAgICAgQGluY2x1ZGUgX3Jmcy1lbmFibGUtY2xhc3Mge1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHJmcy1mbHVpZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEluY2x1ZGUgc2FmYXJpIGlmcmFtZSByZXNpemUgZml4IGlmIG5lZWRlZFxuICAgICAgICBtaW4td2lkdGg6IGlmKCRyZnMtc2FmYXJpLWlmcmFtZS1yZXNpemUtYnVnLWZpeCwgKDAgKiAxdncpLCBudWxsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVGhlIGZvbnQtc2l6ZSAmIHJlc3BvbnNpdmUtZm9udC1zaXplIG1peGlucyB1c2UgUkZTIHRvIHJlc2NhbGUgdGhlIGZvbnQgc2l6ZVxuQG1peGluIGZvbnQtc2l6ZSgkZnMsICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIHJmcygkZnMsICRpbXBvcnRhbnQpO1xufVxuXG5AbWl4aW4gcmVzcG9uc2l2ZS1mb250LXNpemUoJGZzLCAkaW1wb3J0YW50OiBmYWxzZSkge1xuICBAaW5jbHVkZSByZnMoJGZzLCAkaW1wb3J0YW50KTtcbn1cbiIsIi8vIEZpeCB0aGUgaXNzdWUgd2hlcmUgdGhlIFdQIGFkbWluLWJhciBvdmVybGFwcyB0aGUgbW9iaWxlIG1lbnVcbiN3cGFkbWluYmFyIHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG59XG5cbi8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBXUCBhZG1pbi1iYXIgZG9lcyBub3Qgb3ZlcmxhcCBGb3VuZGF0aW9uIGNvbXBvbmVudHNcbmJvZHkuYWRtaW4tYmFyIHtcbiAgLy8gT2Zmc2V0IHN0aWNreSB0b3AgYmFyXG4gICYuZi10b3BiYXItZml4ZWQge1xuICAgIC5zdGlja3kuZml4ZWQge1xuICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMzIpO1xuICAgIH1cbiAgfVxuICAvLyBPZmZzZXQgbW9iaWxlIG9mZi1jYW52YXMgbWVudVxuICAmLm9mZmNhbnZhcyB7XG4gICAgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gICAgICB0b3A6IHJlbS1jYWxjKDQ2KTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoNzgzKSB7XG4gICAgICAgIHRvcDogcmVtLWNhbGMoMzIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLndwLWNhcHRpb24ge1xuICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgLy8gU3RvcCBmaWd1cmUgaW1hZ2UgYnJlYWtpbmcgb24gbW9iaWxlLlxuICAmLmFsaWdubGVmdCxcbiAgJi5hbGlnbnJpZ2h0LFxuICAmLmFsaWduY2VudGVyIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnAud3AtY2FwdGlvbi10ZXh0IHtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGNvbG9yOiAjNjY2O1xuICBwYWRkaW5nOiByZW0tY2FsYygxMCkgMDtcbn1cblxuLmFsaWdubGVmdDpub3QoLmJsb2NrKSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICBtYXJnaW46IDA7XG59XG5cbi5hbGlnbnJpZ2h0Om5vdCguYmxvY2spIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIG1hcmdpbjogMDtcbn1cblxuLmFsaWduY2VudGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5nYWxsZXJ5IHtcbiAgQGluY2x1ZGUgeHktZ3JpZDtcbiAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUpO1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDkge1xuICAgICYuZ2FsbGVyeS1jb2x1bW5zLSN7JGl9IHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtbGF5b3V0KDIsIFwiLmdhbGxlcnktaXRlbVwiLCB0cnVlKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICYuZ2FsbGVyeS1jb2x1bW5zLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoXG4gICAgICAgICAgNCxcbiAgICAgICAgICBcIi5nYWxsZXJ5LWl0ZW1cIixcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIChcbiAgICAgICAgICAgIHNtYWxsOiAzMHB4LFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgJi5nYWxsZXJ5LWNvbHVtbnMtI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dChcbiAgICAgICAgICAkaSxcbiAgICAgICAgICBcIi5nYWxsZXJ5LWl0ZW1cIixcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIChcbiAgICAgICAgICAgIHNtYWxsOiAzMHB4LFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmdhbGxlcnktaWNvbiA+IGEge1xuICAgIEBpbmNsdWRlIHRodW1ibmFpbDtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWwtbGluaztcbiAgfVxuICAuZ2FsbGVyeS1pY29uID4gaW1nIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBtYXggd2lkdGggY29udGFpbmVyLCBkZXNpZ25lZCB0byBob3VzZSB5b3VyIGdyaWQgY29udGVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRncmlkLWNvbnRhaW5lcl0gLSBhIHdpZHRoIHRvIGxpbWl0IHRoZSBjb250YWluZXIgdG8uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkaW5nIFskZ3JpZC1jb250YWluZXItcGFkZGluZ10gLSBwYWRkaW5ncyBvZiB0aGUgY29udGFpbmVyLlxuQG1peGluIHh5LWdyaWQtY29udGFpbmVyKFxuICAkd2lkdGg6ICRncmlkLWNvbnRhaW5lcixcbiAgJHBhZGRpbmc6ICRncmlkLWNvbnRhaW5lci1wYWRkaW5nXG4pIHtcbiAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyczogJHBhZGRpbmcsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG5cbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgeW91ciBmbGV4IGNlbGxzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtob3Jpem9udGFsXSAtIEVpdGhlciBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGRpcmVjdGlvbiBvZiBjZWxscyB3aXRoaW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkd3JhcCBbdHJ1ZV0gLSBJZiB0aGUgY2VsbHMgd2l0aGluIHNob3VsZCB3cmFwIG9yIG5vdC5cbkBtaXhpbiB4eS1ncmlkKFxuICAkZGlyZWN0aW9uOiBob3Jpem9udGFsLFxuICAkd3JhcDogdHJ1ZVxuKSB7XG4gICRkaXJlY3Rpb246IGlmKCRkaXJlY3Rpb24gPT0gJ2hvcml6b250YWwnLCByb3csIGNvbHVtbik7XG4gICR3cmFwOiBpZigkd3JhcCwgd3JhcCwgbm93cmFwKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6ICRkaXJlY3Rpb24gJHdyYXA7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGUgZ3V0dGVycyBmb3IgYSBjZWxsL2NvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgZWl0aGVyIG1hcmdpbiBvciBwYWRkaW5nLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkbmVnYXRpdmUgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gYXBwbHkgdGhlIGd1dHRlciBhcyBhIG5lZ2F0aXZlIHZhbHVlLiBDb21tb25seSB1c2VkIGZvciBuZXN0ZWQgZ3JpZHMuXG5AbWl4aW4geHktZ3V0dGVycyhcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJG5lZ2F0aXZlOiBmYWxzZVxuKSB7XG4gICRvcGVyYXRvcjogaWYoJG5lZ2F0aXZlLCAnLScsICcnKTtcblxuICAvLyBJZiB3ZSBoYXZlIGRlY2xhcmVkIG5lZ2F0aXZlIGd1dHRlcnMsIGZvcmNlIHR5cGUgdG8gYG1hcmdpbi5cbiAgJGd1dHRlci10eXBlOiBpZigkbmVnYXRpdmUsICdtYXJnaW4nLCAkZ3V0dGVyLXR5cGUpO1xuXG4gIC8vIE91dHB1dCBvdXIgbWFyZ2luIGd1dHRlcnMuXG4gIEBpZiAodHlwZS1vZigkZ3V0dGVycykgPT0gJ21hcCcpIHtcbiAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZShhdXRvLCAkZ3V0dGVycykge1xuICAgICAgJGd1dHRlcjogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSkgLyAyO1xuXG4gICAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBndXR0ZXIgcG9zaXRpb25cbiAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgI3skZ3V0dGVyLXR5cGV9LSN7JHZhbHVlfTogdW5xdW90ZShcIiN7JG9wZXJhdG9yfSN7JGd1dHRlcn1cIik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICh0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbnVtYmVyJykge1xuICAgICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXJzKSAvIDI7XG5cbiAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBndXR0ZXIgcG9zaXRpb25cbiAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAjeyRndXR0ZXItdHlwZX0tI3skdmFsdWV9OiB1bnF1b3RlKFwiI3skb3BlcmF0b3J9I3skZ3V0dGVyfVwiKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIFNpemVzIGNoaWxkIGVsZW1lbnRzIHNvIHRoYXQgYCRuYCBudW1iZXIgb2YgaXRlbXMgYXBwZWFyIG9uIGVhY2ggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRpc3BsYXkgcGVyIHJvdy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsnLmNlbGwnXSAtIFNlbGVjdG9yKHMpIHRvIHVzZSBmb3IgY2hpbGQgZWxlbWVudHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAgb3IgYHBhZGRpbmdgLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBicmVha3BvaW50IHRvIHVzZSBmb3IgdGhlIGNlbGwgZ2VuZXJhdGlvbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG5AbWl4aW4geHktZ3JpZC1sYXlvdXQoXG4gICRuLFxuICAkc2VsZWN0b3I6ICcuY2VsbCcsXG4gICRndXR0ZXItb3V0cHV0OiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiByaWdodCBsZWZ0LFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRzaXplOiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICYgPiAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwoJHNpemUsICRndXR0ZXItb3V0cHV0LCAkZ3V0dGVycywgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uLCAkYnJlYWtwb2ludCwgJHZlcnRpY2FsKTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlIHRoZSBwZXJjZW50YWdlIHNpemUgb2YgYSBjZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHNpemUgWyRncmlkLWNvbHVtbnNdIC0gU2l6ZSB0byBtYWtlIHRoZSBjZWxsLiBZb3UgY2FuIHBhc3MgYSB2YWx1ZSBpbiBtdWx0aXBsZSBmb3JtYXRzLCBzdWNoIGFzIGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzNgLlxuQGZ1bmN0aW9uIHh5LWNlbGwtc2l6ZShcbiAgJHNpemU6ICRncmlkLWNvbHVtbnNcbikge1xuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgbiBvZiBuIGFuZCBudW1iZXIgY291bnRzXG4gIEBpZiB0eXBlLW9mKCRzaXplKSA9PSAnbnVtYmVyJyB7XG4gICAgQGlmIHVuaXQoJHNpemUpID09ICclJyB7XG4gICAgICAkc2l6ZTogJHNpemU7XG4gICAgfVxuICAgIEBlbHNlIGlmICRzaXplIDwgMSB7XG4gICAgICAkc2l6ZTogcGVyY2VudGFnZSgkc2l6ZSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRzaXplOiBwZXJjZW50YWdlKCRzaXplIC8gJGdyaWQtY29sdW1ucyk7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyc2luZyBcIm4gb2YgblwiIG9yIFwibi9uXCIgZXhwcmVzc2lvbnNcbiAgQGVsc2UgaWYgdHlwZS1vZigkc2l6ZSkgPT0gJ2xpc3QnIHtcbiAgICBAaWYgbGVuZ3RoKCRzaXplKSAhPSAzIHtcbiAgICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciB4eS1jZWxsLXNpemUoKS4gVXNlIHRoZSBmb3JtYXQgXCJuIG9mIG5cIiBvciBcIm4vblwiLic7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRzaXplOiBwZXJjZW50YWdlKG50aCgkc2l6ZSwgMSkgLyBudGgoJHNpemUsIDMpKTtcbiAgICB9XG4gIH1cbiAgLy8gQW55dGhpbmcgZWxzZSBpcyBpbmNvcnJlY3RcbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciB4eS1jZWxsLXNpemUoKS4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiIC8gXCJuL25cIi4nO1xuICB9XG5cbiAgQHJldHVybiAkc2l6ZTtcbn1cblxuLy8vIFNldHMgYmFzZSBmbGV4IHByb3BlcnRpZXMgZm9yIGNlbGxzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIEFjY2VwdHMgYGZ1bGxgLCBgYXV0b2AsIGBzaHJpbmtgIG9yIGBncm93YC5cbkBtaXhpbiB4eS1jZWxsLWJhc2UoJHNpemU6IGZ1bGwpIHtcbiAgQGlmKCRzaXplID09ICdmdWxsJykge1xuICAgIC8vIFRoaXMgaXMgdGhlIGJhc2Ugc3R5bGUsIGFsbCBvdGhlcnMgaW5oZXJpdCBmcm9tIGl0XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWluLWhlaWdodDogMHB4O1xuICAgIG1pbi13aWR0aDogMHB4O1xuICB9XG4gIEBlbHNlIGlmICgkc2l6ZSA9PSAnYXV0bycpIHtcbiAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICB9XG4gIEBlbHNlIGlmICgkc2l6ZSA9PSAnc2hyaW5rJykge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG4gIEBlbHNlIGlmICgkc2l6ZSA9PSAnZ3JvdycpIHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxufVxuXG4vLy8gUmVzZXRzIGEgY2VsbHMgd2lkdGggKG9yIGhlaWdodCBpZiB2ZXJ0aWNhbCBpcyB0cnVlKSBhcyB3ZWxsIGFzIHN0cmlwcyBpdHMgZ3V0dGVycy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXJlc2V0KCR2ZXJ0aWNhbDogdHJ1ZSkge1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgd2lkdGgsIGhlaWdodCk7XG4gICN7JGRpcmVjdGlvbn06IGF1dG87XG4gIG1heC0jeyRkaXJlY3Rpb259OiBub25lO1xufVxuXG4vLyBTZXRzIG91ciBjZWxsIHdpZHRocyBvciBoZWlnaHRzIGRlcGVuZGluZyBvbiBndXR0ZXIgdHlwZS5cbkBtaXhpbiAteHktY2VsbC1wcm9wZXJ0aWVzKCRzaXplLCAkbWFyZ2luLWd1dHRlciwgJHZlcnRpY2FsKSB7XG4gICRkaXJlY3Rpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCBoZWlnaHQsIHdpZHRoKTtcbiAgQGlmKCRzaXplID09ICdmdWxsJykge1xuICAgICR2YWw6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsIDEwMCUsIGNhbGMoMTAwJSAtICN7cmVtLWNhbGMoJG1hcmdpbi1ndXR0ZXIpfSkpO1xuICAgICN7JGRpcmVjdGlvbn06ICR2YWw7XG4gIH1cbiAgQGVsc2UgaWYgKCRzaXplID09ICdhdXRvJykge1xuICAgICN7JGRpcmVjdGlvbn06IGF1dG87XG4gICAgJHZhbDogaWYoJG1hcmdpbi1ndXR0ZXIgPT0gMCwgMTAwJSwgY2FsYygxMDAlIC0gI3tyZW0tY2FsYygkbWFyZ2luLWd1dHRlcil9KSk7XG4gIH1cbiAgQGVsc2UgaWYgKCRzaXplID09ICdzaHJpbmsnKSB7XG4gICAgI3skZGlyZWN0aW9ufTogYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgJHZhbDogaWYoJG1hcmdpbi1ndXR0ZXIgPT0gMCwgI3t4eS1jZWxsLXNpemUoJHNpemUpfSwgY2FsYygje3h5LWNlbGwtc2l6ZSgkc2l6ZSl9IC0gI3tyZW0tY2FsYygkbWFyZ2luLWd1dHRlcil9KSk7XG4gICAgI3skZGlyZWN0aW9ufTogJHZhbDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGNlbGwgZm9yIHlvdXIgZ3JpZC5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoZGVmYXVsdCkgZm9yIDEwMCUgd2lkdGgsIGBhdXRvYCB0byB1c2UgdXAgYXZhaWxhYmxlIHNwYWNlIGFuZCBgc2hyaW5rYCB0byB1c2UgdXAgb25seSByZXF1aXJlZCBzcGFjZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtyaWdodCBsZWZ0XSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyLW91dHB1dDogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkYnAtaXMtZmFsbGJhY2s6IGZhbHNlO1xuXG4gIEBpZigkYnJlYWtwb2ludCA9PSBudWxsKSB7XG4gICAgLy8gSWYgYCRicC1zaXplYCBpcyBhdmFpbGFibGUgdGhlbiB1c2UgdGhpcywgb3RoZXJ3aXNlIHJldmVydCB0byB0aGUgc21hbGxlc3QgYnAuXG4gICAgQGlmKHZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkgYW5kIHR5cGUtb2YoJC16Zi1zaXplKSAhPSAnbnVtYmVyJykgYW5kICQtemYtc2l6ZSAhPSBudWxsIHtcbiAgICAgICRicmVha3BvaW50OiAkLXpmLXNpemU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicmVha3BvaW50OiAkLXpmLXplcm8tYnJlYWtwb2ludDtcbiAgICAgICRicC1pcy1mYWxsYmFjazogdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvLyBHZXQgdGhlIGd1dHRlciBmb3IgdGhlIGdpdmVuIGJyZWFrcG9pbnQvdmFsdWUuXG4gICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG4gIC8vIElmIHRoZSBicmVha3BvaW50IGlzIGEgZmFsbGJhY2ssIHVzZSBhIGZhbGxiYWNrIGd1dHRlciBhcyB3ZWxsXG4gIEBpZiAoJGJwLWlzLWZhbGxiYWNrID09IHRydWUgYW5kICRndXR0ZXIgPT0gbnVsbCkge1xuICAgICRndXR0ZXI6IDA7XG4gIH1cblxuICBAaWYoJGd1dHRlciAhPSBudWxsKSB7XG4gICAgLy8gQmFzZSBmbGV4IHByb3BlcnRpZXNcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoJHNpemUpO1xuXG4gICAgQGlmKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuICAgICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgJGd1dHRlciwgJHZlcnRpY2FsKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgMCwgJHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAaWYgJGd1dHRlci1vdXRwdXQge1xuICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24pO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ3h5LWNlbGw6IG5vIGd1dHRlcnMgd2VyZSBmb3VuZCBpbiBgJGd1dHRlcnNgIGZvciBcIiRicmVha3BvaW50OiAjeyRicmVha3BvaW50fVwiLCBjZWxsIHdhcyBub3QgZ2VuZXJhdGVkYCdcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHNpemVkIGdyaWQuIFVzZWQgdG8gZ2VuZXJhdGUgb3VyIGdyaWQgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoZGVmYXVsdCkgZm9yIDEwMCUgd2lkdGgsIGBhdXRvYCB0byB1c2UgdXAgYXZhaWxhYmxlIHNwYWNlIGFuZCBgc2hyaW5rYCB0byB1c2UgdXAgb25seSByZXF1aXJlZCBzcGFjZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXN0YXRpYyhcbiAgJHNpemU6IGZ1bGwsXG4gICRndXR0ZXItb3V0cHV0OiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnQsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuXG4gICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG4gICRndXR0ZXItcG9zaXRpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCB0b3AgYm90dG9tLCBsZWZ0IHJpZ2h0KTtcblxuICBAaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG4gICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgJGd1dHRlciwgJHZlcnRpY2FsKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgMCwgJHZlcnRpY2FsKTtcbiAgfVxuXG4gIC8vIElmIHdlIHdhbnQgdG8gb3V0cHV0IHRoZSBndXR0ZXJzXG4gIEBpZigkZ3V0dGVyLW91dHB1dCkge1xuICAgIC8vIFRPRE86IEZpZ3VyZSBvdXQgaWYgd2UgbmVlZCB0byBwYXNzIGJyZWFrcG9pbnQgaW4gaGVyZSB0b28uXG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24pO1xuICB9XG59XG4iLCIvKlxuRnJvbnRlbmQgc3R5bGVzIGZvciBndXRlbmJlcmcgYmxvY2tzXG4qL1xuXG4vKiogPT09IEJhc2UgQ29sb3IgUGFsYXR0ZSA9PT0gKi9cbkBlYWNoICRjb2xvciwgJGNvZGUgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG5cbiAgLmhhcy0jeyRjb2xvcn0tYmFja2dyb3VuZC1jb2xvciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZTtcbiAgfVxuXG4gIC5oYXMtI3skY29sb3J9LWNvbG9yIHtcbiAgICAgIGNvbG9yOiAkY29kZTtcbiAgfVxufVxuXG4vKiogPT09IEJ1dHRvbiA9PT0gKi9cbi53cC1ibG9jay1idXR0b24ge1xuXG5cdC8vIGFkZCBnZW5lcmFsIGZvdW5kYXRpb24gYnV0dG9uIHN0eWxpbmdcblx0LndwLWJsb2NrLWJ1dHRvbl9fbGluayB7XG5cdFx0QGV4dGVuZCAuYnV0dG9uICFvcHRpb25hbDtcbiAgICBAZWFjaCAkY29sb3IsICRjb2RlIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuXG4gICAgICAmLmhhcy0jeyRjb2xvcn0tYmFja2dyb3VuZC1jb2xvciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGU7XG4gICAgICB9XG5cbiAgICAgICYuaGFzLSN7JGNvbG9yfS1jb2xvciB7XG4gICAgICAgICAgY29sb3I6ICRjb2RlO1xuICAgICAgfVxuICAgIH1cblx0fVxuXG5cdC8vIGFkZCBzcGVjaWFsIHN0eWxpbmcgZm9yIHNxdWFyZWQgYnV0dG9uc1xuXHQmLmlzLXN0eWxlLXNxdWFyZWQgLndwLWJsb2NrLWJ1dHRvbl9fbGluayB7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0fVxuXG5cdC8vIGFkZCBvdXRsaW5lIHN0eWxlc1xuXHQmLmlzLXN0eWxlLW91dGxpbmUgLndwLWJsb2NrLWJ1dHRvbl9fbGlua3tcblx0XHRAZXh0ZW5kIC5ob2xsb3cgIW9wdGlvbmFsO1xuXHR9XG5cblx0Ly8gc2V0IHRyYW5zcGFyZW50IGJhY2tncm91bmQgdG8gYmxvY2sgZm9yIG91dGxpbmUgYnV0dG9uXG5cdCYuaXMtc3R5bGUtb3V0bGluZSxcblx0Ji5pcy1zdHlsZS1vdXRsaW5lOmhvdmVyLFxuXHQmLmlzLXN0eWxlLW91dGxpbmU6Zm9jdXMsXG5cdCYuaXMtc3R5bGUtb3V0bGluZTphY3RpdmUge1xuICAgIC8vIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIC53cC1ibG9jay1idXR0b25fX2xpbmt7XG4gICAgICAvLyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cdH1cbn1cblxuLyoqID09PSBGaWxlID09PSAqL1xuLndwLWJsb2NrLWZpbGUgLndwLWJsb2NrLWZpbGVfX2J1dHRvbntcbiAgQGluY2x1ZGUgYnV0dG9uKCk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b25cbi8vLy9cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBidXR0b24gZWxlbWVudHMuXG4vLy8gQHR5cGUgRm9udFxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0aXZlIGZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHdpZHRoIGZvciBob2xsb3cgb3V0bGluZSBidXR0b25zXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gb3BhY2l0eSBmb3IgYSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBob2xsb3cgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJSAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWw6IGZsaXAgZnJvbSBtYXJnaW4tcmlnaHQgdG8gbWFyZ2luLWxlZnQgZm9yIGRlZmF1bHRzXG5AaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG59XG5cbi8vLyB0cmFuc2l0aW9ucyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLy8gQWRkaXRpb25hbCByZXNwb25zaXZlIGNsYXNzZXMgZm9yIC5leHBhbmRlZFxuLy8vIEB0eXBlIEJvb2xlYW5cbiRidXR0b24tcmVzcG9uc2l2ZS1leHBhbmRlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFRPRE86IERvY3VtZW50IGJ1dHRvbi1iYXNlKCkgbWl4aW5cbkBtaXhpbiBidXR0b24tYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuXG4gIEBpZiAodHlwZS1vZigkYnV0dG9uLXBhZGRpbmcpID09ICdtYXAnKSB7XG4gICAgQGVhY2ggJHNpemUsICRwYWRkaW5nIGluICRidXR0b24tcGFkZGluZyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICB0cmFuc2l0aW9uOiAkYnV0dG9uLXRyYW5zaXRpb247XG4gIGZvbnQtZmFtaWx5OiAkYnV0dG9uLWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHRoZSBleHBhbmQgYmVoYXZpb3IuIFNldCB0byBgZmFsc2VgIHRvIHJldmVyc2UgdGhpcyBiZWhhdmlvci5cbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcbiAgQGlmICRleHBhbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIEBpZiAkYmFja2dyb3VuZC1ob3ZlciA9PSBhdXRvIHtcbiAgICAkYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6ICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzcyk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBSZW1vdmVzIGJhY2tncm91bmQgZmlsbCBvbiBob3ZlciBhbmQgZm9jdXMgZm9yIGhvbGxvdyBidXR0b25zLlxuQG1peGluIGJ1dHRvbi1ob2xsb3cge1xuICAmLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gICYuZGlzYWJsZWQsXG4gICZbZGlzYWJsZWRdIHtcbiAgICAmLFxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBidXR0b24taG9sbG93LXN0eWxlKFxuICAkY29sb3I6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzLFxuICAkYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhcbikge1xuICAkY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGhvdmVyLWxpZ2h0bmVzcyk7XG5cbiAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgICYuZGlzYWJsZWQsXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGRpc2FibGVkIHN0eWxlcyB0byBhIGJ1dHRvbiBieSBmYWRpbmcgdGhlIGVsZW1lbnQsIHJlc2V0aW5nIHRoZSBjdXJzb3IsIGFuZCBkaXNhYmxpbmcgcG9pbnRlciBldmVudHMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRidXR0b24tY29sb3Jcbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRidXR0b24tY29sb3IsICRidXR0b24tY29sb3ItYWx0KSk7XG4gIH1cblxuICBvcGFjaXR5OiAkYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRyb3Bkb3duIGFycm93IHRvIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSBbMC40ZW1dIC0gU2l6ZSBvZiB0aGUgYXJyb3cuIFdlIHJlY29tbWVuZCB1c2luZyBhbiBgZW1gIHZhbHVlIHNvIHRoZSB0cmlhbmdsZSBzY2FsZXMgd2hlbiB1c2VkIGluc2lkZSBkaWZmZXJlbnQgc2l6ZXMgb2YgYnV0dG9ucy5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgW3doaXRlXSAtIENvbG9yIG9mIHRoZSBhcnJvdy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9mZnNldCBbJGJ1dHRvbi1wYWRkaW5nXSAtIERpc3RhbmNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uLiBEZWZhdWx0cyB0byB3aGF0ZXZlciB0aGUgcmlnaHQgcGFkZGluZyBvZiBhIGJ1dHRvbiBpcy5cbkBtaXhpbiBidXR0b24tZHJvcGRvd24oXG4gICRzaXplOiAwLjRlbSxcbiAgJGNvbG9yOiAkd2hpdGUsXG4gICRvZmZzZXQ6IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpXG4pIHtcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCBkb3duKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjRlbTsgLy8gQWxpZ25zIHRoZSBhcnJvdyB3aXRoIHRoZSB0ZXh0IG9mIHRoZSBidXR0b25cblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogI3skZ2xvYmFsLXJpZ2h0fTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG5cbiAgQGlmICRzdHlsZSA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkc3R5bGUgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICBAaWYgJGJ1dHRvbi1yZXNwb25zaXZlLWV4cGFuZGVkIHtcbiAgICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCN7JHNpemV9IG9ubHkpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LW9ubHktZXhwYW5kZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCN7JHNpemV9IGRvd24pIHtcbiAgICAgICAgICAgICYuI3skc2l6ZX0tZG93bi1leHBhbmRlZCB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgjeyRzaXplfSkge1xuICAgICAgICAgICAgJi4jeyRzaXplfS1leHBhbmRlZCB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLiN7JG5hbWV9LmRyb3Bkb3duOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3R5bGVcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcblxuICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQoJGNvbG9yLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhvbGxvdyBzdHlsZVxuICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICYuaG9sbG93IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2xlYXIgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGNsZWFyIHtcbiAgICAgICYuY2xlYXIge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlO1xuXG4gICAgICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICYsICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuXG4gICAgICAgICAgICAmLCAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICYsXG4gICAgICAgICAgICAgICYuZGlzYWJsZWQsXG4gICAgICAgICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRHJvcGRvd24gYXJyb3dcbiAgICAmLmRyb3Bkb3duIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kcm9wZG93bjtcblxuICAgICAgQGlmICRidXR0b24tZmlsbCA9PSBob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaG9sbG93LCAmLmNsZWFyIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJ1dHRvbiB3aXRoIGRyb3Bkb3duIGFycm93IG9ubHlcbiAgICAmLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICAgIHRvcDogLTAuMWVtO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIH1cbiAgfVxuXG4gIGEuYnV0dG9uIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIiRmb290ZXItdGV4dC1jb2xvcjogJHdoaXRlO1xuJGZvb3Rlci1mb250LXNpemU6IDE0cHg7XG4kZm9vdGVyLWZvbnQtc2l6ZS1zbWFsbDogMTJweDtcblxuLmZvb3RlciB7XG4gIGNvbG9yOiAkZm9vdGVyLXRleHQtY29sb3I7XG5cbiAgcCxcbiAgbGksXG4gIGEge1xuICAgIGZvbnQtc2l6ZTogJGZvb3Rlci1mb250LXNpemU7XG4gIH1cblxuICAmX19yb3cge1xuICAgIEBleHRlbmQgLm1vbi1yb3c7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gVE9QIFNFQ1RJT05cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3RvcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogMyAwIDA7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gQk9UVE9NIFNFQ1RJT05cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2JvdHRvbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgZm9udC1zaXplOiAkZm9vdGVyLWZvbnQtc2l6ZS1zbWFsbDtcbiAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgKiAyIDA7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICBwLFxuICAgIGxpLFxuICAgIGEge1xuICAgICAgZm9udC1zaXplOiAkZm9vdGVyLWZvbnQtc2l6ZS1zbWFsbDtcbiAgICB9XG4gIH1cblxuICAmX19ib3R0b20tcm93IHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG4gIH1cblxuICAmX19ib3R0b20tbGVmdC1wb3J0aW9uIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtYmFzaXM6IDUwJTtcbiAgICB9XG4gIH1cblxuICAmX19ib3R0b20tcmlnaHQtcG9ydGlvbiB7XG4gICAgbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW47XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtYmFzaXM6IDUwJTtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fbGVnYWwtdGV4dCxcbiAgJl9fY3JlZGl0cyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFdJREdFVFNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3dpZGdldHMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgICYgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICYgPiAqIHtcbiAgICAgICAgZmxleDogMCAwIDMzLjMzJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAud2lkZ2V0LXRpdGxlIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG5cbiAgLnRleHR3aWRnZXQge1xuICAgICYgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuZm9vdGVyLXdpZGdldHMge1xuICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICogMztcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBCQVNJQyBVTCBTVFlMRVNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIHVsIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgJi5mb290ZXItbGVnYWwtbWVudSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICB9XG5cbiAgICAgIGxpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2xvYmFsLW1hcmdpbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gU09DSUFMIElDT04gU0hPUlRDT0RFXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19zb2NpYWwge1xuICAgIG1hcmdpbjogJGdsb2JhbC1tYXJnaW4gYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtYXgtd2lkdGg6IDI1MHB4O1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIExJTktTXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBhIHtcbiAgICBjb2xvcjogJGZvb3Rlci10ZXh0LWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufSAvL2Zvb3RlclxuIiwiJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAxO1xuJGRlZmF1bHQtZ3JpZC1nYXA6IDIwcHg7XG5cbkBtaXhpbiBtb24tZ3JpZChcbiAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zLFxuICAkZ3JpZC1nYXA6ICRkZWZhdWx0LWdyaWQtZ2FwXG4pIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWdhcDogJGdyaWQtZ2FwO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KCRncmlkLWNvbHVtbnMsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxufVxuXG4vLyBEZWZhdWx0IGdyaWQuXG4ubW9uLWdyaWQge1xuICBAaW5jbHVkZSBtb24tZ3JpZCgpO1xuXG4gICYgPiAqIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcblxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIDIgY29sdW1uIGxheW91dC5cbiAgJi0tMiB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIEBpbmNsdWRlIG1vbi1ncmlkKDIpO1xuXG4gICAgICAmID4gKiB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoNTAlIC0gI3skZ2xvYmFsLW1hcmdpbn0pO1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoNTAlIC0gI3skZ2xvYmFsLW1hcmdpbn0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIDMgY29sdW1uIGxheW91dC5cbiAgJi0tMyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIEBpbmNsdWRlIG1vbi1ncmlkKDMpO1xuXG4gICAgICAmID4gKiB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMzMuMzMlIC0gI3skZ2xvYmFsLW1hcmdpbn0pO1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMzMuMzMlIC0gI3skZ2xvYmFsLW1hcmdpbn0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIDQgY29sdW1uIGxheW91dC5cbiAgJi0tNCB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIEBpbmNsdWRlIG1vbi1ncmlkKDQpO1xuXG4gICAgICAmID4gKiB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMjUlIC0gI3skZ2xvYmFsLW1hcmdpbn0pO1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMjUlIC0gI3skZ2xvYmFsLW1hcmdpbn0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFRlYW0gYXJjaGl2ZSBncmlkLlxuICAmLS10ZWFtIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgQGluY2x1ZGUgbW9uLWdyaWQoMik7XG5cbiAgICAgICYgPiAqIHtcbiAgICAgICAgZmxleC1iYXNpczogY2FsYyg1MCUgLSAjeyRnbG9iYWwtbWFyZ2lufSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgQGluY2x1ZGUgbW9uLWdyaWQoNCk7XG5cbiAgICAgICYgPiAqIHtcbiAgICAgICAgZmxleC1iYXNpczogY2FsYygyNSUgLSAjeyRnbG9iYWwtbWFyZ2lufSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi0tYXJjaGl2ZSB7XG4gICAgQGV4dGVuZCAubW9uLWdyaWQtLTQ7XG4gIH1cbn1cblxuLy8gTWl4aW4gdG8gZGVmaW5lIHdpZHRoIG9mIGFuIGVsZW1lbnQgaW4gMTIgY29sdW1uIGdyaWQuXG5AbWl4aW4gbW9uLWNvbHMoJGdyaWQtY29sdW1uczogJGRlZmF1bHQtY29sdW1uLWNvdW50KSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoI3skZ3JpZC1jb2x1bW5zfSAvIDEyICogMTAwJSk7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG59XG4iLCJcbi8vIE1haW4gY29udGVudCBhcmVhXG4ubWFpbi1jb250ZW50IHtcblxuICAvLyBDb250ZW50IHVzaW5nIG5vbiBmbGV4aWJsZSwgY2xhc3NpYyBlZGl0b3IuIFVzZWZ1bCBmb3IgaW1wb3J0ZWQgYmxvZyBhcnRpY2xlc1xuICAmLS1jbGFzc2ljIHtcbiAgICBAaW5jbHVkZSBtb24tY29scyg4KTtcbiAgfVxufVxuIiwiLmJyZWFkY3J1bWJzIHtcbiAgQGV4dGVuZCAuYmxvY2stLXNtYWxsO1xuXG4gIC5jdXJyZW50LWl0ZW0ge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICB9XG59XG4iLCIuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJvcmRlci13aWR0aDogMnB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBjb2xvcjogJHdoaXRlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICRnbG9iYWwtcGFkZGluZyAqIDI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgZm9udC1zaXplOiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUHJpbWFyeSBidXR0b25cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUHJpbWFyeVxuICAmLnByaW1hcnksXG4gICYtLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgfVxuICB9IC8vIHByaW1hcnlcblxuICAvLyBQcmltYXJ5IG91dGxpbmVkIGJ1dHRvblxuICAmLS1vdXRsaW5lLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuICB9IC8vLS1vdXRsaW5lLXByaW1hcnlcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gU2Vjb25kYXJ5IGJ1dHRvblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBTZWNvbmRhcnlcbiAgJi0tc2Vjb25kYXJ5LFxuICAmLnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgfVxuICB9IC8vIHNlY29uZGFyeVxuXG4gIC8vIFNlY29uZGFyeSBvdXRsaW5lZCBidXR0b25cbiAgJi0tb3V0bGluZS1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gIH0gLy8tLW91dGxpbmUtc2Vjb25kYXJ5XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFdoaXRlIGJ1dHRvblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBXaGl0ZSBidXR0b25cbiAgJi0td2hpdGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWNvbG9yOiAkd2hpdGU7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbiAgfSAvLy0td2hpdGVcblxuICAvLyBXaGl0ZSBvdXRsaW5lZCBidXR0b25cbiAgJi0tb3V0bGluZS13aGl0ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkd2hpdGU7XG4gICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICBib3JkZXItY29sb3I6ICR3aGl0ZTtcbiAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgIH1cbiAgfSAvLy0tb3V0bGluZS13aGl0ZVxuXG4gIC8vIFNtYWxsIGJ1dHRvbi5cbiAgJi0tc21hbGwge1xuICAgIHBhZGRpbmctdG9wOiAkZ2xvYmFsLXBhZGRpbmcgKiAwLjg1O1xuICAgIHBhZGRpbmctYm90dG9tOiAkZ2xvYmFsLXBhZGRpbmcgKiAwLjg7XG4gICAgbWluLWhlaWdodDogcmVtX2NhbGMoNDApO1xuICB9XG59IC8vYnV0dG9uXG4iLCIvLyBEZWZhdWx0IGNhcmQgc3R5bGluZy4gU3RhbmRhcmQgYm94IGxheW91dCB3aXRoIGJvcmRlci5cbi5jYXJkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICBib3gtc2hhZG93OiAkZ2xvYmFsLWJveC1zaGFkb3c7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG5cbiAgJjpob3ZlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gIC8vIEZvcmNlIHRoZSBpbWFnZSB0byB1c2UgYSAxNi85IHJhdGlvLCBjaGFuZ2UgYWNjb3JkaW5nbHkuXG4gICZfX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctdG9wOiAoMSAvIDEpICogMTAwJTtcbiAgfVxuXG4gIC8vIFRoZSBhY3R1YWwgaW1nIGZpbGUsIHRoZSBjbGFzcyBpcyBhZGRlZCBpbiBjYXJkLnBocC5cbiAgJl9faW1hZ2UsXG4gIHBpY3R1cmUge1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJi5jb250YWluIHtcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgKiAyO1xuICAgIH1cbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgLyAyO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIEBleHRlbmQgaDU7XG5cbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAmX19leGNlcnB0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgJl9fY2F0ZWdvcnkge1xuICAgIGNvbG9yOiAkZGFyay1ncmF5O1xuICB9XG5cbiAgJl9fZm9vdGVyIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgIHBhZGRpbmc6IDAgJGdsb2JhbC1wYWRkaW5nICogMiAkZ2xvYmFsLXBhZGRpbmcgKiAyO1xuICB9XG5cbiAgJi0tc2VhcmNoIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWluLWhlaWdodDogMjY0cHg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNlY29uZGFyeS1jb2xvciwgMC41NSk7XG4gICAgfVxuICB9XG59XG5cbi8vIFRlYW0gY2FyZC5cbi5jYXJkLS10ZWFtIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIC5jYXJkX19pbWFnZSxcbiAgcGljdHVyZSB7XG4gICAgb2JqZWN0LWZpdDogbm9uZTtcblxuICAgIGltZyB7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgfVxuICB9XG59XG5cbi8vIEV2ZW50IGNhcmQuXG4uY2FyZC0tZXZlbnQge1xuICAmX19ldmVudC12ZW51ZSB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gIH1cblxuICAmX19ldmVudC1kYXRlIHtcbiAgICBjb2xvcjogJG1lZGl1bS1ncmF5O1xuICB9XG59XG5cbi8vIFJlc291cmNlIGNhcmRcbi5jYXJkLS1yZXNvdXJjZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiAgcGFkZGluZzogMDtcblxuICAuY2FyZF9fY29udGVudCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogMiAkZ2xvYmFsLXBhZGRpbmcgKiAyIDA7XG4gIH1cblxuICAvLyBJY29uIGFuZCB0aXRsZSB3cmFwcGVyLlxuICAmX19oZWFkaW5nIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICB9XG5cbiAgLy8gTW92ZSB0aGUgaWNvbiB0byB0aGUgcmlnaHQgb2YgdGhlIHRpdGxlLlxuICAmX19pY29uIHtcbiAgICBmbGV4OiAwIDAgMTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAkZ2xvYmFsLW1hcmdpbjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW4tbGVmdDogJGdsb2JhbC1tYXJnaW4gKiAzO1xuICAgIH1cbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBAZXh0ZW5kIGg0O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1hcmdpbjogMDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2U7XG4gIH1cbn1cbiIsIi5kb3R0ZWQge1xuICBib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgbWFyZ2luOiAycmVtIDA7XG59XG4iLCIuc29jaWFsLWxpbmsge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8vOiByZW1fY2FsYygzMnB4KTtcbiAgbWFyZ2luOiAwICRnbG9iYWwtbWFyZ2luO1xuICBwYWRkaW5nOiByZW1fY2FsYyg2cHgpIDAgMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLW91dDtcbiAgLy93aWR0aDogcmVtX2NhbGMoMzJweCk7XG5cbiAgJjpob3ZlciB7XG4gICAgb3BhY2l0eTogMC44O1xuICB9XG5cbiAgLmljb24tbGlua2VkaW4ge1xuICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gIH1cblxuICBzdmcge1xuICAgIG1heC1oZWlnaHQ6IDM1cHg7XG4gIH1cbn1cblxuLnN2Zy1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDFyZW07XG4gIHRyYW5zaXRpb246IGZpbGwgMC4ycyBlYXNlLW91dDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgd2lkdGg6IDFyZW07XG4gIHN0cm9rZS13aWR0aDogMDtcbiAgc3Ryb2tlOiAkYmxhY2s7XG4gIGZpbGw6ICRibGFjaztcblxuICAmLS1zb2NpYWwge1xuICAgIGhlaWdodDogcmVtX2NhbGMoMjBweCk7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHdpZHRoOiByZW1fY2FsYygyMHB4KTtcbiAgICBzdHJva2U6ICR3aGl0ZTtcbiAgICBmaWxsOiAkd2hpdGU7XG4gIH1cbn1cbiIsImxhYmVsIHtcbiAgc3BhbiB7XG4gICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbiAgfVxufVxuIiwiLy8gQXBwbHkgb3V0bGluZSBzdHlsZXMgb25seSB3aGVuIGlucHV0IG1ldGhvZCBpcyBrZXlib2FyZFxuLy8gcmVtb3ZlIDpmb2N1cyBzdHlsZSB2aWEgV2hhdCBJbnB1dCB1c2luZyBwcm9ncmVzc2l2ZSBlbmhhbmNlbWVudFxuLy8gc28gOmZvY3VzIGlzbid0IGxlZnQgYnJva2VuIGlmIEphdmFTY3JpcHQgZmFpbHNcblxuW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gYTpmb2N1cywgYnV0dG9uOmZvY3VzXG5bZGF0YS13aGF0aW5wdXQ9XCJ0b3VjaFwiXSBhOmZvY3VzLCBidXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4vLyBJbmxpbmUgbGluayBzdHlsZS5cbi5saW5rLWlubGluZSB7XG5cdGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcblx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHRmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbWVkaXVtO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSAuMnMgZWFzZS1pbjtcblxuXHQmOmhvdmVyIHtcblx0XHRib3JkZXItYm90dG9tOiAycHggc29saWQgcmdiYSggJHByaW1hcnktY29sb3IsIDAgKTtcblx0fVxuXG4gICYtLXNlY29uZGFyeSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRzZWNvbmRhcnktY29sb3I7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSAuMnMgZWFzZS1pbjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEoICRzZWNvbmRhcnktY29sb3IsIDAgKTtcbiAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEFuY2hvciBpbiBoZWFkZXIgZm9yIHNraXBwaW5nIHRvIHBhZ2UgY29udGVudCBvbiBhbGwgcGFnZXMuXG4uc2tpcC10by1jb250ZW50LWxpbmsge1xuICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgaGVpZ2h0OiA0MHB4O1xuICBsZWZ0OiAxMHB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA0MHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHRvcDogMDtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgICB6LWluZGV4OiAyO1xuICB9XG59XG4iLCIvLyBDdXN0b20gTGlzdCBvcHRpb25zLlxuLmxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tbGVmdDogMDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIGJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgY29sdW1uLWZpbGw6IGJhbGFuY2U7XG4gICAgY29sdW1uLWdhcDogJGdsb2JhbC1tYXJnaW4gKiAyO1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuXG4gIGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAvIDEuMjtcbiAgfVxuXG4gICYtLXR3byB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGNvbHVtbnM6IDI7XG4gICAgfVxuICB9XG5cbiAgLy8mLS10aHJlZSB7XG4gIC8vICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAvLyAgICBjb2x1bW5zOiAzO1xuICAvLyAgfVxuICAvL31cbiAgLy9cbiAgLy8mLS1mb3VyIHtcbiAgLy8gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gIC8vICAgIGNvbHVtbnM6IDQ7XG4gIC8vICB9XG4gIC8vfVxuXG4gICYtLWRvd25sb2FkIHtcbiAgICBsaSB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0bztcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL2Rvd25sb2FkLWljb24uc3ZnJyk7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2xvYmFsLW1hcmdpbiAvIDI7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLXRpY2sge1xuICAgIGxpIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvdGljay5zdmcnKTtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS1zdHlsZWQtYnVsbGV0IHtcbiAgICBsaSB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBsaW5lLWhlaWdodDogMS4zO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRnbG9iYWwtbWFyZ2luIC8gMS43NTtcbiAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgZmxleDogMCAwIDEwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiIsIi5wYWdpbmF0aW9uIHtcbiAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG5cbiAgYSxcbiAgc3BhbiB7XG4gICAgQGV4dGVuZCBoNjtcblxuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAvIDIgJGdsb2JhbC1wYWRkaW5nO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gIH1cblxuICAvLyBQcmV2aW91cyBhbmQgbmV4dCBidXR0b25zLlxuICAucHJldixcbiAgLm5leHQge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1tYXJnaW47XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBwYWRkaW5nOiAwICRnbG9iYWwtcGFkZGluZztcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5uZXh0OjphZnRlciB7XG4gICAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2NoZXZyb24tcmlnaHQuc3ZnXCIpO1xuICAgIG1hcmdpbi1sZWZ0OiAkZ2xvYmFsLW1hcmdpbjtcbiAgfVxuXG4gIC5wcmV2OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy9jaGV2cm9uLXJpZ2h0LnN2Z1wiKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIG1hcmdpbi1yaWdodDogJGdsb2JhbC1tYXJnaW47XG4gIH1cblxuICAuY3VycmVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgLyAyICRnbG9iYWwtcGFkZGluZztcbiAgfVxufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTdHlsZXMgZm9yIHNlYXJjaCBmb3JtIGluIGhlYWRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jc2VhcmNoZm9ybSB7XG4gIC8vIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgLy8gYm9yZGVyLXRvcDogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gIC8vIGxlZnQ6IDA7XG4gIC8vIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAqIDEuNTtcbiAgLy8gcG9zaXRpb246IGFic29sdXRlO1xuICAvLyB0b3A6IC0xNTBweDtcbiAgLy8gd2lkdGg6IDEwMCU7XG4gIC8vIHotaW5kZXg6IDI7XG5cbiAgLy8gUmVtb3ZlIHRoZSBkZWZhdWx0IGZvY3VzIHN0YXRlIGZyb20gdGhlIGRpdiBhcyB0aGUgb3BlbmluZyBzaG91bGQgYmUgZW5vdWdoIG9mIGEgdmlzdWFsIHF1ZS5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICBoZWlnaHQ6IDRyZW07XG4gICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgIG1pbi13aWR0aDogMjgwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRnbG9iYWwtcGFkZGluZztcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBtaW4td2lkdGg6IDM1MHB4O1xuICAgICAgfVxuXG4gICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVkdWNlIHRoZSBkZWZhdWx0IGJ1dHRvbiBwYWRkaW5nLlxuICAgIC5pbnB1dC1ncm91cC1idXR0b24gLmJ1dHRvbiB7XG4gICAgICBAZXh0ZW5kIC5idXR0b247XG5cbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBtaW4td2lkdGg6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctbGVmdDogJGdsb2JhbC1wYWRkaW5nICogMjtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRnbG9iYWwtcGFkZGluZyAqIDI7XG4gICAgICBoZWlnaHQ6IDRyZW07XG4gICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gUG9zaXRpb24gdGhlIHNlYXJjaGZyb20gc28gaXQgZG9lc24ndCBvdmVybGFwIHRoZSBoZWFkZXIuXG4gIC8vICYuaXMtYWN0aXZlIHtcbiAgLy8gICB0b3A6IDg1cHg7XG4gIC8vIH1cblxuICBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gICAgaGVpZ2h0OiA0cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4ucmV2ZWFsLS1zZWFyY2gtbW9kYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZWNvbmRhcnktY29sb3IsIDAuOTUpO1xufVxuXG4uc2VhcmNoLW1vZGFsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIHJpZ2h0OiAkZ2xvYmFsLW1hcmdpbiAqIDI7XG4gICAgdG9wOiAkZ2xvYmFsLW1hcmdpbiAqIDI7XG4gICAgZm9udC1zaXplOiAzZW07XG4gIH1cbn1cbiIsIi5zZWFyY2gtc25pcHBldCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4gIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICogMjtcbiAgcGFkZGluZy1ib3R0b206ICRnbG9iYWwtcGFkZGluZyAqIDI7XG5cbiAgJjpsYXN0LW9mLXR5cGUge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxuXG4gICZfX2xhYmVsIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgQGV4dGVuZCAuaDM7XG5cbiAgICBtYXJnaW46ICRnbG9iYWwtbWFyZ2luIDA7XG4gIH1cblxuICAmX190aXRsZS1saW5rIHtcbiAgICBjb2xvcjogJGhlYWRlci1jb2xvcjtcbiAgICB0cmFuc2l0aW9uOiAuMnMgbGluZWFyIGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgfVxuICB9XG59XG4iLCIuc2l0ZS10aXRsZS1iYXIge1xuXHRwYWRkaW5nOiByZW1fY2FsYyg1KSAkZ2xvYmFsLXBhZGRpbmc7XG59IiwiLndpZGdldCB7XG4gIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICogMjtcbn1cblxuLndpZGdldC10aXRsZSB7XG4gIEBleHRlbmQgaDY7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xufVxuIiwiLmFyY2hpdmVfX3RheG9ub215LWZpbHRlciB7XG4gIEBleHRlbmQgLmJsb2NrLS1zbWFsbDtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxuXG4gICNkeW5hbWljX3NlYXJjaGZvcm0ge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgbWFyZ2luOiAwIDAgMCAkZ2xvYmFsLW1hcmdpbjtcbiAgICAgIG1heC13aWR0aDogNTAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGZsZXg6IDAgMCAzNSU7XG4gICAgICBtYXgtd2lkdGg6IDM1JTtcbiAgICB9XG4gIH1cblxuICAuZHluYW1pYy10YXhvbm9teS1maWx0ZXIge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBmbGV4OiAwIDAgMzAlO1xuICAgICAgbWFyZ2luOiAwIDAgMCAkZ2xvYmFsLW1hcmdpbjtcbiAgICAgIG1heC13aWR0aDogMzAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGZsZXg6IDAgMCAyMCU7XG4gICAgICBtYXgtd2lkdGg6IDIwJTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3QsXG4gIGlucHV0IHtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgcGFkZGluZzogMCAoJGdsb2JhbC1wYWRkaW5nICogMikgMCAoJGdsb2JhbC1wYWRkaW5nICogMS4yNSk7XG4gIH1cbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU0lURSBIRUFERVJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uc2l0ZS1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGFsbCBsaW5lYXIgMC4zcztcbiAgd2lkdGg6IDEwMCU7XG5cbiAgJi0tZml4ZWQge1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiA5OTtcbiAgfVxuXG4gICYtLXNjcm9sbGVkIHtcbiAgICBib3gtc2hhZG93OiAkZ2xvYmFsLWJveC1zaGFkb3c7XG4gIH1cbn1cblxuYm9keS5hZG1pbi1iYXIge1xuICAuc2l0ZS1oZWFkZXItLWZpeGVkIHtcbiAgICB0b3A6IDQ2cHg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICB0b3A6IDMycHg7XG4gICAgfVxuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVE9QIEJBUlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi50b3AtYmFyIHtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogYXV0bztcbiAgbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgcGFkZGluZzogMCAkZ2xvYmFsLXBhZGRpbmc7XG4gIH1cbiAgJl9fbG9nbyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAxMDBweDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAmX19sZWZ0IHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuXG4gICZfX3JpZ2h0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB9XG5cbiAgJl9fY29tcGFueS1sb2dvIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1heC13aWR0aDogODVweDtcbiAgICBwYWRkaW5nOiA1cHg7XG4gIH1cblxuICAmX19lbGVtZW50cyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBwYWRkaW5nOiAwICRnbG9iYWwtcGFkZGluZztcblxuICAgIC8vIGFsaWduIGFsbCBlbGVtZW50cyB0byB0aGUgcmlnaHRcbiAgICAmLnJpZ2h0IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgLy8ganVzdGlmeSBhbGwgZWxlbWVudHMgc3BhY2UgYmV0d2VlblxuICAgICYuanVzdGlmaWVkIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG4gIH1cblxuICAmX19kZXNrdG9wLXBob25lIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgJl9fc2VhcmNoLWljb24ge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgLyAyO1xuICAgIG1hcmdpbi1yaWdodDogJGdsb2JhbC1tYXJnaW47XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fYnV0dG9ucyB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgbWFyZ2luOiAwICgtJGdsb2JhbC1tYXJnaW4pIDAgMDtcbiAgICB9XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBtYXJnaW46IDAgJGdsb2JhbC1tYXJnaW4gMCAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2J1dHRvbi1vbmUge1xuICAgIEBleHRlbmQgLmJ1dHRvbi0tcHJpbWFyeTtcbiAgfVxufVxuXG4uc2l0ZS1uYXZpZ2F0aW9uX19idXR0b24ge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IHJlbS1jYWxjKDQ4KTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgcmVtLWNhbGMoNSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IHJlbS1jYWxjKDQ4KTtcblxuICAmLWxhYmVsIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoOCk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDgpO1xuICB9XG5cbiAgJi0tcGhvbmUge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoMTYpO1xuICAgICAgbWFyZ2luOiAwIGF1dG8gcmVtLWNhbGMoNSk7XG4gICAgICB3aWR0aDogcmVtLWNhbGMoMTYpO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3Bob25lLnN2Z1wiKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qXG5cdEhhbWJ1cmdlciBTdHlsZXMgd2l0aCBhbmltYXRlZCBsaW5lcy4gX2hhbWJ1cmdlci5zY3NzXG5cdCovXG5cbi5oYW1idXJnZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IGF1dG87XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAvIDI7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHdpZHRoOiBhdXRvO1xuICB6LWluZGV4OiA5O1xuXG4gIC5saW5lIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogM3B4O1xuICAgIG1hcmdpbjogM3B4IDA7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgei1pbmRleDogMjtcbiAgfVxufVxuXG4vLyBUaGUgY2xvc2UgYnV0dG9uIVxuLm1vYmlsZS1oYW1idXJnZXIge1xuICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG59XG4iLCIvLyBTdHlsZXMgZm9yIG9mZmNhbnZhcyBzdHVmZiBfb2ZmY2FudmFzLnNjc3MuXG5cbi8vIERvIG5vdCBtZXNzIHdpdGggdGhpcyBhcyBpdCBhZmZlY3RzIHRoZSBzY3JvbGxlciBzdGlja3kgcG9zaXRpb25pbmcuXG4ub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxufVxuXG4ub2ZmLWNhbnZhcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAmX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgJGdsb2JhbC1wYWRkaW5nICRnbG9iYWwtcGFkZGluZyAqIDM7XG5cbiAgICAubW9iaWxlLWhhbWJ1cmdlciB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2Zvb3RlciB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgcGFkZGluZzogMCAkZ2xvYmFsLXBhZGRpbmcgKiAxLjUgJGdsb2JhbC1wYWRkaW5nICogNDtcblxuICAgIC5idXR0b24ge1xuICAgICAgZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLnBob25lLW51bWJlciB7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbWVkaXVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4gICAgfVxuICB9XG59XG5cbi5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNSk7XG59XG4iLCIvKlxuXHROYXZpZ2F0aW9uIHN0eWxlcyBmb3IgZHJvcGRvd24gJiBtZWdhIG1lbnUgdmFyaWF0aW9uXG5cdCovXG4kbWVnYS1tZW51LXdpZHRoOiAkZ2xvYmFsLXdpZHRoOyAvLyBDaGFuZ2UgdG8gMTAwJSB0byBtYWtlIGZ1bGwgd2lkdGguXG4kZHJvcGRvd24tbWVudS13aWR0aDogcmVtX2NhbGMoMjQwKTtcblxuLmRyb3Bkb3duIHtcbiAgQGluY2x1ZGUgc2hvdy1mb3IobGFyZ2UpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgbGkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICA+IGEge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiAoJGdsb2JhbC1wYWRkaW5nICogMS41KSAkZ2xvYmFsLXBhZGRpbmc7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHVsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSGlnaGxpZ2h0IGN1cnJlbnQgcGFnZSBpdGVtIGluIG1haW4gbmF2IGFuZCBkcm9wZG93bi5cbiAgICAmLmN1cnJlbnQtbWVudS1pdGVtLFxuICAgICYuY3VycmVudC1wYWdlLXBhcmVudCB7XG4gICAgICAmID4gYSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN0eWxlIHRoZSBkcm9wZG93biBwYXJlbnQgbGlua3NcbiAgICAmLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogMnB4IDJweCAwIDA7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6ICRnbG9iYWwtbWFyZ2luO1xuICAgICAgICB0b3A6IGNhbGMoNTAlIC0gNXB4KTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IGVhc2Utb3V0IDAuMnM7XG4gICAgd2lkdGg6ICRkcm9wZG93bi1tZW51LXdpZHRoO1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICBsaSB7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgLy8gTWVnYSBtZW51IHN0eWxlc1xuICAvLyAmLm1lZ2EtbWVudSB7XG4gIC8vICAgbGkge1xuICAvLyAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgLy8gICB9XG5cbiAgLy8gICB1bCB7XG4gIC8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIC8vICAgICBib3gtc2hhZG93OiAwIDRweCAxNHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgLy8gICAgIGxlZnQ6IDA7XG4gIC8vICAgICBtYXJnaW46IGF1dG87XG4gIC8vICAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4gIC8vICAgICByaWdodDogMDtcbiAgLy8gICAgIHRvcDogMTAwJTtcbiAgLy8gICAgIHdpZHRoOiAkbWVnYS1tZW51LXdpZHRoO1xuICAvLyAgICAgZ3JpZC1nYXA6ICRnbG9iYWwtbWFyZ2luO1xuICAvLyAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgLy8gICAgIHotaW5kZXg6IDEwO1xuXG4gIC8vICAgICBsaSB7XG4gIC8vICAgICAgIGZsZXg6IDAgMCAzMy4zMyU7XG5cbiAgLy8gICAgICAgYSB7XG4gIC8vICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG5cbiAgLy8gICAgICAgICAmOmhvdmVyIHtcbiAgLy8gICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gIC8vICAgICAgICAgfVxuICAvLyAgICAgICB9XG5cbiAgLy8gICAgICAgLm1lbnUtZGVzY3JpcHRpb24ge1xuICAvLyAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAvLyAgICAgICAgIHBhZGRpbmc6IDAgMXJlbSAwLjVyZW0gMXJlbTtcbiAgLy8gICAgICAgfVxuICAvLyAgICAgfVxuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC8vIENsYXNzIHRvIGFkZCB1bmRlcmxpbmVkIGxpbmsgc3R5bGVzIGFkZCB0aGlzIHRvIHRoZSBwYXJlbnQgdWwgaW4gbGlicmFyeS9uYXZpZ2F0aW9uLnBocCBvbiBsaW5lIDM1IG9yIDUwLlxuICAmLnVuZGVybGluZWQtbGlua3Mge1xuICAgID4gbGkge1xuICAgICAgbWFyZ2luOiAwICRnbG9iYWwtbWFyZ2luO1xuXG4gICAgICA+IGEge1xuICAgICAgICBib3JkZXItYm90dG9tOiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmN1cnJlbnQtbWVudS1pdGVtLFxuICAgICAgJi5jdXJyZW50LXBhZ2UtcGFyZW50IHtcbiAgICAgICAgJiA+IGEge1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKlxuXHROYXZpZ2F0aW9uIHN0eWxlcyBmb3IgZHJpbGxkb3duIG1lbnUuIF9tb2JpbGUtZHJpbGxkb3duLW1lbnUuc2Nzc1xuXHRAVE9ETyByZW1vdmUgcmVsaWFuY2Ugb24gZm91bmRhdGlvbiBwcmVzcyBkcmlsbGRvd24gbWVudS5cblx0Ki9cblxuLy8gTW9iaWxlIG1lbnUgKERyaWxsZG93bikuXG4uaXMtZHJpbGxkb3duIHtcbiAgbWluLWhlaWdodDogYXV0byAhaW1wb3J0YW50OyAvLyBJbXBvcnRhbnQgbmVlZGVkIHRvIG92ZXJyaWRlIEpTIGluc2VydGlvbiBmcm9tIEZQLlxuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgLy8gSW1wb3J0YW50IG5lZWRlZCB0byBvdmVycmlkZSBKUyBpbnNlcnRpb24gZnJvbSBGUC5cbiAgb3ZlcmZsb3c6IGluaXRpYWw7XG5cbiAgdWwge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIGxpIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgYSB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nIC8gMiAkZ2xvYmFsLXBhZGRpbmcgKiAxLjU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmLmpzLWRyaWxsZG93bi1iYWNrIHtcbiAgICAgIGEge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY2hldnJvbi1yaWdodC5zdmdcIik7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgIG1hcmdpbjogMCAkZ2xvYmFsLW1hcmdpbiAwIDA7XG4gICAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xufVxuXG4uZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2NoZXZyb24tcmlnaHQuc3ZnXCIpO1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiA2cHg7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4iLCIuaGVhZGVyLWJhc2ljIHtcbiAgbWFyZ2luOiAwIGF1dG8gJGdsb2JhbC1tYXJnaW4gKiAyO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAqIDIgMDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAqIDMgMDtcbiAgfVxufVxuIiwiLy8gR2VuZXJpYyBzdHlsaW5nIGZvciBhbGwgYmxvY2tzXG4uYmxvY2sge1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAqIDQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAqIDQ7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIHZpc3VhbCBmb2N1cyBhcm91bmQgdGhlIGRpdiB3aGVuIGEgc21vb3RoIHNjcm9sbCBhbmNob3IgaXMgdXNlZCB0byBsaW5rIHRvIGl0LiBOb3QgdGhlIGJlc3Qgb2YgYWNjZXNzaWJpbGl0eSBwcmFjdGljZXMgYnV0IHRoaXMgd29udCBhZmZlY3Qgc2NyZWVuIHJlYWRlcnMuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJi5hbGlnbnJpZ2h0LFxuICAmLmFsaWdodGxlZnQge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cblxuICAmLS1zbWFsbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gKiAyO1xuICB9XG5cbiAgJi5uby1tYXJnaW4ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAvLyBVc2VkIGZvciBwYWRkaW5nIG91dCB0aGUgZnVsbCB3aWR0aCBibG9ja3Mgd2l0aCBiYWNrZ3JvdW5kIGNvbG9ycy5cbiAgJi0tcGFkZGluZyB7XG4gICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogMiAwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAqIDQgMDtcbiAgICB9XG4gIH1cblxuICAvLyBVc2VkIGZvciBwYWRkaW5nIHRoZSBoZXJvIHVuaXQgYmxvY2suXG4gICYtLXBhZGRpbmctaGVybyB7XG4gICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogNiAwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAqIDEwIDA7XG4gICAgfVxuICB9XG5cbiAgJi0tcGFkZGluZy1zbWFsbCB7XG4gICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogMS41IDA7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogMi41IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gQmFja2dyb3VuZCBjb2xvciBvcHRpb25zLlxuICAmLS1kZWZhdWx0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgJi0tcHJpbWFyeSB7XG4gICAgQGV4dGVuZCAuYmxvY2stLWNvbG9yZWQtdGV4dDtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICB9XG5cbiAgJi0tc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICB9XG5cbiAgLy8gQ2hhbmdlIHRoZSB0ZXh0IGNvbG9yIHdoZW4gYSBibG9jayBiYWNrZ3JvdW5kIGNvbG9yIGhhcyBiZWVuIGFwcGxpZWQuIFRoaXMgY2xhc3MgaXMgYWRkZWQgYXV0b21hdGljYWxseSB0byBiYWNrZ3JvdW5kIGNvbG9yIGJsb2Nrcy5cbiAgJi0tY29sb3JlZC10ZXh0IHtcbiAgICBoMSxcbiAgICBoMixcbiAgICBoMyxcbiAgICBoNCxcbiAgICBoNSxcbiAgICBoNixcbiAgICBwLFxuICAgIGxpLFxuICAgIGxhYmVsLFxuICAgIGNpdGUge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gICAgLmNhcmQge1xuICAgICAgJiAqIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2hlYWRpbmctcm93IHtcbiAgICBAZXh0ZW5kIC5ibG9jay0tc21hbGw7XG4gIH1cblxuICAvLyBIZWFkaW5nIHN0eWxlcyBvbiBhbGwgYmxvY2tzIHRoYXQgaGF2ZSB0aGlzIGZpZWxkLlxuICAmX19oZWFkaW5nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJi0tY2VudGVyIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmLS1zbWFsbCB7XG4gICAgICBAZXh0ZW5kIGgzO1xuICAgIH1cblxuICAgICYtLXVuZGVybGluZSB7XG4gICAgICBAZXh0ZW5kIC5oZWFkaW5nLXVuZGVybGluZSAhb3B0aW9uYWw7XG4gICAgfVxuXG4gICAgJi0tdW5kZXJsaW5lLWNlbnRlciB7XG4gICAgICBAZXh0ZW5kIC5oZWFkaW5nLXVuZGVybGluZS0tY2VudGVyICFvcHRpb25hbDtcbiAgICB9XG4gIH1cblxuICAmX19zdWJoZWFkaW5nIHtcbiAgICBtYXJnaW46ICRnbG9iYWwtbWFyZ2luIDAgMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAmX19oZWFkaW5nLXd5c3l3aWcge1xuICAgICYgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cblxuLm1vbi1yb3cge1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuICBwYWRkaW5nOiAwICRnbG9iYWwtcGFkZGluZztcbiAgd2lkdGg6IDEwMCU7XG59XG4iLCIvLyBBZGQgcGFnZSByZW5kZXJpbmcgcGVyZm9ybWFuY2UgdG8gYWxsIGVsZW1lbnRzIHdpdGggdGhlIGJsb2NrIGNsYXNzLiBodHRwczovL3dlYi5kZXYvY29udGVudC12aXNpYmlsaXR5LyNza2lwcGluZy1yZW5kZXJpbmctd29yay13aXRoLWNvbnRlbnQtdmlzaWJpbGl0eVxuZm9vdGVyIHtcbiAgY29udGVudC12aXNpYmlsaXR5OiBhdXRvO1xufVxuIiwiLm1vbi1hY2NvcmRpb24ge1xuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgfVxuXG4gIC5hY2NvcmRpb24taXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gLyAyO1xuICB9XG5cbiAgLmFjY29yZGlvbi1jb250ZW50IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgfVxuXG4gIC5hY2NvcmRpb24ge1xuICAgIC8vIGNlbnRlciB0aGUgYnV0dG9uIGFuZCBhZGQgbWFyZ2luIHRvcCBhcyB3ZSBjYW50IGtub3cgaWYgdGhpcyB3aWxsIGJlIHVzZWQuXG4gICAgJl9fdmlldy1hbGwge1xuICAgICAgbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW4gKiAzO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRGVmaW5lcyB0aGUgZGVmYXVsdCAyIGNvbHVtbiBncmlkLlxuLmNvbHVtbnNfX2dyaWQge1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC1nYXA6ICRkZWZhdWx0LWdyaWQtZ2FwO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG4gICAgfVxuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAuY29sdW1uc19fY29udGVudCB7XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IGF1dG8gLyBzcGFuIDY7XG4gICAgICB9XG5cbiAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgZmxleC1iYXNpczogY2FsYyg1MCUgLSAjeyRkZWZhdWx0LWdyaWQtZ2FwfSk7XG4gICAgfVxuXG4gIH1cblxuICAvLyBEZWZpbmVzIHRoZSAzIGNvbHVtbiBncmlkLlxuICAmLS0zIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXG4gICAgICAuY29sdW1uc19fY29udGVudCB7XG4gICAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiA0O1xuICAgICAgICB9XG5cbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZmxleC1iYXNpczogY2FsYygzMy4zMyUgLSAjeyRkZWZhdWx0LWdyaWQtZ2FwfSk7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICAvLyBEZWZpbmVzIHRoZSA0IGNvbHVtbiBncmlkLlxuICAmLS00IHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXG4gICAgICAuY29sdW1uc19fY29udGVudCB7XG4gICAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiAzO1xuICAgICAgICB9XG5cbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZmxleC1iYXNpczogY2FsYygyNSUgLSAjeyRkZWZhdWx0LWdyaWQtZ2FwfSk7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICAvLyBEZWZpbmVzIHRoZSAxIHRoaXJkIC0gMiB0aGlyZHMgY29sdW1uIGdyaWQuXG4gICYtLTEtMyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblxuICAgICAgLmNvbHVtbnNfX2NvbnRlbnQge1xuICAgICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogYXV0byAvIHNwYW4gNDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMzMuMzMlIC0gI3skZGVmYXVsdC1ncmlkLWdhcH0pO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogYXV0byAvIHNwYW4gODtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgZmxleC1iYXNpczogY2FsYyg2NiUgLSAjeyRkZWZhdWx0LWdyaWQtZ2FwfSk7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5lcyB0aGUgMiB0aGlyZCAtIDEgdGhpcmRzIGNvbHVtbiBncmlkLlxuICAmLS0zLTEge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cbiAgICAgIC5jb2x1bW5zX19jb250ZW50IHtcbiAgICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IGF1dG8gLyBzcGFuIDg7XG4gICAgICAgIH1cblxuICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDY2JSAtICN7JGRlZmF1bHQtZ3JpZC1nYXB9KTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IGF1dG8gLyBzcGFuIDQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMzMuMzMlIC0gI3skZGVmYXVsdC1ncmlkLWdhcH0pO1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgIH1cbiAgfVxufVxuIiwiLmNvbnRlbnQtaW1hZ2Uge1xuXG4gIC8vIEZpeCBmb3IgdGhlIG1hcmdpbi1ib3R0b20gb3B0aW9uIHRoYXQgbmVlZHMgdG8gYmUgYXBwbGllZCBpbiB0aGUgYmxvY2sgc2V0dGluZ3MuIFdlIG5lZWQgYSBtYXJnaW4gb24gbW9iaWxlIG9ubHlcbiAgJiArIC5jb250ZW50LWltYWdlIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgIG1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luICogMztcbiAgICB9XG4gIH1cblxuICAmX19ncmlkIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgIEBzdXBwb3J0cyhkaXNwbGF5OiBncmlkKSB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICBncmlkLXJvdy1nYXA6ICRkZWZhdWx0LWdyaWQtZ2FwIC8gMjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgQHN1cHBvcnRzKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgZ3JpZC1nYXA6ICRkZWZhdWx0LWdyaWQtZ2FwICogMjtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoIDEyLCAxZnIgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGZsZXgtYmFzaXM6IGNhbGMoNTAlIC0gI3skZ2xvYmFsLW1hcmdpbiAqIDN9KTtcbiAgICAgIG1heC13aWR0aDogY2FsYyg1MCUgLSAjeyRnbG9iYWwtbWFyZ2luICogM30pO1xuICAgIH1cblxuICAgIEBzdXBwb3J0cyhkaXNwbGF5OiBncmlkKSB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICYgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgJiAqOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgJl9fY29udGFpbmVyIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiA1MCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGZsZXgtYmFzaXM6IGNhbGMoNTAlIC0gI3skZ2xvYmFsLW1hcmdpbiAqIDN9KTtcbiAgICAgIG1heC13aWR0aDogY2FsYyg1MCUgLSAjeyRnbG9iYWwtbWFyZ2luICogM30pO1xuICAgIH1cblxuICAgIEBzdXBwb3J0cyhkaXNwbGF5OiBncmlkKSB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXRvcDogKCAxIC8gMSApICogMTAwJTtcbiAgICB9XG4gIH1cblxuICAvLyBXcmFwcGVyIHdoZW4gZmlndXJlIGlzIHVzZWQuXG4gICZfX2ZpZ3VyZSB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGZsZXgtYmFzaXM6IGNhbGMoNTAlIC0gI3skZ2xvYmFsLW1hcmdpbiAqIDN9KTtcbiAgICAgIG1heC13aWR0aDogY2FsYyg1MCUgLSAjeyRnbG9iYWwtbWFyZ2luICogM30pO1xuICAgIH1cblxuICAgIEBzdXBwb3J0cyhkaXNwbGF5OiBncmlkKSB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmNvbnRlbnQtaW1hZ2VfX2ltYWdlIHtcbiAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgIH1cbiAgfVxuXG4gICZfX2ltYWdlIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJi0tbGVmdCB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIC5jb250ZW50LWltYWdlX19jb250YWluZXIsXG4gICAgICAuY29udGVudC1pbWFnZV9fZmlndXJlIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyA3O1xuICAgICAgfVxuXG4gICAgICAuY29udGVudC1pbWFnZV9fY29udGVudCB7XG4gICAgICAgIGdyaWQtY29sdW1uOiA3IC8gLTE7XG4gICAgICAgIGdyaWQtcm93OiAxIC8gMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS1yaWdodCB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIC5jb250ZW50LWltYWdlX19jb250ZW50IHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyA3O1xuICAgICAgICBvcmRlcjogMVxuICAgICAgfVxuXG4gICAgICAuY29udGVudC1pbWFnZV9fY29udGFpbmVyLFxuICAgICAgLmNvbnRlbnQtaW1hZ2VfX2ZpZ3VyZSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiA3IC8gLTE7XG4gICAgICAgIGdyaWQtcm93OiAxIC8gMTtcbiAgICAgICAgb3JkZXI6IDI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRnVsbCBibGVlZCBpbWFnZXMgb3B0aW9ucy5cbiAgJi0tZnVsbC1ibGVlZCB7XG5cbiAgICAuY29udGVudC1pbWFnZV9fY29udGVudCB7XG4gICAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHBhZGRpbmc6ICgkZ2xvYmFsLXBhZGRpbmcgKiA0KSAkZ2xvYmFsLXBhZGRpbmc7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG4gICAgICAgIHBhZGRpbmc6ICgkZ2xvYmFsLXBhZGRpbmcgKiA2KSAkZ2xvYmFsLXBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbnRlbnQtaW1hZ2VfX2NvbnRhaW5lciB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAvLyBUaGlzIG51bWJlciBuZWVkIHR3ZWFraW5nIGRlcGVuZGluZyBvbiB0aGUgZGVzaWduLiBCdXQgdGhpcyBzdG9wcyB0aGUgaW1hZ2UgY29uc3RhbnRseSBzdHJldGNoaW5nLiBDaGFuZ2UgaXQgaW4gc2V0dGluZ3Muc2Nzc1xuICAgICAgbWF4LXdpZHRoOiAkZ2xvYmFsLW1heC1ibGVlZC1zaXplO1xuICAgICAgcGFkZGluZy10b3A6IDEwMCU7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5jb250ZW50LWltYWdlLS1sZWZ0IHtcblxuICAgICAgLmNvbnRlbnQtaW1hZ2VfX2NvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jb250ZW50LWltYWdlX19jb250ZW50IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogJGdsb2JhbC1wYWRkaW5nICogMy44NzU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygoMTAwJSAtICgjeyRnbG9iYWwtd2lkdGggLyAyfSAtICgjeyRnbG9iYWwtcGFkZGluZ30pKSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbnRlbnQtaW1hZ2UtLXJpZ2h0IHtcblxuICAgICAgLmNvbnRlbnQtaW1hZ2VfX2NvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY29udGVudC1pbWFnZV9fY29udGVudCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkZ2xvYmFsLXBhZGRpbmcgKiAzLjg3NTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoICggMTAwJSAtICggI3skZ2xvYmFsLXdpZHRoIC8gMn0gLSAoICN7JGdsb2JhbC1wYWRkaW5nfSApICkgKSApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuY29udGVudC1pbWFnZS0tcGFyYWxsYXgge1xuXG4gIC5jb250ZW50LWltYWdlX19pbGx1c3RyYXRpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gICYuY29udGVudC1pbWFnZS0tY29udGFpbiB7XG4gICAgLmNvbnRlbnQtaW1hZ2VfX2ltYWdlIHtcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgfVxuICB9XG5cbn1cbiIsIi5jdGEge1xuICAmX19ncmlkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAmX19idXR0b25zIHtcbiAgICBtYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbiAqIDI7XG4gICAgLy8gUmVtb3ZlIHRoZSBtYXJnaW4gZnJvbSB0aGUgYnV0dG9ucy5cbiAgICAuYnV0dG9uIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmJ1dHRvbi0tY3RhLXR3byB7XG4gICAgICBAZXh0ZW5kIC5idXR0b24tLXByaW1hcnk7XG4gICAgfVxuICB9XG5cbiAgJi0tZ2xvYmFsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblxuICAgIC5jdGFfX2NvbnRlbnQge1xuICAgIH1cblxuICAgIC5jdGFfX2J1dHRvbnMge1xuICAgICAgbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW47XG5cbiAgICAgIC5idXR0b24gKyAuYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW47XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6ICRnbG9iYWwtbWFyZ2luICogMztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYuYmxvY2stLXByaW1hcnkge1xuICAgIC5jdGFfX2J1dHRvbnMge1xuICAgICAgLmJ1dHRvbiB7XG4gICAgICAgIEBleHRlbmQgLmJ1dHRvbi0td2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuaGVybyB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZGlzcGxheTogZmxleDtcbiAgbWF4LWhlaWdodDogNzAwcHg7XG4gIHBhZGRpbmc6IDI1JSAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWdhcDogJGdsb2JhbC1wYWRkaW5nO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KCRnbG9iYWwtcGFkZGluZywgJGdsb2JhbC1wYWRkaW5nICogMikgbWluLWNvbnRlbnQgbWlubWF4KFxuICAgICAgICAkZ2xvYmFsLXBhZGRpbmcsXG4gICAgICAgICRnbG9iYWwtcGFkZGluZyAqIDJcbiAgICAgICk7XG4gICAgbWF4LWhlaWdodDogaW5oZXJpdDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gTWFrZSB0aGUgaW1hZ2UgdGFrZSB1cCB0aGUgZW50aXJlIG91dGVyIGdyaWQgbGlrZSBhIGJhY2tncm91bmQgaW1hZ2UuXG4gICZfX2ltYWdlLFxuICBwaWN0dXJlIHtcbiAgICBib3R0b206IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAwO1xuICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcblxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgIGdyaWQtcm93OiAxIC8gLTE7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5lcyB0aGUgY29udGVudCBncmlkLlxuICAmX19jb250ZW50IHtcbiAgICBAZXh0ZW5kIC5tb24tcm93O1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuXG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgZ3JpZC1yb3c6IDIgLyAzO1xuICAgICAgei1pbmRleDogMjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCgyLCBhdXRvKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZW50cnktdGl0bGUsXG4gIC5oZXJvX190aXRsZSB7XG4gICAgd2lkdGg6IDY2JTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAmX19leGNlcnB0IHtcbiAgICBtYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbjtcbiAgICB3aWR0aDogNjYlO1xuXG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIDExO1xuICAgICAgZ3JpZC1yb3c6IDIgLyAzO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gcmVtb3ZlIHRoZSBtYXJnaW4gZnJvbSB0aGUgbGFzdCBlbGVtZW50XG4gICAgJiA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gICYtLXBhZGRpbmctbGFyZ2Uge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtaW5tYXgoJGdsb2JhbC1wYWRkaW5nICogMiwgJGdsb2JhbC1wYWRkaW5nICogMTApIG1pbi1jb250ZW50IG1pbm1heChcbiAgICAgICAgICAgICRnbG9iYWwtcGFkZGluZyAqIDIsXG4gICAgICAgICAgICAkZ2xvYmFsLXBhZGRpbmcgKiAxMFxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KCRnbG9iYWwtcGFkZGluZyAqIDIsICRnbG9iYWwtcGFkZGluZyAqIDEwKSBtaW4tY29udGVudCBtaW5tYXgoXG4gICAgICAgICAgICAkZ2xvYmFsLXBhZGRpbmcgKiAyLFxuICAgICAgICAgICAgJGdsb2JhbC1wYWRkaW5nICogMTBcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLXN0YWNrLW9uLW1vYmlsZSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDUwdncgbWluLWNvbnRlbnQ7XG5cbiAgICAgIC5oZXJvX19pbWFnZSxcbiAgICAgIHBpY3R1cmUge1xuICAgICAgICBncmlkLXJvdzogMSAvIHNwYW4gMTtcbiAgICAgIH1cblxuICAgICAgLmhlcm9fX2NvbnRlbnQge1xuICAgICAgICBncmlkLXJvdzogMiAvIHNwYW4gMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gSGVybyB1bml0IGxlZnQgdmFyaWFudCBhbGlnbm1lbnQgcnVsZXMuXG4uaGVyby0tbGVmdCB7XG4gIC5lbnRyeS10aXRsZSxcbiAgLmhlcm9fX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmhlcm9fX2V4Y2VycHQge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyA3O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBIZXJvIHVuaXQgcmlnaHQgdmFyaWFudCBhbGlnbm1lbnQgcnVsZXMuXG4uaGVyby0tcmlnaHQge1xuICAuaGVyb19fY29udGVudCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICB9XG5cbiAgLmVudHJ5LXRpdGxlLFxuICAuaGVyb19fdGl0bGUge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDcgLyAtMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaGVyb19fZXhjZXJwdCB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICBncmlkLWNvbHVtbjogNyAvIC0xO1xuICAgICAgICBncmlkLXJvdzogMiAvIDM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEhlcm8gdW5pdCBjZW50ZXIgdmFyaWFudCBhbGlnbm1lbnQgcnVsZXMuXG4uaGVyby0tY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIC5oZXJvX19jb250ZW50IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgLmVudHJ5LXRpdGxlLFxuICAuaGVyb19fdGl0bGUge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDQgLyBzcGFuIDY7XG4gICAgICAgIGdyaWQtcm93OiAxIC8gMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaGVyb19fZXhjZXJwdCB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICBncmlkLWNvbHVtbjogNCAvIHNwYW4gNjtcbiAgICAgICAgZ3JpZC1yb3c6IDIgLyAzO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uaGVyby1hcmNoaXZlIHtcbiAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gKiAyO1xufVxuIiwiLmhlcm8tZmVhdHVyZWQge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC1oZWlnaHQ6IDcwMHB4O1xuICBwYWRkaW5nOiAyNSUgMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtZ2FwOiAkZ2xvYmFsLXBhZGRpbmc7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtaW5tYXgoICRnbG9iYWwtcGFkZGluZyAqIDIsICRnbG9iYWwtcGFkZGluZyAqIDQgKSBtaW4tY29udGVudCBtaW5tYXgoICRnbG9iYWwtcGFkZGluZyAqIDIsICRnbG9iYWwtcGFkZGluZyAqIDQgKTtcbiAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBNYWtlIHRoZSBpbWFnZSB0YWtlIHVwIHRoZSBlbnRpcmUgb3V0ZXIgZ3JpZCBsaWtlIGEgYmFja2dyb3VuZCBpbWFnZS5cbiAgJl9faW1hZ2UsXG4gIHBpY3R1cmUge1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDA7XG5cbiAgICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgZ3JpZC1yb3c6IDEgLyAtMTtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZpbmVzIHRoZSBjb250ZW50IGdyaWQuXG4gICZfX2NvbnRlbnQge1xuICAgIEBleHRlbmQgLm1vbi1yb3c7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgZ3JpZC1yb3c6IDIgLyAzO1xuICAgICAgei1pbmRleDogMjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgQHN1cHBvcnRzKCBkaXNwbGF5OiBncmlkICkge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgMWZyKTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoMiwgYXV0byk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmVudHJ5LXRpdGxlLFxuICAuaGVyby1mZWF0dXJlZF9fdGl0bGUge1xuICAgIHdpZHRoOiA2NiU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgQHN1cHBvcnRzKCBkaXNwbGF5OiBncmlkICkge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyA3O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgJl9fZXhjZXJwdCB7XG4gICAgbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW47XG4gICAgd2lkdGg6IDY2JTtcblxuICAgIEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gNztcbiAgICAgIGdyaWQtcm93OiAyIC8gMztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIHJlbW92ZSB0aGUgbWFyZ2luIGZyb20gdGhlIGxhc3QgZWxlbWVudFxuICAgICYgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAmLS1wYWRkaW5nLWxhcmdlIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCBtZWRpdW0gKSB7XG4gICAgICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KCAkZ2xvYmFsLXBhZGRpbmcgKiAyLCAkZ2xvYmFsLXBhZGRpbmcgKiAxMCApIG1pbi1jb250ZW50IG1pbm1heCggJGdsb2JhbC1wYWRkaW5nICogMiwgJGdsb2JhbC1wYWRkaW5nICogMTAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCBsYXJnZSApIHtcbiAgICAgIEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtaW5tYXgoICRnbG9iYWwtcGFkZGluZyAqIDIsICRnbG9iYWwtcGFkZGluZyAqIDE1ICkgbWluLWNvbnRlbnQgbWlubWF4KCAkZ2xvYmFsLXBhZGRpbmcgKiAyLCAkZ2xvYmFsLXBhZGRpbmcgKiAxNSApO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgJi0tc3RhY2stb24tbW9iaWxlIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogNTB2dyBtaW4tY29udGVudDtcblxuICAgICAgLmhlcm8tZmVhdHVyZWRfX2ltYWdlLFxuICAgICAgcGljdHVyZSB7XG4gICAgICAgIGdyaWQtcm93OiAxIC8gc3BhbiAxO1xuICAgICAgfVxuXG4gICAgICAuaGVyby1mZWF0dXJlZF9fY29udGVudCB7XG4gICAgICAgIGdyaWQtcm93OiAyIC8gc3BhbiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBIZXJvIHVuaXQgbGVmdCB2YXJpYW50IGFsaWdubWVudCBydWxlcy5cbi5oZXJvLWZlYXR1cmVkLS1sZWZ0IHtcblxuICAuZW50cnktdGl0bGUsXG4gIC5oZXJvLWZlYXR1cmVkX190aXRsZSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyA3O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5oZXJvLWZlYXR1cmVkX19leGNlcnB0IHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgQHN1cHBvcnRzKCBkaXNwbGF5OiBncmlkICkge1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIDc7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuLy8gSGVybyB1bml0IHJpZ2h0IHZhcmlhbnQgYWxpZ25tZW50IHJ1bGVzLlxuLmhlcm8tZmVhdHVyZWQtLXJpZ2h0IHtcblxuICAuaGVyby1mZWF0dXJlZF9fY29udGVudCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICB9XG5cbiAgLmVudHJ5LXRpdGxlLFxuICAuaGVyby1mZWF0dXJlZF9fdGl0bGUge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiA3IC8gLTE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmhlcm8tZmVhdHVyZWRfX2V4Y2VycHQge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBAc3VwcG9ydHMoIGRpc3BsYXk6IGdyaWQgKSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiA3IC8gLTE7XG4gICAgICAgIGdyaWQtcm93OiAyIC8gMztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gSGVybyB1bml0IGNlbnRlciB2YXJpYW50IGFsaWdubWVudCBydWxlcy5cbi5oZXJvLWZlYXR1cmVkLS1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgLmhlcm8tZmVhdHVyZWRfX2NvbnRlbnQge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAuZW50cnktdGl0bGUsXG4gIC5oZXJvLWZlYXR1cmVkX190aXRsZSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDQgLyBzcGFuIDY7XG4gICAgICAgIGdyaWQtcm93OiAxIC8gMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaGVyby1mZWF0dXJlZF9fZXhjZXJwdCB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDQgLyBzcGFuIDY7XG4gICAgICAgIGdyaWQtcm93OiAyIC8gMztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5oZXJvLS12aWRlbyB7XG5cbiAgJi5oZXJvLS1jb2xvcmVkLXRleHQge1xuICAgIC5oZXJvX19jb250ZW50IHtcbiAgICAgICYgKjpub3QoLmJ1dHRvbikge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYuaGVyby0tc3RhY2stb24tbW9iaWxlIHtcbiAgICAuaGVyb19fY29udGVudCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCBzbWFsbCBvbmx5ICkge1xuICAgICAgICAmICo6bm90KC5idXR0b24pIHtcbiAgICAgICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iLCIucmVwZWF0ZXItaWNvbiB7XG5cbiAgLy8tLS0tLS0tLS0tLS0tLS1cbiAgLy8gRGVmYXVsdCBjYXJkIHN0eWxlcy5cbiAgLy8tLS0tLS0tLS0tLS0tLS1cbiAgJl9faXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZmF1bHQtZ3JpZC1nYXA7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbjogMCAoJGRlZmF1bHQtZ3JpZC1nYXAgLyAyKSAkZGVmYXVsdC1ncmlkLWdhcDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgLy8gT25seSB3YXkgdG8gb3ZlcnJpZGUgdGhlIGZsZXggbWF4LXdpZHRoIHJ1bGVzLlxuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKG4rNCkge1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICAmX19pdGVtLWhlYWRpbmcge1xuICAgIEBleHRlbmQgaDMgIW9wdGlvbmFsO1xuXG4gICAgbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAwO1xuICAgIHRyYW5zaXRpb246IC4yNXMgbGluZWFyIGFsbDtcbiAgfVxuXG4gICZfX2ltYWdlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAmX190ZXh0IHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIH1cblxuICAvLy0tLS0tLS0tLS0tLS0tLVxuICAvLyBTdHlsZSBvcHRpb25zLlxuICAvLy0tLS0tLS0tLS0tLS0tLVxuICAmX19ncmlkIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtZ2FwOiAkZGVmYXVsdC1ncmlkLWdhcDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIG1hcmdpbjogMCAtICRnbG9iYWwtbWFyZ2luIC8gMjtcbiAgICB9XG5cbiAgICAmLS1jZW50ZXIge1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi0tbGVmdCB7XG4gICAgICAucmVwZWF0ZXItaWNvbl9faXRlbSxcbiAgICAgIC5yZXBlYXRlci1pY29uX19pbWFnZSxcbiAgICAgIC5yZXBlYXRlci1pY29uX19pdGVtLWhlYWRpbmcsXG4gICAgICAucmVwZWF0ZXItaWNvbl9fdGV4dCB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tY2FyZCB7XG4gICAgICAucmVwZWF0ZXItaWNvbl9faXRlbSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgICAgICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogMjtcbiAgICAgIH1cblxuICAgICAgLnJlcGVhdGVyLWljb25fX2ltYWdlLFxuICAgICAgLnJlcGVhdGVyLWljb25fX2l0ZW0taGVhZGluZyxcbiAgICAgIC5yZXBlYXRlci1pY29uX190ZXh0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cblxuICAgICAgLnJlcGVhdGVyLWljb25fX2hlYWRpbmcge1xuICAgICAgICBhbGlnbi1zZWxmOiBzdGFydDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLy0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIExheW91dCBvcHRpb25zLlxuICAgIC8vLS0tLS0tLS0tLS0tLS0tXG4gICAgJi0tMiB7XG5cbiAgICAgIC5yZXBlYXRlci1pY29uX19pdGVtIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiA2O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoNTAlIC0gI3skZGVmYXVsdC1ncmlkLWdhcH0pO1xuICAgICAgICAgIG1heC13aWR0aDogY2FsYyg1MCUgLSAjeyRkZWZhdWx0LWdyaWQtZ2FwfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0zIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIC5yZXBlYXRlci1pY29uX19pdGVtIHtcbiAgICAgICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiA0O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMzMuMzMlIC0gI3skZGVmYXVsdC1ncmlkLWdhcH0pO1xuICAgICAgICAgIG1heC13aWR0aDogY2FsYygzMy4zMyUgLSAjeyRkZWZhdWx0LWdyaWQtZ2FwfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS00IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIC5yZXBlYXRlci1pY29uX19pdGVtIHtcbiAgICAgICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiBhdXRvIC8gc3BhbiAzO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMjUlIC0gI3skZGVmYXVsdC1ncmlkLWdhcH0pO1xuICAgICAgICAgIG1heC13aWR0aDogY2FsYygyNSUgLSAjeyRkZWZhdWx0LWdyaWQtZ2FwfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8tLS0tLS0tLS0tLS0tLS1cbi8vIEhvdmVyIHN0YXRlcyBmb3IgY2FyZHMgaWYgYSBsaW5rIGhhcyBiZWVuIGVuYWJsZWQuXG4vLy0tLS0tLS0tLS0tLS0tLVxuYS5yZXBlYXRlci1pY29uX19pdGVtIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRyYW5zaXRpb246IC4yNXMgbGluZWFyIGFsbDtcblxuICAucmVwZWF0ZXItaWNvbl9fdGV4dCB7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgLnJlcGVhdGVyLWljb25fX2l0ZW0taGVhZGluZyB7XG4gICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgfVxuICB9XG59XG4iLCIuc3RhbmRhcmQtaW1hZ2Uge1xuXG4gIC8vIERlZmF1bHQgc2V0dGluZyB3aXRoIG5vIHdpZHRocyBzZXQgaXMgdGhlIHNhbWUgYXMgdGhlIGZ1bGwgc2V0dGluZy5cbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuICBwYWRkaW5nOiAwICRnbG9iYWwtcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIEBzdXBwb3J0cyggZGlzcGxheTogZ3JpZCApIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtZ2FwOiAkZGVmYXVsdC1ncmlkLWdhcDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gbWlubWF4KCBhdXRvLCBjYWxjKDEyIC8gMTIgKiAxMDAlKSApIGF1dG87XG4gICAgfVxuICB9XG5cbiAgaW1nLFxuICBmaWd1cmUsXG4gIHBpY3R1cmUge1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQHN1cHBvcnRzKCBkaXNwbGF5OiBncmlkICkge1xuICAgICAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDE7XG4gICAgfVxuICB9XG5cbiAgJi0tY2VudGVyIHtcbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoIGF1dG8sIGNhbGMoMTAgLyAxMiAqIDEwMCUpICkgYXV0bztcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heCggYXV0bywgY2FsYyg4IC8gMTIgKiAxMDAlKSApIGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmFmZmVyeSBmb3IgZmxleCBmYWxsYmFjay5cbiAgICBpbWcsXG4gICAgZmlndXJlLFxuICAgIHBpY3R1cmUge1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICB3aWR0aDogODAlO1xuXG4gICAgICAvLyBIYXZlIHRvIG92ZXJyaWRlIGFnYWluIGZvciBncmlkLiBESUUgSUUgMTEhXG4gICAgICBAc3VwcG9ydHMgKCBkaXNwbGF5OiBncmlkICkge1xuICAgICAgICBncmlkLWNvbHVtbjogMiAvIHNwYW4gMTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi0td2lkZSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIGdyaWQtZ2FwOiAwO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgfVxuXG4gICAgaW1nLFxuICAgIGZpZ3VyZSxcbiAgICBwaWN0dXJlLCB7XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDE7XG4gICAgICB9XG5cbiAgICAgIC8vIFN0b3AgdGhlIGltYWdlIHRha2luZyB1cCB0aGUgZW50aXJlIHZpZXdwb3J0LlxuICAgICAgbWF4LWhlaWdodDogNzAwcHg7XG4gICAgfVxuICB9XG5cbiAgLy8gQWRkIGRlZmF1bHQgV1AgZmlnY2FwdGlvbiBzdHlsZXMuXG4gIGZpZ2NhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGNvbG9yOiAjOTk5O1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5cbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRGVmYXVsdCByZXBlYXRlciBsb2dvLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucmVwZWF0ZXItbG9nbyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAvLyBQYXJlbnQgZmxleCBjb250YWluZXIuXG4gICZfX2l0ZW1zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAtICRnbG9iYWwtbWFyZ2luICogMjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2l0ZW0ge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAwIDEgY2FsYyggNTAlIC0gI3skZ2xvYmFsLW1hcmdpbn0pO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgJGdsb2JhbC1tYXJnaW4gLyAyICRnbG9iYWwtbWFyZ2luICogMjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBmbGV4OiAwIDAgMjAlO1xuICAgICAgbWF4LXdpZHRoOiAyMCU7XG4gICAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2VudGVyIHRoZSBsaW5rIGF0IHRoZSBib3R0b20gaWYgaXQncyBhZGRlZC5cbiAgJl9fbGluayB7XG4gICAgQGV4dGVuZCAuYnV0dG9uO1xuICAgIEBleHRlbmQgLmJ1dHRvbi0tcHJpbWFyeTtcbiAgfVxufVxuIiwiLy8gRGVmaW5lcyB0aGUgZ3JpZCB3aGVuIHRoZSB2ZXJ0aWNhbCByYWRpbyBidXR0b24gaXMgc2VsZWN0ZWRcbi5wcmljaW5nLXRhYmxlX19ncmlkIHtcblxuXHQvLyAxIHRvIDIgY29sdW1uIGxheW91dCBvbiBtZWRpdW0uXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHR9XG5cblx0Ji0taG9yaXpvbnRhbCB7XG5cblx0XHRAZXh0ZW5kIC5wcmljaW5nLXRhYmxlX19ncmlkO1xuXG5cdFx0Ly8gMSB0byAyIGNvbHVtbiBsYXlvdXQgb24gbWVkaXVtLlxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHQucHJpY2luZy10YWJsZV9fdGFibGUge1xuXHRcdFx0XHRmbGV4LWJhc2lzOiBjYWxjKCA1MCUgLSAjeyRnbG9iYWwtbWFyZ2lufSApO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAqIDI7XG4gICAgICAgIG1heC13aWR0aDogY2FsYyggNTAlIC0gI3skZ2xvYmFsLW1hcmdpbn0gKTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAgICY6bnRoLWxhc3QtY2hpbGQoMikge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyAxLzIvMy80IGNvbHVtbiBsYXlvdXQgb24gbGFyZ2UuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0LnByaWNpbmctdGFibGVfX3RhYmxlIHtcblx0XHRcdFx0ZmxleC1iYXNpczogY2FsYyggMjUlIC0gI3skZ2xvYmFsLW1hcmdpbn0gKTtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdFx0bWF4LXdpZHRoOiBjYWxjKCAyNSUgLSAjeyRnbG9iYWwtbWFyZ2lufSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4ucHJpY2luZy10YWJsZSB7XG5cbiAgJl9faGVhZGluZyB7XG4gICAgQGV4dGVuZCAuYmxvY2stLXNtYWxsICFvcHRpb25hbDtcbiAgfVxuXG5cdCZfX3RhYmxlIHtcblx0XHRhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAqIDI7XG4gICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0ZmxleC1iYXNpczogY2FsYyggNTAlIC0gI3skZ2xvYmFsLW1hcmdpbn0gKTtcblx0XHRcdG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICogMjtcbiAgICAgIG1heC13aWR0aDogY2FsYyggNTAlIC0gI3skZ2xvYmFsLW1hcmdpbn0gKTtcblxuICAgICAgJjpudGgtbGFzdC1jaGlsZCgyKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG5cdFx0fVxuXG5cdH1cblxuXHQmX19idXR0b24ge1xuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZ3JvdzogMTtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdC5idXR0b24ge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR9XG5cdH1cblxuXHQmX19oaWdobGlnaHQge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxuXG5cdCZfX2xpbmsge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxufVxuXG4vLyBTdHlsZXMgZm9yIGV2ZXJ5IG90aGVyIHRhYmxlLlxuLnByaWNpbmctdGFibGVfX3RhYmxlOm50aC1vZi10eXBlKGV2ZW4pIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG5cdGNvbG9yOiAkd2hpdGU7XG5cblx0Lmg0LFxuXHQucHJpY2luZy10YWJsZV9faGlnaGxpZ2h0IHtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHR9XG5cblx0LnByaWNpbmctdGFibGVfX2J1dHRvbiAuYnV0dG9uIHtcblx0XHRAZXh0ZW5kIC5idXR0b24tLXByaW1hcnk7XG5cdH1cbn1cbiIsIi8vIFNpZ25wb3N0IHN0eWxlcy4gT3B0aW9ucyBmb3Igc2luZ2xlLCAyIGNvbHVtbiBhbmQgMyBjb2x1bW4gc2lnbnBvc3QgYmxvY2suXG5cbi5zaWducG9zdCB7XG5cblx0Jl9faGVhZGluZyB7XG5cdFx0bWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gKiAyO1xuXHR9XG5cblx0Jl9fZ3JpZCB7XG4gICAgQGV4dGVuZCAubW9uLWdyaWQ7XG5cblx0XHQmLS1jb2wtMiB7XG4gICAgICBAZXh0ZW5kIC5tb24tZ3JpZC0tMiAhb3B0aW9uYWw7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cblx0XHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLS1jb2wtMyB7XG4gICAgICBAZXh0ZW5kIC5tb24tZ3JpZC0tMyAhb3B0aW9uYWw7XG5cbiAgICAgIGdyaWQtZ2FwOiAkZ2xvYmFsLW1hcmdpbjtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcblx0XHRcdH1cblxuXHRcdFx0LnNpZ25wb3N0X190aXRsZSB7XG5cdFx0XHRcdEBleHRlbmQgaDQgIW9wdGlvbmFsO1xuXHRcdFx0fVxuXHRcdH1cbiAgfVxuXG4gICZfX2l0ZW0ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiAgICBib3gtc2hhZG93OiAkZ2xvYmFsLWJveC1zaGFkb3c7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJGNhbGxvdXQtcGFkZGluZyAkY2FsbG91dC1wYWRkaW5nICogNCAkY2FsbG91dC1wYWRkaW5nICRjYWxsb3V0LXBhZGRpbmc7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLW91dCAuMnM7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBjb250ZW50OiB1cmwoLi4vaW1hZ2VzL2ljb25zL2NoZXZyb24tcmlnaHQuc3ZnKTtcbiAgICAgIG1hcmdpbi10b3A6IC04cHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMnJlbTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjQpO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXG4gICAgICAuc2lnbnBvc3RfX3RpdGxlIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgfVxuXG4gICAgICAuc2lnbnBvc3RfX3RleHQge1xuICAgICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgQGV4dGVuZCBoMyAhb3B0aW9uYWw7XG5cbiAgICB0cmFuc2l0aW9uOiBjb2xvciBlYXNlLW91dCAuMnM7XG4gIH1cblxuICAmX190ZXh0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbn1cbiIsIi8vIFN0YXRpc3RpY3MgYmxvY2suXG4uc3RhdHMge1xuICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgKiAzIDA7XG5cbiAgLy8gRmxleCB0aGUgd3JhcHBlci5cbiAgJl9fd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuICB9XG5cblxuICAmX19pdGVtIHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBmbGV4OiAxIDAgNTAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGZsZXg6IDEgMCAyNSU7XG4gICAgfVxuXG4gICAgJi0taGVhZGluZyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICYtLWNvbnRlbnQge1xuICAgICAgQGV4dGVuZCBoMjtcbiAgICB9XG5cbiAgICAvLyBPZmZzZXRzIGR1ZSB0byBleHRyYSBzcGFjZSBjcmVhdGVkIGJ5IG1hcmt1cC5cbiAgICAmLXByZWZpeCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC04cHg7XG4gICAgfVxuICAgICYtc3ltYm9sIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLnRlc3RpbW9uaWFsIHtcbiAgJl9faWNvbiB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy93aGl0ZS1vdXQtbG9nby5wbmcpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogODBweDtcbiAgICBtYXJnaW46IDAgYXV0byAkZ2xvYmFsLW1hcmdpbiAqIDEuNTtcbiAgICB3aWR0aDogODBweDtcbiAgfVxuXG4gICZfX3F1b3RlIHtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gIH1cblxuICAmX19jaXRlIHtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG59XG4iLCIucmVsYXRpb25zaGlwIHtcbiAgLy8gQ2VudGVyIHRoZSB2aWV3IGFsbCBidXR0b24gYW5kIHB1c2ggaXQgZG93biBmcm9tIHRoZSBjYXJkcy5cbiAgJl9fdmlldy1hbGwge1xuICAgIG1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luICogMjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLnJlbGF0aW9uc2hpcF9faGVhZGluZyB7XG4gIEBleHRlbmQgLmJsb2NrLS1zbWFsbCAhb3B0aW9uYWw7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIExheW91dHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERlZmF1bHQgMTAwJSB3aWRlIGdyaWQgd2hlbiAxIGl0ZW0gaXMgc2VsZWN0ZWQuXG4ucmVsYXRpb25zaGlwX19ncmlkLFxuLnJlbGF0aW9uc2hpcF9fZ3JpZC0tMSB7XG4gIEBleHRlbmQgLm1vbi1ncmlkO1xuICBAaW5jbHVkZSBtb24tZ3JpZCgyKTtcbiAgZ3JpZC1nYXA6IDAgIWltcG9ydGFudDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIEBpbmNsdWRlIG1vbi1ncmlkKDQpO1xuICAgIGdyaWQtZ2FwOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gQWRkIHNvbWUgcGFkZGluZyB0byB0aGUgc2luZ2xlIHNlbGVjdGlvbiBjb250ZW50IHNvIHRoZSBpbWFnZSBzdHJldGNoZXMuXG4ucmVsYXRpb25zaGlwX19ncmlkLS0xIC5yZWxhdGlvbnNoaXBfX2NvbnRlbnQge1xuICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgKiAzICRnbG9iYWwtcGFkZGluZyAqIDI7XG59XG5cbi8vIDIgY29sdW1uIGdyaWQgd2hlbiAyIGl0ZW1zIGFyZSBzZWxlY3RlZC5cbi5yZWxhdGlvbnNoaXBfX2dyaWQtLTIge1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIEBpbmNsdWRlIG1vbi1ncmlkKDIpO1xuXG4gICAgJiA+ICoge1xuICAgICAgZmxleC1iYXNpczogY2FsYyg1MCUgLSAjeyRnbG9iYWwtbWFyZ2lufSk7XG4gICAgfVxuICB9XG59XG5cbi8vIDMgY29sdW1uIGdyaWQgd2hlbiAzIG9yIG1vcmUgaXRlbXMgYXJlIHNlbGVjdGVkLlxuLnJlbGF0aW9uc2hpcF9fZ3JpZC0tMyB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgQGluY2x1ZGUgbW9uLWdyaWQoMyk7XG5cbiAgICAmID4gKiB7XG4gICAgICBmbGV4LWJhc2lzOiBjYWxjKDMzLjMzJSAtICN7JGdsb2JhbC1tYXJnaW59KTtcbiAgICB9XG4gIH1cbn1cblxuLy8gNCBjb2x1bW4gZ3JpZCB3aGVuIDMgb3IgbW9yZSBpdGVtcyBhcmUgc2VsZWN0ZWQuXG4ucmVsYXRpb25zaGlwX19ncmlkLS00IHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBAaW5jbHVkZSBtb24tZ3JpZCg0KTtcblxuICAgICYgPiAqIHtcbiAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMjUlIC0gI3skZ2xvYmFsLW1hcmdpbn0pO1xuICAgIH1cbiAgfVxufVxuXG4vLyA1IGNvbHVtbiBncmlkIHdoZW4gMyBvciBtb3JlIGl0ZW1zIGFyZSBzZWxlY3RlZC5cbi5yZWxhdGlvbnNoaXBfX2dyaWQtLTUge1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIEBpbmNsdWRlIG1vbi1ncmlkKDUpO1xuXG4gICAgJiA+ICoge1xuICAgICAgZmxleC1iYXNpczogY2FsYygyMCUgLSAjeyRnbG9iYWwtbWFyZ2lufSk7XG4gICAgfVxuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENhcmQgb3ZlcnJpZGVzLiBNb3N0IG9mIHRoZXNlIHN0eWxlcyBhcmUgdXNpbmcgX2NhcmRzLnNjc3MuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIDMgb3IgbW9yZSBwb3N0cyBjYXJkIGxheW91dCwgc3RhY2sgdGhlIGltYWdlIGFib3ZlIHRoZSB0ZXh0LlxuLnJlbGF0aW9uc2hpcF9fZ3JpZC0tMyAuY2FyZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTGF5b3V0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucmVsYXRpb25zaGlwLXRlYW0ge1xuICAvLyBEZWZhdWx0IDEwMCUgd2lkZSBncmlkIHdoZW4gMSBpdGVtIGlzIHNlbGVjdGVkLlxuICAucmVsYXRpb25zaGlwX19ncmlkLFxuICAucmVsYXRpb25zaGlwX19ncmlkLS0xIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtY29sdW1uLWdhcDogJGdsb2JhbC1tYXJnaW47XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cbiAgXG4gIC8vIEFkZCBzb21lIHBhZGRpbmcgdG8gdGhlIHNpbmdsZSBzZWxlY3Rpb24gY29udGVudCBzbyB0aGUgaW1hZ2Ugc3RyZXRjaGVzLlxuICAucmVsYXRpb25zaGlwX19ncmlkLS0xIC5yZWxhdGlvbnNoaXAtdGVhbV9fY29udGVudCB7XG4gICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogMyAkZ2xvYmFsLXBhZGRpbmcgKiAyO1xuICB9XG4gIFxuICAvLyAyIGNvbHVtbiBncmlkIHdoZW4gMiBpdGVtcyBhcmUgc2VsZWN0ZWQuXG4gIC5yZWxhdGlvbnNoaXBfX2dyaWQtLTIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIH1cbiAgXG4gIC8vIDMgY29sdW1uIGdyaWQgd2hlbiAzIGl0ZW1zIGFyZSBzZWxlY3RlZC5cbiAgLnJlbGF0aW9uc2hpcF9fZ3JpZC0tMyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGdyaWQtcm93LWdhcDogJGdsb2JhbC1tYXJnaW47XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gNCBjb2x1bW4gZ3JpZCB3aGVuIDQgb3IgbW9yZSBpdGVtcyBhcmUgc2VsZWN0ZWQuXG4gIC5yZWxhdGlvbnNoaXBfX2dyaWQtLTQge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBncmlkLXJvdy1nYXA6ICRnbG9iYWwtbWFyZ2luO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgICB9XG4gIH1cbn1cbiIsIiRjYXJkLWJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5O1xuJGNhcmQtYm90dG9tLW1hcmdpbjogJGdsb2JhbC1tYXJnaW4gKiAzO1xuLy8gVXNlZCB0byBwdWxsIHVwIHRoZSBjYXJkcyBzbyB0aGF0IHRoZXkgZG9udCBsb29rIGxpa2UgdGhleSBhcmUgaW4gMTAwJSB3aWRlIHJvd3MuXG4kY2FyZC1uZWdhdGl2ZS1tYXJnaW46IC0kZ2xvYmFsLW1hcmdpbiAqIDIwO1xuXG4udGltZWxpbmUge1xuXG4gIC8vIEJhY2tncm91bmQgcnVsZXMgaWYgaW1hZ2UgaXMgdXNlZCBmb3IgYSBzZWN0aW9uLlxuICAmX19zZWN0aW9uLWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAqIDUgMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvLyBDcmVhdGUgdGhlIHZlcnRpY2FsIGxpbmUuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiAkZ2xvYmFsLW1hcmdpbjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIC8vIEFkanVzdCB0aGlzIHRvIHN0b3AgdGhlIHZlcnRpY2FsIGxpbmUganV0dGluZyBvdXQgb2YgdGhlIHRvcC5cbiAgICAgIHRvcDogMTUwcHg7XG4gICAgICB3aWR0aDogNHB4O1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAvLyBNb3ZlIHRoZSB0aW1lbGluZSB0byB0aGUgY2VudGVyIG9mIHRoZSB3aW5kb3cuXG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBMYXN0IHNlY3Rpb24gYWRqdXN0bWVudHMuXG4gICAgJjpsYXN0LW9mLXR5cGU6OmJlZm9yZSB7XG4gICAgICAvLyBBZGp1c3QgdGhpcyB0byBzdG9wIHRoZSB2ZXJ0aWNhbCBsaW5lIGp1dHRpbmcgb3V0IG9mIHRoZSBib3R0b20uXG4gICAgICBib3R0b206IDIwMHB4O1xuICAgICAgdG9wOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdyYXAgdGhlIGNhcmRzIGluIGEgcm93IHNvIHdlIGNhbiBjb250cm9sIHRoZSBsYXlvdXQuXG4gICZfX3NlY3Rpb24tcm93IHtcbiAgICBAZXh0ZW5kIC5tb24tcm93O1xuICB9XG5cbiAgLy8gU2VjdGlvbiBoZWFkaW5ncy5cbiAgJl9fdGl0bGUge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRjYXJkLWJvdHRvbS1tYXJnaW47XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLy8gRGVmYXVsdCBDaXJjbGUgbWFya2VyIHBsYWNlZCBvdmVyIHRoZSB0aW1lbGluZSBuZXh0IHRvIGVhY2ggY2FyZC4gVGhpcyBkb2VzIG5vdCBoYXZlIHRvIGJlIGEgY2lyY2xlIGFuZCBjYW4gYmUgY2hhbmdlZCB0byBjb250YWluIGFueXRoaW5nIGZyb20gd2l0aGluIHRoZSB0ZW1wbGF0ZSBtYXJrdXAuXG4gICZfX21hcmtlciB7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICRibGFjaztcbiAgICBoZWlnaHQ6IDE3cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC03cHg7XG4gICAgb3JkZXI6IDI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMzJweDtcbiAgICB3aWR0aDogMTdweDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBtYXJnaW4tbGVmdDogY2FsYyg1JSAtIDEzcHgpO1xuICAgICAgbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW4gKiAxLjU7XG4gICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgIHdpZHRoOiAzMHB4O1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmF1bHQgQ2FyZCBzdHlsZXMuIE92ZXJyaWRlcyBhcmUgaW4gdGhlIF9faXRlbS0tbGVmdCBhbmQgX19pdGVtLS1yaWdodCBydWxlcyBmdXJ0aGVyIGRvd24gdGhlIHBhZ2UuXG4gICZfX2NhcmQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjYXJkLWJhY2tncm91bmQtY29sb3I7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWFyZ2luOiAwICRnbG9iYWwtbWFyZ2luICRjYXJkLWJvdHRvbS1tYXJnaW4gKCRnbG9iYWwtbWFyZ2luICogMik7XG4gICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogMS41O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBmbGV4OiAwIDAgNDUlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGNhcmQtYm90dG9tLW1hcmdpbjtcbiAgICAgIG9yZGVyOiAxO1xuICAgICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICogMjtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgdGhlIGNoZXZyb24gdGhhdCBwb2ludHMgdG93YXJkcyB0aGUgdGltZWxpbmUgbWFya2VyLlxuICAgICY6OmJlZm9yZSB7XG4gICAgICBib3JkZXItYm90dG9tOiAyMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAyMHB4IHNvbGlkICRjYXJkLWJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAyMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBsZWZ0OiAtMjBweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMjBweDtcbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgIC8vIFJlbW92ZSB0aGUgbWFyZ2luIGZyb20gdGhlIGxhc3QgcCBpbiB0aGUgY2FyZCB3eXNpd3lnLCB0aGlzIGFsc28gdGFrZXMgY2FyZSBvZiBidXR0b24gbWFyZ2lucy5cbiAgICAgIHA6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBXcmFwcyB0aGUgX19jYXJkIHNvIHRoYXQgd2UgY2FuIHBvc2l0aW9uIGl0IGxlZnQgb3IgcmlnaHQgaW5zaWRlIHRoaXMuXG4gICZfX2l0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLy8gRGVmYXVsdCBwb3NpdGlvbiBvZiB0aGUgY2FyZCwgbGVmdCBvZiB0aGUgdGltZWxpbmUuXG4gICAgJi0tbGVmdCB7XG4gICAgICAvLyBSZW1vdmUgdGhlIG5lZ2F0aXZlIG1hcmdpbiBpZiAyIGl0ZW1zIGFyZSBsZWZ0IGFsaWduZWQgYW5kIHVzZSB0aGUgZGVmYXVsdCBtYXJnaW4gaW5zdGVhZC5cbiAgICAgICsgLnRpbWVsaW5lX19pdGVtLS1sZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC50aW1lbGluZV9fY2FyZCB7XG4gICAgICAgIC8vIE1vdmUgdGhlIGNoZXZyb24gdG8gdGhlIHJpZ2h0LlxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IC0yMHB4O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDYXJkcyBwb3NpdGlvbmVkIHRvIHRoZSByaWdodCBvZiB0aGUgdGltZWxpbmUuXG4gICAgJi0tcmlnaHQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICBtYXJnaW4tdG9wOiAkY2FyZC1uZWdhdGl2ZS1tYXJnaW47XG4gICAgICB9XG5cbiAgICAgIC8vIFJlbW92ZSB0aGUgbmVnYXRpdmUgbWFyZ2luIGlmIDIgaXRlbXMgYXJlIHJpZ2h0IGFsaWduZWQgYW5kIHVzZSB0aGUgZGVmYXVsdCBtYXJnaW4uXG4gICAgICArIC50aW1lbGluZV9faXRlbS0tcmlnaHQge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gUmVwb3NpdGlvbiB0aGUgbWFya2VyLlxuICAgICAgLnRpbWVsaW5lX19tYXJrZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYyg1JSAtIDE3cHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiIsIi52aWRlbyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyBGYWxsYmFjayBpbWFnZS5cblx0Jl9faW1hZ2Uge1xuXHRcdG9iamVjdC1maXQ6IGNvdmVyO1xuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcblx0XHRcdG1heC1oZWlnaHQ6IDcwMHB4O1xuXHRcdH1cblx0fVxuXG4gIC8vIENvbnRhaW5zIHRoZSBlbWJlZCBmaWxlc1xuXHQmX192aWRlbyB7XG5cdFx0b2JqZWN0LWZpdDogY292ZXI7XG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG5cdFx0XHRtYXgtaGVpZ2h0OiA3MDBweDtcblx0XHR9XG5cbiAgICAvLyBVc2UgdGhlIHJlc3BvbnNpdmUgdmlkZW8gbWl4aW4uXG4gICAgJi0tcmVzcG9uc2l2ZSB7XG4gICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWVtYmVkKHdpZGVzY3JlZW4pO1xuICAgIH1cblxuXHR9XG5cbn1cbiIsIi8vIERlZmF1bHQgV1lTV1lHIGdvZXMgOCBjb2x1bW5zIHRoZSBzYW1lIGFzIG1lZGl1bSBzbyB0aGV5IGNhbiBjaGFuZ2UgdGhpcyBvcHRpb24gaWYgbmVlZGVkLlxuLnd5c2l3eWdfX2NvbnRlbnQge1xuXG4gIC8vIFNldCBkZWZhdWx0IHNpemUgdG8gc21hbGwuXG4gIEBpbmNsdWRlIG1vbi1jb2xzKDgpO1xuXG5cblx0Ji0td2lkZSB7XG5cdFx0QGluY2x1ZGUgbW9uLWNvbHMoMTApO1xuXHR9XG5cblx0Ji0tZnVsbCB7XG5cdFx0QGluY2x1ZGUgbW9uLWNvbHMoMTIpO1xuXHR9XG5cbiAgJiA+ICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICYgKjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cblx0Ly8gRml4IGZpZ3VyZSB3aWR0aHMgaW4gd3lzaXd5Zy5cblx0ZmlndXJlIHtcblx0XHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXHR9XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoZSBjb3JlIGVtYmVkIGRlZmF1bHQgc3R5bGVzIHRoYXQgYXJlIGFwcGxpZWQgdG8gYWxsIGVtYmVkIGJsb2Nrcy5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJHZpZGVvX2NvbnRhaW5lcl9jb2x1bW5zOiAxMjtcblxuLy8gTWFrZSB0aGUgcGFyZW50IGVtYmVkIHdyYXBwZXIgdXNlIHRoZSByb3cgY2xhc3MuXG4ud3AtYmxvY2stZW1iZWQge1xuICBAZXh0ZW5kIC5tb24tcm93O1xufVxuXG4vLyBEZWZhdWx0IG1wNCB2aWRlbyBibG9jay5cbi53cC1ibG9jay12aWRlbyB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogJGdsb2JhbC13aWR0aDtcbiAgcGFkZGluZzogMCAkZ2xvYmFsLXBhZGRpbmc7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIEBleHRlbmQgLmJsb2NrO1xuXG4gIHZpZGVvIHtcbiAgICBAaW5jbHVkZSBtb24tY29scygkdmlkZW9fY29udGFpbmVyX2NvbHVtbnMpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4vLyBFeHRlbmQgdGhlIGZvdW5kYXRpb24gcmVzcG9uc2l2ZSB2aWRlbyBjbGFzc2VzLCB0aGVzZSB3aWxsIGFwcGx5IHRvIGFueSB2aWRlbyBlbWJlZC5cbi5pcy10eXBlLXZpZGVvIC53cC1ibG9jay1lbWJlZF9fd3JhcHBlciB7XG4gIEBleHRlbmQgLnJlc3BvbnNpdmUtZW1iZWQgIW9wdGlvbmFsO1xuICBAZXh0ZW5kIC53aWRlc2NyZWVuICFvcHRpb25hbDtcblxuICAvLyBMYXp5IGxvYWQgcGx1Z2luIGZpeCBmb3IgWW91VHViZS5cbiAgLmNvbnRhaW5lci1sYXp5bG9hZCB7XG4gICAgQGV4dGVuZCAucmVzcG9uc2l2ZS1lbWJlZCAhb3B0aW9uYWw7XG4gICAgQGV4dGVuZCAud2lkZXNjcmVlbiAhb3B0aW9uYWw7XG4gIH1cbn1cblxuLy8gQWRkIHRoZSBibG9jayBtYXJnaW4gdG8gdmlkZW8gZW1iZWRkIGJsb2Nrcy5cbi53cC1ibG9jay12aWRlbyxcbi53cC1ibG9jay1lbWJlZC53cC1ibG9jay1lbWJlZC12aW1lbyxcbi53cC1ibG9jay1lbWJlZC53cC1ibG9jay1lbWJlZC15b3V0dWJlIHtcbiAgQGV4dGVuZCAuYmxvY2s7XG5cbiAgLy8gQWxsb3dzIHZpZGVvcyB0byBiZSByZXN0cmljdGVkIHRvIGEgY29sdW1uIHdpZHRoLlxuICAud3AtYmxvY2stZW1iZWRfX3dyYXBwZXIge1xuICAgIEBpbmNsdWRlIG1vbi1jb2xzKCR2aWRlb19jb250YWluZXJfY29sdW1ucyk7XG4gIH1cbn1cblxuLy8gaWZyYW1lIGJsb2NrLlxuLm1vbi1pZnJhbWUgaWZyYW1lIHtcbiAgaGVpZ2h0OiAzNTBweDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBoZWlnaHQ6IDQwMHB4O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIGhlaWdodDogNTUwcHg7XG4gIH1cbn1cbiIsIi8qIFNsaWRlciAqL1xuLyogRE8gTk9UIEVESVQgVEhFU0UsIFVTRSBUSEUgUlVMRVMgQVQgVEhFIEJPVFRPTSAqL1xuLnNsaWNrLXNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuXG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnNsaWNrLWxpc3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuLnNsaWNrLWxpc3Q6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLnNsaWNrLWxpc3QuZHJhZ2dpbmcge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGN1cnNvcjogaGFuZDtcbn1cblxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc2xpY2stdHJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi5zbGljay10cmFjazpiZWZvcmUsXG4uc2xpY2stdHJhY2s6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcblxuICBjb250ZW50OiBcIlwiO1xufVxuLnNsaWNrLXRyYWNrOmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG4uc2xpY2stbG9hZGluZyAuc2xpY2stdHJhY2sge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5zbGljay1zbGlkZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZsb2F0OiBsZWZ0O1xuXG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMXB4O1xufVxuW2Rpcj1cInJ0bFwiXSAuc2xpY2stc2xpZGUge1xuICBmbG9hdDogcmlnaHQ7XG59XG4uc2xpY2stc2xpZGUgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uc2xpY2stc2xpZGUuc2xpY2stbG9hZGluZyBpbWcge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnNsaWNrLXNsaWRlLmRyYWdnaW5nIGltZyB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXNsaWRlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnNsaWNrLXZlcnRpY2FsIC5zbGljay1zbGlkZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIGhlaWdodDogYXV0bztcblxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBPVkVSUklERVMgZm9yIEFMTCBzbGlkZXIgc3R5bGVzLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnNsaWRlciB7XG4gIHBhZGRpbmctYm90dG9tOiAkZ2xvYmFsLXBhZGRpbmc7XG5cbiAgLnNsaWRlcl9faW1hZ2Uge1xuICAgIG1pbi1oZWlnaHQ6IDI2MHB4O1xuICAgIHBhZGRpbmctbGVmdDogJGdsb2JhbC1wYWRkaW5nICogMC41O1xuICAgIHBhZGRpbmctcmlnaHQ6ICRnbG9iYWwtcGFkZGluZyAqIDAuNTtcbiAgICAvLyBGb3JjZSB0aGUgaW1hZ2UgdG8gdXNlIGEgMTYvOSByYXRpbywgY2hhbmdlIGFjY29yZGluZ2x5LlxuICAgIHBhZGRpbmctdG9wOiAoOSAvIDE2KSAqIDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgaW1nLFxuICAgIHBpY3R1cmUge1xuICAgICAgbGVmdDogMDtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLy8gRG90IG5hdmlnYXRpb24gYXQgdGhlIGJvdHRvbSBvZiB0aGUgc2xpZGVyLlxuICAuc2xpY2stZG90cyB7XG4gICAgYm90dG9tOiAtKCRnbG9iYWwtbWFyZ2luICogMik7XG5cbiAgICBsaSB7XG4gICAgICBtYXJnaW46IDAgJGdsb2JhbC1tYXJnaW4gKiAwLjU7XG5cbiAgICAgIGJ1dHRvbjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgfVxuXG4gICAgICAmLnNsaWNrLWFjdGl2ZSB7XG4gICAgICAgIGJ1dHRvbjpiZWZvcmUge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJldmlvdXMgYW5kIG5leHQgYnV0dG9uIHN0eWxlcy5cbiAgLnNsaWNrLWFycm93IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAvL2JvcmRlcjogNHB4IHNvbGlkICR3aGl0ZTtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDI1cHgpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAyNSU7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgei1pbmRleDogMztcbiAgICBvcGFjaXR5OiAwLjg7XG5cbiAgICAvLyBBcnJvd3MgdG8gc2l0IG91dHNpZGUgc2xpZGVyIG9uIGxhcmdlc2NyZWVuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgd2lkdGg6IDExMHB4O1xuICAgICAgaGVpZ2h0OiAxMTBweDtcblxuICAgICAgJi5zbGljay1uZXh0IHtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgICYuc2xpY2stcHJldiB7XG4gICAgICAgIGxlZnQ6IDFyZW07XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogdXJsKC4uL2ltYWdlcy9pY29ucy9jaGV2cm9uLXJpZ2h0LWxhcmdlLnN2Zyk7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzLFxuICAgICAgJjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNsaWNrLW5leHQge1xuICAgICAgbWFyZ2luLWxlZnQ6ICRnbG9iYWwtbWFyZ2luO1xuICAgICAgcmlnaHQ6IDJyZW07XG4gICAgfVxuXG4gICAgJi5zbGljay1wcmV2IHtcbiAgICAgIGxlZnQ6IDJyZW07XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgY29udGVudDogdXJsKC4uL2ltYWdlcy9pY29ucy9jaGV2cm9uLXJpZ2h0LWxhcmdlLnN2Zyk7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8gRGVmYXVsdCBWYXJpYWJsZXNcblxuLy8gU2xpY2sgaWNvbiBlbnRpdHkgY29kZXMgb3V0cHV0cyB0aGUgZm9sbG93aW5nXG4vLyBcIlxcMjE5MFwiIG91dHB1dHMgYXNjaWkgY2hhcmFjdGVyIFwi4oaQXCJcbi8vIFwiXFwyMTkyXCIgb3V0cHV0cyBhc2NpaSBjaGFyYWN0ZXIgXCLihpJcIlxuLy8gXCJcXDIwMjJcIiBvdXRwdXRzIGFzY2lpIGNoYXJhY3RlciBcIuKAolwiXG5cbi8qIEFycm93cyAqL1xuXG4uc2xpY2stcHJldixcbi5zbGljay1uZXh0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRkaXNwbGF5OiBibG9jaztcblx0aGVpZ2h0OiAyMHB4O1xuXHR3aWR0aDogMjBweDtcblx0bGluZS1oZWlnaHQ6IDBweDtcblx0Zm9udC1zaXplOiAwcHg7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGNvbG9yOiB0cmFuc3BhcmVudDtcblx0dG9wOiA1MCU7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG5cdC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG5cdHBhZGRpbmc6IDA7XG5cdGJvcmRlcjogbm9uZTtcblx0b3V0bGluZTogbm9uZTtcblx0Jjpob3ZlciwgJjpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRjb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0JjpiZWZvcmUge1xuXHRcdH1cblx0fVxuXHQmLnNsaWNrLWRpc2FibGVkOmJlZm9yZSB7XG5cdH1cblx0JjpiZWZvcmUge1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRsaW5lLWhlaWdodDogMTtcblx0XHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblx0XHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXHR9XG59XG5cbi5zbGljay1wcmV2IHtcblx0bGVmdDogLTI1cHg7XG5cdFtkaXI9XCJydGxcIl0gJiB7XG5cdFx0bGVmdDogYXV0bztcblx0XHRyaWdodDogLTI1cHg7XG5cdH1cbn1cblxuLnNsaWNrLW5leHQge1xuXHRyaWdodDogLTI1cHg7XG5cdFtkaXI9XCJydGxcIl0gJiB7XG5cdFx0bGVmdDogLTI1cHg7XG5cdFx0cmlnaHQ6IGF1dG87XG5cdH1cbn1cblxuLyogRG90cyAqL1xuXG4uc2xpY2stZG90dGVkLnNsaWNrLXNsaWRlciB7XG5cdG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi5zbGljay1kb3RzIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRib3R0b206IDA7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHBhZGRpbmc6IDA7XG5cdG1hcmdpbjogMDtcblx0d2lkdGg6IDEwMCU7XG5cblx0bGkge1xuICBcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGhlaWdodDogcmVtLWNhbGMoMTApO1xuXHRcdHdpZHRoOiByZW0tY2FsYygxMCk7XG5cdFx0bWFyZ2luOiAwIDVweDtcblx0XHRwYWRkaW5nOiAwO1xuICBcblx0XHRidXR0b24ge1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGhlaWdodDogcmVtLWNhbGMoMTApO1xuXHRcdFx0d2lkdGg6IHJlbS1jYWxjKDEwKTtcblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0XHRsaW5lLWhlaWdodDogMHB4O1xuXHRcdFx0Zm9udC1zaXplOiAwcHg7XG5cdFx0XHRjb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRwYWRkaW5nOiA1cHg7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmOmZvY3VzIHtcblx0XHRcdFx0b3V0bGluZTogbm9uZTtcblxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRcdHdpZHRoOiAxMHB4O1xuXHRcdFx0XHRoZWlnaHQ6IDEwcHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAyMHB4O1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHRcdFx0XHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwgLjI1cyBlYXNlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuc2xpY2stYWN0aXZlIGJ1dHRvbjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHR9XG5cdH1cbn1cbiIsIi8vIFN0eWxlcyBmb3IgdGhlIGJ1dHRvbnMgYW5kIGRvdHMgZXRjIGFyZSBhbGwgaW4gX3NsaWNrLnNjc3NcblxuLy8gU3RhbmRhcmQgc2xpZGVyIHN0eWxlcy5cbi5zbGlkZXIuc3RhbmRhcmRTbGlkZXIge1xuICAuc2xpY2stbGlzdCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIENvbnRyb2xzIHRoZSBnYXAgYmV0d2VlbiBlYWNoIHNsaWRlLlxuICAuc2xpY2stc2xpZGUge1xuICAgIG1hcmdpbjogMCAkZ2xvYmFsLW1hcmdpbjtcbiAgfVxuXG4gIC8vIENoYW5nZSB0aGUgaW1hZ2Ugc2l6ZSBieSBjaGFuZ2luZyB0aGUgcGFkZGluZy10b3AgdmFsdWUuXG4gIC5zbGlkZXJfX2ltYWdlIHtcbiAgICBwYWRkaW5nLXRvcDogKDkgLyAxNikgKiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGltZyxcbiAgICBwaWN0dXJlIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICYtLWhhcy1jYXB0aW9uIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICogNjtcbiAgICB9XG4gIH1cbn1cblxuLy8gZmlnY2FwdGlvbiBzdHlsZXMuXG4uc2xpZGVyX19jYXB0aW9uIHtcbiAgYm90dG9tOiAtJGdsb2JhbC1wYWRkaW5nICogNDtcbiAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgKiAwLjUgJGdsb2JhbC1wYWRkaW5nO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDI7XG59XG4iXX0= */
