@charset "UTF-8";
/**
 * Foundation for Sites
 * Version 6.7.4
 * https://get.foundation
 * Licensed under MIT Open Source
 */
/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
@import url("https://web-archive.nli.org.il/National_Library/cs_/https://fonts.googleapis.com/css2?family=Cormorant:ital,wght@1,600&display=swap");
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%; }

body {
  margin: 0; }

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

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

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

a {
  background-color: transparent; }

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

b,
strong {
  font-weight: bolder; }

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

small {
  font-size: 80%; }

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

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

img {
  border-style: none; }

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

button,
input {
  overflow: visible; }

button,
select {
  text-transform: none; }

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

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

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

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

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

progress {
  vertical-align: baseline; }

textarea {
  overflow: auto; }

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

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

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

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

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

details {
  display: block; }

summary {
  display: list-item; }

template {
  display: none; }

[hidden] {
  display: none; }

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

[draggable=false] {
  -webkit-touch-callout: none;
  -webkit-user-select: none; }

.foundation-mq {
  font-family: "small=0em&mobile=25.875em&medium=40em&mobile-xl=40em&phablet=48em&tablet=60em&desktop=75em&desktop-xl=90em&desktop-xxl=103.75em"; }

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

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

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: "Open Sans", sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  -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 {
  -webkit-box-sizing: border-box;
          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;
  -webkit-overflow-scrolling: touch; }

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,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

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

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

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

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

h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-family: "Open Sans", sans-serif;
  font-style: normal;
  font-weight: 700;
  color: inherit;
  text-rendering: optimizeLegibility; }
  h1 small, .h1 small,
  h2 small, .h2 small,
  h3 small, .h3 small,
  h4 small, .h4 small,
  h5 small, .h5 small,
  h6 small, .h6 small {
    line-height: 0;
    color: #cacaca; }

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

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

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

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

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

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

@media print, screen and (min-width: 40em) {
  h1, .h1 {
    font-size: 3.125rem; }
  h2, .h2 {
    font-size: 2.75rem; }
  h3, .h3 {
    font-size: 2.5rem; }
  h4, .h4 {
    font-size: 1.875rem; }
  h5, .h5 {
    font-size: 1.25rem; }
  h6, .h6 {
    font-size: 1.25rem; } }

a {
  line-height: inherit;
  color: #003DF5;
  text-decoration: none;
  cursor: pointer; }
  a:hover, a:focus {
    color: #0034d3; }
  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: 700; }

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #cacaca; }
  blockquote, blockquote p {
    line-height: 1.6;
    color: #8a8a8a; }

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

figure {
  margin: 0; }

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #e6e6e6;
  font-family: "Cormorant", serif;
  color: #0a0a0a; }

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

cite, .cite-block {
  display: block;
  color: inherit;
  font-size: 0.8125rem; }
  cite:before, .cite-block:before {
    content: "— "; }

code, .code-inline {
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: "Cormorant", serif;
  font-weight: normal;
  color: #0a0a0a;
  display: inline;
  max-width: 100%;
  word-wrap: break-word;
  padding: 0.125rem 0.3125rem 0.0625rem; }

.code-block {
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: "Cormorant", serif;
  font-weight: normal;
  color: #0a0a0a;
  display: block;
  overflow: auto;
  white-space: pre;
  padding: 1rem;
  margin-bottom: 1.5rem; }

.mobile tablet desktop-text-left {
  text-align: left; }

.mobile tablet desktop-text-right {
  text-align: right; }

.mobile tablet desktop-text-center {
  text-align: center; }

.mobile tablet desktop-text-justify {
  text-align: justify; }

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

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

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

@media print {
  * {
    background: transparent !important;
    color: black !important;
    -webkit-print-color-adjust: economy;
            color-adjust: economy;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    text-shadow: none !important; }
  .show-for-print {
    display: block !important; }
  .hide-for-print {
    display: none !important; }
  table.show-for-print {
    display: table !important; }
  thead.show-for-print {
    display: table-header-group !important; }
  tbody.show-for-print {
    display: table-row-group !important; }
  tr.show-for-print {
    display: table-row !important; }
  td.show-for-print {
    display: table-cell !important; }
  th.show-for-print {
    display: table-cell !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: ''; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  pre,
  blockquote {
    border: 1px solid #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,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; }
  .print-break-inside {
    page-break-inside: auto; } }

/**
 * Text color based on its background.
 * @param  {Number} $color Color.
 * @return {Number} Color.
 */
/**
 * Vertical align anything
 * @param {value} $position
 * return none
 */
html {
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch; }
  @media (prefers-reduced-motion: reduce) {
    html {
      scroll-behavior: auto; } }

.section__wrapper {
  padding-right: 0;
  padding-left: 0;
  max-width: 85vw;
  margin-left: auto;
  margin-right: auto; }
  @media print, screen and (min-width: 60em) {
    .section__wrapper {
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      max-width: 75rem;
      margin-left: auto;
      margin-right: auto; } }
  @media print, screen and (min-width: 60em) and (min-width: 40em) {
    .section__wrapper {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.section {
  padding: 3.75rem 0;
  text-align: center; }
  @media print, screen and (min-width: 60em) {
    .section {
      text-align: left; } }
  .section__header {
    margin-bottom: 1.5rem; }
    @media print, screen and (min-width: 60em) {
      .section__header {
        margin-bottom: 3.75rem; } }

.hidden {
  display: none; }

:is(h2, h5), .h-font-alt, .webplanner__description {
  font-family: "Cormorant", serif; }

:is(h5) {
  font-weight: 500;
  font-style: italic; }

.h-visible-hidden {
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px; }
  .h-visible-hidden:focus {
    clip: auto;
    height: auto;
    overflow: auto;
    position: absolute;
    width: auto; }

.h-list--clean {
  list-style: none;
  margin: 0; }

.h-list--counter {
  counter-reset: section; }
  .h-list--counter [class*="title"]::before {
    counter-increment: section;
    content: counter(section) ". "; }

.h-text--primary {
  color: #003DF5; }

.h-text--italic {
  font-style: italic; }

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

.h-text--underlined {
  text-decoration: underline; }

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

.h-font--light {
  font-weight: 300; }

.h-font--regular {
  font-weight: normal; }

.h-font--semibold {
  font-weight: 500; }

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

.h-font-xxs {
  font-size: 0.625rem; }

.h-font-xs {
  font-size: 0.75rem; }

.h-font-s {
  font-size: 0.875rem; }

.h-font-m {
  font-size: 1rem; }

.h-font-ml {
  font-size: 1.125rem; }

.h-font-l {
  font-size: 1.25rem; }

.h-font-xl {
  font-size: 1.5rem; }

.h-font-xxl {
  font-size: 1.875rem; }

.h-p-0 {
  /* stylelint-disable */
  padding: 0rem !important;
  /* stylelint-enable */ }

.h-p-1 {
  /* stylelint-disable */
  padding: 0.5rem !important;
  /* stylelint-enable */ }

.h-p-2 {
  /* stylelint-disable */
  padding: 1rem !important;
  /* stylelint-enable */ }

.h-p-3 {
  /* stylelint-disable */
  padding: 1.5rem !important;
  /* stylelint-enable */ }

.h-p-4 {
  /* stylelint-disable */
  padding: 2rem !important;
  /* stylelint-enable */ }

.h-p-6 {
  /* stylelint-disable */
  padding: 3rem !important;
  /* stylelint-enable */ }

.h-p-8 {
  /* stylelint-disable */
  padding: 4rem !important;
  /* stylelint-enable */ }

.h-p-10 {
  /* stylelint-disable */
  padding: 5rem !important;
  /* stylelint-enable */ }

.h-pt-0 {
  /* stylelint-disable */
  padding-top: 0rem !important;
  /* stylelint-enable */ }

.h-pt-1 {
  /* stylelint-disable */
  padding-top: 0.5rem !important;
  /* stylelint-enable */ }

.h-pt-2 {
  /* stylelint-disable */
  padding-top: 1rem !important;
  /* stylelint-enable */ }

.h-pt-3 {
  /* stylelint-disable */
  padding-top: 1.5rem !important;
  /* stylelint-enable */ }

.h-pt-4 {
  /* stylelint-disable */
  padding-top: 2rem !important;
  /* stylelint-enable */ }

.h-pt-6 {
  /* stylelint-disable */
  padding-top: 3rem !important;
  /* stylelint-enable */ }

.h-pt-8 {
  /* stylelint-disable */
  padding-top: 4rem !important;
  /* stylelint-enable */ }

.h-pt-10 {
  /* stylelint-disable */
  padding-top: 5rem !important;
  /* stylelint-enable */ }

.h-pr-0 {
  /* stylelint-disable */
  padding-right: 0rem !important;
  /* stylelint-enable */ }

.h-pr-1 {
  /* stylelint-disable */
  padding-right: 0.5rem !important;
  /* stylelint-enable */ }

.h-pr-2 {
  /* stylelint-disable */
  padding-right: 1rem !important;
  /* stylelint-enable */ }

.h-pr-3 {
  /* stylelint-disable */
  padding-right: 1.5rem !important;
  /* stylelint-enable */ }

.h-pr-4 {
  /* stylelint-disable */
  padding-right: 2rem !important;
  /* stylelint-enable */ }

.h-pr-6 {
  /* stylelint-disable */
  padding-right: 3rem !important;
  /* stylelint-enable */ }

.h-pr-8 {
  /* stylelint-disable */
  padding-right: 4rem !important;
  /* stylelint-enable */ }

.h-pr-10 {
  /* stylelint-disable */
  padding-right: 5rem !important;
  /* stylelint-enable */ }

.h-pb-0 {
  /* stylelint-disable */
  padding-bottom: 0rem !important;
  /* stylelint-enable */ }

.h-pb-1 {
  /* stylelint-disable */
  padding-bottom: 0.5rem !important;
  /* stylelint-enable */ }

.h-pb-2 {
  /* stylelint-disable */
  padding-bottom: 1rem !important;
  /* stylelint-enable */ }

.h-pb-3 {
  /* stylelint-disable */
  padding-bottom: 1.5rem !important;
  /* stylelint-enable */ }

.h-pb-4 {
  /* stylelint-disable */
  padding-bottom: 2rem !important;
  /* stylelint-enable */ }

.h-pb-6 {
  /* stylelint-disable */
  padding-bottom: 3rem !important;
  /* stylelint-enable */ }

.h-pb-8 {
  /* stylelint-disable */
  padding-bottom: 4rem !important;
  /* stylelint-enable */ }

.h-pb-10 {
  /* stylelint-disable */
  padding-bottom: 5rem !important;
  /* stylelint-enable */ }

.h-pl-0 {
  /* stylelint-disable */
  padding-left: 0rem !important;
  /* stylelint-enable */ }

.h-pl-1 {
  /* stylelint-disable */
  padding-left: 0.5rem !important;
  /* stylelint-enable */ }

.h-pl-2 {
  /* stylelint-disable */
  padding-left: 1rem !important;
  /* stylelint-enable */ }

.h-pl-3 {
  /* stylelint-disable */
  padding-left: 1.5rem !important;
  /* stylelint-enable */ }

.h-pl-4 {
  /* stylelint-disable */
  padding-left: 2rem !important;
  /* stylelint-enable */ }

.h-pl-6 {
  /* stylelint-disable */
  padding-left: 3rem !important;
  /* stylelint-enable */ }

.h-pl-8 {
  /* stylelint-disable */
  padding-left: 4rem !important;
  /* stylelint-enable */ }

.h-pl-10 {
  /* stylelint-disable */
  padding-left: 5rem !important;
  /* stylelint-enable */ }

.h-m-0 {
  /* stylelint-disable */
  margin: 0rem !important;
  /* stylelint-enable */ }

.h-m-1 {
  /* stylelint-disable */
  margin: 0.5rem !important;
  /* stylelint-enable */ }

.h-m-2 {
  /* stylelint-disable */
  margin: 1rem !important;
  /* stylelint-enable */ }

.h-m-3 {
  /* stylelint-disable */
  margin: 1.5rem !important;
  /* stylelint-enable */ }

.h-m-4 {
  /* stylelint-disable */
  margin: 2rem !important;
  /* stylelint-enable */ }

.h-m-6 {
  /* stylelint-disable */
  margin: 3rem !important;
  /* stylelint-enable */ }

.h-m-8 {
  /* stylelint-disable */
  margin: 4rem !important;
  /* stylelint-enable */ }

.h-m-10 {
  /* stylelint-disable */
  margin: 5rem !important;
  /* stylelint-enable */ }

.h-mt-0 {
  /* stylelint-disable */
  margin-top: 0rem !important;
  /* stylelint-enable */ }

.h-mt-1 {
  /* stylelint-disable */
  margin-top: 0.5rem !important;
  /* stylelint-enable */ }

.h-mt-2 {
  /* stylelint-disable */
  margin-top: 1rem !important;
  /* stylelint-enable */ }

.h-mt-3 {
  /* stylelint-disable */
  margin-top: 1.5rem !important;
  /* stylelint-enable */ }

.h-mt-4 {
  /* stylelint-disable */
  margin-top: 2rem !important;
  /* stylelint-enable */ }

.h-mt-6 {
  /* stylelint-disable */
  margin-top: 3rem !important;
  /* stylelint-enable */ }

.h-mt-8 {
  /* stylelint-disable */
  margin-top: 4rem !important;
  /* stylelint-enable */ }

.h-mt-10 {
  /* stylelint-disable */
  margin-top: 5rem !important;
  /* stylelint-enable */ }

.h-mr-0 {
  /* stylelint-disable */
  margin-right: 0rem !important;
  /* stylelint-enable */ }

.h-mr-1 {
  /* stylelint-disable */
  margin-right: 0.5rem !important;
  /* stylelint-enable */ }

.h-mr-2 {
  /* stylelint-disable */
  margin-right: 1rem !important;
  /* stylelint-enable */ }

.h-mr-3 {
  /* stylelint-disable */
  margin-right: 1.5rem !important;
  /* stylelint-enable */ }

.h-mr-4 {
  /* stylelint-disable */
  margin-right: 2rem !important;
  /* stylelint-enable */ }

.h-mr-6 {
  /* stylelint-disable */
  margin-right: 3rem !important;
  /* stylelint-enable */ }

.h-mr-8 {
  /* stylelint-disable */
  margin-right: 4rem !important;
  /* stylelint-enable */ }

.h-mr-10 {
  /* stylelint-disable */
  margin-right: 5rem !important;
  /* stylelint-enable */ }

.h-mb-0 {
  /* stylelint-disable */
  margin-bottom: 0rem !important;
  /* stylelint-enable */ }

.h-mb-1 {
  /* stylelint-disable */
  margin-bottom: 0.5rem !important;
  /* stylelint-enable */ }

.h-mb-2 {
  /* stylelint-disable */
  margin-bottom: 1rem !important;
  /* stylelint-enable */ }

.h-mb-3 {
  /* stylelint-disable */
  margin-bottom: 1.5rem !important;
  /* stylelint-enable */ }

.h-mb-4 {
  /* stylelint-disable */
  margin-bottom: 2rem !important;
  /* stylelint-enable */ }

.h-mb-6 {
  /* stylelint-disable */
  margin-bottom: 3rem !important;
  /* stylelint-enable */ }

.h-mb-8 {
  /* stylelint-disable */
  margin-bottom: 4rem !important;
  /* stylelint-enable */ }

.h-mb-10 {
  /* stylelint-disable */
  margin-bottom: 5rem !important;
  /* stylelint-enable */ }

.h-ml-0 {
  /* stylelint-disable */
  margin-left: 0rem !important;
  /* stylelint-enable */ }

.h-ml-1 {
  /* stylelint-disable */
  margin-left: 0.5rem !important;
  /* stylelint-enable */ }

.h-ml-2 {
  /* stylelint-disable */
  margin-left: 1rem !important;
  /* stylelint-enable */ }

.h-ml-3 {
  /* stylelint-disable */
  margin-left: 1.5rem !important;
  /* stylelint-enable */ }

.h-ml-4 {
  /* stylelint-disable */
  margin-left: 2rem !important;
  /* stylelint-enable */ }

.h-ml-6 {
  /* stylelint-disable */
  margin-left: 3rem !important;
  /* stylelint-enable */ }

.h-ml-8 {
  /* stylelint-disable */
  margin-left: 4rem !important;
  /* stylelint-enable */ }

.h-ml-10 {
  /* stylelint-disable */
  margin-left: 5rem !important;
  /* stylelint-enable */ }

.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0;
  padding: 0.85em 2em;
  border: 1px solid transparent;
  border-radius: 1.625rem;
  -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-family: inherit;
  font-size: inherit;
  font-weight: 700;
  -webkit-appearance: none;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  display: block;
  width: 100%;
  margin-right: 0;
  margin-left: 0;
  text-transform: uppercase; }
  [data-whatinput='mouse'] .button {
    outline: 0; }
  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {
    background-color: #003DF5;
    color: #fefefe; }
  .button:hover, .button:focus {
    background-color: #0031c4;
    color: #fefefe; }
  [data-whatinput='mouse'] .button {
    outline: 0; }
  .button:hover {
    text-decoration: none; }
  .button .svg-icon {
    fill: #fefefe; }
  .button--hollow {
    display: inline-block;
    vertical-align: middle;
    margin: 0;
    padding: 0.85em 2em;
    border: 1px solid transparent;
    border-radius: 1.625rem;
    -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
    transition: background-color 0.25s ease-out, color 0.25s ease-out;
    font-family: inherit;
    font-size: inherit;
    font-weight: 700;
    -webkit-appearance: none;
    line-height: 1;
    text-align: center;
    cursor: pointer;
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
    font-weight: 500;
    text-transform: uppercase; }
    [data-whatinput='mouse'] .button--hollow {
      outline: 0; }
    .button--hollow, .button--hollow:hover, .button--hollow:focus, .button--hollow.disabled, .button--hollow.disabled:hover, .button--hollow.disabled:focus, .button--hollow[disabled], .button--hollow[disabled]:hover, .button--hollow[disabled]:focus {
      background-color: transparent; }
    .button--hollow, .button--hollow.disabled, .button--hollow[disabled], .button--hollow.disabled:hover, .button--hollow[disabled]:hover, .button--hollow.disabled:focus, .button--hollow[disabled]:focus {
      border: 1px solid #003DF5;
      color: #003DF5; }
    .button--hollow:hover, .button--hollow:focus {
      border-color: #001f7b;
      color: #001f7b; }
    .button--hollow .svg-icon {
      fill: #003DF5; }
  .button--secondary {
    display: inline-block;
    vertical-align: middle;
    margin: 0;
    padding: 0.85em 2em;
    border: 1px solid transparent;
    border-radius: 1.625rem;
    -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
    transition: background-color 0.25s ease-out, color 0.25s ease-out;
    font-family: inherit;
    font-size: inherit;
    font-weight: 700;
    -webkit-appearance: none;
    line-height: 1;
    text-align: center;
    cursor: pointer;
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0; }
    [data-whatinput='mouse'] .button--secondary {
      outline: 0; }
    .button--secondary, .button--secondary.disabled, .button--secondary[disabled], .button--secondary.disabled:hover, .button--secondary[disabled]:hover, .button--secondary.disabled:focus, .button--secondary[disabled]:focus {
      background-color: #fefefe;
      color: #0a0a0a; }
    .button--secondary:hover, .button--secondary:focus {
      background-color: #cbcbcb;
      color: #0a0a0a; }
  .button--special {
    display: inline-block;
    vertical-align: middle;
    margin: 0;
    padding: 0.85em 2em;
    border: 1px solid transparent;
    border-radius: 1.625rem;
    -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
    transition: background-color 0.25s ease-out, color 0.25s ease-out;
    font-family: inherit;
    font-size: inherit;
    font-weight: 700;
    -webkit-appearance: none;
    line-height: 1;
    text-align: center;
    cursor: pointer;
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0; }
    [data-whatinput='mouse'] .button--special {
      outline: 0; }
    .button--special, .button--special.disabled, .button--special[disabled], .button--special.disabled:hover, .button--special[disabled]:hover, .button--special.disabled:focus, .button--special[disabled]:focus {
      background-color: #43cf9f;
      color: #0a0a0a; }
    .button--special:hover, .button--special:focus {
      background-color: #2daf82;
      color: #0a0a0a; }
  .button--shrink {
    display: inline-block;
    width: auto;
    margin: 0; }
  .button--disabled {
    opacity: 0.25;
    cursor: not-allowed; }
  .button--social {
    font-weight: 500; }
    .button--social .svg-icon {
      fill: #fefefe; }
  .button:focus {
    outline: thin dotted; }

button:focus {
  outline: transparent; }

.list__counter {
  counter-reset: mycounter; }
  .list__counter dt::before {
    content: counter(mycounter) ". ";
    counter-increment: mycounter; }
  .list__counter dd {
    counter-reset: subcounter; }
  .list__counter div {
    counter-reset: subsubcounter; }
  .list__counter .subtitle::before {
    content: counter(mycounter) "." counter(subcounter) ". ";
    counter-increment: subcounter; }
  .list__counter .subsubtitle::before {
    content: counter(mycounter) "." counter(subcounter) "." counter(subsubcounter) ". ";
    counter-increment: subsubcounter; }

.card {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column; }
  .card__text {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .card__name {
    font-weight: 700; }
  .card__description {
    margin: 0;
    padding: 0 1rem; }
    @media print, screen and (min-width: 48em) {
      .card__description {
        padding: 0;
        padding-right: 1rem; } }
  .card__image {
    margin-bottom: 1rem; }

.navbar-open {
  overflow: hidden; }

.navbar input {
  display: none; }
  .navbar input:checked + .navbar__label span:nth-child(2) {
    opacity: 0; }
  .navbar input:checked + .navbar__label span:first-child {
    -webkit-transform: translateY(7px) translateX(0) rotate(45deg);
            transform: translateY(7px) translateX(0) rotate(45deg); }
  .navbar input:checked + .navbar__label span:last-child {
    -webkit-transform: translateY(-8px) translateX(0) rotate(-45deg);
            transform: translateY(-8px) translateX(0) rotate(-45deg); }
  .navbar input:checked ~ .navbar__list {
    height: auto; }
    @media print, screen and (min-width: 60em) {
      .navbar input:checked ~ .navbar__list {
        height: inherit; } }
  .navbar input + label {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    margin: 0; }
    @media print, screen and (min-width: 60em) {
      .navbar input + label {
        display: none; } }

.navbar__label {
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  background-color: #fefefe;
  border-radius: 50%;
  height: 100%;
  height: 2.75rem;
  margin: 0;
  padding: 0.8rem 0.66667rem;
  width: 2.75rem; }
  .navbar__label:focus {
    outline: 1px dotted #fefefe; }
  .navbar__label span {
    background-color: #0a0a0a;
    border-radius: 1px;
    display: block;
    height: 3px;
    transition: transform 0.2s, -webkit-transform 0.2s;
    width: 100%; }

.navbar__list {
  -webkit-transition: height 0.4s ease;
  transition: height 0.4s ease;
  z-index: 120; }
  @media print, screen and (max-width: 59.99875em) {
    .navbar__list {
      background-color: rgba(0, 10, 38, 0.95);
      left: 0;
      height: 0;
      text-align: center;
      overflow: hidden;
      position: absolute;
      top: 88px;
      width: 100%; } }
  @media print, screen and (min-width: 60em) {
    .navbar__list {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      height: 4rem;
      overflow: visible;
      -webkit-box-align: center;
      -webkit-align-items: center;
          -ms-flex-align: center;
              align-items: center; } }
  .navbar__list__item {
    font-size: 1.25rem;
    margin: auto;
    padding: 1rem;
    width: 75vw; }
    .navbar__list__item:first-child {
      border-top: 1px solid #6da2ff; }
      @media print, screen and (min-width: 60em) {
        .navbar__list__item:first-child {
          border: 0; } }
    .navbar__list__item:not(:last-child) {
      border-bottom: 1px solid #6da2ff; }
      @media print, screen and (min-width: 60em) {
        .navbar__list__item:not(:last-child) {
          border: 0; } }
    @media print, screen and (min-width: 60em) {
      .navbar__list__item {
        margin: inherit;
        min-width: 120px;
        width: auto; } }

@media print, screen and (min-width: 60em) {
  .navbar li ul {
    display: none; } }

@media print, screen and (min-width: 60em) {
  .navbar li:hover span::after {
    content: "-";
    width: 24px; } }

.navbar li:hover ul {
  display: inherit; }

.navbar li li {
  font-size: 1rem;
  margin-top: 1rem; }
  @media print, screen and (min-width: 60em) {
    .navbar li li {
      margin-top: inherit; } }

.navbar a {
  color: inherit;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex; }
  @media print, screen and (min-width: 60em) {
    .navbar a span::after {
      color: #fefefe;
      content: "+";
      display: inline-block;
      font-size: 1.5rem;
      font-weight: 700;
      line-height: 1;
      margin-left: 0.5rem;
      height: 24px;
      position: relative;
      width: 24px; } }
  @media print, screen and (min-width: 60em) {
    .navbar a.rounded {
      border: 1px solid #f7f7f7;
      -webkit-box-sizing: border-box;
              box-sizing: border-box;
      border-radius: 1.875rem;
      width: -webkit-fit-content;
      width: -moz-fit-content;
      width: fit-content;
      padding: 0.5rem 1rem; } }

.instructions-navbar {
  left: 0;
  position: fixed;
  top: 15vh;
  z-index: 9; }
  .instructions-navbar__input {
    display: none; }
    .instructions-navbar__input:checked + label {
      -webkit-transform: translateX(1rem);
              transform: translateX(1rem); }
      .instructions-navbar__input:checked + label span:nth-child(2) {
        opacity: 0; }
      .instructions-navbar__input:checked + label span:first-child {
        -webkit-transform: translateY(7px) translateX(1px) rotate(45deg);
                transform: translateY(7px) translateX(1px) rotate(45deg); }
      .instructions-navbar__input:checked + label span:last-child {
        -webkit-transform: translateY(-9px) translateX(1px) rotate(-45deg);
                transform: translateY(-9px) translateX(1px) rotate(-45deg); }
    .instructions-navbar__input:checked ~ .instructions-navbar__wrapper {
      -webkit-transform: translateX(0);
              transform: translateX(0); }
    .instructions-navbar__input:checked ~ .instructions-navbar__mask::before {
      content: ""; }
    .instructions-navbar__input + label {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      margin: 0; }
  .instructions-navbar__label {
    -webkit-box-pack: end;
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    background-color: #6da2ff;
    border-radius: 0 1.875rem 1.875rem 0;
    color: #071119;
    height: 3.75rem;
    left: -1rem;
    margin: 0;
    padding-right: 0.46875rem;
    position: relative;
    -webkit-transition: -webkit-transform .4s ease;
    transition: -webkit-transform .4s ease;
    transition: transform .4s ease;
    transition: transform .4s ease, -webkit-transform .4s ease;
    width: 4.375rem;
    z-index: 10; }
    .instructions-navbar__label:hover {
      -webkit-transform: translateX(1rem);
              transform: translateX(1rem); }
    .instructions-navbar__label:focus {
      outline: 1px dotted #6da2ff; }
    @media print, screen and (min-width: 60em) {
      .instructions-navbar__label {
        width: 6.25rem; } }
    .instructions-navbar__label__wrapper {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
      -webkit-justify-content: space-between;
          -ms-flex-pack: justify;
              justify-content: space-between;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column;
      background-color: #071119;
      border-radius: 50%;
      height: 2.75rem;
      padding: 0.8rem 0.66667rem;
      width: 2.75rem; }
    .instructions-navbar__label span {
      background-color: #6da2ff;
      border-radius: 1px;
      display: block;
      height: 2px;
      transition: transform .2s,-webkit-transform .2s;
      width: 100%; }
      .instructions-navbar__label span:nth-child(2) {
        width: 75%; }
  .instructions-navbar__wrapper {
    background-color: #6da2ff;
    border-radius: 0 1.875rem 1.875rem 0;
    max-height: calc(80vh - 32px);
    overflow-y: scroll;
    padding: 0.5rem 0;
    position: relative;
    text-align: right;
    -webkit-transition: -webkit-transform .4s ease;
    transition: -webkit-transform .4s ease;
    transition: transform .4s ease;
    transition: transform .4s ease, -webkit-transform .4s ease;
    -webkit-transform: translateX(-500px);
            transform: translateX(-500px);
    top: -2rem;
    z-index: 9; }
  .instructions-navbar__mask::before {
    -webkit-backdrop-filter: blur(2px);
            backdrop-filter: blur(2px);
    background-color: rgba(10, 10, 10, 0.35);
    height: 100%;
    left: 0;
    position: fixed;
    top: 0;
    width: 100%; }
  .instructions-navbar__list {
    padding: 2rem 1rem; }
  .instructions-navbar li {
    font-weight: 700;
    margin-bottom: 0.5rem; }
    .instructions-navbar li:last-child  {
      margin: 0; }
    .instructions-navbar li > ul {
      list-style: none;
      margin: 0; }
    .instructions-navbar li li {
      font-weight: normal; }
  .instructions-navbar a {
    color: #071119;
    -webkit-transition: color .1s ease;
    transition: color .1s ease; }
    .instructions-navbar a:hover {
      color: #f7f7f7; }

.tabs {
  /** tab styling **/
  /* Style the buttons inside the tab */
  /* Change background color of buttons on hover */
  /* Create an active/current tablink class */
  /* Style the tab content */ }
  .tabs .tab {
    overflow: hidden;
    background: #fefefe;
    border: 2px solid #003DF5;
    border-radius: 1.625rem;
    float: right; }
    .tabs .tab.active {
      overflow: visible; }
    @media print, screen and (max-width: 39.99875em) {
      .tabs .tab {
        left: 0;
        right: 0;
        margin: auto;
        width: -webkit-fit-content;
        width: -moz-fit-content;
        width: fit-content;
        float: none; } }
  .tabs .tab button {
    background-color: inherit;
    color: #003DF5;
    border: none;
    outline: none;
    cursor: pointer;
    padding: 0.75rem 1.875rem;
    -webkit-transition: 0.3s;
    transition: 0.3s;
    font-size: 1.25rem;
    font-weight: 700; }
  .tabs .tab button:hover {
    background-color: #fefefe; }
  .tabs .tab button.active {
    -webkit-box-shadow: 0 0 0 2px #003DF5;
            box-shadow: 0 0 0 2px #003DF5;
    background-color: #003DF5;
    color: #fefefe;
    border-radius: 1.625rem; }
  .tabs .tabcontent {
    display: none; }
    .tabs .tabcontent.active {
      display: block; }

.header {
  background-image: url(/National_Library/oe_/https://www.dreamwaves.io/assets/img/bkg_hero.webp);
  background-repeat: no-repeat;
  background-size: cover;
  color: #fefefe;
  padding: 0; }
  .header--gray {
    background-color: #071119;
    background-image: none; }
  .header__wrapper {
    padding-top: 0; }
  .header__navbar {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    background-color: rgba(0, 10, 38, 0.95);
    -webkit-box-shadow: 0 1px 25px rgba(10, 10, 10, 0.1);
            box-shadow: 0 1px 25px rgba(10, 10, 10, 0.1);
    height: 88px;
    padding: 1rem;
    position: fixed;
    top: 0;
    -webkit-transition: all .3s ease;
    transition: all .3s ease;
    width: 100%;
    z-index: 100; }
    .header__navbar.hide {
      top: -88px; }
    @media print, screen and (min-width: 60em) {
      .header__navbar {
        background: none;
        -webkit-box-shadow: none;
                box-shadow: none;
        padding: 0;
        position: inherit; } }
    .header__navbar__wrapper {
      padding-right: 0;
      padding-left: 0;
      max-width: 75rem;
      margin-left: auto;
      margin-right: auto;
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
      -webkit-justify-content: space-between;
          -ms-flex-pack: justify;
              justify-content: space-between;
      -webkit-box-align: start;
      -webkit-align-items: flex-start;
          -ms-flex-align: start;
              align-items: flex-start;
      width: 100%; }
      @media print, screen and (min-width: 60em) {
        .header__navbar__wrapper {
          padding: 1rem; } }
  .header__logo__image {
    width: clamp(200px, 35vw, 300px); }
  .header-placeholder {
    height: 88px; }
    @media print, screen and (min-width: 60em) {
      .header-placeholder {
        display: none; } }

.hero {
  padding: 0;
  padding-top: 3rem; }
  @media print, screen and (min-width: 60em) {
    .hero {
      background-image: url(/National_Library/oe_/https://www.dreamwaves.io/assets/img/hero_smartphones-app.webp?v=1.11);
      background-position: right bottom;
      background-repeat: no-repeat;
      background-size: 300px auto;
      margin-top: 1.5rem;
      padding-top: 0; }
      .hero--no-image {
        background-image: none; } }
  @media print, screen and (min-width: 75em) {
    .hero {
      background-size: 425px auto; } }
  .hero__wrapper {
    min-height: 475px;
    padding: 3.75rem 0; }
  .hero__wrapper__empty__top {
    min-height: 475px;
    padding: 9.375rem 1rem 3.75rem; }
  .hero__header {
    margin-bottom: 3rem; }
    @media print, screen and (min-width: 60em) {
      .hero__header {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        width: calc(100% - 1.875rem);
        margin-left: 0.9375rem;
        margin-right: 0.9375rem; } }
    @media print, screen and (min-width: 75em) {
      .hero__header {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        width: calc(60% - 1.875rem);
        margin-left: 0.9375rem;
        margin-right: 0.9375rem; } }
    @media print, screen and (min-width: 75em) {
      .hero__header.full-width {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        width: calc(100% - 1.875rem);
        margin-left: 0.9375rem;
        margin-right: 0.9375rem; } }
  @media print, screen and (min-width: 60em) {
    .hero__body {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      width: calc(60% - 1.875rem);
      margin-left: 0.9375rem;
      margin-right: 0.9375rem; } }
  @media print, screen and (min-width: 48em) and (max-width: 59.99875em) {
    .hero__body {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-flow: row wrap;
          -ms-flex-flow: row wrap;
              flex-flow: row wrap; } }
  .hero__picture {
    margin-bottom: 3rem; }
    @media print, screen and (min-width: 48em) and (max-width: 59.99875em) {
      .hero__picture {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        width: calc(50% - 1.875rem);
        margin-left: 0.9375rem;
        margin-right: 0.9375rem;
        -webkit-box-ordinal-group: 4;
        -webkit-order: 3;
            -ms-flex-order: 3;
                order: 3;
        margin-bottom: 0; } }
    @media print, screen and (min-width: 60em) {
      .hero__picture {
        display: none; } }
  .hero__cta {
    margin-bottom: 3rem; }
    @media print, screen and (min-width: 48em) {
      .hero__cta {
        text-align: left; } }
    @media print, screen and (min-width: 48em) and (max-width: 59.99875em) {
      .hero__cta {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        width: calc(100% - 1.875rem);
        margin-left: 0.9375rem;
        margin-right: 0.9375rem; } }
    @media print, screen and (max-width: 59.99875em) {
      .hero__cta__image {
        max-width: 40vw;
        height: 3.75rem; } }
  @media print, screen and (min-width: 48em) and (max-width: 59.99875em) {
    .hero__copy {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      width: calc(50% - 1.875rem);
      margin-left: 0.9375rem;
      margin-right: 0.9375rem; } }
  .hero__title {
    font-size: 2.1875rem;
    font-weight: 700; }
    @media print, screen and (min-width: 60em) {
      .hero__title {
        font-size: 2.5rem; } }
    @media print, screen and (min-width: 48em) {
      .hero__title {
        text-align: left; } }
  .hero__subtitle {
    font-size: clamp(1.875rem, 2.375rem, 10vh);
    font-style: italic;
    font-weight: 500;
    margin-bottom: 2rem; }
    @media print, screen and (min-width: 60em) {
      .hero__subtitle {
        margin-bottom: inherit; } }
    @media print, screen and (min-width: 48em) {
      .hero__subtitle {
        text-align: left; } }
  .hero__citation {
    font-size: 1.25rem;
    font-style: italic;
    font-weight: 500;
    margin-bottom: 2rem; }
    @media print, screen and (min-width: 60em) {
      .hero__citation {
        margin-bottom: inherit; } }
  .hero__image {
    margin-bottom: 1rem; }
  .hero__image__50 {
    margin-bottom: 1rem;
    margin-top: 3.75rem;
    height: 3.125rem; }
  @media print, screen and (min-width: 48em) {
    .hero__description {
      text-align: left; } }
  .hero__green__button {
    background-color: #43CF9F;
    color: #071119;
    -webkit-transition: background-color 0.1s ease;
    transition: background-color 0.1s ease; }
    .hero__green__button:hover {
      background-color: #1BA777; }
    .hero__green__button:focus {
      background-color: #43CF9F; }

.highlights {
  background-color: #003DF5;
  color: #fefefe; }
  .highlights__list {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
    text-align: center; }
    .highlights__list__element {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      width: calc(83.33333% - 1.25rem);
      margin-left: 0.625rem;
      margin-right: 0.625rem;
      margin-left: calc(8.33333% + 1.25rem / 2); }
      .highlights__list__element:not(:last-child) {
        margin-bottom: 3.125rem; }
        @media print, screen and (min-width: 60em) {
          .highlights__list__element:not(:last-child) {
            margin-bottom: 0; } }
      @media print, screen and (min-width: 60em) {
        .highlights__list__element {
          -webkit-box-flex: 0;
          -webkit-flex: 0 0 auto;
              -ms-flex: 0 0 auto;
                  flex: 0 0 auto;
          width: calc(33.33333% - 6rem);
          margin-left: 3rem;
          margin-right: 3rem; } }
  .highlights__picture {
    aspect-ratio: 1 / 1;
    background-color: #fefefe;
    border-radius: 50%;
    display: -webkit-inline-box;
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
    margin-bottom: 1rem;
    padding: 0.5rem;
    width: 100px; }
    @supports not (aspect-ratio: 1/1) {
      .highlights__picture {
        height: 100px; } }
  .highlights__title {
    font-size: 1.25rem;
    font-weight: 700;
    text-transform: uppercase; }

.webplanner {
  text-align: center; }
  @media print, screen and (min-width: 60em) {
    .webplanner {
      background-image: url(/National_Library/oe_/https://www.dreamwaves.io/assets/img/webplanner.webp);
      background-position: 500px center;
      background-repeat: no-repeat;
      background-size: 742px 394px;
      text-align: left; } }
  @media print, screen and (min-width: 75em) {
    .webplanner {
      background-position: right center; } }
  @media screen and (min-width: 103.75em) {
    .webplanner {
      background-position: 75% center; } }
  @media print, screen and (min-width: 60em) {
    .webplanner__wrapper {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-flow: row wrap;
          -ms-flex-flow: row wrap;
              flex-flow: row wrap;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; } }
  @media print, screen and (min-width: 60em) {
    .webplanner__header {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      width: calc(50% - 1.875rem);
      margin-left: 0.9375rem;
      margin-right: 0.9375rem; } }
  @media print, screen and (min-width: 60em) {
    .webplanner__main {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      width: calc(50% - 1.875rem);
      margin-left: 0.9375rem;
      margin-right: 0.9375rem; } }
  .webplanner__description {
    font-size: 1.25rem; }
  @media print, screen and (min-width: 60em) {
    .webplanner__image {
      display: none; } }
  .webplanner__list {
    margin-bottom: 1rem; }
    .webplanner__list__title {
      margin-bottom: 0.5rem; }
      .webplanner__list__title::before {
        display: block; }
        @media print, screen and (min-width: 60em) {
          .webplanner__list__title::before {
            display: inline; } }

.nativeapp {
  aspect-ratio: 16 / 9;
  background-image: url(/National_Library/oe_/https://www.dreamwaves.io/assets/img/nativeapp.webp);
  background-position: 80% center;
  background-attachment: fixed;
  color: #fefefe;
  position: relative; }
  @media print, screen and (min-width: 75em) {
    .nativeapp {
      -webkit-box-align: center;
      -webkit-align-items: center;
          -ms-flex-align: center;
              align-items: center;
      aspect-ratio: 16 / 9;
      background: none;
      padding: 0;
      position: relative; } }
  @media print, screen and (min-width: 75em) and (min-width: 60em) {
    .nativeapp::before {
      background: rgba(7, 17, 25, 0.7);
      background: -webkit-gradient(linear, left bottom, left top, color-stop(30%, #071119), to(rgba(7, 17, 25, 0))), -webkit-gradient(linear, left top, right top, color-stop(15%, #0f0719), to(rgba(0, 91, 234, 0.7)));
      background: linear-gradient(0deg, #071119 30%, rgba(7, 17, 25, 0) 100%), linear-gradient(90deg, #0f0719 15%, rgba(0, 91, 234, 0.7) 100%);
      bottom: 0;
      content: "";
      height: 100%;
      left: 0;
      position: absolute;
      right: 0;
      top: 0;
      width: 100%;
      z-index: 1; } }
  @media print, screen and (min-width: 60em) {
    .nativeapp__wrapper {
      padding: 3.75rem 0;
      position: relative;
      z-index: 999; } }
  @media print, screen and (min-width: 60em) {
    .nativeapp__main, .nativeapp__header, .nativeapp__footer {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      width: calc(75% - 1.875rem);
      margin-left: 0.9375rem;
      margin-right: 0.9375rem; } }
  .nativeapp__footer {
    margin-top: 3.75rem; }
  .nativeapp__video {
    aspect-ratio: 16 / 9; }
    @supports not (aspect-ratio: 16/9) {
      .nativeapp__video::before {
        content: "";
        float: left;
        height: 0;
        margin-left: -1px;
        padding-top: 52.46332%;
        width: 1px; }
      .nativeapp__video::after {
        clear: both;
        content: "";
        display: table; } }
  .nativeapp video {
    display: none;
    -webkit-filter: url(#nativeapp__filter);
            filter: url(#nativeapp__filter); }
    @media print, screen and (min-width: 75em) {
      .nativeapp video {
        aspect-ratio: 16 / 9;
        display: inherit;
        right: 0;
        margin: 0;
        -o-object-fit: cover;
           object-fit: cover;
        position: absolute;
        width: 85vw; } }
  .nativeapp li {
    margin-bottom: 1rem; }

.features {
  background-attachment: fixed;
  background-color: #627387;
  background-image: url(/National_Library/oe_/https://www.dreamwaves.io/assets/img/feature_background.webp?v=1.11);
  background-position: center;
  background-size: cover;
  color: #fefefe;
  padding: 0; }
  @media print, screen and (min-width: 60em) {
    .features {
      padding: 3.75rem 0; } }
  .features__wrapper {
    background-color: rgba(10, 10, 10, 0.75);
    -webkit-backdrop-filter: blur(5px);
            backdrop-filter: blur(5px);
    padding: 3rem 1rem; }
    @media print, screen and (min-width: 60em) {
      .features__wrapper {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -webkit-flex-flow: row wrap;
            -ms-flex-flow: row wrap;
                flex-flow: row wrap;
        -webkit-flex-direction: column;
            -ms-flex-direction: column;
                flex-direction: column;
        background-color: transparent;
        -webkit-backdrop-filter: none;
                backdrop-filter: none;
        padding: 1rem; } }
  @media print, screen and (min-width: 60em) {
    .features__header {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      width: calc(50% - 1.875rem);
      margin-left: 0.9375rem;
      margin-right: 0.9375rem; } }
  @media print, screen and (min-width: 60em) {
    .features__main {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      width: calc(41.66667% - 1.875rem);
      margin-left: 0.9375rem;
      margin-right: 0.9375rem; } }
  .features dt {
    font-size: 1.25rem; }
  .features dd {
    margin-bottom: 2.25rem; }

.team {
  background-color: #edeff5; }
  @media print, screen and (min-width: 75em) {
    .team__description {
      max-width: 75%; } }
  @media print, screen and (min-width: 48em) {
    .team__cards {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-flow: row wrap;
          -ms-flex-flow: row wrap;
              flex-flow: row wrap; } }
  .team .card {
    margin-bottom: 2rem; }
    @media print, screen and (min-width: 48em) {
      .team .card {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        width: 50%;
        margin-left: 0;
        margin-right: 0;
        margin-bottom: 1rem; } }
    @media print, screen and (min-width: 60em) {
      .team .card {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        width: 33.33333%;
        margin-left: 0;
        margin-right: 0; } }

.partners__list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }
  @media print, screen and (min-width: 48em) {
    .partners__list {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-flow: row wrap;
          -ms-flex-flow: row wrap;
              flex-flow: row wrap;
      -webkit-box-align: start;
      -webkit-align-items: flex-start;
          -ms-flex-align: start;
              align-items: flex-start; } }

.partners li {
  line-height: 1.2;
  text-align: center;
  -webkit-align-self: center;
      -ms-flex-item-align: center;
          align-self: center; }
  @media print, screen and (min-width: 48em) {
    .partners li {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      width: calc(33.33333% - 1.875rem);
      margin-left: 0.9375rem;
      margin-right: 0.9375rem; } }
  @media print, screen and (min-width: 60em) {
    .partners li {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      width: calc(20% - 1.875rem);
      margin-left: 0.9375rem;
      margin-right: 0.9375rem; } }

.partners img {
  margin-bottom: 0.5rem; }

.partners small {
  display: block; }

.contact {
  background-color: #0a0a0a;
  color: #fefefe; }
  .contact__subtitle {
    font-size: 2.5rem; }
  @media print, screen and (min-width: 75em) {
    .contact__wrapper {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-flow: row wrap;
          -ms-flex-flow: row wrap;
              flex-flow: row wrap;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column;
      max-height: 50rem; } }
  .contact__href {
    color: #fefefe; }
  .contact__href:hover {
    color: #fefefe; }
  .contact__header {
    margin-bottom: 0.5rem; }
    @media print, screen and (min-width: 75em) {
      .contact__header {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        width: calc(75% - 1.875rem);
        margin-left: 0.9375rem;
        margin-right: 0.9375rem; } }
  @media print, screen and (min-width: 75em) {
    .contact__main {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      width: calc(58.33333% - 1.875rem);
      margin-left: 0.9375rem;
      margin-right: 0.9375rem; } }
  @media print, screen and (min-width: 75em) {
    .contact__footer {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      width: calc(25% - 1.875rem);
      margin-left: 0.9375rem;
      margin-right: 0.9375rem;
      margin-top: 4rem; } }
  .contact__newsletter {
    margin-bottom: 2rem; }
  @media print, screen and (min-width: 48em) {
    .contact__list {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-flow: row wrap;
          -ms-flex-flow: row wrap;
              flex-flow: row wrap; }
      .contact__list li {
        -webkit-box-flex: 1;
        -webkit-flex: 1 1 0;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
        width: auto;
        margin-left: 0.9375rem;
        margin-right: 0.9375rem; } }
  @media print, screen and (min-width: 60em) {
    .contact__list {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      width: calc(100% - 1.875rem);
      margin-left: 0.9375rem;
      margin-right: 0.9375rem;
      display: block; }
      .contact__list li {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
            -ms-flex-align: center;
                align-items: center;
        margin-bottom: 3rem; }
      .contact__list img {
        margin-right: 1rem; }
      .contact__list :is(dl, dt) {
        margin: 0; } }

.footer {
  background-color: #003DF5;
  color: #fefefe; }
  .footer a {
    color: #fefefe; }
  @media print, screen and (min-width: 48em) {
    .footer__wrapper {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-flow: row wrap;
          -ms-flex-flow: row wrap;
              flex-flow: row wrap;
      -webkit-box-pack: justify;
      -webkit-justify-content: space-between;
          -ms-flex-pack: justify;
              justify-content: space-between; } }
  @media print, screen and (min-width: 48em) {
    .footer__header {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      width: 41.66667%;
      margin-left: 0;
      margin-right: 0; } }
  @media print, screen and (min-width: 75em) {
    .footer__header {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      width: 33.33333%;
      margin-left: 0;
      margin-right: 0; } }
  .footer__icons {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin: 2rem 0; }
  .footer__menu {
    font-size: 1rem;
    font-weight: 500;
    padding: 0;
    margin: 0;
    list-style: none;
    position: relative;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-bottom: 2rem; }
    @media print, screen and (min-width: 48em) {
      .footer__menu {
        display: -webkit-inline-box;
        display: -webkit-inline-flex;
        display: -ms-inline-flexbox;
        display: inline-flex; } }
    [data-whatinput='mouse'] .footer__menu li {
      outline: 0; }
    .footer__menu a,
    .footer__menu .button {
      line-height: 1;
      text-decoration: none;
      display: block;
      padding: 1.25rem 1rem; }
    .footer__menu input,
    .footer__menu select,
    .footer__menu a,
    .footer__menu button {
      margin-bottom: 0; }
    .footer__menu input {
      display: inline-block; }
    .footer__menu li {
      border-top: 1px solid #7da5f9; }
      @media print, screen and (min-width: 48em) {
        .footer__menu li {
          border: 0; } }
    .footer__menu a {
      font-weight: 700; }
    .footer__menu ul {
      display: none; }
      @media print, screen and (min-width: 48em) {
        .footer__menu ul {
          display: inherit;
          font-size: 0.875rem; } }
      .footer__menu ul a {
        font-weight: normal;
        padding: 0 1rem; }
    @media print, screen and (min-width: 48em) {
      .footer__menu {
        -webkit-flex-wrap: wrap;
            -ms-flex-wrap: wrap;
                flex-wrap: wrap;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -webkit-flex-direction: row;
            -ms-flex-direction: row;
                flex-direction: row;
        margin-bottom: 0; } }
  .footer__copyright {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
    @media print, screen and (min-width: 48em) {
      .footer__copyright {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        width: 100%;
        margin-left: 0;
        margin-right: 0; } }
    .footer__copyright a {
      padding-bottom: 1rem; }

.hiringdark {
  background-color: #8a8a8a; }
  .hiringdark__list {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center; }
    @media print, screen and (min-width: 48em) {
      .hiringdark__list {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -webkit-flex-flow: row wrap;
            -ms-flex-flow: row wrap;
                flex-flow: row wrap;
        -webkit-box-align: start;
        -webkit-align-items: flex-start;
            -ms-flex-align: start;
                align-items: flex-start; } }
  .hiringdark li {
    line-height: 1.2;
    text-align: center; }
    @media print, screen and (min-width: 48em) {
      .hiringdark li {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        width: calc(33.33333% - 1.875rem);
        margin-left: 0.9375rem;
        margin-right: 0.9375rem; } }
    @media print, screen and (min-width: 60em) {
      .hiringdark li {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        width: calc(20% - 1.875rem);
        margin-left: 0.9375rem;
        margin-right: 0.9375rem; } }
  .hiringdark img {
    margin-bottom: 0.5rem; }
  .hiringdark small {
    display: block; }

.hiringlight {
  background-color: #e6e6e6; }
  .hiringlight__list {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center; }
    @media print, screen and (min-width: 48em) {
      .hiringlight__list {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -webkit-flex-flow: row wrap;
            -ms-flex-flow: row wrap;
                flex-flow: row wrap;
        -webkit-box-align: start;
        -webkit-align-items: flex-start;
            -ms-flex-align: start;
                align-items: flex-start; } }
  .hiringlight li {
    line-height: 1.2;
    text-align: center; }
    @media print, screen and (min-width: 48em) {
      .hiringlight li {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        width: calc(33.33333% - 1.875rem);
        margin-left: 0.9375rem;
        margin-right: 0.9375rem; } }
    @media print, screen and (min-width: 60em) {
      .hiringlight li {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        width: calc(20% - 1.875rem);
        margin-left: 0.9375rem;
        margin-right: 0.9375rem; } }
  .hiringlight img {
    margin-bottom: 0.5rem; }
  .hiringlight small {
    display: block; }

.usecases {
  position: relative;
  background-color: #f7f7f7; }
  .usecases .carousel {
    position: relative; }
    @media print, screen and (max-width: 74.99875em) {
      .usecases .carousel {
        height: 81rem; } }
    @media print, screen and (max-width: 59.99875em) {
      .usecases .carousel {
        height: 83.75rem; } }
    @media print, screen and (max-width: 39.99875em) {
      .usecases .carousel {
        height: -webkit-fit-content;
        height: -moz-fit-content;
        height: fit-content; } }
  .usecases .slide {
    border: none;
    display: none;
    top: 0;
    left: 0;
    z-index: 20;
    height: 56.25rem; }
    @media print, screen and (max-width: 74.99875em) {
      .usecases .slide {
        height: -webkit-fit-content;
        height: -moz-fit-content;
        height: fit-content; } }
  .usecases .slide.current {
    display: block;
    z-index: 50;
    width: 100%; }
  .usecases .slide.prev {
    left: -100%; }
  .usecases .slide.next {
    left: 100%; }
  .usecases .slidenav {
    position: absolute;
    bottom: 1.875rem;
    left: calc((100vw - 75rem) / 2);
    z-index: 20;
    margin: 0;
    width: 33.9375rem;
    height: 3.25rem;
    background: #fff;
    border: 2px solid #003DF5;
    border-radius: 1.625rem;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
    @media print, screen and (max-width: 74.99875em) {
      .usecases .slidenav {
        left: 0;
        right: 0;
        margin: auto;
        bottom: 3.75rem; } }
    @media print, screen and (max-width: 39.99875em) {
      .usecases .slidenav {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
            -ms-flex-direction: column;
                flex-direction: column;
        position: relative;
        height: 100%;
        width: 85vw; } }
  .usecases .slidenav li {
    display: inline-block;
    width: 100%;
    height: 100%;
    margin: 0; }
  .usecases .slidenav button {
    background-color: transparent;
    line-height: 1em;
    height: 100%;
    width: 100%;
    font-weight: bold;
    color: #003DF5;
    cursor: pointer;
    text-transform: uppercase; }
    @media print, screen and (max-width: 39.99875em) {
      .usecases .slidenav button {
        padding: 1rem; }
        .usecases .slidenav button.zero {
          border-radius: 1.625rem 1.625rem 0 0 !important; }
        .usecases .slidenav button.one {
          border-radius: 0 0 0 0 !important; }
        .usecases .slidenav button.two {
          border-radius: 0 0 1.625rem 1.625rem !important; } }
  .usecases .slidenav button.current {
    -webkit-box-shadow: 0 0 0 2px #003DF5;
            box-shadow: 0 0 0 2px #003DF5;
    background-color: #003DF5;
    color: #fff;
    border-radius: 1.625rem; }
  .usecases .usecase {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
    .usecases .usecase .text-content {
      padding-right: calc((52vw) - ((100vw - 75rem) / 2)); }
      @media print, screen and (max-width: 74.99875em) {
        .usecases .usecase .text-content {
          padding-right: 15vw;
          max-width: auto; } }
      @media print, screen and (max-width: 59.99875em) {
        .usecases .usecase .text-content {
          padding-right: 0; } }
      .usecases .usecase .text-content h6 {
        margin-bottom: 0.25rem; }
      .usecases .usecase .text-content p {
        margin-bottom: 0.5rem; }
    .usecases .usecase dt {
      margin-top: 1.125rem; }
    .usecases .usecase .background {
      height: 56.25rem;
      right: 0;
      top: 0;
      padding-left: 50%;
      position: absolute; }
      @media print, screen and (max-width: 74.99875em) {
        .usecases .usecase .background {
          position: static;
          height: -webkit-fit-content;
          height: -moz-fit-content;
          height: fit-content;
          width: 100%;
          padding: 0; } }
      .usecases .usecase .background .img-content {
        height: 56.25rem;
        -o-object-fit: cover;
           object-fit: cover;
        -o-object-position: 0% 50%;
           object-position: 0% 50%; }
        @media print, screen and (max-width: 89.99875em) {
          .usecases .usecase .background .img-content {
            -o-object-position: 20% 50%;
               object-position: 20% 50%; } }
        @media print, screen and (max-width: 74.99875em) {
          .usecases .usecase .background .img-content {
            height: 28.125rem;
            width: 100%; } }
      .usecases .usecase .background .quotation-content {
        z-index: 20;
        position: absolute;
        top: 3.75rem; }
        @media print, screen and (max-width: 74.99875em) {
          .usecases .usecase .background .quotation-content {
            top: 21.25rem; } }
        @media print, screen and (max-width: 39.99875em) {
          .usecases .usecase .background .quotation-content {
            top: 22.75rem; } }
        .usecases .usecase .background .quotation-content .quotation {
          font-family: "Cormorant", serif;
          font-style: italic;
          font-weight: 600;
          font-size: 2.5rem;
          line-height: 3rem;
          display: -webkit-box;
          display: -webkit-flex;
          display: -ms-flexbox;
          display: flex;
          -webkit-box-align: center;
          -webkit-align-items: center;
              -ms-flex-align: center;
                  align-items: center;
          color: #071119;
          background: #fff;
          width: -webkit-fit-content;
          width: -moz-fit-content;
          width: fit-content;
          padding: 0 2px;
          margin: 0 0 0.5rem 1.5rem; }
          @media print, screen and (max-width: 89.99875em) {
            .usecases .usecase .background .quotation-content .quotation {
              font-size: 2rem;
              line-height: 2.5rem; } }
          @media print, screen and (max-width: 39.99875em) {
            .usecases .usecase .background .quotation-content .quotation {
              font-size: 1.25rem;
              line-height: 1.5625rem;
              margin: 0 0 0.25rem; } }

.playstore .quotation {
  font-family: "Cormorant", serif;
  font-style: italic;
  font-weight: 600;
  font-size: 2.5rem;
  line-height: 3rem; }

.playstore .text-content {
  margin: 3.75rem 0; }

.playstore footer {
  margin-left: 0; }

.playstore img {
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: top;
     object-position: top;
  width: 100vw; }
  @media print, screen and (max-width: 74.99875em) {
    .playstore img {
      -o-object-fit: cover;
         object-fit: cover;
      -o-object-position: 30%;
         object-position: 30%;
      min-height: 11.25rem; } }

.download_app .quotation {
  font-family: "Cormorant", serif;
  font-style: italic;
  font-weight: 600;
  font-size: 2.5rem;
  line-height: 3rem; }

.download_app .text-content {
  margin: 3.75rem 0; }

.download_app footer {
  margin-left: 0; }

.download_app img {
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: top;
     object-position: top; }
  @media print, screen and (max-width: 74.99875em) {
    .download_app img {
      -o-object-fit: cover;
         object-fit: cover;
      -o-object-position: 30%;
         object-position: 30%;
      min-height: 11.25rem; } }

.download_app .full-width-img {
  width: 100vw; }

.early-access-sdk h1 {
  margin-bottom: 1.875rem; }
  @media print, screen and (max-width: 39.99875em) {
    .early-access-sdk h1 {
      font-size: 2.25rem; } }

@media print, screen and (max-width: 39.99875em) {
  .early-access-sdk .section {
    padding: 2rem 0; } }

@media print, screen and (max-width: 89.99875em) {
  .early-access-sdk .section {
    max-height: 75rem; } }

.early-access-sdk img {
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: top;
     object-position: top;
  width: 100vw; }
  @media print, screen and (max-width: 74.99875em) {
    .early-access-sdk img {
      -o-object-fit: cover;
         object-fit: cover;
      -o-object-position: 30%;
         object-position: 30%; } }

.footer-container {
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  background-color: #FFF;
  padding: 0;
  background-color: unset; }

.footer-branding {
  height: 6.25rem; }

@media print, screen and (max-width: 89.99875em) {
  .footer-container {
    width: unset; }
  .footer-branding {
    height: 5rem; } }

@media print, screen and (max-width: 59.99875em) {
  .footer-branding {
    height: 3.75rem; } }

.awards {
  background-color: #0F172E;
  color: #fefefe; }
  .awards__list {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center; }
    @media print, screen and (min-width: 48em) {
      .awards__list {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -webkit-flex-flow: row wrap;
            -ms-flex-flow: row wrap;
                flex-flow: row wrap;
        -webkit-box-align: start;
        -webkit-align-items: flex-start;
            -ms-flex-align: start;
                align-items: flex-start; } }
  .awards li {
    line-height: 1.2;
    text-align: center;
    -webkit-align-self: center;
        -ms-flex-item-align: center;
            align-self: center; }
    @media print, screen and (min-width: 48em) {
      .awards li {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        width: calc(33.33333% - 1.875rem);
        margin-left: 0.9375rem;
        margin-right: 0.9375rem; } }
    @media print, screen and (min-width: 60em) {
      .awards li {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        width: calc(20% - 1.875rem);
        margin-left: 0.9375rem;
        margin-right: 0.9375rem; } }
  .awards img {
    margin-bottom: 0.5rem; }
  .awards small {
    display: block; }
  .awards__subtitle {
    font-size: 1.25rem; }

.instructions__first-launch {
  background-color: #f7f7f7; }

.instructions__using-app {
  background-color: #071119;
  color: #fefefe; }
  .instructions__using-app a {
    color: #6da2ff; }

.instructions section {
  text-align: left; }

.instructions figure {
  margin: auto;
  margin-bottom: 2rem;
  max-width: 18.75rem; }
  @media print, screen and (min-width: 60em) {
    .instructions figure {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column;
      display: -webkit-inline-box;
      display: -webkit-inline-flex;
      display: -ms-inline-flexbox;
      display: inline-flex;
      margin-right: 2rem; } }

.instructions figcaption {
  font-size: 0.8125rem;
  font-style: italic;
  margin-top: 0.5rem; }

.instructions :is(h4, h5) {
  padding-top: 1rem; }

.instructions h5 {
  font-family: "Open Sans", sans-serif; }

.blog-searchbar {
  background-color: #4e5a6e;
  padding: 3.75rem 0; }
  .blog-searchbar h2 {
    font-family: "Cormorant", serif;
    font-style: italic;
    font-weight: 600;
    font-size: 2.5rem;
    line-height: 3rem;
    color: #f7f7f7;
    margin-bottom: 0.75rem; }
  .blog-searchbar input {
    background: #f9fcfe;
    border: 1px solid #071119;
    -webkit-box-shadow: inset 0px 2px 2px -1px #edeff5;
            box-shadow: inset 0px 2px 2px -1px #edeff5;
    border-radius: 1.625rem;
    padding: 0.75rem 1.75rem;
    width: 65%;
    background-image: url("/National_Library/oe_/https://www.dreamwaves.io/assets/icons/icon_search.svg");
    background-position: 97% 50%;
    background-repeat: no-repeat; }
    @media print, screen and (max-width: 59.99875em) {
      .blog-searchbar input {
        width: 90%; } }

.blog-main {
  text-align: left; }
  .blog-main .flex {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
    @media print, screen and (max-width: 59.99875em) {
      .blog-main .flex.highlight {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
            -ms-flex-direction: column;
                flex-direction: column; } }
  .blog-main .right-content {
    margin-left: 2rem; }
    .blog-main .right-content.small {
      width: 52%; }
      @media print, screen and (max-width: 59.99875em) {
        .blog-main .right-content.small {
          width: auto;
          margin-left: 2rem;
          -webkit-box-ordinal-group: 2;
          -webkit-order: 1;
              -ms-flex-order: 1;
                  order: 1;
          -webkit-box-flex: 0;
          -webkit-flex-grow: 0;
              -ms-flex-positive: 0;
                  flex-grow: 0; } }
  .blog-main .section__post {
    padding-bottom: 0; }
  .blog-main .section.hidden-post {
    display: none; }
  .blog-main .img {
    -o-object-fit: cover;
       object-fit: cover;
    -webkit-align-self: center;
        -ms-flex-item-align: center;
            align-self: center;
    border-radius: 50%; }
    .blog-main .img.small {
      width: 9.375rem;
      height: 9.375rem; }
      @media print, screen and (max-width: 59.99875em) {
        .blog-main .img.small {
          width: 4.5rem;
          height: 4.5rem; } }
    .blog-main .img.highlight {
      width: 18.75rem;
      height: 18.75rem; }
      @media print, screen and (max-width: 59.99875em) {
        .blog-main .img.highlight {
          width: 12.5rem;
          height: 12.5rem;
          -webkit-box-ordinal-group: 3;
          -webkit-order: 2;
              -ms-flex-order: 2;
                  order: 2;
          -webkit-box-flex: 0;
          -webkit-flex-grow: 0;
              -ms-flex-positive: 0;
                  flex-grow: 0;
          margin-top: 1.125rem; } }
      @media print, screen and (max-width: 39.99875em) {
        .blog-main .img.highlight {
          width: 6.5rem;
          height: 6.5rem;
          -webkit-box-ordinal-group: 3;
          -webkit-order: 2;
              -ms-flex-order: 2;
                  order: 2;
          -webkit-box-flex: 0;
          -webkit-flex-grow: 0;
              -ms-flex-positive: 0;
                  flex-grow: 0;
          margin-top: 1.125rem; } }
  .blog-main .icons-list {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
    .blog-main .icons-list.small {
      margin: 0.75rem 0 0; }
    .blog-main .icons-list.highlight {
      margin: 1.125rem 0 0; }
  .blog-main .icon {
    margin-right: 0.625rem; }
    .blog-main .icon.small {
      height: 2.1875rem;
      width: 2.1875rem; }
    .blog-main .icon.highlight {
      height: 2.8125rem;
      width: 2.8125rem; }
  .blog-main h3,
  .blog-main h6 {
    margin: 0;
    text-align: start; }
  .blog-main p {
    color: #071119;
    text-align: left;
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis; }
    .blog-main p.small {
      margin: 0.375rem 0 0; }
    .blog-main p.highlight {
      margin: 0.75rem 0 0; }
  .blog-main a {
    -webkit-text-decoration-line: underline;
            text-decoration-line: underline;
    font-weight: bold; }
    .blog-main a.highlight {
      font-size: 1.25rem;
      line-height: 1.75rem; }
  .blog-main hr {
    border-color: #071119;
    margin: 4rem 0 1.875rem; }

.blog-post {
  color: #071119; }
  .blog-post .main-img {
    margin-top: 3.125rem; }
    .blog-post .main-img.tile {
      max-width: 100%;
      width: 100%;
      height: 34.875rem;
      background-repeat: repeat;
      background-size: 33% 75%; }
      @media print, screen and (max-width: 59.99875em) {
        .blog-post .main-img.tile {
          height: 18.75rem;
          background-size: 65% 75% !important; } }
      .blog-post .main-img.tile.a_guideline_to_design_inclusive_app_interfaces {
        background: url("/National_Library/oe_/https://www.dreamwaves.io/assets/img/blog/a_guideline_to_design_inclusive_app_interfaces/main.gif"); }
      .blog-post .main-img.tile.sound_as_a_tool_to_interact_with_the_world {
        background: url("/National_Library/oe_/https://www.dreamwaves.io/assets/img/blog/sound_as_a_tool_to_interact_with_the_world/main.gif"); }
  .blog-post h3 {
    margin-bottom: 0; }
  .blog-post h6 {
    font-size: 1.25rem; }
  .blog-post p {
    color: #071119;
    line-height: 1.375rem;
    margin: 0; }
    .blog-post p.h-font--bold {
      margin-top: 1.875rem; }
  .blog-post li {
    margin: 0; }
    @media print, screen and (max-width: 59.99875em) {
      .blog-post li {
        text-align: start; } }
  .blog-post h6,
  .blog-post figure,
  .blog-post figure + p,
  .blog-post .v-img-container + p {
    margin: 1.875rem 0 0; }
  .blog-post ul {
    margin: 0.625rem 0;
    padding: 0 2rem; }
    .blog-post ul.icons-list {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      padding: 0; }
  .blog-post .icon {
    margin: 1.875rem 0.625rem 0 0;
    height: 2.8125rem;
    width: 2.8125rem; }
  .blog-post p + p,
  .blog-post h6 + p {
    margin-top: 0.625rem; }
  .blog-post figure {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center; }
  .blog-post figcaption {
    margin-top: 0.5rem;
    text-align: center;
    color: #4e5a6e;
    font-style: normal;
    font-weight: 300;
    font-size: 0.875rem;
    line-height: 1.1875rem; }
  .blog-post a {
    -ms-word-break: break-all;
    word-break: break-all;
    word-break: break-word; }
  .blog-post hr {
    border-color: #071119;
    margin: 1.875rem 0 0; }
  .blog-post .citation {
    font-style: normal;
    font-weight: normal;
    font-size: 1.25rem;
    line-height: 1.6875rem;
    color: #4e5a6e;
    padding: 0 15%;
    margin: 1.875rem 0; }
  .blog-post .citation span {
    font-size: 1rem;
    line-height: 1.375rem;
    display: block; }
  .blog-post .h-img-s,
  .blog-post .h-img-m,
  .blog-post .h-img-b {
    -o-object-fit: contain;
       object-fit: contain;
    -webkit-align-self: center;
        -ms-flex-item-align: center;
            align-self: center; }
  .blog-post .h-img-s {
    max-height: 6.75rem; }
    @media print, screen and (max-width: 59.99875em) {
      .blog-post .h-img-s {
        max-height: 5rem; } }
  .blog-post .h-img-m {
    max-height: 16.625rem; }
    @media print, screen and (max-width: 59.99875em) {
      .blog-post .h-img-m {
        max-height: 12.5rem; } }
  .blog-post .h-img-b {
    max-height: 27.375rem; }
    @media print, screen and (max-width: 59.99875em) {
      .blog-post .h-img-b {
        max-height: 21.875rem; } }
  .blog-post .v-img-m {
    height: 27.375rem; }
    @media print, screen and (max-width: 59.99875em) {
      .blog-post .v-img-m {
        height: 25rem; } }
  .blog-post .v-img-b {
    height: 42.6875rem; }
    @media print, screen and (max-width: 59.99875em) {
      .blog-post .v-img-b {
        height: 25rem; } }
  .blog-post .v-img-container {
    text-align: center;
    display: block;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: space-around;
        -ms-flex-pack: distribute;
            justify-content: space-around;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center; }
    @media print, screen and (max-width: 59.99875em) {
      .blog-post .v-img-container {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-align: center;
        -webkit-align-items: center;
            -ms-flex-align: center;
                align-items: center; } }
  .blog-post .v-img-container figure {
    width: 50%; }
    @media print, screen and (max-width: 59.99875em) {
      .blog-post .v-img-container figure {
        width: 100%; } }

.impressum-and-policies {
  word-break: break-word; }
  .impressum-and-policies section {
    margin-bottom: 2rem;
    text-align: left; }
  .impressum-and-policies .iub_content {
    padding: 0 !important; }
  .impressum-and-policies #iubenda_policy {
    font-family: "Open Sans", sans-serif; }
    .impressum-and-policies #iubenda_policy p {
      font-size: 1rem !important;
      line-height: 1.6; }
    .impressum-and-policies #iubenda_policy h2 {
      font-size: 1.25rem !important; }
    .impressum-and-policies #iubenda_policy h3,
    .impressum-and-policies #iubenda_policy h4,
    .impressum-and-policies #iubenda_policy h5,
    .impressum-and-policies #iubenda_policy h6 {
      font-size: 1rem !important; }
    .impressum-and-policies #iubenda_policy .one_line_col > h2 {
      font-size: 1.875rem !important; }

.landing-pages-mvp {
  overflow-x: hidden;
  font-family: "Lexend", sans-serif;
  padding-bottom: 40px; }
  @media print, screen and (max-width: 39.99875em) {
    .landing-pages-mvp {
      margin-bottom: 0; } }
  .landing-pages-mvp h5,
  .landing-pages-mvp h4,
  .landing-pages-mvp h3,
  .landing-pages-mvp h2,
  .landing-pages-mvp h1,
  .landing-pages-mvp p {
    font-family: "Lexend", sans-serif; }
  .landing-pages-mvp .section {
    padding-inline: 1rem; }
    @media print, screen and (max-width: 39.99875em) {
      .landing-pages-mvp .section {
        padding: 1rem 0; } }
    .landing-pages-mvp .section__wrapper {
      max-width: 96.25rem; }
      @media print, screen and (max-width: 89.99875em) {
        .landing-pages-mvp .section__wrapper {
          padding: 0 5%; } }
    .landing-pages-mvp .section__1 {
      -webkit-box-flex: 1;
      -webkit-flex: 1;
          -ms-flex: 1;
              flex: 1;
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex; }
      @media print, screen and (max-width: 39.99875em) {
        .landing-pages-mvp .section__1 {
          -webkit-box-orient: vertical;
          -webkit-box-direction: normal;
          -webkit-flex-direction: column;
              -ms-flex-direction: column;
                  flex-direction: column;
          margin: 2.5rem 0 0; } }
      .landing-pages-mvp .section__1__left {
        -webkit-box-flex: 1;
        -webkit-flex: 1;
            -ms-flex: 1;
                flex: 1;
        -webkit-align-self: center;
            -ms-flex-item-align: center;
                align-self: center;
        text-align: start;
        -webkit-box-sizing: border-box;
                box-sizing: border-box; }
        .landing-pages-mvp .section__1__left h4 {
          font-size: 2.25rem;
          font-weight: 400; }
          @media print, screen and (max-width: 89.99875em) {
            .landing-pages-mvp .section__1__left h4 {
              font-size: 1.875rem; } }
        .landing-pages-mvp .section__1__left p {
          font-size: 1.375rem; }
          @media print, screen and (max-width: 89.99875em) {
            .landing-pages-mvp .section__1__left p {
              font-size: 1.125rem; } }
          .landing-pages-mvp .section__1__left p.highlight {
            color: #003DF5; }
            .landing-pages-mvp .section__1__left p.highlight__immersive-tourism {
              color: #EB3333; }
        @media print, screen and (max-width: 39.99875em) {
          .landing-pages-mvp .section__1__left {
            width: 70vw; } }
      .landing-pages-mvp .section__1__right {
        -webkit-box-flex: 1;
        -webkit-flex: 1;
            -ms-flex: 1;
                flex: 1;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
            -ms-flex-align: center;
                align-items: center; }
        @media print, screen and (max-width: 39.99875em) {
          .landing-pages-mvp .section__1__right {
            padding: 1.25rem 0 0 0;
            -webkit-align-self: center;
                -ms-flex-item-align: center;
                    align-self: center; } }
      .landing-pages-mvp .section__1p {
        margin-bottom: 1.5rem; }
      .landing-pages-mvp .section__1 img {
        padding-left: 4rem;
        height: 100%;
        max-width: 100%;
        -o-object-fit: contain;
           object-fit: contain; }
        @media print, screen and (max-width: 39.99875em) {
          .landing-pages-mvp .section__1 img {
            padding: 0;
            text-align: center;
            -webkit-align-self: center;
                -ms-flex-item-align: center;
                    align-self: center;
            margin-bottom: 1.5rem; } }
      .landing-pages-mvp .section__1 .logo {
        max-height: 11.25rem; }
  .landing-pages-mvp .button {
    font-size: 1.3vw;
    line-height: 1.5vw;
    border-radius: 5rem; }
    @media screen and (min-width: 103.75em) {
      .landing-pages-mvp .button {
        font-size: 1.5rem;
        line-height: 2rem; } }
    @media print, screen and (max-width: 39.99875em) {
      .landing-pages-mvp .button {
        margin: 2.5rem 0;
        font-size: 1rem;
        line-height: 1.25rem; } }
    @media print, screen and (max-width: 25.87375em) {
      .landing-pages-mvp .button {
        font-size: 0.75rem; } }
    .landing-pages-mvp .button__hero_wrapper {
      position: absolute;
      left: 12%;
      top: 71%; }
      @media print, screen and (max-width: 39.99875em) {
        .landing-pages-mvp .button__hero_wrapper {
          top: 35%;
          left: 50%;
          -webkit-transform: translateX(-50%);
                  transform: translateX(-50%); } }
      .landing-pages-mvp .button__hero_wrapper__bike-delivery {
        position: absolute;
        left: 17%;
        top: 69%; }
        @media print, screen and (max-width: 39.99875em) {
          .landing-pages-mvp .button__hero_wrapper__bike-delivery {
            top: 35%;
            left: 50%;
            -webkit-transform: translateX(-50%);
                    transform: translateX(-50%); } }
      .landing-pages-mvp .button__hero_wrapper__immersive-tourism {
        position: absolute;
        left: 7%;
        top: 73%; }
        @media print, screen and (max-width: 39.99875em) {
          .landing-pages-mvp .button__hero_wrapper__immersive-tourism {
            top: 42%;
            left: 50%;
            -webkit-transform: translateX(-50%);
                    transform: translateX(-50%); } }
    .landing-pages-mvp .button__content_wrapper {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      margin-top: 2.5rem; }
      @media print, screen and (max-width: 39.99875em) {
        .landing-pages-mvp .button__content_wrapper {
          margin-top: 0;
          -webkit-box-pack: center;
          -webkit-justify-content: center;
              -ms-flex-pack: center;
                  justify-content: center; } }
    .landing-pages-mvp .button a {
      color: inherit; }
  .landing-pages-mvp .background-gradient-button {
    /* warning: gradient uses a rotation that is not supported by CSS and may not behave as expected */
    background: radial-gradient(118.12% 166.38% at 16.8% 66.89%, #003df5 13.7%, #7291ec 67.71%, #72e5ec 100%);
    border-width: 0;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    max-width: 90vw;
    height: auto; }
    .landing-pages-mvp .background-gradient-button__immersive-tourism {
      background: linear-gradient(91.5deg, #EB3333 5.29%, #F35E5E 53.95%, #F5597F 95.31%);
      border-width: 0;
      width: -webkit-max-content;
      width: -moz-max-content;
      width: max-content;
      max-width: 90vw;
      height: auto; }
  .landing-pages-mvp .image__wrapper {
    max-width: 112.5rem;
    margin-left: auto;
    margin-right: auto;
    position: relative; }
    .landing-pages-mvp .image__wrapper .mobile {
      display: none; }
    @media print, screen and (max-width: 39.99875em) {
      .landing-pages-mvp .image__wrapper .mobile {
        display: block;
        width: 100vw; }
      .landing-pages-mvp .image__wrapper .desktop {
        display: none; } }
    .landing-pages-mvp .image__wrapper img {
      -o-object-fit: contain;
         object-fit: contain; }
  .landing-pages-mvp .horizontal-img {
    padding: 0; }
  .landing-pages-mvp.landing-pages-mvp__contact-form {
    background-color: rgba(160, 151, 217, 0.1);
    height: 100vh;
    padding: 0; }
    @media print, screen and (max-width: 39.99875em) {
      .landing-pages-mvp.landing-pages-mvp__contact-form {
        padding: 5rem 0 0 0; } }
    .landing-pages-mvp.landing-pages-mvp__contact-form .contact_form_wrapper {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-align: center;
      -webkit-align-items: center;
          -ms-flex-align: center;
              align-items: center; }
      .landing-pages-mvp.landing-pages-mvp__contact-form .contact_form_wrapper p {
        font-size: 1.375rem; }
      .landing-pages-mvp.landing-pages-mvp__contact-form .contact_form_wrapper .form-heading {
        margin-top: 3rem;
        text-align: start;
        width: 85vw;
        max-width: 76.875rem; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzIiwiX2ZvbnRzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL19nbG9iYWwuc2NzcyIsIl9zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2JyZWFrcG9pbnQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyIsIl9mdW5jdGlvbnMuc2NzcyIsIl9taXhpbnMuc2NzcyIsIl91dGlscy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19ndXR0ZXJzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2dyaWQuc2NzcyIsIl90eXBvZ3JhcGh5LnNjc3MiLCJfaGVscGVycy5zY3NzIiwiYXRvbXMvX2J1dHRvbnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCJtb2xlY3VsZXMvX2xpc3RzLnNjc3MiLCJtb2xlY3VsZXMvX2NhcmQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZmxleC5zY3NzIiwibW9sZWN1bGVzL19uYXZiYXIuc2NzcyIsIm1vbGVjdWxlcy9faW5zdHJ1Y3Rpb25zLW5hdmJhci5zY3NzIiwibW9sZWN1bGVzL190YWJzLnNjc3MiLCJvcmdhbmlzbXMvX2hlYWRlci5zY3NzIiwib3JnYW5pc21zL19oZXJvLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2NlbGwuc2NzcyIsIm9yZ2FuaXNtcy9faGlnaGxpZ2h0cy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19wb3NpdGlvbi5zY3NzIiwib3JnYW5pc21zL193ZWJwbGFubmVyLnNjc3MiLCJvcmdhbmlzbXMvX25hdGl2ZWFwcC5zY3NzIiwib3JnYW5pc21zL19mZWF0dXJlcy5zY3NzIiwib3JnYW5pc21zL190ZWFtLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21hdGguc2NzcyIsIm9yZ2FuaXNtcy9fcGFydG5lcnMuc2NzcyIsIm9yZ2FuaXNtcy9fY29udGFjdC5zY3NzIiwib3JnYW5pc21zL19mb290ZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS5zY3NzIiwib3JnYW5pc21zL19oaXJpbmdkYXJrLnNjc3MiLCJvcmdhbmlzbXMvX2hpcmluZ2xpZ2h0LnNjc3MiLCJvcmdhbmlzbXMvX3VzZWNhc2VzLnNjc3MiLCJvcmdhbmlzbXMvX3BsYXlzdG9yZS5zY3NzIiwib3JnYW5pc21zL19kb3dubG9hZF9hcHAuc2NzcyIsIm9yZ2FuaXNtcy9fZWFybHlfYWNjZXNzX3Nkay5zY3NzIiwib3JnYW5pc21zL19mb290ZXJfYnJhbmRpbmcuc2NzcyIsIm9yZ2FuaXNtcy9fYXdhcmRzLnNjc3MiLCJwYWdlcy9faW5zdHJ1Y3Rpb25zLnNjc3MiLCJwYWdlcy9fYmxvZy5zY3NzIiwicGFnZXMvX2Jsb2ctcG9zdC5zY3NzIiwicGFnZXMvX2ltcHJlc3N1bS1hbmQtcG9saWNpZXMuc2NzcyIsInBhZ2VzL19sYW5kaW5nX3BhZ2VzX212cC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQ0FoQjs7Ozs7RURNRTtBRUhBLDJFQUFBO0FDREYsOEZBQVk7QURTVjtFQUNFLGlCQUFpQjtFQUNqQiw4QkFBOEIsRUFBQTs7QUFRaEM7RUFDRSxTQUFTLEVBQUE7O0FBTVg7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCLEVBQUE7O0FBU2xCO0VBQ0UsK0JBQXVCO1VBQXZCLHVCQUF1QjtFQUN2QixTQUFTO0VBQ1QsaUJBQWlCLEVBQUE7O0FBTW5CO0VBQ0UsaUNBQWlDO0VBQ2pDLGNBQWMsRUFBQTs7QUFRaEI7RUFDRSw2QkFBNkIsRUFBQTs7QUFNL0I7RUFDRSxnQkFBZ0I7RUFDaEIseUNBQWlDO1VBQWpDLGlDQUFpQyxFQUFBOztBQUtuQzs7RUFFRSxtQkFBbUIsRUFBQTs7QUFNckI7OztFQUdFLGlDQUFpQztFQUNqQyxjQUFjLEVBQUE7O0FBS2hCO0VBQ0UsY0FBYyxFQUFBOztBQU1oQjs7RUFFRSxjQUFjO0VBQ2QsY0FBYztFQUNkLGtCQUFrQjtFQUNsQix3QkFBd0IsRUFBQTs7QUFHMUI7RUFDRSxlQUFlLEVBQUE7O0FBR2pCO0VBQ0UsV0FBVyxFQUFBOztBQVFiO0VBQ0Usa0JBQWtCLEVBQUE7O0FBU3BCOzs7OztFQUtFLG9CQUFvQjtF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M0tpQixFQUFBOztBRTRJckI7RUFJSSxrQkNyTm9EO0VEaU9wRCxnQkY3Slc7RUVxS1gsYUFBYTtFQU9iLHFCRjNLaUIsRUFBQTs7QUU0SXJCO0VBSUksaUJDck5vRDtFRGlPcEQsZ0JGN0pXO0VFcUtYLGFBQWE7RUFPYixxQkYzS2lCLEVBQUE7O0FFNElyQjtFQUlJLG1CQ3JOb0Q7RURpT3BELGdCRjdKVztFRXFLWCxhQUFhO0VBT2IscUJGM0tpQixFQUFBOztBRTRJckI7RUFJSSxrQkNyTm9EO0VEaU9wRCxnQkY3Slc7RUVxS1gsYUFBYTtFQU9iLHFCRjNLaUIsRUFBQTs7QUU0SXJCO0VBSUksa0JDck5vRDtFRGlPcEQsZ0JGN0pXO0VFcUtYLGFBQWE7RUFPYixxQkYzS2lCLEVBQUE7O0FJZ0JyQjtFRjRIQTtJQUlJLG1CQ3JOb0QsRUFBQTtFRGlOeEQ7SUFJSSxrQkNyTm9ELEVBQUE7RURpTnhEO0lBSUksaUJDck5vRCxFQUFBO0VEaU54RDtJQUlJLG1CQ3JOb0QsRUFBQTtFRGlOeEQ7SUFJSSxrQkNyTm9ELEVBQUE7RURpTnhEO0lBSUksa0JDck5vRCxFQUFBLEVEa1B2RDs7QUx0UlA7RUs2UkUsb0JBQW9CO0VBQ3BCLGNGalJjO0VFa1JkLHFCRjFKeUI7RUU0SnpCLGVBQWUsRUFBQTtFQUxqQjtJQVNJLGNGaksyRCxFQUFBO0VFd0ovRDtJQWdCSSxTQUFTLEVBQUE7O0FML1RiO0VLcVVFLFdBQVc7RUFFWCxnQkNoUjREO0VEaVI1RCxTQUFTO0VBQ1Qsb0JGN0t5QjtFRStLekIsYUFBYTtFQUNiLGVBQWU7RUFDZixnQ0Y5UmlCO0VFK1JqQixjQUFjLEVBQUE7O0FBSWhCOzs7RUFHRSxtQkZsTTBCO0VFbU0xQiw0QkZ0THlCO0VFdUx6QixnQkZyTXNCLEVBQUE7O0FFeU14QjtFQUNFLGtCQUFrQixFQUFBOztBQUlwQjtFQUNFLG9CRmhNc0I7RUVpTXRCLHFCRm5Na0IsRUFBQTs7QUV1TXBCO0VBQ0Usb0JGdE1zQixFQUFBOztBRTBNeEI7RUFFSSxvQkYzTTJCO0VFNE0zQixnQkFBZ0IsRUFBQTs7QUFLcEI7RUFDRSxtQkZqTnlCLEVBQUE7RUVnTjNCO0lBSUkscUJGbE44QjtJRW1OOUIsZ0JGelRrQixFQUFBOztBRThUdEI7RUFDRSxnQkYzTzBCO0VFNE8xQixzQ0N4VTREO0VEeVU1RCw4QkZqVmlCLEVBQUE7RUU4VW5CO0lBTUksZ0JGalBvQjtJRWtQcEIsY0ZwVmEsRUFBQTs7QUVrV2pCO0VBQ0UsaUNGbFdXO0VFbVdYLFlBQVk7RUFDWixxQkFBcUIsRUFBQTs7QUFJdkI7RUFDRSxTQUFTLEVBQUE7O0FBV1g7RUFDRSxTQUFTO0VBQ1QsMkJDM1dTO0VENldULHlCRjNYZ0I7RUU2WGhCLCtCRmxUc0M7RUVtVHRDLGNGM1hXLEVBQUE7O0FLNkNiO0VBQ0Usa0JMMEZ5QjtFS3pGekIscUJMMEY0QjtFS3hGNUIsbUJMdkN5QjtFS3dDekIsZ0JMbUZzQjtFS2xGdEIsY0xwRGUsRUFBQTs7QUt3RGpCO0VBQ0UsZUwyRXFDO0VLMUVyQyxnQkwyRWlCLEVBQUE7O0FLdkVuQjtFQUNFLGlCTDRFbUI7RUszRW5CLGNBQWMsRUFBQTtFQUVkO0lBQ0UsaUJBQWlCLEVBQUE7O0FBSXJCO0VBR0ksY0FBZ0M7RUFDaEMsZ0JBQWdCLEVBQUE7O0FIK1FsQjtFRzVWRixjQUFjO0VBQ2QsY0w2SWtCO0VLNUlsQixvQkZPOEQsRUFBQTtFRG1WNUQ7SUd2VkEsYUwySWtCLEVBQWE7O0FFaU8vQjtFR3JXRix5QkxYbUI7RUtZbkIseUJMYmtCO0VLZWxCLCtCTDREd0M7RUszRHhDLG1CTEgyQjtFS0kzQixjTGRhO0VLb0JiLGVBQWU7RUFDZixlQUFlO0VBQ2YscUJBQXFCO0VBRXJCLHFDRmxCOEQsRUFBQTs7QUV5RjlEO0VBdEZBLHlCTFhtQjtFS1luQix5Qkxia0I7RUtlbEIsK0JMNER3QztFSzNEeEMsbUJMSDJCO0VLSTNCLGNMZGE7RUs4QmIsY0FBYztFQUNkLGNBQWM7RUFDZCxnQkFBZ0I7RUFFaEIsYUxrSHVCO0VLakh2QixxQkxrSCtCLEVBQUE7O0FNcE92QjtFQUNFLGdCQUhlLEVBQUE7O0FBRWpCO0VBQ0UsaUJB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O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw0QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw0QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw0QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw4QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSxnQ0FBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw4QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSxnQ0FBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw4QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw4QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw4QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw4QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSwrQkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSxpQ0FBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSwrQkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSxpQ0FBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSwrQkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSwrQkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSwrQkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSwrQkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw2QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSwrQkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw2QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSwrQkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw2QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw2QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw2QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw2QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSx1QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSx5QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSx1QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSx5QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSx1QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSx1QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSx1QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSx1QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSwyQkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw2QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSwyQkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw2QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSwyQkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSwyQkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSwyQkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSwyQkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw2QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSwrQkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw2QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSwrQkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw2QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw2QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw2QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw2QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw4QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSxnQ0FBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw4QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSxnQ0FBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ksc0JBQUE7RUFDQSw4QkFBK0M7RUFDL0MscUJBQUEsRUFBc0I7O0FBSDFCO0VBQ0ks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bEIsdUJBQWtCO01BQWxCLGtCQUFrQjtNQUNsQixlQUFlO01BQ2YsWUFBWSxFQUFBO0VBbk14QjtJQXlNWSxtQnpDdE1pQjtJeUN1TWpCLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsa0JBQWtCLEVBQUE7SUE1TTlCO01BK01nQixhQUFhLEVBQUE7STdDNUJyQjtNNkNuTFI7UUFvTm9CLGNBQWM7UUFDZCxZQUFZLEVBQUE7TUFyTmhDO1FBeU5vQixhQUFhLEVBQUEsRUFDaEI7SUExTmpCO01BOE5nQixzQkFBbUI7U0FBbkIsbUJBQW1CLEVBQUE7RUE5Tm5DO0lBb09RLFVBQVUsRUFBQTtFQXBPbEI7SUF3T1EsMENBQTBDO0lBQzFDLGFBQWE7SUFDYixVQUFVLEVBQUE7STdDdkRWO002Q25MUjtRQTZPWSxtQkFBd0IsRUFBQSxFQW1CL0I7SUFoUUw7TUFpUFksb0JBQWE7TUFBYixxQkFBYTtNQUFiLG9CQUFhO01BQWIsYUFBYTtNQUNiLDRCQUFzQjtNQUF0Qiw2QkFBc0I7TUFBdEIsOEJBQXNCO1VBQXRCLDBCQUFzQjtjQUF0QixzQkFBc0I7TUFDdEIseUJBQW1CO01BQW5CLDJCQUFtQjtVQUFuQixzQkFBbUI7Y0FBbkIsbUJBQW1CLEVBQUE7TUFuUC9CO1FBc1BnQixtQnpDblBhLEVBQUE7TXlDSDdCO1FBMFBnQixnQnpDdlBhO1F5Q3dQYixpQkFBaUI7UUFDakIsV0FBVztRQUNYLG9CekMxUGEsRUFBQSIsImZpbGUiOiJhcHAuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlc1xuICogVmVyc2lvbiA2LjcuNFxuICogaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cbi8qISBub3JtYWxpemUuY3NzIHY4LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbkBpbXBvcnQgdXJsKFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Db3Jtb3JhbnQ6aXRhbCx3Z2h0QDEsNjAwJmRpc3BsYXk9c3dhcFwiKTtcbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyB9XG5cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07IH1cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyB9XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgfVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgbWFyZ2luOiAwOyB9XG5cbmJ1dHRvbixcbmlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgfVxuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDsgfVxuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDsgfVxuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTsgfVxuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZGlzcGxheTogdGFibGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfVxuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDsgfVxuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyB9XG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgZm9udDogaW5oZXJpdDsgfVxuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbltkYXRhLXdoYXRpbnRlbnQ9XCJtb3VzZVwiXSAqLCBbZGF0YS13aGF0aW50ZW50PVwibW91c2VcIl0gKjpmb2N1cyxcbltkYXRhLXdoYXRpbnRlbnQ9XCJ0b3VjaFwiXSAqLFxuW2RhdGEtd2hhdGludGVudD1cInRvdWNoXCJdICo6Zm9jdXMsXG5bZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSAqLFxuW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gKjpmb2N1cyxcbltkYXRhLXdoYXRpbnB1dD1cInRvdWNoXCJdICosXG5bZGF0YS13aGF0aW5wdXQ9XCJ0b3VjaFwiXSAqOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG5bZHJhZ2dhYmxlPWZhbHNlXSB7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgfVxuXG4uZm91bmRhdGlvbi1tcSB7XG4gIGZvbnQtZmFtaWx5OiBcInNtYWxsPTBlbSZtb2JpbGU9MjUuODc1ZW0mbWVkaXVtPTQwZW0mbW9iaWxlLXhsPTQwZW0mcGhhYmxldD00OGVtJnRhYmxldD02MGVtJmRlc2t0b3A9NzVlbSZkZXNrdG9wLXhsPTkwZW0mZGVza3RvcC14eGw9MTAzLjc1ZW1cIjsgfVxuXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiAxMDAlOyB9XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgZm9udC1mYW1pbHk6IFwiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG5pbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljOyB9XG5cbnRleHRhcmVhIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbnNlbGVjdCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbi5tYXBfY2FudmFzIGltZyxcbi5tYXBfY2FudmFzIGVtYmVkLFxuLm1hcF9jYW52YXMgb2JqZWN0LFxuLm1xYS1kaXNwbGF5IGltZyxcbi5tcWEtZGlzcGxheSBlbWJlZCxcbi5tcWEtZGlzcGxheSBvYmplY3Qge1xuICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5idXR0b24ge1xuICBwYWRkaW5nOiAwO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBhdXRvOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSBidXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgfVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuXG4uaXMtdmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5kaXYsXG5kbCxcbmR0LFxuZGQsXG51bCxcbm9sLFxubGksXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wcmUsXG5mb3JtLFxucCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbnAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IH1cblxuZW0sXG5pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zdHJvbmcsXG5iIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuaDEsIC5oMSxcbmgyLCAuaDIsXG5oMywgLmgzLFxuaDQsIC5oNCxcbmg1LCAuaDUsXG5oNiwgLmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IH1cbiAgaDEgc21hbGwsIC5oMSBzbWFsbCxcbiAgaDIgc21hbGwsIC5oMiBzbWFsbCxcbiAgaDMgc21hbGwsIC5oMyBzbWFsbCxcbiAgaDQgc21hbGwsIC5oNCBzbWFsbCxcbiAgaDUgc21hbGwsIC5oNSBzbWFsbCxcbiAgaDYgc21hbGwsIC5oNiBzbWFsbCB7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgY29sb3I6ICNjYWNhY2E7IH1cblxuaDEsIC5oMSB7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmgyLCAuaDIge1xuICBmb250LXNpemU6IDIuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oMywgLmgzIHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oNCwgLmg0IHtcbiAgZm9udC1zaXplOiAxLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmg1LCAuaDUge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oNiwgLmg2IHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgaDEsIC5oMSB7XG4gICAgZm9udC1zaXplOiAzLjEyNXJlbTsgfVxuICBoMiwgLmgyIHtcbiAgICBmb250LXNpemU6IDIuNzVyZW07IH1cbiAgaDMsIC5oMyB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07IH1cbiAgaDQsIC5oNCB7XG4gICAgZm9udC1zaXplOiAxLjg3NXJlbTsgfVxuICBoNSwgLmg1IHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgaDYsIC5oNiB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9IH1cblxuYSB7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogIzAwM0RGNTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgYTpob3ZlciwgYTpmb2N1cyB7XG4gICAgY29sb3I6ICMwMDM0ZDM7IH1cbiAgYSBpbWcge1xuICAgIGJvcmRlcjogMDsgfVxuXG5ociB7XG4gIGNsZWFyOiBib3RoO1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMS4yNXJlbSBhdXRvO1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItbGVmdDogMDsgfVxuXG51bCxcbm9sLFxuZGwge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuICBsaW5lLWhlaWdodDogMS42OyB9XG5cbmxpIHtcbiAgZm9udC1zaXplOiBpbmhlcml0OyB9XG5cbnVsIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgfVxuXG5vbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtOyB9XG5cbnVsIHVsLCBvbCB1bCwgdWwgb2wsIG9sIG9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuZGwge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIGRsIGR0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjNyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41NjI1cmVtIDEuMjVyZW0gMCAxLjE4NzVyZW07XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NhY2FjYTsgfVxuICBibG9ja3F1b3RlLCBibG9ja3F1b3RlIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgY29sb3I6ICM4YThhOGE7IH1cblxuYWJiciwgYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwYTBhMGE7XG4gIGN1cnNvcjogaGVscDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG5rYmQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMjVyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgZm9udC1mYW1pbHk6IFwiQ29ybW9yYW50XCIsIHNlcmlmO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuXG4uc3ViaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMC4ycmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiAjOGE4YThhOyB9XG5cbi5sZWFkIHtcbiAgZm9udC1zaXplOiAxMjUlO1xuICBsaW5lLWhlaWdodDogMS42OyB9XG5cbi5zdGF0IHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIHAgKyAuc3RhdCB7XG4gICAgbWFyZ2luLXRvcDogLTFyZW07IH1cblxudWwubm8tYnVsbGV0LCBvbC5uby1idWxsZXQge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG5jaXRlLCAuY2l0ZS1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07IH1cbiAgY2l0ZTpiZWZvcmUsIC5jaXRlLWJsb2NrOmJlZm9yZSB7XG4gICAgY29udGVudDogXCLigJQgXCI7IH1cblxuY29kZSwgLmNvZGUtaW5saW5lIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgZm9udC1mYW1pbHk6IFwiQ29ybW9yYW50XCIsIHNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzBhMGEwYTtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4zMTI1cmVtIDAuMDYyNXJlbTsgfVxuXG4uY29kZS1ibG9jayB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGZvbnQtZmFtaWx5OiBcIkNvcm1vcmFudFwiLCBzZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogYXV0bztcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG5cbi5tb2JpbGUgdGFibGV0IGRlc2t0b3AtdGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4ubW9iaWxlIHRhYmxldCBkZXNrdG9wLXRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4ubW9iaWxlIHRhYmxldCBkZXNrdG9wLXRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5tb2JpbGUgdGFibGV0IGRlc2t0b3AtdGV4dC1qdXN0aWZ5IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC5kZXNrdG9wLXhsLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuZGVza3RvcC14bC10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAuZGVza3RvcC14bC10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5kZXNrdG9wLXhsLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMy43NWVtKSB7XG4gIC5kZXNrdG9wLXh4bC10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmRlc2t0b3AteHhsLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5kZXNrdG9wLXh4bC10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5kZXNrdG9wLXh4bC10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG4uc2hvdy1mb3ItcHJpbnQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIHByaW50IHtcbiAgKiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICBjb2xvci1hZGp1c3Q6IGVjb25vbXk7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIC5oaWRlLWZvci1wcmludCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIHRhYmxlLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIHRoZWFkLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0Ym9keS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdHIuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIHRkLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgdGguc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICBhLFxuICBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIGFbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiOyB9XG4gIC5pciBhOmFmdGVyLFxuICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICBhW2hyZWZePScjJ106YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7IH1cbiAgcHJlLFxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOGE4YThhO1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIEBwYWdlIHtcbiAgICBtYXJnaW46IDAuNWNtOyB9XG4gIHAsXG4gIGgyLFxuICBoMyB7XG4gICAgb3JwaGFuczogMztcbiAgICB3aWRvd3M6IDM7IH1cbiAgaDIsXG4gIGgzIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bzsgfSB9XG5cbi8qKlxuICogVGV4dCBjb2xvciBiYXNlZCBvbiBpdHMgYmFja2dyb3VuZC5cbiAqIEBwYXJhbSAge051bWJlcn0gJGNvbG9yIENvbG9yLlxuICogQHJldHVybiB7TnVtYmVyfSBDb2xvci5cbiAqL1xuLyoqXG4gKiBWZXJ0aWNhbCBhbGlnbiBhbnl0aGluZ1xuICogQHBhcmFtIHt2YWx1ZX0gJHBvc2l0aW9uXG4gKiByZXR1cm4gbm9uZVxuICovXG5odG1sIHtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgfVxuICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIGh0bWwge1xuICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOyB9IH1cblxuLnNlY3Rpb25fX3dyYXBwZXIge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1heC13aWR0aDogODV2dztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgIC5zZWN0aW9uX193cmFwcGVyIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICAgIG1heC13aWR0aDogNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5zZWN0aW9uX193cmFwcGVyIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cblxuLnNlY3Rpb24ge1xuICBwYWRkaW5nOiAzLjc1cmVtIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgIC5zZWN0aW9uIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuICAuc2VjdGlvbl9faGVhZGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgICAgLnNlY3Rpb25fX2hlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMuNzVyZW07IH0gfVxuXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG46aXMoaDIsIGg1KSwgLmgtZm9udC1hbHQsIC53ZWJwbGFubmVyX19kZXNjcmlwdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiBcIkNvcm1vcmFudFwiLCBzZXJpZjsgfVxuXG46aXMoaDUpIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi5oLXZpc2libGUtaGlkZGVuIHtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMXB4OyB9XG4gIC5oLXZpc2libGUtaGlkZGVuOmZvY3VzIHtcbiAgICBjbGlwOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IGF1dG87IH1cblxuLmgtbGlzdC0tY2xlYW4ge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7IH1cblxuLmgtbGlzdC0tY291bnRlciB7XG4gIGNvdW50ZXItcmVzZXQ6IHNlY3Rpb247IH1cbiAgLmgtbGlzdC0tY291bnRlciBbY2xhc3MqPVwidGl0bGVcIl06OmJlZm9yZSB7XG4gICAgY291bnRlci1pbmNyZW1lbnQ6IHNlY3Rpb247XG4gICAgY29udGVudDogY291bnRlcihzZWN0aW9uKSBcIi4gXCI7IH1cblxuLmgtdGV4dC0tcHJpbWFyeSB7XG4gIGNvbG9yOiAjMDAzREY1OyB9XG5cbi5oLXRleHQtLWl0YWxpYyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4uaC10ZXh0LS11cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5oLXRleHQtLXVuZGVybGluZWQge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4uaC10ZXh0LS1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4uaC1mb250LS1saWdodCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuLmgtZm9udC0tcmVndWxhciB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuLmgtZm9udC0tc2VtaWJvbGQge1xuICBmb250LXdlaWdodDogNTAwOyB9XG5cbi5oLWZvbnQtLWJvbGQge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi5oLWZvbnQteHhzIHtcbiAgZm9udC1zaXplOiAwLjYyNXJlbTsgfVxuXG4uaC1mb250LXhzIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG5cbi5oLWZvbnQtcyB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cblxuLmgtZm9udC1tIHtcbiAgZm9udC1zaXplOiAxcmVtOyB9XG5cbi5oLWZvbnQtbWwge1xuICBmb250LXNpemU6IDEuMTI1cmVtOyB9XG5cbi5oLWZvbnQtbCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuXG4uaC1mb250LXhsIHtcbiAgZm9udC1zaXplOiAxLjVyZW07IH1cblxuLmgtZm9udC14eGwge1xuICBmb250LXNpemU6IDEuODc1cmVtOyB9XG5cbi5oLXAtMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmc6IDByZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLXAtMSB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmc6IDAuNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtcC0yIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtcC0zIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZzogMS41cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1wLTQge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nOiAycmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1wLTYge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nOiAzcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1wLTgge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nOiA0cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1wLTEwIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZzogNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtcHQtMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctdG9wOiAwcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1wdC0xIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtcHQtMiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1wdC0zIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtcHQtNCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctdG9wOiAycmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1wdC02IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLXB0LTgge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLXRvcDogNHJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtcHQtMTAge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLXRvcDogNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtcHItMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctcmlnaHQ6IDByZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLXByLTEge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLXByLTIge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1wci0zIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1wci00IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy1yaWdodDogMnJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtcHItNiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLXByLTgge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLXJpZ2h0OiA0cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1wci0xMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctcmlnaHQ6IDVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLXBiLTAge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLWJvdHRvbTogMHJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtcGItMSB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLXBiLTIge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtcGItMyB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLXBiLTQge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtcGItNiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1wYi04IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy1ib3R0b206IDRyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLXBiLTEwIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy1ib3R0b206IDVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLXBsLTAge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLWxlZnQ6IDByZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLXBsLTEge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtcGwtMiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctbGVmdDogMXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtcGwtMyB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1wbC00IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy1sZWZ0OiAycmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1wbC02IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1wbC04IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy1sZWZ0OiA0cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1wbC0xMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctbGVmdDogNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtbS0wIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luOiAwcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1tLTEge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW46IDAuNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtbS0yIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luOiAxcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1tLTMge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW46IDEuNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtbS00IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luOiAycmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1tLTYge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW46IDNyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLW0tOCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbjogNHJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtbS0xMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbjogNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtbXQtMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi10b3A6IDByZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLW10LTEge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLW10LTIge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1tdC0zIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1tdC00IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLXRvcDogMnJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtbXQtNiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLW10LTgge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tdG9wOiA0cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1tdC0xMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi10b3A6IDVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLW1yLTAge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tcmlnaHQ6IDByZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLW1yLTEge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtbXItMiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtbXItMyB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1tci00IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLXJpZ2h0OiAycmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1tci02IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1tci04IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLXJpZ2h0OiA0cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1tci0xMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1yaWdodDogNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtbWItMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1ib3R0b206IDByZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLW1iLTEge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLW1iLTIge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1tYi0zIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1tYi00IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLWJvdHRvbTogMnJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtbWItNiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLW1iLTgge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tYm90dG9tOiA0cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1tYi0xMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1ib3R0b206IDVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLW1sLTAge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tbGVmdDogMHJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtbWwtMSB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLW1sLTIge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtbWwtMyB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLW1sLTQge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tbGVmdDogMnJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuLmgtbWwtNiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4uaC1tbC04IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLWxlZnQ6IDRyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5oLW1sLTEwIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLWxlZnQ6IDVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbi5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMC44NWVtIDJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEuNjI1cmVtO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuICAuYnV0dG9uLCAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAzREY1O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b246aG92ZXIsIC5idXR0b246Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDMxYzQ7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5idXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLmJ1dHRvbjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5idXR0b24gLnN2Zy1pY29uIHtcbiAgICBmaWxsOiAjZmVmZWZlOyB9XG4gIC5idXR0b24tLWhvbGxvdyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAuODVlbSAyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMS42MjVyZW07XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuYnV0dG9uLS1ob2xsb3cge1xuICAgICAgb3V0bGluZTogMDsgfVxuICAgIC5idXR0b24tLWhvbGxvdywgLmJ1dHRvbi0taG9sbG93OmhvdmVyLCAuYnV0dG9uLS1ob2xsb3c6Zm9jdXMsIC5idXR0b24tLWhvbGxvdy5kaXNhYmxlZCwgLmJ1dHRvbi0taG9sbG93LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLS1ob2xsb3cuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tLWhvbGxvd1tkaXNhYmxlZF0sIC5idXR0b24tLWhvbGxvd1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tLWhvbGxvd1tkaXNhYmxlZF06Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLS1ob2xsb3csIC5idXR0b24tLWhvbGxvdy5kaXNhYmxlZCwgLmJ1dHRvbi0taG9sbG93W2Rpc2FibGVkXSwgLmJ1dHRvbi0taG9sbG93LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLS1ob2xsb3dbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLS1ob2xsb3cuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tLWhvbGxvd1tkaXNhYmxlZF06Zm9jdXMge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwM0RGNTtcbiAgICAgIGNvbG9yOiAjMDAzREY1OyB9XG4gICAgLmJ1dHRvbi0taG9sbG93OmhvdmVyLCAuYnV0dG9uLS1ob2xsb3c6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMDAxZjdiO1xuICAgICAgY29sb3I6ICMwMDFmN2I7IH1cbiAgICAuYnV0dG9uLS1ob2xsb3cgLnN2Zy1pY29uIHtcbiAgICAgIGZpbGw6ICMwMDNERjU7IH1cbiAgLmJ1dHRvbi0tc2Vjb25kYXJ5IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMC44NWVtIDJlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAxLjYyNXJlbTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmJ1dHRvbi0tc2Vjb25kYXJ5IHtcbiAgICAgIG91dGxpbmU6IDA7IH1cbiAgICAuYnV0dG9uLS1zZWNvbmRhcnksIC5idXR0b24tLXNlY29uZGFyeS5kaXNhYmxlZCwgLmJ1dHRvbi0tc2Vjb25kYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi0tc2Vjb25kYXJ5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLS1zZWNvbmRhcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLS1zZWNvbmRhcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tLXNlY29uZGFyeVtkaXNhYmxlZF06Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLmJ1dHRvbi0tc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLS1zZWNvbmRhcnk6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NiY2JjYjtcbiAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5idXR0b24tLXNwZWNpYWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwLjg1ZW0gMmVtO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEuNjI1cmVtO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuYnV0dG9uLS1zcGVjaWFsIHtcbiAgICAgIG91dGxpbmU6IDA7IH1cbiAgICAuYnV0dG9uLS1zcGVjaWFsLCAuYnV0dG9uLS1zcGVjaWFsLmRpc2FibGVkLCAuYnV0dG9uLS1zcGVjaWFsW2Rpc2FibGVkXSwgLmJ1dHRvbi0tc3BlY2lhbC5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi0tc3BlY2lhbFtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tLXNwZWNpYWwuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tLXNwZWNpYWxbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0M2NmOWY7XG4gICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgIC5idXR0b24tLXNwZWNpYWw6aG92ZXIsIC5idXR0b24tLXNwZWNpYWw6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJkYWY4MjtcbiAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5idXR0b24tLXNocmluayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogMDsgfVxuICAuYnV0dG9uLS1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC4yNTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gIC5idXR0b24tLXNvY2lhbCB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICAgIC5idXR0b24tLXNvY2lhbCAuc3ZnLWljb24ge1xuICAgICAgZmlsbDogI2ZlZmVmZTsgfVxuICAuYnV0dG9uOmZvY3VzIHtcbiAgICBvdXRsaW5lOiB0aGluIGRvdHRlZDsgfVxuXG5idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiB0cmFuc3BhcmVudDsgfVxuXG4ubGlzdF9fY291bnRlciB7XG4gIGNvdW50ZXItcmVzZXQ6IG15Y291bnRlcjsgfVxuICAubGlzdF9fY291bnRlciBkdDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBjb3VudGVyKG15Y291bnRlcikgXCIuIFwiO1xuICAgIGNvdW50ZXItaW5jcmVtZW50OiBteWNvdW50ZXI7IH1cbiAgLmxpc3RfX2NvdW50ZXIgZGQge1xuICAgIGNvdW50ZXItcmVzZXQ6IHN1YmNvdW50ZXI7IH1cbiAgLmxpc3RfX2NvdW50ZXIgZGl2IHtcbiAgICBjb3VudGVyLXJlc2V0OiBzdWJzdWJjb3VudGVyOyB9XG4gIC5saXN0X19jb3VudGVyIC5zdWJ0aXRsZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBjb3VudGVyKG15Y291bnRlcikgXCIuXCIgY291bnRlcihzdWJjb3VudGVyKSBcIi4gXCI7XG4gICAgY291bnRlci1pbmNyZW1lbnQ6IHN1YmNvdW50ZXI7IH1cbiAgLmxpc3RfX2NvdW50ZXIgLnN1YnN1YnRpdGxlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IGNvdW50ZXIobXljb3VudGVyKSBcIi5cIiBjb3VudGVyKHN1YmNvdW50ZXIpIFwiLlwiIGNvdW50ZXIoc3Vic3ViY291bnRlcikgXCIuIFwiO1xuICAgIGNvdW50ZXItaW5jcmVtZW50OiBzdWJzdWJjb3VudGVyOyB9XG5cbi5jYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAuY2FyZF9fdGV4dCB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLmNhcmRfX25hbWUge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLmNhcmRfX2Rlc2NyaXB0aW9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAxcmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jYXJkX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07IH0gfVxuICAuY2FyZF9faW1hZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cblxuLm5hdmJhci1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ubmF2YmFyIGlucHV0IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuICAubmF2YmFyIGlucHV0OmNoZWNrZWQgKyAubmF2YmFyX19sYWJlbCBzcGFuOm50aC1jaGlsZCgyKSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAubmF2YmFyIGlucHV0OmNoZWNrZWQgKyAubmF2YmFyX19sYWJlbCBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoN3B4KSB0cmFuc2xhdGVYKDApIHJvdGF0ZSg0NWRlZyk7IH1cbiAgLm5hdmJhciBpbnB1dDpjaGVja2VkICsgLm5hdmJhcl9fbGFiZWwgc3BhbjpsYXN0LWNoaWxkIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgdHJhbnNsYXRlWCgwKSByb3RhdGUoLTQ1ZGVnKTsgfVxuICAubmF2YmFyIGlucHV0OmNoZWNrZWQgfiAubmF2YmFyX19saXN0IHtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgICAgLm5hdmJhciBpbnB1dDpjaGVja2VkIH4gLm5hdmJhcl9fbGlzdCB7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDsgfSB9XG4gIC5uYXZiYXIgaW5wdXQgKyBsYWJlbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW46IDA7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgICAgLm5hdmJhciBpbnB1dCArIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5uYXZiYXJfX2xhYmVsIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGhlaWdodDogMTAwJTtcbiAgaGVpZ2h0OiAyLjc1cmVtO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuOHJlbSAwLjY2NjY3cmVtO1xuICB3aWR0aDogMi43NXJlbTsgfVxuICAubmF2YmFyX19sYWJlbDpmb2N1cyB7XG4gICAgb3V0bGluZTogMXB4IGRvdHRlZCAjZmVmZWZlOyB9XG4gIC5uYXZiYXJfX2xhYmVsIHNwYW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwYTBhMGE7XG4gICAgYm9yZGVyLXJhZGl1czogMXB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogM3B4O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjJzO1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi5uYXZiYXJfX2xpc3Qge1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgMC40cyBlYXNlO1xuICB6LWluZGV4OiAxMjA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgICAubmF2YmFyX19saXN0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTAsIDM4LCAwLjk1KTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA4OHB4O1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgIC5uYXZiYXJfX2xpc3Qge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGhlaWdodDogNHJlbTtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfSB9XG4gIC5uYXZiYXJfX2xpc3RfX2l0ZW0ge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICB3aWR0aDogNzV2dzsgfVxuICAgIC5uYXZiYXJfX2xpc3RfX2l0ZW06Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM2ZGEyZmY7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gICAgICAgIC5uYXZiYXJfX2xpc3RfX2l0ZW06Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlcjogMDsgfSB9XG4gICAgLm5hdmJhcl9fbGlzdF9faXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNmRhMmZmOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgICAgICAubmF2YmFyX19saXN0X19pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgIGJvcmRlcjogMDsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAgIC5uYXZiYXJfX2xpc3RfX2l0ZW0ge1xuICAgICAgICBtYXJnaW46IGluaGVyaXQ7XG4gICAgICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgICAgIHdpZHRoOiBhdXRvOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLm5hdmJhciBsaSB1bCB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5uYXZiYXIgbGk6aG92ZXIgc3Bhbjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiLVwiO1xuICAgIHdpZHRoOiAyNHB4OyB9IH1cblxuLm5hdmJhciBsaTpob3ZlciB1bCB7XG4gIGRpc3BsYXk6IGluaGVyaXQ7IH1cblxuLm5hdmJhciBsaSBsaSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgIC5uYXZiYXIgbGkgbGkge1xuICAgICAgbWFyZ2luLXRvcDogaW5oZXJpdDsgfSB9XG5cbi5uYXZiYXIgYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgIC5uYXZiYXIgYSBzcGFuOjphZnRlciB7XG4gICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgIGNvbnRlbnQ6IFwiK1wiO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDI0cHg7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgIC5uYXZiYXIgYS5yb3VuZGVkIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmN2Y3Zjc7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgYm9yZGVyLXJhZGl1czogMS44NzVyZW07XG4gICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTsgfSB9XG5cbi5pbnN0cnVjdGlvbnMtbmF2YmFyIHtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDE1dmg7XG4gIHotaW5kZXg6IDk7IH1cbiAgLmluc3RydWN0aW9ucy1uYXZiYXJfX2lucHV0IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmluc3RydWN0aW9ucy1uYXZiYXJfX2lucHV0OmNoZWNrZWQgKyBsYWJlbCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXJlbSk7IH1cbiAgICAgIC5pbnN0cnVjdGlvbnMtbmF2YmFyX19pbnB1dDpjaGVja2VkICsgbGFiZWwgc3BhbjpudGgtY2hpbGQoMikge1xuICAgICAgICBvcGFjaXR5OiAwOyB9XG4gICAgICAuaW5zdHJ1Y3Rpb25zLW5hdmJhcl9faW5wdXQ6Y2hlY2tlZCArIGxhYmVsIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoN3B4KSB0cmFuc2xhdGVYKDFweCkgcm90YXRlKDQ1ZGVnKTsgfVxuICAgICAgLmluc3RydWN0aW9ucy1uYXZiYXJfX2lucHV0OmNoZWNrZWQgKyBsYWJlbCBzcGFuOmxhc3QtY2hpbGQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTlweCkgdHJhbnNsYXRlWCgxcHgpIHJvdGF0ZSgtNDVkZWcpOyB9XG4gICAgLmluc3RydWN0aW9ucy1uYXZiYXJfX2lucHV0OmNoZWNrZWQgfiAuaW5zdHJ1Y3Rpb25zLW5hdmJhcl9fd3JhcHBlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgICAuaW5zdHJ1Y3Rpb25zLW5hdmJhcl9faW5wdXQ6Y2hlY2tlZCB+IC5pbnN0cnVjdGlvbnMtbmF2YmFyX19tYXNrOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjsgfVxuICAgIC5pbnN0cnVjdGlvbnMtbmF2YmFyX19pbnB1dCArIGxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgLmluc3RydWN0aW9ucy1uYXZiYXJfX2xhYmVsIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzZkYTJmZjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDEuODc1cmVtIDEuODc1cmVtIDA7XG4gICAgY29sb3I6ICMwNzExMTk7XG4gICAgaGVpZ2h0OiAzLjc1cmVtO1xuICAgIGxlZnQ6IC0xcmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjQ2ODc1cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjRzIGVhc2U7XG4gICAgd2lkdGg6IDQuMzc1cmVtO1xuICAgIHotaW5kZXg6IDEwOyB9XG4gICAgLmluc3RydWN0aW9ucy1uYXZiYXJfX2xhYmVsOmhvdmVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxcmVtKTsgfVxuICAgIC5pbnN0cnVjdGlvbnMtbmF2YmFyX19sYWJlbDpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAxcHggZG90dGVkICM2ZGEyZmY7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgICAgLmluc3RydWN0aW9ucy1uYXZiYXJfX2xhYmVsIHtcbiAgICAgICAgd2lkdGg6IDYuMjVyZW07IH0gfVxuICAgIC5pbnN0cnVjdGlvbnMtbmF2YmFyX19sYWJlbF9fd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwNzExMTk7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBoZWlnaHQ6IDIuNzVyZW07XG4gICAgICBwYWRkaW5nOiAwLjhyZW0gMC42NjY2N3JlbTtcbiAgICAgIHdpZHRoOiAyLjc1cmVtOyB9XG4gICAgLmluc3RydWN0aW9ucy1uYXZiYXJfX2xhYmVsIHNwYW4ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzZkYTJmZjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzLC13ZWJraXQtdHJhbnNmb3JtIC4ycztcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuaW5zdHJ1Y3Rpb25zLW5hdmJhcl9fbGFiZWwgc3BhbjpudGgtY2hpbGQoMikge1xuICAgICAgICB3aWR0aDogNzUlOyB9XG4gIC5pbnN0cnVjdGlvbnMtbmF2YmFyX193cmFwcGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmRhMmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMS44NzVyZW0gMS44NzVyZW0gMDtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDgwdmggLSAzMnB4KTtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgcGFkZGluZzogMC41cmVtIDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNHMgZWFzZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwMHB4KTtcbiAgICB0b3A6IC0ycmVtO1xuICAgIHotaW5kZXg6IDk7IH1cbiAgLmluc3RydWN0aW9ucy1uYXZiYXJfX21hc2s6OmJlZm9yZSB7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMCwgMTAsIDEwLCAwLjM1KTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5pbnN0cnVjdGlvbnMtbmF2YmFyX19saXN0IHtcbiAgICBwYWRkaW5nOiAycmVtIDFyZW07IH1cbiAgLmluc3RydWN0aW9ucy1uYXZiYXIgbGkge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG4gICAgLmluc3RydWN0aW9ucy1uYXZiYXIgbGk6bGFzdC1jaGlsZMKgIHtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5pbnN0cnVjdGlvbnMtbmF2YmFyIGxpID4gdWwge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5pbnN0cnVjdGlvbnMtbmF2YmFyIGxpIGxpIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgLmluc3RydWN0aW9ucy1uYXZiYXIgYSB7XG4gICAgY29sb3I6ICMwNzExMTk7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgLjFzIGVhc2U7IH1cbiAgICAuaW5zdHJ1Y3Rpb25zLW5hdmJhciBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZjdmN2Y3OyB9XG5cbi50YWJzIHtcbiAgLyoqIHRhYiBzdHlsaW5nICoqL1xuICAvKiBTdHlsZSB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIHRhYiAqL1xuICAvKiBDaGFuZ2UgYmFja2dyb3VuZCBjb2xvciBvZiBidXR0b25zIG9uIGhvdmVyICovXG4gIC8qIENyZWF0ZSBhbiBhY3RpdmUvY3VycmVudCB0YWJsaW5rIGNsYXNzICovXG4gIC8qIFN0eWxlIHRoZSB0YWIgY29udGVudCAqLyB9XG4gIC50YWJzIC50YWIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjMDAzREY1O1xuICAgIGJvcmRlci1yYWRpdXM6IDEuNjI1cmVtO1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAgIC50YWJzIC50YWIuYWN0aXZlIHtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgICAgIC50YWJzIC50YWIge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgIGZsb2F0OiBub25lOyB9IH1cbiAgLnRhYnMgLnRhYiBidXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgY29sb3I6ICMwMDNERjU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMS44NzVyZW07XG4gICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAudGFicyAudGFiIGJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTsgfVxuICAudGFicyAudGFiIGJ1dHRvbi5hY3RpdmUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAjMDAzREY1O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDNERjU7XG4gICAgY29sb3I6ICNmZWZlZmU7XG4gICAgYm9yZGVyLXJhZGl1czogMS42MjVyZW07IH1cbiAgLnRhYnMgLnRhYmNvbnRlbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAudGFicyAudGFiY29udGVudC5hY3RpdmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmhlYWRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvYmtnX2hlcm8ud2VicCk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICBwYWRkaW5nOiAwOyB9XG4gIC5oZWFkZXItLWdyYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwNzExMTk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuICAuaGVhZGVyX193cmFwcGVyIHtcbiAgICBwYWRkaW5nLXRvcDogMDsgfVxuICAuaGVhZGVyX19uYXZiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEwLCAzOCwgMC45NSk7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMjVweCByZ2JhKDEwLCAxMCwgMTAsIDAuMSk7XG4gICAgaGVpZ2h0OiA4OHB4O1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2U7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMTAwOyB9XG4gICAgLmhlYWRlcl9fbmF2YmFyLmhpZGUge1xuICAgICAgdG9wOiAtODhweDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gICAgICAuaGVhZGVyX19uYXZiYXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogaW5oZXJpdDsgfSB9XG4gICAgLmhlYWRlcl9fbmF2YmFyX193cmFwcGVyIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAgICAgLmhlYWRlcl9fbmF2YmFyX193cmFwcGVyIHtcbiAgICAgICAgICBwYWRkaW5nOiAxcmVtOyB9IH1cbiAgLmhlYWRlcl9fbG9nb19faW1hZ2Uge1xuICAgIHdpZHRoOiBjbGFtcCgyMDBweCwgMzV2dywgMzAwcHgpOyB9XG4gIC5oZWFkZXItcGxhY2Vob2xkZXIge1xuICAgIGhlaWdodDogODhweDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gICAgICAuaGVhZGVyLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5oZXJvIHtcbiAgcGFkZGluZzogMDtcbiAgcGFkZGluZy10b3A6IDNyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAuaGVybyB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2hlcm9fc21hcnRwaG9uZXMtYXBwLndlYnA/dj0xLjExKTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGJvdHRvbTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDMwMHB4IGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICBwYWRkaW5nLXRvcDogMDsgfVxuICAgICAgLmhlcm8tLW5vLWltYWdlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLmhlcm8ge1xuICAgICAgYmFja2dyb3VuZC1zaXplOiA0MjVweCBhdXRvOyB9IH1cbiAgLmhlcm9fX3dyYXBwZXIge1xuICAgIG1pbi1oZWlnaHQ6IDQ3NXB4O1xuICAgIHBhZGRpbmc6IDMuNzVyZW0gMDsgfVxuICAuaGVyb19fd3JhcHBlcl9fZW1wdHlfX3RvcCB7XG4gICAgbWluLWhlaWdodDogNDc1cHg7XG4gICAgcGFkZGluZzogOS4zNzVyZW0gMXJlbSAzLjc1cmVtOyB9XG4gIC5oZXJvX19oZWFkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgICAgLmhlcm9fX2hlYWRlciB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgIC5oZXJvX19oZWFkZXIge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgd2lkdGg6IGNhbGMoNjAlIC0gMS44NzVyZW0pO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgIC5oZXJvX19oZWFkZXIuZnVsbC13aWR0aCB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gICAgLmhlcm9fX2JvZHkge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICB3aWR0aDogY2FsYyg2MCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgICAuaGVyb19fYm9keSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1mbG93OiByb3cgd3JhcDsgfSB9XG4gIC5oZXJvX19waWN0dXJlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA1OS45OTg3NWVtKSB7XG4gICAgICAuaGVyb19fcGljdHVyZSB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBvcmRlcjogMztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAgIC5oZXJvX19waWN0dXJlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5oZXJvX19jdGEge1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmhlcm9fX2N0YSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNTkuOTk4NzVlbSkge1xuICAgICAgLmhlcm9fX2N0YSB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgICAgIC5oZXJvX19jdGFfX2ltYWdlIHtcbiAgICAgICAgbWF4LXdpZHRoOiA0MHZ3O1xuICAgICAgICBoZWlnaHQ6IDMuNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgICAuaGVyb19fY29weSB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5oZXJvX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAyLjE4NzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gICAgICAuaGVyb19fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDIuNXJlbTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5oZXJvX190aXRsZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuICAuaGVyb19fc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS44NzVyZW0sIDIuMzc1cmVtLCAxMHZoKTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAgIC5oZXJvX19zdWJ0aXRsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IGluaGVyaXQ7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuaGVyb19fc3VidGl0bGUge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cbiAgLmhlcm9fX2NpdGF0aW9uIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gICAgICAuaGVyb19fY2l0YXRpb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBpbmhlcml0OyB9IH1cbiAgLmhlcm9fX2ltYWdlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5oZXJvX19pbWFnZV9fNTAge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgbWFyZ2luLXRvcDogMy43NXJlbTtcbiAgICBoZWlnaHQ6IDMuMTI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmhlcm9fX2Rlc2NyaXB0aW9uIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuICAuaGVyb19fZ3JlZW5fX2J1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQzQ0Y5RjtcbiAgICBjb2xvcjogIzA3MTExOTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMgZWFzZTsgfVxuICAgIC5oZXJvX19ncmVlbl9fYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxQkE3Nzc7IH1cbiAgICAuaGVyb19fZ3JlZW5fX2J1dHRvbjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDNDRjlGOyB9XG5cbi5oaWdobGlnaHRzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwM0RGNTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmhpZ2hsaWdodHNfX2xpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuaGlnaGxpZ2h0c19fbGlzdF9fZWxlbWVudCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIHdpZHRoOiBjYWxjKDgzLjMzMzMzJSAtIDEuMjVyZW0pO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNjI1cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDguMzMzMzMlICsgMS4yNXJlbSAvIDIpOyB9XG4gICAgICAuaGlnaGxpZ2h0c19fbGlzdF9fZWxlbWVudDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMy4xMjVyZW07IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAgICAgICAuaGlnaGxpZ2h0c19fbGlzdF9fZWxlbWVudDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAgICAgLmhpZ2hsaWdodHNfX2xpc3RfX2VsZW1lbnQge1xuICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzJSAtIDZyZW0pO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzcmVtO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogM3JlbTsgfSB9XG4gIC5oaWdobGlnaHRzX19waWN0dXJlIHtcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgcGFkZGluZzogMC41cmVtO1xuICAgIHdpZHRoOiAxMDBweDsgfVxuICAgIEBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMS8xKSB7XG4gICAgICAuaGlnaGxpZ2h0c19fcGljdHVyZSB7XG4gICAgICAgIGhlaWdodDogMTAwcHg7IH0gfVxuICAuaGlnaGxpZ2h0c19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLndlYnBsYW5uZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAud2VicGxhbm5lciB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9pbWcvd2VicGxhbm5lci53ZWJwKTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwMHB4IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDc0MnB4IDM5NHB4O1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLndlYnBsYW5uZXIge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAzLjc1ZW0pIHtcbiAgICAud2VicGxhbm5lciB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA3NSUgY2VudGVyOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAud2VicGxhbm5lcl9fd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgIC53ZWJwbGFubmVyX19oZWFkZXIge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgIC53ZWJwbGFubmVyX19tYWluIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtOyB9IH1cbiAgLndlYnBsYW5uZXJfX2Rlc2NyaXB0aW9uIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAud2VicGxhbm5lcl9faW1hZ2Uge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC53ZWJwbGFubmVyX19saXN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gICAgLndlYnBsYW5uZXJfX2xpc3RfX3RpdGxlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuICAgICAgLndlYnBsYW5uZXJfX2xpc3RfX3RpdGxlOjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgICAgICAgIC53ZWJwbGFubmVyX19saXN0X190aXRsZTo6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTsgfSB9XG5cbi5uYXRpdmVhcHAge1xuICBhc3BlY3QtcmF0aW86IDE2IC8gOTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9uYXRpdmVhcHAud2VicCk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDgwJSBjZW50ZXI7XG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAubmF0aXZlYXBwIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gICAgLm5hdGl2ZWFwcDo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoNywgMTcsIDI1LCAwLjcpO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsICMwNzExMTkgMzAlLCByZ2JhKDcsIDE3LCAyNSwgMCkgMTAwJSksIGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzBmMDcxOSAxNSUsIHJnYmEoMCwgOTEsIDIzNCwgMC43KSAxMDAlKTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHotaW5kZXg6IDE7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgIC5uYXRpdmVhcHBfX3dyYXBwZXIge1xuICAgICAgcGFkZGluZzogMy43NXJlbSAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogOTk5OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAubmF0aXZlYXBwX19tYWluLCAubmF0aXZlYXBwX19oZWFkZXIsIC5uYXRpdmVhcHBfX2Zvb3RlciB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIHdpZHRoOiBjYWxjKDc1JSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5uYXRpdmVhcHBfX2Zvb3RlciB7XG4gICAgbWFyZ2luLXRvcDogMy43NXJlbTsgfVxuICAubmF0aXZlYXBwX192aWRlbyB7XG4gICAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7IH1cbiAgICBAc3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86IDE2LzkpIHtcbiAgICAgIC5uYXRpdmVhcHBfX3ZpZGVvOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDUyLjQ2MzMyJTtcbiAgICAgICAgd2lkdGg6IDFweDsgfVxuICAgICAgLm5hdGl2ZWFwcF9fdmlkZW86OmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9IH1cbiAgLm5hdGl2ZWFwcCB2aWRlbyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmaWx0ZXI6IHVybCgjbmF0aXZlYXBwX19maWx0ZXIpOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgIC5uYXRpdmVhcHAgdmlkZW8ge1xuICAgICAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTtcbiAgICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDg1dnc7IH0gfVxuICAubmF0aXZlYXBwIGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG5cbi5mZWF0dXJlcyB7XG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MjczODc7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvZmVhdHVyZV9iYWNrZ3JvdW5kLndlYnA/dj0xLjExKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgcGFkZGluZzogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgIC5mZWF0dXJlcyB7XG4gICAgICBwYWRkaW5nOiAzLjc1cmVtIDA7IH0gfVxuICAuZmVhdHVyZXNfX3dyYXBwZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAsIDEwLCAxMCwgMC43NSk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDVweCk7XG4gICAgcGFkZGluZzogM3JlbSAxcmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAgIC5mZWF0dXJlc19fd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgIC5mZWF0dXJlc19faGVhZGVyIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAuZmVhdHVyZXNfX21haW4ge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICB3aWR0aDogY2FsYyg0MS42NjY2NyUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07IH0gfVxuICAuZmVhdHVyZXMgZHQge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAuZmVhdHVyZXMgZGQge1xuICAgIG1hcmdpbi1ib3R0b206IDIuMjVyZW07IH1cblxuLnRlYW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlZmY1OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLnRlYW1fX2Rlc2NyaXB0aW9uIHtcbiAgICAgIG1heC13aWR0aDogNzUlOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAudGVhbV9fY2FyZHMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7IH0gfVxuICAudGVhbSAuY2FyZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAudGVhbSAuY2FyZCB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgICAgLnRlYW0gLmNhcmQge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbi5wYXJ0bmVyc19fbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucGFydG5lcnNfX2xpc3Qge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfSB9XG5cbi5wYXJ0bmVycyBsaSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogY2VudGVyOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnBhcnRuZXJzIGxpIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAucGFydG5lcnMgbGkge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICB3aWR0aDogY2FsYygyMCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07IH0gfVxuXG4ucGFydG5lcnMgaW1nIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbi5wYXJ0bmVycyBzbWFsbCB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5jb250YWN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMGEwYTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmNvbnRhY3RfX3N1YnRpdGxlIHtcbiAgICBmb250LXNpemU6IDIuNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgIC5jb250YWN0X193cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIG1heC1oZWlnaHQ6IDUwcmVtOyB9IH1cbiAgLmNvbnRhY3RfX2hyZWYge1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5jb250YWN0X19ocmVmOmhvdmVyIHtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuY29udGFjdF9faGVhZGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICAgLmNvbnRhY3RfX2hlYWRlciB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aWR0aDogY2FsYyg3NSUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAuY29udGFjdF9fbWFpbiB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIHdpZHRoOiBjYWxjKDU4LjMzMzMzJSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLmNvbnRhY3RfX2Zvb3RlciB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDRyZW07IH0gfVxuICAuY29udGFjdF9fbmV3c2xldHRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jb250YWN0X19saXN0IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XG4gICAgICAuY29udGFjdF9fbGlzdCBsaSB7XG4gICAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgIC5jb250YWN0X19saXN0IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAuY29udGFjdF9fbGlzdCBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07IH1cbiAgICAgIC5jb250YWN0X19saXN0IGltZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAgICAgLmNvbnRhY3RfX2xpc3QgOmlzKGRsLCBkdCkge1xuICAgICAgICBtYXJnaW46IDA7IH0gfVxuXG4uZm9vdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwM0RGNTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmZvb3RlciBhIHtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5mb290ZXJfX3dyYXBwZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5mb290ZXJfX2hlYWRlciB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIHdpZHRoOiA0MS42NjY2NyU7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLmZvb3Rlcl9faGVhZGVyIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgLmZvb3Rlcl9faWNvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1hcmdpbjogMnJlbSAwOyB9XG4gIC5mb290ZXJfX21lbnUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuZm9vdGVyX19tZW51IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7IH0gfVxuICAgIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuZm9vdGVyX19tZW51IGxpIHtcbiAgICAgIG91dGxpbmU6IDA7IH1cbiAgICAuZm9vdGVyX19tZW51IGEsXG4gICAgLmZvb3Rlcl9fbWVudSAuYnV0dG9uIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAxLjI1cmVtIDFyZW07IH1cbiAgICAuZm9vdGVyX19tZW51IGlucHV0LFxuICAgIC5mb290ZXJfX21lbnUgc2VsZWN0LFxuICAgIC5mb290ZXJfX21lbnUgYSxcbiAgICAuZm9vdGVyX19tZW51IGJ1dHRvbiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmZvb3Rlcl9fbWVudSBpbnB1dCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAuZm9vdGVyX19tZW51IGxpIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjN2RhNWY5OyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuZm9vdGVyX19tZW51IGxpIHtcbiAgICAgICAgICBib3JkZXI6IDA7IH0gfVxuICAgIC5mb290ZXJfX21lbnUgYSB7XG4gICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgLmZvb3Rlcl9fbWVudSB1bCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuZm9vdGVyX19tZW51IHVsIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07IH0gfVxuICAgICAgLmZvb3Rlcl9fbWVudSB1bCBhIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5mb290ZXJfX21lbnUge1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAuZm9vdGVyX19jb3B5cmlnaHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuZm9vdGVyX19jb3B5cmlnaHQge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICAgIC5mb290ZXJfX2NvcHlyaWdodCBhIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtOyB9XG5cbi5oaXJpbmdkYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhhOGE4YTsgfVxuICAuaGlyaW5nZGFya19fbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmhpcmluZ2RhcmtfX2xpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfSB9XG4gIC5oaXJpbmdkYXJrIGxpIHtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuaGlyaW5nZGFyayBsaSB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgICAgLmhpcmluZ2RhcmsgbGkge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgd2lkdGg6IGNhbGMoMjAlIC0gMS44NzVyZW0pO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5oaXJpbmdkYXJrIGltZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG4gIC5oaXJpbmdkYXJrIHNtYWxsIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uaGlyaW5nbGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2OyB9XG4gIC5oaXJpbmdsaWdodF9fbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmhpcmluZ2xpZ2h0X19saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH0gfVxuICAuaGlyaW5nbGlnaHQgbGkge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5oaXJpbmdsaWdodCBsaSB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgICAgLmhpcmluZ2xpZ2h0IGxpIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIHdpZHRoOiBjYWxjKDIwJSAtIDEuODc1cmVtKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07IH0gfVxuICAuaGlyaW5nbGlnaHQgaW1nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cbiAgLmhpcmluZ2xpZ2h0IHNtYWxsIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4udXNlY2FzZXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7IH1cbiAgLnVzZWNhc2VzIC5jYXJvdXNlbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAgIC51c2VjYXNlcyAuY2Fyb3VzZWwge1xuICAgICAgICBoZWlnaHQ6IDgxcmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTk4NzVlbSkge1xuICAgICAgLnVzZWNhc2VzIC5jYXJvdXNlbCB7XG4gICAgICAgIGhlaWdodDogODMuNzVyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgICAudXNlY2FzZXMgLmNhcm91c2VsIHtcbiAgICAgICAgaGVpZ2h0OiBmaXQtY29udGVudDsgfSB9XG4gIC51c2VjYXNlcyAuc2xpZGUge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDIwO1xuICAgIGhlaWdodDogNTYuMjVyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTk4NzVlbSkge1xuICAgICAgLnVzZWNhc2VzIC5zbGlkZSB7XG4gICAgICAgIGhlaWdodDogZml0LWNvbnRlbnQ7IH0gfVxuICAudXNlY2FzZXMgLnNsaWRlLmN1cnJlbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHotaW5kZXg6IDUwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC51c2VjYXNlcyAuc2xpZGUucHJldiB7XG4gICAgbGVmdDogLTEwMCU7IH1cbiAgLnVzZWNhc2VzIC5zbGlkZS5uZXh0IHtcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC51c2VjYXNlcyAuc2xpZGVuYXYge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDEuODc1cmVtO1xuICAgIGxlZnQ6IGNhbGMoKDEwMHZ3IC0gNzVyZW0pIC8gMik7XG4gICAgei1pbmRleDogMjA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAzMy45Mzc1cmVtO1xuICAgIGhlaWdodDogMy4yNXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMDNERjU7XG4gICAgYm9yZGVyLXJhZGl1czogMS42MjVyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAgIC51c2VjYXNlcyAuc2xpZGVuYXYge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBib3R0b206IDMuNzVyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgICAudXNlY2FzZXMgLnNsaWRlbmF2IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiA4NXZ3OyB9IH1cbiAgLnVzZWNhc2VzIC5zbGlkZW5hdiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDA7IH1cbiAgLnVzZWNhc2VzIC5zbGlkZW5hdiBidXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiAjMDAzREY1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgICAgIC51c2VjYXNlcyAuc2xpZGVuYXYgYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZzogMXJlbTsgfVxuICAgICAgICAudXNlY2FzZXMgLnNsaWRlbmF2IGJ1dHRvbi56ZXJvIHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxLjYyNXJlbSAxLjYyNXJlbSAwIDAgIWltcG9ydGFudDsgfVxuICAgICAgICAudXNlY2FzZXMgLnNsaWRlbmF2IGJ1dHRvbi5vbmUge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDAgIWltcG9ydGFudDsgfVxuICAgICAgICAudXNlY2FzZXMgLnNsaWRlbmF2IGJ1dHRvbi50d28ge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCAxLjYyNXJlbSAxLjYyNXJlbSAhaW1wb3J0YW50OyB9IH1cbiAgLnVzZWNhc2VzIC5zbGlkZW5hdiBidXR0b24uY3VycmVudCB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICMwMDNERjU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwM0RGNTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAxLjYyNXJlbTsgfVxuICAudXNlY2FzZXMgLnVzZWNhc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC51c2VjYXNlcyAudXNlY2FzZSAudGV4dC1jb250ZW50IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoKDUydncpIC0gKCgxMDB2dyAtIDc1cmVtKSAvIDIpKTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAgICAgLnVzZWNhc2VzIC51c2VjYXNlIC50ZXh0LWNvbnRlbnQge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1dnc7XG4gICAgICAgICAgbWF4LXdpZHRoOiBhdXRvOyB9IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45OTg3NWVtKSB7XG4gICAgICAgIC51c2VjYXNlcyAudXNlY2FzZSAudGV4dC1jb250ZW50IHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cbiAgICAgIC51c2VjYXNlcyAudXNlY2FzZSAudGV4dC1jb250ZW50IGg2IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTsgfVxuICAgICAgLnVzZWNhc2VzIC51c2VjYXNlIC50ZXh0LWNvbnRlbnQgcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuICAgIC51c2VjYXNlcyAudXNlY2FzZSBkdCB7XG4gICAgICBtYXJnaW4tdG9wOiAxLjEyNXJlbTsgfVxuICAgIC51c2VjYXNlcyAudXNlY2FzZSAuYmFja2dyb3VuZCB7XG4gICAgICBoZWlnaHQ6IDU2LjI1cmVtO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDUwJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAgICAgLnVzZWNhc2VzIC51c2VjYXNlIC5iYWNrZ3JvdW5kIHtcbiAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gICAgICAudXNlY2FzZXMgLnVzZWNhc2UgLmJhY2tncm91bmQgLmltZy1jb250ZW50IHtcbiAgICAgICAgaGVpZ2h0OiA1Ni4yNXJlbTtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjogMCUgNTAlOyB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OS45OTg3NWVtKSB7XG4gICAgICAgICAgLnVzZWNhc2VzIC51c2VjYXNlIC5iYWNrZ3JvdW5kIC5pbWctY29udGVudCB7XG4gICAgICAgICAgICBvYmplY3QtcG9zaXRpb246IDIwJSA1MCU7IH0gfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTk4NzVlbSkge1xuICAgICAgICAgIC51c2VjYXNlcyAudXNlY2FzZSAuYmFja2dyb3VuZCAuaW1nLWNvbnRlbnQge1xuICAgICAgICAgICAgaGVpZ2h0OiAyOC4xMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gICAgICAudXNlY2FzZXMgLnVzZWNhc2UgLmJhY2tncm91bmQgLnF1b3RhdGlvbi1jb250ZW50IHtcbiAgICAgICAgei1pbmRleDogMjA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAzLjc1cmVtOyB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gICAgICAgICAgLnVzZWNhc2VzIC51c2VjYXNlIC5iYWNrZ3JvdW5kIC5xdW90YXRpb24tY29udGVudCB7XG4gICAgICAgICAgICB0b3A6IDIxLjI1cmVtOyB9IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgICAgICAgICAudXNlY2FzZXMgLnVzZWNhc2UgLmJhY2tncm91bmQgLnF1b3RhdGlvbi1jb250ZW50IHtcbiAgICAgICAgICAgIHRvcDogMjIuNzVyZW07IH0gfVxuICAgICAgICAudXNlY2FzZXMgLnVzZWNhc2UgLmJhY2tncm91bmQgLnF1b3RhdGlvbi1jb250ZW50IC5xdW90YXRpb24ge1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIkNvcm1vcmFudFwiLCBzZXJpZjtcbiAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogM3JlbTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgY29sb3I6ICMwNzExMTk7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgICAgcGFkZGluZzogMCAycHg7XG4gICAgICAgICAgbWFyZ2luOiAwIDAgMC41cmVtIDEuNXJlbTsgfVxuICAgICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OS45OTg3NWVtKSB7XG4gICAgICAgICAgICAudXNlY2FzZXMgLnVzZWNhc2UgLmJhY2tncm91bmQgLnF1b3RhdGlvbi1jb250ZW50IC5xdW90YXRpb24ge1xuICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjVyZW07IH0gfVxuICAgICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgICAgICAgICAudXNlY2FzZXMgLnVzZWNhc2UgLmJhY2tncm91bmQgLnF1b3RhdGlvbi1jb250ZW50IC5xdW90YXRpb24ge1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU2MjVyZW07XG4gICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAuMjVyZW07IH0gfVxuXG4ucGxheXN0b3JlIC5xdW90YXRpb24ge1xuICBmb250LWZhbWlseTogXCJDb3Jtb3JhbnRcIiwgc2VyaWY7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAzcmVtOyB9XG5cbi5wbGF5c3RvcmUgLnRleHQtY29udGVudCB7XG4gIG1hcmdpbjogMy43NXJlbSAwOyB9XG5cbi5wbGF5c3RvcmUgZm9vdGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLnBsYXlzdG9yZSBpbWcge1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBvYmplY3QtcG9zaXRpb246IHRvcDtcbiAgd2lkdGg6IDEwMHZ3OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gICAgLnBsYXlzdG9yZSBpbWcge1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICBvYmplY3QtcG9zaXRpb246IDMwJTtcbiAgICAgIG1pbi1oZWlnaHQ6IDExLjI1cmVtOyB9IH1cblxuLmRvd25sb2FkX2FwcCAucXVvdGF0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFwiQ29ybW9yYW50XCIsIHNlcmlmO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogM3JlbTsgfVxuXG4uZG93bmxvYWRfYXBwIC50ZXh0LWNvbnRlbnQge1xuICBtYXJnaW46IDMuNzVyZW0gMDsgfVxuXG4uZG93bmxvYWRfYXBwIGZvb3RlciB7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5kb3dubG9hZF9hcHAgaW1nIHtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgb2JqZWN0LXBvc2l0aW9uOiB0b3A7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAuZG93bmxvYWRfYXBwIGltZyB7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIG9iamVjdC1wb3NpdGlvbjogMzAlO1xuICAgICAgbWluLWhlaWdodDogMTEuMjVyZW07IH0gfVxuXG4uZG93bmxvYWRfYXBwIC5mdWxsLXdpZHRoLWltZyB7XG4gIHdpZHRoOiAxMDB2dzsgfVxuXG4uZWFybHktYWNjZXNzLXNkayBoMSB7XG4gIG1hcmdpbi1ib3R0b206IDEuODc1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgLmVhcmx5LWFjY2Vzcy1zZGsgaDEge1xuICAgICAgZm9udC1zaXplOiAyLjI1cmVtOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLmVhcmx5LWFjY2Vzcy1zZGsgLnNlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDJyZW0gMDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OS45OTg3NWVtKSB7XG4gIC5lYXJseS1hY2Nlc3Mtc2RrIC5zZWN0aW9uIHtcbiAgICBtYXgtaGVpZ2h0OiA3NXJlbTsgfSB9XG5cbi5lYXJseS1hY2Nlc3Mtc2RrIGltZyB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIG9iamVjdC1wb3NpdGlvbjogdG9wO1xuICB3aWR0aDogMTAwdnc7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAuZWFybHktYWNjZXNzLXNkayBpbWcge1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICBvYmplY3QtcG9zaXRpb246IDMwJTsgfSB9XG5cbi5mb290ZXItY29udGFpbmVyIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7IH1cblxuLmZvb3Rlci1icmFuZGluZyB7XG4gIGhlaWdodDogNi4yNXJlbTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODkuOTk4NzVlbSkge1xuICAuZm9vdGVyLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IHVuc2V0OyB9XG4gIC5mb290ZXItYnJhbmRpbmcge1xuICAgIGhlaWdodDogNXJlbTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45OTg3NWVtKSB7XG4gIC5mb290ZXItYnJhbmRpbmcge1xuICAgIGhlaWdodDogMy43NXJlbTsgfSB9XG5cbi5hd2FyZHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMEYxNzJFO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYXdhcmRzX19saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuYXdhcmRzX19saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH0gfVxuICAuYXdhcmRzIGxpIHtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmF3YXJkcyBsaSB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgICAgLmF3YXJkcyBsaSB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aWR0aDogY2FsYygyMCUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtOyB9IH1cbiAgLmF3YXJkcyBpbWcge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuICAuYXdhcmRzIHNtYWxsIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuYXdhcmRzX19zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG5cbi5pbnN0cnVjdGlvbnNfX2ZpcnN0LWxhdW5jaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7IH1cblxuLmluc3RydWN0aW9uc19fdXNpbmctYXBwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA3MTExOTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmluc3RydWN0aW9uc19fdXNpbmctYXBwIGEge1xuICAgIGNvbG9yOiAjNmRhMmZmOyB9XG5cbi5pbnN0cnVjdGlvbnMgc2VjdGlvbiB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLmluc3RydWN0aW9ucyBmaWd1cmUge1xuICBtYXJnaW46IGF1dG87XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIG1heC13aWR0aDogMTguNzVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAuaW5zdHJ1Y3Rpb25zIGZpZ3VyZSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDJyZW07IH0gfVxuXG4uaW5zdHJ1Y3Rpb25zIGZpZ2NhcHRpb24ge1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBtYXJnaW4tdG9wOiAwLjVyZW07IH1cblxuLmluc3RydWN0aW9ucyA6aXMoaDQsIGg1KSB7XG4gIHBhZGRpbmctdG9wOiAxcmVtOyB9XG5cbi5pbnN0cnVjdGlvbnMgaDUge1xuICBmb250LWZhbWlseTogXCJPcGVuIFNhbnNcIiwgc2Fucy1zZXJpZjsgfVxuXG4uYmxvZy1zZWFyY2hiYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGU1YTZlO1xuICBwYWRkaW5nOiAzLjc1cmVtIDA7IH1cbiAgLmJsb2ctc2VhcmNoYmFyIGgyIHtcbiAgICBmb250LWZhbWlseTogXCJDb3Jtb3JhbnRcIiwgc2VyaWY7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDNyZW07XG4gICAgY29sb3I6ICNmN2Y3Zjc7XG4gICAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTsgfVxuICAuYmxvZy1zZWFyY2hiYXIgaW5wdXQge1xuICAgIGJhY2tncm91bmQ6ICNmOWZjZmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzA3MTExOTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwcHggMnB4IDJweCAtMXB4ICNlZGVmZjU7XG4gICAgYm9yZGVyLXJhZGl1czogMS42MjVyZW07XG4gICAgcGFkZGluZzogMC43NXJlbSAxLjc1cmVtO1xuICAgIHdpZHRoOiA2NSU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaWNvbnMvaWNvbl9zZWFyY2guc3ZnXCIpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDk3JSA1MCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45OTg3NWVtKSB7XG4gICAgICAuYmxvZy1zZWFyY2hiYXIgaW5wdXQge1xuICAgICAgICB3aWR0aDogOTAlOyB9IH1cblxuLmJsb2ctbWFpbiB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmJsb2ctbWFpbiAuZmxleCB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45OTg3NWVtKSB7XG4gICAgICAuYmxvZy1tYWluIC5mbGV4LmhpZ2hsaWdodCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0gfVxuICAuYmxvZy1tYWluIC5yaWdodC1jb250ZW50IHtcbiAgICBtYXJnaW4tbGVmdDogMnJlbTsgfVxuICAgIC5ibG9nLW1haW4gLnJpZ2h0LWNvbnRlbnQuc21hbGwge1xuICAgICAgd2lkdGg6IDUyJTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgICAgICAgLmJsb2ctbWFpbiAucmlnaHQtY29udGVudC5zbWFsbCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07XG4gICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgICAgZmxleC1ncm93OiAwOyB9IH1cbiAgLmJsb2ctbWFpbiAuc2VjdGlvbl9fcG9zdCB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLmJsb2ctbWFpbiAuc2VjdGlvbi5oaWRkZW4tcG9zdCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuYmxvZy1tYWluIC5pbWcge1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7IH1cbiAgICAuYmxvZy1tYWluIC5pbWcuc21hbGwge1xuICAgICAgd2lkdGg6IDkuMzc1cmVtO1xuICAgICAgaGVpZ2h0OiA5LjM3NXJlbTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgICAgICAgLmJsb2ctbWFpbiAuaW1nLnNtYWxsIHtcbiAgICAgICAgICB3aWR0aDogNC41cmVtO1xuICAgICAgICAgIGhlaWdodDogNC41cmVtOyB9IH1cbiAgICAuYmxvZy1tYWluIC5pbWcuaGlnaGxpZ2h0IHtcbiAgICAgIHdpZHRoOiAxOC43NXJlbTtcbiAgICAgIGhlaWdodDogMTguNzVyZW07IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45OTg3NWVtKSB7XG4gICAgICAgIC5ibG9nLW1haW4gLmltZy5oaWdobGlnaHQge1xuICAgICAgICAgIHdpZHRoOiAxMi41cmVtO1xuICAgICAgICAgIGhlaWdodDogMTIuNXJlbTtcbiAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMS4xMjVyZW07IH0gfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgICAgICAgLmJsb2ctbWFpbiAuaW1nLmhpZ2hsaWdodCB7XG4gICAgICAgICAgd2lkdGg6IDYuNXJlbTtcbiAgICAgICAgICBoZWlnaHQ6IDYuNXJlbTtcbiAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMS4xMjVyZW07IH0gfVxuICAuYmxvZy1tYWluIC5pY29ucy1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmJsb2ctbWFpbiAuaWNvbnMtbGlzdC5zbWFsbCB7XG4gICAgICBtYXJnaW46IDAuNzVyZW0gMCAwOyB9XG4gICAgLmJsb2ctbWFpbiAuaWNvbnMtbGlzdC5oaWdobGlnaHQge1xuICAgICAgbWFyZ2luOiAxLjEyNXJlbSAwIDA7IH1cbiAgLmJsb2ctbWFpbiAuaWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTsgfVxuICAgIC5ibG9nLW1haW4gLmljb24uc21hbGwge1xuICAgICAgaGVpZ2h0OiAyLjE4NzVyZW07XG4gICAgICB3aWR0aDogMi4xODc1cmVtOyB9XG4gICAgLmJsb2ctbWFpbiAuaWNvbi5oaWdobGlnaHQge1xuICAgICAgaGVpZ2h0OiAyLjgxMjVyZW07XG4gICAgICB3aWR0aDogMi44MTI1cmVtOyB9XG4gIC5ibG9nLW1haW4gaDMsXG4gIC5ibG9nLW1haW4gaDYge1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LWFsaWduOiBzdGFydDsgfVxuICAuYmxvZy1tYWluIHAge1xuICAgIGNvbG9yOiAjMDcxMTE5O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgfVxuICAgIC5ibG9nLW1haW4gcC5zbWFsbCB7XG4gICAgICBtYXJnaW46IDAuMzc1cmVtIDAgMDsgfVxuICAgIC5ibG9nLW1haW4gcC5oaWdobGlnaHQge1xuICAgICAgbWFyZ2luOiAwLjc1cmVtIDAgMDsgfVxuICAuYmxvZy1tYWluIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICAuYmxvZy1tYWluIGEuaGlnaGxpZ2h0IHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjc1cmVtOyB9XG4gIC5ibG9nLW1haW4gaHIge1xuICAgIGJvcmRlci1jb2xvcjogIzA3MTExOTtcbiAgICBtYXJnaW46IDRyZW0gMCAxLjg3NXJlbTsgfVxuXG4uYmxvZy1wb3N0IHtcbiAgY29sb3I6ICMwNzExMTk7IH1cbiAgLmJsb2ctcG9zdCAubWFpbi1pbWcge1xuICAgIG1hcmdpbi10b3A6IDMuMTI1cmVtOyB9XG4gICAgLmJsb2ctcG9zdCAubWFpbi1pbWcudGlsZSB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMzQuODc1cmVtO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMzMlIDc1JTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgICAgICAgLmJsb2ctcG9zdCAubWFpbi1pbWcudGlsZSB7XG4gICAgICAgICAgaGVpZ2h0OiAxOC43NXJlbTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDY1JSA3NSUgIWltcG9ydGFudDsgfSB9XG4gICAgICAuYmxvZy1wb3N0IC5tYWluLWltZy50aWxlLmFfZ3VpZGVsaW5lX3RvX2Rlc2lnbl9pbmNsdXNpdmVfYXBwX2ludGVyZmFjZXMge1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvYmxvZy9hX2d1aWRlbGluZV90b19kZXNpZ25faW5jbHVzaXZlX2FwcF9pbnRlcmZhY2VzL21haW4uZ2lmXCIpOyB9XG4gICAgICAuYmxvZy1wb3N0IC5tYWluLWltZy50aWxlLnNvdW5kX2FzX2FfdG9vbF90b19pbnRlcmFjdF93aXRoX3RoZV93b3JsZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9ibG9nL3NvdW5kX2FzX2FfdG9vbF90b19pbnRlcmFjdF93aXRoX3RoZV93b3JsZC9tYWluLmdpZlwiKTsgfVxuICAuYmxvZy1wb3N0IGgzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5ibG9nLXBvc3QgaDYge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAuYmxvZy1wb3N0IHAge1xuICAgIGNvbG9yOiAjMDcxMTE5O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM3NXJlbTtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAuYmxvZy1wb3N0IHAuaC1mb250LS1ib2xkIHtcbiAgICAgIG1hcmdpbi10b3A6IDEuODc1cmVtOyB9XG4gIC5ibG9nLXBvc3QgbGkge1xuICAgIG1hcmdpbjogMDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45OTg3NWVtKSB7XG4gICAgICAuYmxvZy1wb3N0IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7IH0gfVxuICAuYmxvZy1wb3N0IGg2LFxuICAuYmxvZy1wb3N0IGZpZ3VyZSxcbiAgLmJsb2ctcG9zdCBmaWd1cmUgKyBwLFxuICAuYmxvZy1wb3N0IC52LWltZy1jb250YWluZXIgKyBwIHtcbiAgICBtYXJnaW46IDEuODc1cmVtIDAgMDsgfVxuICAuYmxvZy1wb3N0IHVsIHtcbiAgICBtYXJnaW46IDAuNjI1cmVtIDA7XG4gICAgcGFkZGluZzogMCAycmVtOyB9XG4gICAgLmJsb2ctcG9zdCB1bC5pY29ucy1saXN0IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gIC5ibG9nLXBvc3QgLmljb24ge1xuICAgIG1hcmdpbjogMS44NzVyZW0gMC42MjVyZW0gMCAwO1xuICAgIGhlaWdodDogMi44MTI1cmVtO1xuICAgIHdpZHRoOiAyLjgxMjVyZW07IH1cbiAgLmJsb2ctcG9zdCBwICsgcCxcbiAgLmJsb2ctcG9zdCBoNiArIHAge1xuICAgIG1hcmdpbi10b3A6IDAuNjI1cmVtOyB9XG4gIC5ibG9nLXBvc3QgZmlndXJlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuYmxvZy1wb3N0IGZpZ2NhcHRpb24ge1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICM0ZTVhNmU7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xODc1cmVtOyB9XG4gIC5ibG9nLXBvc3QgYSB7XG4gICAgLW1zLXdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDsgfVxuICAuYmxvZy1wb3N0IGhyIHtcbiAgICBib3JkZXItY29sb3I6ICMwNzExMTk7XG4gICAgbWFyZ2luOiAxLjg3NXJlbSAwIDA7IH1cbiAgLmJsb2ctcG9zdCAuY2l0YXRpb24ge1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42ODc1cmVtO1xuICAgIGNvbG9yOiAjNGU1YTZlO1xuICAgIHBhZGRpbmc6IDAgMTUlO1xuICAgIG1hcmdpbjogMS44NzVyZW0gMDsgfVxuICAuYmxvZy1wb3N0IC5jaXRhdGlvbiBzcGFuIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMzc1cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5ibG9nLXBvc3QgLmgtaW1nLXMsXG4gIC5ibG9nLXBvc3QgLmgtaW1nLW0sXG4gIC5ibG9nLXBvc3QgLmgtaW1nLWIge1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgYWxpZ24tc2VsZjogY2VudGVyOyB9XG4gIC5ibG9nLXBvc3QgLmgtaW1nLXMge1xuICAgIG1heC1oZWlnaHQ6IDYuNzVyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTk4NzVlbSkge1xuICAgICAgLmJsb2ctcG9zdCAuaC1pbWctcyB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDVyZW07IH0gfVxuICAuYmxvZy1wb3N0IC5oLWltZy1tIHtcbiAgICBtYXgtaGVpZ2h0OiAxNi42MjVyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTk4NzVlbSkge1xuICAgICAgLmJsb2ctcG9zdCAuaC1pbWctbSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEyLjVyZW07IH0gfVxuICAuYmxvZy1wb3N0IC5oLWltZy1iIHtcbiAgICBtYXgtaGVpZ2h0OiAyNy4zNzVyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTk4NzVlbSkge1xuICAgICAgLmJsb2ctcG9zdCAuaC1pbWctYiB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDIxLjg3NXJlbTsgfSB9XG4gIC5ibG9nLXBvc3QgLnYtaW1nLW0ge1xuICAgIGhlaWdodDogMjcuMzc1cmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgICAgIC5ibG9nLXBvc3QgLnYtaW1nLW0ge1xuICAgICAgICBoZWlnaHQ6IDI1cmVtOyB9IH1cbiAgLmJsb2ctcG9zdCAudi1pbWctYiB7XG4gICAgaGVpZ2h0OiA0Mi42ODc1cmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgICAgIC5ibG9nLXBvc3QgLnYtaW1nLWIge1xuICAgICAgICBoZWlnaHQ6IDI1cmVtOyB9IH1cbiAgLmJsb2ctcG9zdCAudi1pbWctY29udGFpbmVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgICAgIC5ibG9nLXBvc3QgLnYtaW1nLWNvbnRhaW5lciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0gfVxuICAuYmxvZy1wb3N0IC52LWltZy1jb250YWluZXIgZmlndXJlIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgICAgIC5ibG9nLXBvc3QgLnYtaW1nLWNvbnRhaW5lciBmaWd1cmUge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5pbXByZXNzdW0tYW5kLXBvbGljaWVzIHtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDsgfVxuICAuaW1wcmVzc3VtLWFuZC1wb2xpY2llcyBzZWN0aW9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmltcHJlc3N1bS1hbmQtcG9saWNpZXMgLml1Yl9jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmltcHJlc3N1bS1hbmQtcG9saWNpZXMgI2l1YmVuZGFfcG9saWN5IHtcbiAgICBmb250LWZhbWlseTogXCJPcGVuIFNhbnNcIiwgc2Fucy1zZXJpZjsgfVxuICAgIC5pbXByZXNzdW0tYW5kLXBvbGljaWVzICNpdWJlbmRhX3BvbGljeSBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuICAgIC5pbXByZXNzdW0tYW5kLXBvbGljaWVzICNpdWJlbmRhX3BvbGljeSBoMiB7XG4gICAgICBmb250LXNpemU6IDEuMjVyZW0gIWltcG9ydGFudDsgfVxuICAgIC5pbXByZXNzdW0tYW5kLXBvbGljaWVzICNpdWJlbmRhX3BvbGljeSBoMyxcbiAgICAuaW1wcmVzc3VtLWFuZC1wb2xpY2llcyAjaXViZW5kYV9wb2xpY3kgaDQsXG4gICAgLmltcHJlc3N1bS1hbmQtcG9saWNpZXMgI2l1YmVuZGFfcG9saWN5IGg1LFxuICAgIC5pbXByZXNzdW0tYW5kLXBvbGljaWVzICNpdWJlbmRhX3BvbGljeSBoNiB7XG4gICAgICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDsgfVxuICAgIC5pbXByZXNzdW0tYW5kLXBvbGljaWVzICNpdWJlbmRhX3BvbGljeSAub25lX2xpbmVfY29sID4gaDIge1xuICAgICAgZm9udC1zaXplOiAxLjg3NXJlbSAhaW1wb3J0YW50OyB9XG5cbi5sYW5kaW5nLXBhZ2VzLW12cCB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgZm9udC1mYW1pbHk6IFwiTGV4ZW5kXCIsIHNhbnMtc2VyaWY7XG4gIHBhZGRpbmctYm90dG9tOiA0MHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgLmxhbmRpbmctcGFnZXMtbXZwIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAubGFuZGluZy1wYWdlcy1tdnAgaDUsXG4gIC5sYW5kaW5nLXBhZ2VzLW12cCBoNCxcbiAgLmxhbmRpbmctcGFnZXMtbXZwIGgzLFxuICAubGFuZGluZy1wYWdlcy1tdnAgaDIsXG4gIC5sYW5kaW5nLXBhZ2VzLW12cCBoMSxcbiAgLmxhbmRpbmctcGFnZXMtbXZwIHAge1xuICAgIGZvbnQtZmFtaWx5OiBcIkxleGVuZFwiLCBzYW5zLXNlcmlmOyB9XG4gIC5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbiB7XG4gICAgcGFkZGluZy1pbmxpbmU6IDFyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAgICAgLmxhbmRpbmctcGFnZXMtbXZwIC5zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwOyB9IH1cbiAgICAubGFuZGluZy1wYWdlcy1tdnAgLnNlY3Rpb25fX3dyYXBwZXIge1xuICAgICAgbWF4LXdpZHRoOiA5Ni4yNXJlbTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5Ljk5ODc1ZW0pIHtcbiAgICAgICAgLmxhbmRpbmctcGFnZXMtbXZwIC5zZWN0aW9uX193cmFwcGVyIHtcbiAgICAgICAgICBwYWRkaW5nOiAwIDUlOyB9IH1cbiAgICAubGFuZGluZy1wYWdlcy1tdnAgLnNlY3Rpb25fXzEge1xuICAgICAgZmxleDogMTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fMSB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBtYXJnaW46IDIuNXJlbSAwIDA7IH0gfVxuICAgICAgLmxhbmRpbmctcGFnZXMtbXZwIC5zZWN0aW9uX18xX19sZWZ0IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgICAgICAubGFuZGluZy1wYWdlcy1tdnAgLnNlY3Rpb25fXzFfX2xlZnQgaDQge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMi4yNXJlbTtcbiAgICAgICAgICBmb250LXdlaWdodDogNDAwOyB9XG4gICAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5Ljk5ODc1ZW0pIHtcbiAgICAgICAgICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fMV9fbGVmdCBoNCB7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44NzVyZW07IH0gfVxuICAgICAgICAubGFuZGluZy1wYWdlcy1tdnAgLnNlY3Rpb25fXzFfX2xlZnQgcCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjM3NXJlbTsgfVxuICAgICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OS45OTg3NWVtKSB7XG4gICAgICAgICAgICAubGFuZGluZy1wYWdlcy1tdnAgLnNlY3Rpb25fXzFfX2xlZnQgcCB7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07IH0gfVxuICAgICAgICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fMV9fbGVmdCBwLmhpZ2hsaWdodCB7XG4gICAgICAgICAgICBjb2xvcjogIzAwM0RGNTsgfVxuICAgICAgICAgICAgLmxhbmRpbmctcGFnZXMtbXZwIC5zZWN0aW9uX18xX19sZWZ0IHAuaGlnaGxpZ2h0X19pbW1lcnNpdmUtdG91cmlzbSB7XG4gICAgICAgICAgICAgIGNvbG9yOiAjRUIzMzMzOyB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgICAgICAgLmxhbmRpbmctcGFnZXMtbXZwIC5zZWN0aW9uX18xX19sZWZ0IHtcbiAgICAgICAgICAgIHdpZHRoOiA3MHZ3OyB9IH1cbiAgICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fMV9fcmlnaHQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgICAgICAgLmxhbmRpbmctcGFnZXMtbXZwIC5zZWN0aW9uX18xX19yaWdodCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIDAgMCAwO1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyOyB9IH1cbiAgICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fMXAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH1cbiAgICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fMSBpbWcge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluOyB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgICAgICAgLmxhbmRpbmctcGFnZXMtbXZwIC5zZWN0aW9uX18xIGltZyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9IH1cbiAgICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fMSAubG9nbyB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDExLjI1cmVtOyB9XG4gIC5sYW5kaW5nLXBhZ2VzLW12cCAuYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDEuM3Z3O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjV2dztcbiAgICBib3JkZXItcmFkaXVzOiA1cmVtOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAzLjc1ZW0pIHtcbiAgICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuYnV0dG9uIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAycmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAgICAgLmxhbmRpbmctcGFnZXMtbXZwIC5idXR0b24ge1xuICAgICAgICBtYXJnaW46IDIuNXJlbSAwO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1cmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjUuODczNzVlbSkge1xuICAgICAgLmxhbmRpbmctcGFnZXMtbXZwIC5idXR0b24ge1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07IH0gfVxuICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuYnV0dG9uX19oZXJvX3dyYXBwZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMTIlO1xuICAgICAgdG9wOiA3MSU7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuYnV0dG9uX19oZXJvX3dyYXBwZXIge1xuICAgICAgICAgIHRvcDogMzUlO1xuICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH0gfVxuICAgICAgLmxhbmRpbmctcGFnZXMtbXZwIC5idXR0b25fX2hlcm9fd3JhcHBlcl9fYmlrZS1kZWxpdmVyeSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMTclO1xuICAgICAgICB0b3A6IDY5JTsgfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAgICAgICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuYnV0dG9uX19oZXJvX3dyYXBwZXJfX2Jpa2UtZGVsaXZlcnkge1xuICAgICAgICAgICAgdG9wOiAzNSU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH0gfVxuICAgICAgLmxhbmRpbmctcGFnZXMtbXZwIC5idXR0b25fX2hlcm9fd3JhcHBlcl9faW1tZXJzaXZlLXRvdXJpc20ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDclO1xuICAgICAgICB0b3A6IDczJTsgfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAgICAgICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuYnV0dG9uX19oZXJvX3dyYXBwZXJfX2ltbWVyc2l2ZS10b3VyaXNtIHtcbiAgICAgICAgICAgIHRvcDogNDIlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9IH1cbiAgICAubGFuZGluZy1wYWdlcy1tdnAgLmJ1dHRvbl9fY29udGVudF93cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBtYXJnaW4tdG9wOiAyLjVyZW07IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuYnV0dG9uX19jb250ZW50X3dyYXBwZXIge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0gfVxuICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuYnV0dG9uIGEge1xuICAgICAgY29sb3I6IGluaGVyaXQ7IH1cbiAgLmxhbmRpbmctcGFnZXMtbXZwIC5iYWNrZ3JvdW5kLWdyYWRpZW50LWJ1dHRvbiB7XG4gICAgLyogd2FybmluZzogZ3JhZGllbnQgdXNlcyBhIHJvdGF0aW9uIHRoYXQgaXMgbm90IHN1cHBvcnRlZCBieSBDU1MgYW5kIG1heSBub3QgYmVoYXZlIGFzIGV4cGVjdGVkICovXG4gICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KDExOC4xMiUgMTY2LjM4JSBhdCAxNi44JSA2Ni44OSUsICMwMDNkZjUgMTMuNyUsICM3MjkxZWMgNjcuNzElLCAjNzJlNWVjIDEwMCUpO1xuICAgIGJvcmRlci13aWR0aDogMDtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuYmFja2dyb3VuZC1ncmFkaWVudC1idXR0b25fX2ltbWVyc2l2ZS10b3VyaXNtIHtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MS41ZGVnLCAjRUIzMzMzIDUuMjklLCAjRjM1RTVFIDUzLjk1JSwgI0Y1NTk3RiA5NS4zMSUpO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gIC5sYW5kaW5nLXBhZ2VzLW12cCAuaW1hZ2VfX3dyYXBwZXIge1xuICAgIG1heC13aWR0aDogMTEyLjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuaW1hZ2VfX3dyYXBwZXIgLm1vYmlsZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuaW1hZ2VfX3dyYXBwZXIgLm1vYmlsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwdnc7IH1cbiAgICAgIC5sYW5kaW5nLXBhZ2VzLW12cCAuaW1hZ2VfX3dyYXBwZXIgLmRlc2t0b3Age1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAubGFuZGluZy1wYWdlcy1tdnAgLmltYWdlX193cmFwcGVyIGltZyB7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluOyB9XG4gIC5sYW5kaW5nLXBhZ2VzLW12cCAuaG9yaXpvbnRhbC1pbWcge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLmxhbmRpbmctcGFnZXMtbXZwLmxhbmRpbmctcGFnZXMtbXZwX19jb250YWN0LWZvcm0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTYwLCAxNTEsIDIxNywgMC4xKTtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAgICAgLmxhbmRpbmctcGFnZXMtbXZwLmxhbmRpbmctcGFnZXMtbXZwX19jb250YWN0LWZvcm0ge1xuICAgICAgICBwYWRkaW5nOiA1cmVtIDAgMCAwOyB9IH1cbiAgICAubGFuZGluZy1wYWdlcy1tdnAubGFuZGluZy1wYWdlcy1tdnBfX2NvbnRhY3QtZm9ybSAuY29udGFjdF9mb3JtX3dyYXBwZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgICAubGFuZGluZy1wYWdlcy1tdnAubGFuZGluZy1wYWdlcy1tdnBfX2NvbnRhY3QtZm9ybSAuY29udGFjdF9mb3JtX3dyYXBwZXIgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07IH1cbiAgICAgIC5sYW5kaW5nLXBhZ2VzLW12cC5sYW5kaW5nLXBhZ2VzLW12cF9fY29udGFjdC1mb3JtIC5jb250YWN0X2Zvcm1fd3JhcHBlciAuZm9ybS1oZWFkaW5nIHtcbiAgICAgICAgbWFyZ2luLXRvcDogM3JlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIHdpZHRoOiA4NXZ3O1xuICAgICAgICBtYXgtd2lkdGg6IDc2Ljg3NXJlbTsgfVxuIiwiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlc1xuICogVmVyc2lvbiA2LjcuNFxuICogaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cblxuLy8gLS0tIERlcGVuZGVuY2llcyAtLS1cbkBpbXBvcnQgJ3ZlbmRvci9ub3JtYWxpemUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL21pc3NpbmctZGVwZW5kZW5jaWVzJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy90cnVlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL2NvbnRhaW4nO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcHVyZ2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVtb3ZlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlcGxhY2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvdG8tbGlzdCc7XG5cbi8vIC0tLSBTZXR0aW5ncyAtLS1cbi8vIGltcG9ydCB5b3VyIG93biBgc2V0dGluZ3NgIGhlcmUgb3Jcbi8vIGltcG9ydCBhbmQgbW9kaWZ5IHRoZSBkZWZhdWx0IHNldHRpbmdzIHRocm91Z2hcbi8vIEBpbXBvcnQgJ3NldHRpbmdzL3NldHRpbmdzJztcblxuLy8gLS0tIENvbXBvbmVudHMgLS0tXG4vLyBVdGlsaXRpZXNcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG4vLyBHbG9iYWwgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuQGltcG9ydCAnZm9ybXMvZm9ybXMnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcblxuLy8gR3JpZHNcbkBpbXBvcnQgJ2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICd4eS1ncmlkL3h5LWdyaWQnO1xuLy8gR2VuZXJpYyBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3dpdGNoJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUnO1xuLy8gQmFzaWMgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhcmQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sdGlwJztcblxuLy8gQ29udGFpbmVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1vYmplY3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Jlc3BvbnNpdmUtZW1iZWQnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbi8vIE1lbnUtYmFzZWQgY29udGFpbmVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudS1pY29uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcblxuLy8gTGF5b3V0IGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb2ZmLWNhbnZhcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3JldmVhbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RpdGxlLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xuXG4vLyBIZWxwZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Zpc2liaWxpdHknO1xuQGltcG9ydCAncHJvdG90eXBlL3Byb3RvdHlwZSc7XG5cblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZyhcbiAgJGZsZXg6IHRydWUsXG4gICRwcm90b3R5cGU6IGZhbHNlLFxuICAkeHktZ3JpZDogJHh5LWdyaWRcbikge1xuICBAaWYgJGZsZXgge1xuICAgICRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgQGlmICR4eS1ncmlkIHtcbiAgICAkeHktZ3JpZDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgLy8gR2xvYmFsIHN0eWxlc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcblxuICAvLyBHcmlkc1xuICBAaWYgbm90ICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkeHktZ3JpZCB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gR2VuZXJpYyBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG4gIC8vIEJhc2ljIGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhcmQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuXG4gIC8vIENvbnRhaW5lcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG4gIC8vIE1lbnUtYmFzZWQgY29udGFpbmVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG5cbiAgLy8gTGF5b3V0IGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG5cbiAgLy8gSGVscGVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG4gIEBpZiAkZmxleCB7IEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzOyB9XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaWYgJHByb3RvdHlwZSB7IEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWNsYXNzZXM7IH1cbn1cbiIsIi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLXZlbmRvci1wcmVmaXhlc1xuXG5AbWl4aW4gZm91bmRhdGlvbi1ub3JtYWxpemUoKSB7XG4gIC8qISBub3JtYWxpemUuY3NzIHY4LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuICAvLyBEb2N1bWVudFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG5cbiAgaHRtbCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8vIDFcbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8vIDJcbiAgfVxuXG4gIC8vIFNlY3Rpb25zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgLy8gYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cblxuICBoMSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbWFyZ2luOiAwLjY3ZW0gMDtcbiAgfVxuXG4gIC8vIEdyb3VwaW5nIGNvbnRlbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAvLyAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cblxuICBociB7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8vIDFcbiAgICBoZWlnaHQ6IDA7IC8vIDFcbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLy8gMlxuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIHByZSB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvLyAxXG4gICAgZm9udC1zaXplOiAxZW07IC8vIDJcbiAgfVxuXG4gIC8vIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuXG4gIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLy8gMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAgLy8gMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cblxuICBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDsgLy8gMVxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLy8gMlxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cblxuICBiLFxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgY29kZSxcbiAga2JkLFxuICBzYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8vIDFcbiAgICBmb250LXNpemU6IDFlbTsgLy8gMlxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgLy8gUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gIC8vIGFsbCBicm93c2Vycy5cblxuICBzdWIsXG4gIHN1cCB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIHN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xuICB9XG5cbiAgc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbiAgfVxuXG4gIC8vIEVtYmVkZGVkIGNvbnRlbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuXG4gIGltZyB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICB9XG5cbiAgLy8gRm9ybXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMTAwJTsgLy8gMVxuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvLyAxXG4gICAgbWFyZ2luOiAwOyAvLyAyXG4gIH1cblxuICAvLyBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgLy8gMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cblxuICBidXR0b24sXG4gIGlucHV0IHsgLy8gMVxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gIC8vIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cblxuICBidXR0b24sXG4gIHNlbGVjdCB7IC8vIDFcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG5cbiAgYnV0dG9uLFxuICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgW3R5cGU9XCJyZXNldFwiXSxcbiAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cblxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG5cbiAgYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cblxuICBmaWVsZHNldCB7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAvLyAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gIC8vICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGxlZ2VuZCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIGNvbG9yOiBpbmhlcml0OyAvLyAyXG4gICAgZGlzcGxheTogdGFibGU7IC8vIDFcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIDFcbiAgICBwYWRkaW5nOiAwOyAvLyAzXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLy8gMVxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cblxuICBwcm9ncmVzcyB7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG5cbiAgdGV4dGFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gIC8vIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cblxuICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICBbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyAxXG4gICAgcGFkZGluZzogMDsgLy8gMlxuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuXG4gIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuXG4gIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gMVxuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvLyAyXG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG5cbiAgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gIC8vIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cblxuICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLy8gMVxuICAgIGZvbnQ6IGluaGVyaXQ7IC8vIDJcbiAgfVxuXG4gIC8vIEludGVyYWN0aXZlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cblxuICBkZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cblxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIH1cblxuICAvLyBNaXNjXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuXG4gIHRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG5cbiAgW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBEaXNhYmxlIG91dGxpbmUgd2hlbiBpbnRlbnQgaXMgY2xlYXJseSBtb3VzZSBhbmQgdG91Y2hcbiAgW2RhdGEtd2hhdGludGVudD1cIm1vdXNlXCJdLFxuICBbZGF0YS13aGF0aW50ZW50PVwidG91Y2hcIl0sXG4gIFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdLFxuICBbZGF0YS13aGF0aW5wdXQ9XCJ0b3VjaFwiXSB7XG4gICAgKiwgKjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIERpc2FibGUgaU9TIGNhbGxvdXRzIHdoZW4gZHJhZ2dhYmxlIGlzIGZhbHNlXG4gIFtkcmFnZ2FibGU9ZmFsc2VdIHtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxufVxuIiwiJGZvbnQtcGF0aDogJy9hc3NldHMvZm9udHMvJyAhZGVmYXVsdDtcblxuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Q29ybW9yYW50Oml0YWwsd2dodEAxLDYwMCZkaXNwbGF5PXN3YXAnKTtcblxuLy8gQGZvbnQtZmFjZSB7XG4vLyAgIGZvbnQtZGlzcGxheTogb3B0aW9uYWw7XG4vLyAgIGZvbnQtZmFtaWx5OiBcIk9wZW4gU2Fuc1wiO1xuLy8gICBmb250LXN0eWxlOiBub3JtYWw7XG4vLyAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4vLyAgIHNyYzogbG9jYWwoXCJPcGVuIFNhbnNcIiksXG4vLyAgICAgdXJsKCRmb250X3BhdGggKyAnb3BlbnNhbnMtcmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbi8vICAgdW5pY29kZS1yYW5nZTogVSswMDAtNUZGO1xuLy8gfVxuXG4vLyBAZm9udC1mYWNlIHtcbi8vICAgZm9udC1kaXNwbGF5OiBvcHRpb25hbDtcbi8vICAgZm9udC1mYW1pbHk6IFwiT3BlbiBTYW5zXCI7XG4vLyAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbi8vICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWxpZ2h0O1xuLy8gICBzcmM6IGxvY2FsKFwiT3BlbiBTYW5zIExpZ2h0XCIpLFxuLy8gICAgIHVybCgkZm9udF9wYXRoICsgJ29wZW5zYW5zLWxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xuLy8gICB1bmljb2RlLXJhbmdlOiBVKzAwMC01RkY7XG4vLyB9XG5cbi8vIEBmb250LWZhY2Uge1xuLy8gICBmb250LWRpc3BsYXk6IG9wdGlvbmFsO1xuLy8gICBmb250LWZhbWlseTogXCJPcGVuIFNhbnNcIjtcbi8vICAgZm9udC1zdHlsZTogbm9ybWFsO1xuLy8gICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtc2VtaWJvbGQ7XG4vLyAgIHNyYzogbG9jYWwoXCJPcGVuIFNhbnMgQmxhY2tcIiksXG4vLyAgICAgdXJsKCRmb250X3BhdGggKyAnb3BlbnNhbnMtc2VtaWJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4vLyAgIHVuaWNvZGUtcmFuZ2U6IFUrMDAwLTVGRjtcbi8vIH1cblxuLy8gQGZvbnQtZmFjZSB7XG4vLyAgIGZvbnQtZGlzcGxheTogb3B0aW9uYWw7XG4vLyAgIGZvbnQtZmFtaWx5OiBcIk9wZW4gU2Fuc1wiO1xuLy8gICBmb250LXN0eWxlOiBub3JtYWw7XG4vLyAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuLy8gICBzcmM6IGxvY2FsKFwiT3BlbiBTYW5zIEJvbGRcIiksXG4vLyAgICAgdXJsKCRmb250X3BhdGggKyAnb3BlbnNhbnMtYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbi8vICAgdW5pY29kZS1yYW5nZTogVSswMDAtNUZGO1xuLy8gfVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vLyBAdHlwZSBNYXBcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHNhZmUgcGFkZGluZyBvbiB0aGUgYm9keSBmb3Igbm9uLXJlY3Rhbmd1bGFyIGRldmljZXMgKGkuZS4gcGhvbmVzIHdpdGggbm90Y2hlcylcbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1zYWZlLXBhZGRpbmc6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgYW50aWFsaWFzZWQgdHlwZSwgdXNpbmcgdGhlIGAtd2Via2l0LWZvbnQtc21vb3RoaW5nYCBhbmQgYC1tb3otb3N4LWZvbnQtc21vb3RoaW5nYCBDU1MgcHJvcGVydGllcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBtYXJnaW4gb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBhZGRpbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwb3NpdGlvbmluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wb3NpdGlvbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBub3JtYWwgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBib2xkIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIGEgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gQ2FuIGJlIG92ZXJ3cml0dGVuIGF0IGluZGl2aWR1YWwgbWVudSBjb21wb25lbnQgbGV2ZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1lbnUtcGFkZGluZzogMC43cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBOZXN0ZWQgbWFyZ2luIGZvciBzdWJtZW51LlxuJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgQ1NTLiBDYW4gYmUgZWl0aGVyIGBsdHJgIG9yIGBydGxgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBmb3IgY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgaXQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlZCByZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBwcm90b3R5cGVzIGlmIGFwcGxpY2FibGVcbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBCdXR0b24gY3Vyc29yJ3MgdmFsdWUsIGBhdXRvYCBieSBkZWZhdWx0XG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC1idXR0b24tY3Vyc29yOiBhdXRvICFkZWZhdWx0O1xuXG5AaWYgbm90IG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgQGVycm9yICdJbiAkZm91bmRhdGlvbi1wYWxldHRlLCB5b3UgbXVzdCBoYXZlIGEgY29sb3IgbmFtZWQgXCJwcmltYXJ5XCIuJztcbn1cblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIHRleHQgZGlyZWN0aW9uXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XG4kZ2xvYmFsLXJpZ2h0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgbGVmdCwgcmlnaHQpO1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZSB0aGF0IGNvbnRhaW5zIHRoZSBmbGV4IGp1c3RpZnlpbmcgb3B0aW9uc1xuJC16Zi1mbGV4LWp1c3RpZnk6IC16Zi1mbGV4LWp1c3RpZnkoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbik7XG5cbi8vLyBHbG9iYWwgdG9sZXJhbmNlIGZvciBjb2xvciBwaWNrIGNvbnRyYXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMCAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzIHtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1ub3JtYWxpemU7XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIGFyZSBhcHBsaWVkIHRvIGEgPG1ldGE+IHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0XG4gIC5mb3VuZGF0aW9uLW1xIHtcbiAgICBmb250LWZhbWlseTogJyN7LXpmLWJwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfSc7XG4gIH1cblxuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIEBpZiAoJGJvZHktc2FmZS1wYWRkaW5nKSB7XG4gICAgICAvLyB1c2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gYWNjb3VudCBmb3Igbm9uLXJlY3Rhbmd1bGFyIGRpc3BsYXlzIGUuZy4gcGhvbmVzIHdpdGggbm90Y2hlc1xuICAgICAgcGFkZGluZy10b3A6IGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpO1xuICAgICAgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcbiAgICAgIHBhZGRpbmctbGVmdDogZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6ICRnbG9iYWwtYnV0dG9uLWN1cnNvcjtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIH1cblxuICAvLyBNYWtlIHJlc2V0IGluaGVyaXQgZm9udC1mYW1pbHkgaW5zdGVhZCBvZiBzZXR0aW5ncyBzYW5zLXNlcmlmXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEludGVybmFsIGNsYXNzZXMgdG8gc2hvdy9oaWRlIGVsZW1lbnRzIGluIEphdmFTY3JpcHRcbiAgLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaXMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi8vICBGb3VuZGF0aW9uIGZvciBTaXRlcyBTZXR0aW5nc1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gIFRhYmxlIG9mIENvbnRlbnRzOlxuLy9cbi8vICAgMS4gR2xvYmFsXG4vLyAgIDIuIEJyZWFrcG9pbnRzXG4vLyAgIDMuIFRoZSBHcmlkXG4vLyAgIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gICA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcbi8vICAgNi4gQWJpZGVcbi8vICAgNy4gQWNjb3JkaW9uXG4vLyAgIDguIEFjY29yZGlvbiBNZW51XG4vLyAgIDkuIEJhZGdlXG4vLyAgMTAuIEJyZWFkY3J1bWJzXG4vLyAgMTEuIEJ1dHRvblxuLy8gIDEyLiBCdXR0b24gR3JvdXBcbi8vICAxMy4gQ2FsbG91dFxuLy8gIDE0LiBDYXJkXG4vLyAgMTUuIENsb3NlIEJ1dHRvblxuLy8gIDE2LiBEcmlsbGRvd25cbi8vICAxNy4gRHJvcGRvd25cbi8vICAxOC4gRHJvcGRvd24gTWVudVxuLy8gIDE5LiBGbGV4Ym94IFV0aWxpdGllc1xuLy8gIDIwLiBGb3Jtc1xuLy8gIDIxLiBMYWJlbFxuLy8gIDIyLiBNZWRpYSBPYmplY3Rcbi8vICAyMy4gTWVudVxuLy8gIDI0LiBNZXRlclxuLy8gIDI1LiBPZmYtY2FudmFzXG4vLyAgMjYuIE9yYml0XG4vLyAgMjcuIFBhZ2luYXRpb25cbi8vICAyOC4gUHJvZ3Jlc3MgQmFyXG4vLyAgMjkuIFByb3RvdHlwZSBBcnJvd1xuLy8gIDMwLiBQcm90b3R5cGUgQm9yZGVyLUJveFxuLy8gIDMxLiBQcm90b3R5cGUgQm9yZGVyLU5vbmVcbi8vICAzMi4gUHJvdG90eXBlIEJvcmRlcmVkXG4vLyAgMzMuIFByb3RvdHlwZSBEaXNwbGF5XG4vLyAgMzQuIFByb3RvdHlwZSBGb250LVN0eWxpbmdcbi8vICAzNS4gUHJvdG90eXBlIExpc3QtU3R5bGUtVHlwZVxuLy8gIDM2LiBQcm90b3R5cGUgT3ZlcmZsb3dcbi8vICAzNy4gUHJvdG90eXBlIFBvc2l0aW9uXG4vLyAgMzguIFByb3RvdHlwZSBSb3VuZGVkXG4vLyAgMzkuIFByb3RvdHlwZSBTZXBhcmF0b3Jcbi8vICA0MC4gUHJvdG90eXBlIFNoYWRvd1xuLy8gIDQxLiBQcm90b3R5cGUgU2l6aW5nXG4vLyAgNDIuIFByb3RvdHlwZSBTcGFjaW5nXG4vLyAgNDMuIFByb3RvdHlwZSBUZXh0LURlY29yYXRpb25cbi8vICA0NC4gUHJvdG90eXBlIFRleHQtVHJhbnNmb3JtYXRpb25cbi8vICA0NS4gUHJvdG90eXBlIFRleHQtVXRpbGl0aWVzXG4vLyAgNDYuIFJlc3BvbnNpdmUgRW1iZWRcbi8vICA0Ny4gUmV2ZWFsXG4vLyAgNDguIFNsaWRlclxuLy8gIDQ5LiBTd2l0Y2hcbi8vICA1MC4gVGFibGVcbi8vICA1MS4gVGFic1xuLy8gIDUyLiBUaHVtYm5haWxcbi8vICA1My4gVGl0bGUgQmFyXG4vLyAgNTQuIFRvb2x0aXBcbi8vICA1NS4gVG9wIEJhclxuLy8gIDU2LiBYeSBHcmlkXG5cbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG5cbi8vIDEuIEdsb2JhbFxuLy8gLS0tLS0tLS0tXG5cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlO1xuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCk7XG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNTtcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzAwM0RGNSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbiAgbGltZTogIzQzY2Y5ZixcbiAgbGlnaHQtYmx1ZTogIzZkYTJmZixcbiAgZGFyay1ibHVlOiAjMDAwYTI2LFxuICBncmF5LTAxOiAjMDcxMTE5LFxuICBncmF5LTAyOiAjNGU1YTZlLFxuICBncmF5LTAzOiAjZjdmN2Y3LFxuICBhY2NlbnQtMDQtZGI6ICM0M0NGOUYsXG4gIGFjY2VudC0wNC1sYjogIzFCQTc3N1xuKTtcbiRsaWdodC1ncmF5OiAjZTZlNmU2O1xuJG1lZGl1bS1ncmF5OiAjY2FjYWNhO1xuJGRhcmstZ3JheTogIzhhOGE4YTtcbiRibGFjazogIzBhMGEwYTtcbiRveGZvcmQtYmx1ZTogIzBGMTcyRTtcbiR3aGl0ZTogI2ZlZmVmZTtcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjaztcbiRib2R5LWZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgc2Fucy1zZXJpZjtcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlO1xuJGdsb2JhbC1tYXJnaW46IDFyZW07XG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW07XG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtO1xuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWw7XG4kZ2xvYmFsLXdlaWdodC1saWdodGVzdDogMjAwO1xuJGdsb2JhbC13ZWlnaHQtbGlnaHQ6IDMwMDtcbiRnbG9iYWwtd2VpZ2h0LXNlbWlib2xkOiA1MDA7XG4kZ2xvYmFsLXdlaWdodC1ib2xkOiA3MDA7XG4kZ2xvYmFsLXJhZGl1czogMDtcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbTtcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0cjtcbiRnbG9iYWwtZmxleGJveDogdHJ1ZTtcbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZTtcbiRnbG9iYWwtYnV0dG9uLWN1cnNvcjogYXV0bztcbiRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2U6IDA7XG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWU7XG4kcHJpbnQtaHJlZnM6IHRydWU7XG4kYWxpY2UtYmx1ZTogI2VkZWZmNTtcblxuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xuXG4vLyAyLiBCcmVha3BvaW50c1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtb2JpbGU6IDQxNHB4LFxuICBtZWRpdW06IDY0MHB4LFxuICBtb2JpbGUteGw6IDY0MHB4LFxuICBwaGFibGV0OiA3NjhweCxcbiAgdGFibGV0OiA5NjBweCxcbiAgZGVza3RvcDogMTIwMHB4LFxuICBkZXNrdG9wLXhsOiAxNDQwcHgsXG4gIGRlc2t0b3AteHhsOiAxNjYwcHhcbik7XG4kYnJlYWtwb2ludHMtaGlkcGk6IChcbiAgaGlkcGktMTogMSxcbiAgaGlkcGktMS01OiAxLjUsXG4gIGhpZHBpLTI6IDIsXG4gIHJldGluYTogMixcbiAgaGlkcGktMzogM1xuKTtcbiRwcmludC1icmVha3BvaW50OiBkZXNrdG9wO1xuJGJyZWFrcG9pbnQtY2xhc3NlczogKG1vYmlsZSB0YWJsZXQgZGVza3RvcCwgZGVza3RvcC14bCwgZGVza3RvcC14eGwpO1xuXG4vLyAzLiBUaGUgR3JpZFxuLy8gLS0tLS0tLS0tLS1cblxuJGdyaWQtcm93LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGdyaWQtY29sdW1uLWNvdW50OiAxMjtcbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweCxcbik7XG4kZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZTogdHJ1ZTtcbiRncmlkLWNvbHVtbi1hbGlhczogJ2NvbHVtbnMnO1xuJGJsb2NrLWdyaWQtbWF4OiA4O1xuXG4vLyA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbDtcbiRmb250LWZhbWlseS1tb25vc3BhY2U6ICdDb3Jtb3JhbnQnLCBzZXJpZjtcbiRoZWFkZXItY29sb3I6IGluaGVyaXQ7XG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJGhlYWRlci1zdHlsZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDQ4KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQ0KSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDMwKSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA1MCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiA0NCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiA0MCksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAzMCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAyMCksXG4gICksXG4pO1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuJHNtYWxsLWZvbnQtc2l6ZTogODAlO1xuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNjtcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRlbmFibGUtY29kZS1pbmxpbmU6IHRydWU7XG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmU7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZTtcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0bztcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW07XG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW07XG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheTtcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSk7XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZW5hYmxlLWNpdGUtYmxvY2s6IHRydWU7XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2s7XG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCk7XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrO1xuXG4vLyA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kbGVhZC1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICogMS4yNTtcbiRsZWFkLWxpbmVoZWlnaHQ6IDEuNjtcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40O1xuJHN1YmhlYWRlci1jb2xvcjogJGRhcmstZ3JheTtcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtO1xuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW07XG4kc3RhdC1mb250LXNpemU6IDIuNXJlbTtcbiRjaXRlLWNvbG9yOiBpbmhlcml0O1xuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnO1xuJGNvZGUtY29sb3I6ICRibGFjaztcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpO1xuJGNvZGUtYmxvY2stcGFkZGluZzogMXJlbTtcbiRjb2RlLWJsb2NrLW1hcmdpbi1ib3R0b206IDEuNXJlbTtcblxuLy8gNi4gQWJpZGVcbi8vIC0tLS0tLS0tXG5cbiRhYmlkZS1pbnB1dHM6IHRydWU7XG4kYWJpZGUtbGFiZWxzOiB0cnVlO1xuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCk7XG4kaW5wdXQtZXJyb3ItY29sb3I6IGdldC1jb2xvcihhbGVydCk7XG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG5cbi8vIDcuIEFjY29yZGlvblxuLy8gLS0tLS0tLS0tLS0tXG5cbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlO1xuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWU7XG4kYWNjb3JkaW9uLXBsdXMtY29udGVudDogJ1xcMDAyQic7XG4kYWNjb3JkaW9uLW1pbnVzLWNvbnRlbnQ6ICdcXDIwMTMnO1xuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtO1xuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyA4LiBBY2NvcmRpb24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZztcbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZTtcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDogbnVsbDtcbiRhY2NvcmRpb25tZW51LWJvcmRlcjogbnVsbDtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ6IG51bGw7XG4kYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg6IDQwcHg7XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1oZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xuXG4vLyA5LiBCYWRnZVxuLy8gLS0tLS0tLS1cblxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJhZGdlLWNvbG9yOiAkd2hpdGU7XG4kYmFkZ2UtY29sb3ItYWx0OiAkYmxhY2s7XG4kYmFkZ2UtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbTtcbiRiYWRnZS1taW53aWR0aDogMi4xZW07XG4kYmFkZ2UtZm9udC1zaXplOiAwLjZyZW07XG5cbi8vIDEwLiBCcmVhZGNydW1ic1xuLy8gLS0tLS0tLS0tLS0tLS0tXG5cbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwO1xuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSk7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2s7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtO1xuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiB0cnVlO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW06ICcvJztcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bDogJ1xcXFwnO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG5cbi8vIDExLiBCdXR0b25cbi8vIC0tLS0tLS0tLS1cblxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdDtcbiRidXR0b24tZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAyZW07XG4kYnV0dG9uLW1hcmdpbjogMDtcbiRidXR0b24tZmlsbDogc29saWQ7XG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuJGJ1dHRvbi1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjaztcbiRidXR0b24tcmFkaXVzOiAxLjYyNXJlbTtcbiRidXR0b24tYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4kYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGg6IDFweDtcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogaW5oZXJpdCxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pO1xuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJTtcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJTtcbiRidXR0b24tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4kYnV0dG9uLXJlc3BvbnNpdmUtZXhwYW5kZWQ6IGZhbHNlO1xuXG4vLyAxMi4gQnV0dG9uIEdyb3VwXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW07XG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4O1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbic7XG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNjtcbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZTtcblxuLy8gMTMuIENhbGxvdXRcbi8vIC0tLS0tLS0tLS0tXG5cbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlO1xuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpO1xuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwO1xuJGNhbGxvdXQtc2l6ZXM6IChcbiAgc21hbGw6IDAuNXJlbSxcbiAgZGVmYXVsdDogMXJlbSxcbiAgbGFyZ2U6IDNyZW0sXG4pO1xuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kO1xuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRjYWxsb3V0LWxpbmstdGludDogMzAlO1xuXG4vLyAxNC4gQ2FyZFxuLy8gLS0tLS0tLS1cblxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGNhcmQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRjYXJkLWRpdmlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kY2FyZC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiRjYXJkLXNoYWRvdzogbm9uZTtcbiRjYXJkLWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGNhcmQtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJGNhcmQtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG5cbi8vIDE1LiBDbG9zZSBCdXR0b25cbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3A7XG4kY2xvc2VidXR0b24tei1pbmRleDogMTA7XG4kY2xvc2VidXR0b24tZGVmYXVsdC1zaXplOiBtZWRpdW07XG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcbiAgc21hbGw6IDAuNjZyZW0sXG4gIG1lZGl1bTogMXJlbSxcbik7XG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAoXG4gIHNtYWxsOiAwLjMzZW0sXG4gIG1lZGl1bTogMC41cmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXG4gIHNtYWxsOiAxLjVlbSxcbiAgbWVkaXVtOiAyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDE7XG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXk7XG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjaztcblxuLy8gMTYuIERyaWxsZG93blxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXI7XG4kZHJpbGxkb3duLWFycm93czogdHJ1ZTtcbiRkcmlsbGRvd24tcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kZHJpbGxkb3duLW5lc3RlZC1tYXJnaW46IDA7XG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmc7XG4kZHJpbGxkb3duLXN1Ym1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyaWxsZG93bi1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kZHJpbGxkb3duLWFycm93LXNpemU6IDZweDtcblxuLy8gMTcuIERyb3Bkb3duXG4vLyAtLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3duLXBhZGRpbmc6IDFyZW07XG4kZHJvcGRvd24tYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcbiRkcm9wZG93bi1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtO1xuJGRyb3Bkb3duLXdpZHRoOiAzMDBweDtcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbik7XG5cbi8vIDE4LiBEcm9wZG93biBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZTtcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3I7XG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweDtcbiRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZzogMS41cmVtO1xuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDIwMHB4O1xuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiBudWxsO1xuJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcm9wZG93bm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW46IDA7XG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGRyb3Bkb3dubWVudS1wYWRkaW5nO1xuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpO1xuJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogdHJhbnNwYXJlbnQ7XG5cbi8vIDE5LiBGbGV4Ym94IFV0aWxpdGllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNjtcbiRmbGV4Ym94LXJlc3BvbnNpdmUtYnJlYWtwb2ludHM6IHRydWU7XG5cbi8vIDIwLiBGb3Jtc1xuLy8gLS0tLS0tLS0tXG5cbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApO1xuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCk7XG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMyk7XG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNik7XG4kaGVscHRleHQtY29sb3I6ICRibGFjaztcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWM7XG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW07XG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrO1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlO1xuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheTtcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRpbnB1dC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSk7XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkO1xuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZTtcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGZvcm0tYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIxLiBMYWJlbFxuLy8gLS0tLS0tLS0tXG5cbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRsYWJlbC1jb2xvcjogJHdoaXRlO1xuJGxhYmVsLWNvbG9yLWFsdDogJGJsYWNrO1xuJGxhYmVsLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW07XG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjIuIE1lZGlhIE9iamVjdFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJTtcblxuLy8gMjMuIE1lbnVcbi8vIC0tLS0tLS0tXG5cbiRtZW51LW1hcmdpbjogMDtcbiRtZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luO1xuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtO1xuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZTtcbiRtZW51LWl0ZW0tY29sb3ItYWx0LWFjdGl2ZTogJGJsYWNrO1xuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpO1xuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xuJG1lbnUtc3RhdGUtYmFjay1jb21wYXQ6IHRydWU7XG4kbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdDogdHJ1ZTtcbiRtZW51LWljb25zLWJhY2stY29tcGF0OiB0cnVlO1xuXG4vLyAyNC4gTWV0ZXJcbi8vIC0tLS0tLS0tLVxuXG4kbWV0ZXItaGVpZ2h0OiAxcmVtO1xuJG1ldGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kbWV0ZXItYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJG1ldGVyLWZpbGwtZ29vZDogJHN1Y2Nlc3MtY29sb3I7XG4kbWV0ZXItZmlsbC1tZWRpdW06ICR3YXJuaW5nLWNvbG9yO1xuJG1ldGVyLWZpbGwtYmFkOiAkYWxlcnQtY29sb3I7XG5cbi8vIDI1LiBPZmYtY2FudmFzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kb2ZmY2FudmFzLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbik7XG4kb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbik7XG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJG9mZmNhbnZhcy1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjcpO1xuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZTogMjBweDtcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSk7XG4kb2ZmY2FudmFzLW92ZXJsYXktemluZGV4OiAxMTtcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDEyO1xuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTM7XG4kb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6IDEyO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cztcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2U7XG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZTtcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSk7XG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnO1xuXG4vLyAyNi4gT3JiaXRcbi8vIC0tLS0tLS0tLVxuXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTA7XG5cbi8vIDI3LiBQYWdpbmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKTtcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSk7XG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvcjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogJHdoaXRlO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7XG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZTtcbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZTtcbiRwYWdpbmF0aW9uLWFycm93LXByZXZpb3VzOiAnXFwwMEFCJztcbiRwYWdpbmF0aW9uLWFycm93LW5leHQ6ICdcXDAwQkInO1xuXG4vLyAyOC4gUHJvZ3Jlc3MgQmFyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm9ncmVzcy1oZWlnaHQ6IDFyZW07XG4kcHJvZ3Jlc3MtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHByb2dyZXNzLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHByb2dyZXNzLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDI5LiBQcm90b3R5cGUgQXJyb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb25zOiAoXG4gIGRvd24sXG4gIHVwLFxuICByaWdodCxcbiAgbGVmdFxuKTtcbiRwcm90b3R5cGUtYXJyb3ctc2l6ZTogMC40Mzc1cmVtO1xuJHByb3RvdHlwZS1hcnJvdy1jb2xvcjogJGJsYWNrO1xuXG4vLyAzMC4gUHJvdG90eXBlIEJvcmRlci1Cb3hcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlci1ib3gtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuXG4vLyAzMS4gUHJvdG90eXBlIEJvcmRlci1Ob25lXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYm9yZGVyLW5vbmUtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuXG4vLyAzMi4gUHJvdG90eXBlIEJvcmRlcmVkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYm9yZGVyZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3JkZXItd2lkdGg6IHJlbS1jYWxjKDEpO1xuJHByb3RvdHlwZS1ib3JkZXItdHlwZTogc29saWQ7XG4kcHJvdG90eXBlLWJvcmRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuXG4vLyAzMy4gUHJvdG90eXBlIERpc3BsYXlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWRpc3BsYXktYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1kaXNwbGF5OiAoXG4gIGlubGluZSxcbiAgaW5saW5lLWJsb2NrLFxuICBibG9jayxcbiAgdGFibGUsXG4gIHRhYmxlLWNlbGxcbik7XG5cbi8vIDM0LiBQcm90b3R5cGUgRm9udC1TdHlsaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWZvbnQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS13aWRlLWxldHRlci1zcGFjaW5nOiByZW0tY2FsYyg0KTtcbiRwcm90b3R5cGUtZm9udC1ub3JtYWw6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRwcm90b3R5cGUtZm9udC1ib2xkOiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuXG4vLyAzNS4gUHJvdG90eXBlIExpc3QtU3R5bGUtVHlwZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1saXN0LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc3R5bGUtdHlwZS11bm9yZGVyZWQ6IChcbiAgZGlzYyxcbiAgY2lyY2xlLFxuICBzcXVhcmVcbik7XG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtb3JkZXJlZDogKFxuICBkZWNpbWFsLFxuICBsb3dlci1hbHBoYSxcbiAgbG93ZXItbGF0aW4sXG4gIGxvd2VyLXJvbWFuLFxuICB1cHBlci1hbHBoYSxcbiAgdXBwZXItbGF0aW4sXG4gIHVwcGVyLXJvbWFuXG4pO1xuXG4vLyAzNi4gUHJvdG90eXBlIE92ZXJmbG93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtb3ZlcmZsb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1vdmVyZmxvdzogKFxuICB2aXNpYmxlLFxuICBoaWRkZW4sXG4gIHNjcm9sbFxuKTtcblxuLy8gMzcuIFByb3RvdHlwZSBQb3NpdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXBvc2l0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtcG9zaXRpb246IChcbiAgc3RhdGljLFxuICByZWxhdGl2ZSxcbiAgYWJzb2x1dGUsXG4gIGZpeGVkXG4pO1xuJHByb3RvdHlwZS1wb3NpdGlvbi16LWluZGV4OiA5NzU7XG5cbi8vIDM4LiBQcm90b3R5cGUgUm91bmRlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtcm91bmRlZC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLWJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDMpO1xuXG4vLyAzOS4gUHJvdG90eXBlIFNlcGFyYXRvclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zZXBhcmF0b3ItYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItYWxpZ246IGNlbnRlcjtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWhlaWdodDogcmVtLWNhbGMoMik7XG4kcHJvdG90eXBlLXNlcGFyYXRvci13aWR0aDogM3JlbTtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW47XG5cbi8vIDQwLiBQcm90b3R5cGUgU2hhZG93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXNoYWRvdy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLWJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsLjE2KSxcbiAgICAgICAgICAgICAgICAgICAgICAgMCAycHggMTBweCAwIHJnYmEoMCwwLDAsLjEyKTtcblxuLy8gNDEuIFByb3RvdHlwZSBTaXppbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2l6aW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc2l6aW5nOiAoXG4gIHdpZHRoLFxuICBoZWlnaHRcbik7XG4kcHJvdG90eXBlLXNpemVzOiAoXG4gIDI1OiAyNSUsXG4gIDUwOiA1MCUsXG4gIDc1OiA3NSUsXG4gIDEwMDogMTAwJVxuKTtcblxuLy8gNDIuIFByb3RvdHlwZSBTcGFjaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zcGFjaW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc3BhY2Vycy1jb3VudDogMztcblxuLy8gNDMuIFByb3RvdHlwZSBUZXh0LURlY29yYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtZGVjb3JhdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbjogKFxuICBvdmVybGluZSxcbiAgdW5kZXJsaW5lLFxuICBsaW5lLXRocm91Z2gsXG4pO1xuXG4vLyA0NC4gUHJvdG90eXBlIFRleHQtVHJhbnNmb3JtYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXRyYW5zZm9ybWF0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbjogKFxuICBsb3dlcmNhc2UsXG4gIHVwcGVyY2FzZSxcbiAgY2FwaXRhbGl6ZVxuKTtcblxuLy8gNDUuIFByb3RvdHlwZSBUZXh0LVV0aWxpdGllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXV0aWxpdGllcy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4vLyA0Ni4gUmVzcG9uc2l2ZSBFbWJlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpO1xuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zOiAoXG4gIGRlZmF1bHQ6IDQgYnkgMyxcbiAgd2lkZXNjcmVlbjogMTYgYnkgOSxcbik7XG5cbi8vIDQ3LiBSZXZlYWxcbi8vIC0tLS0tLS0tLS1cblxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kcmV2ZWFsLXdpZHRoOiA2MDBweDtcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRyZXZlYWwtemluZGV4OiAxMDA1O1xuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KTtcblxuLy8gNDguIFNsaWRlclxuLy8gLS0tLS0tLS0tLVxuXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW07XG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuJHNsaWRlci1oZWlnaHQ6IDAuNXJlbTtcbiRzbGlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kc2xpZGVyLWZpbGwtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHNsaWRlci1oYW5kbGUtaGVpZ2h0OiAxLjRyZW07XG4kc2xpZGVyLWhhbmRsZS13aWR0aDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG4kc2xpZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDQ5LiBTd2l0Y2hcbi8vIC0tLS0tLS0tLS1cblxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvcjtcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtO1xuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtO1xuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW07XG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtO1xuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHN3aXRjaC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luO1xuJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDogJHdoaXRlO1xuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtO1xuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiRzd2l0Y2gtb3BhY2l0eS1kaXNhYmxlZDogLjU7XG4kc3dpdGNoLWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQ7XG5cbi8vIDUwLiBUYWJsZVxuLy8gLS0tLS0tLS0tXG5cbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFibGUtY29sb3Itc2NhbGU6IDUlO1xuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApO1xuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZTtcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXN0cmlwZTogZXZlbjtcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKTtcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2U7XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4vLyA1MS4gVGFic1xuLy8gLS0tLS0tLS1cblxuJHRhYi1tYXJnaW46IDA7XG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXk7XG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4kdGFiLWl0ZW0tZm9udC13ZWlnaHQ6IDcwMDtcbiR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkd2hpdGU7XG4kdGFiLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMTIpIHJlbS1jYWxjKDMwKTtcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFiLWNvbnRlbnQtYm9yZGVyOiAkbGlnaHQtZ3JheTtcbiR0YWItY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyA1Mi4gVGh1bWJuYWlsXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aHVtYm5haWwtYm9yZGVyOiA0cHggc29saWQgJHdoaXRlO1xuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMik7XG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KTtcbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dDtcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gNTMuIFRpdGxlIEJhclxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrO1xuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtO1xuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQ7XG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlO1xuJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXI6ICRtZWRpdW0tZ3JheTtcbiR0aXRsZWJhci1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG5cbi8vIDU0LiBUb29sdGlwXG4vLyAtLS0tLS0tLS0tLVxuXG4kaGFzLXRpcC1jdXJzb3I6IGhlbHA7XG4kaGFzLXRpcC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggJGRhcmstZ3JheTtcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGU7XG4kdG9vbHRpcC1wYWRkaW5nOiAwLjc1cmVtO1xuJHRvb2x0aXAtbWF4LXdpZHRoOiAxMHJlbTtcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbTtcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2O1xuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gNTUuIFRvcCBCYXJcbi8vIC0tLS0tLS0tLS0tXG5cbiR0b3BiYXItcGFkZGluZzogMC41cmVtO1xuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwO1xuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHg7XG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4vLyA1Ni4gWHkgR3JpZFxuLy8gLS0tLS0tLS0tLS1cblxuJHh5LWdyaWQ6IHRydWU7XG4kZ3JpZC1jb250YWluZXI6ICRnbG9iYWwtd2lkdGg7XG4kZ3JpZC1jb2x1bW5zOiAxMjtcbiRncmlkLW1hcmdpbi1ndXR0ZXJzOiAoXG4gIHNtYWxsOiAyMHB4LFxuICBtZWRpdW06IDMwcHhcbik7XG4kZ3JpZC1wYWRkaW5nLWd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzO1xuJGdyaWQtY29udGFpbmVyLXBhZGRpbmc6ICRncmlkLXBhZGRpbmctZ3V0dGVycztcbiRncmlkLWNvbnRhaW5lci1tYXg6ICRnbG9iYWwtd2lkdGg7XG4keHktYmxvY2stZ3JpZC1tYXg6IDg7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vIFBhdGNoIHRvIGZpeCBpc3N1ZSAjMTIwODBcbiQtemYtcGItdmFsdWU6IG51bGw7XG5cbi8vLyBDcmVhdGVzIGFuIGlubmVyIGJveC1zaGFkb3cgZm9yIG9ubHkgb25lIHNpZGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpZGUgLSBTaWRlIHRoZSBzaGFkb3cgaXMgc3VwcG9zZWQgdG8gYXBwZWFyLiBDYW4gYmUgYHRvcGAsIGBsZWZ0YCwgYHJpZ2h0YCBvciBgYm90dG9tYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgLSBXaWR0aCBmb3IgdGhlIHRhcmdldCBzaWRlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIG9mIHRoZSBzaGFkb3cuXG5AbWl4aW4gaW5uZXItc2lkZS1zaGFkb3coXG4gICRzaWRlOiBib3R0b20sXG4gICRzaXplOiAyMHB4LFxuICAkY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KVxuKSB7XG5cbiAgJGhlbHBlcjogcm91bmQoJHNpemUgKiAwLjY1KTtcblxuICBAaWYgKCRzaWRlID09IHRvcCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBsZWZ0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IHJpZ2h0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgKC0xKSokaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gYm90dG9tKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAoLTEpKiRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcblxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6ICR0cmlhbmdsZS1zaXplO1xuXG4gIGNvbnRlbnQ6ICcnO1xuXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBkb3duKSB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdXApIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgbWVudSBpY29uIHdpdGggYSBzZXQgd2lkdGgsIGhlaWdodCwgbnVtYmVyIG9mIGJhcnMsIGFuZCBjb2xvcnMuIFRoZSBtaXhpbiB1c2VzIHRoZSBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgdGhlIGJhcnMgdG8gZGV0ZXJtaW5lIHNwYWNpbmcuIDxkaXYgY2xhc3M9XCJkb2NzLWV4YW1wbGUtYnVyZ2VyXCI+PC9kaXY+XG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvci1ob3ZlciBbJGRhcmstZ3JheV0gLSBDb2xvciB0byB1c2Ugd2hlbiB0aGUgaWNvbiBpcyBob3ZlcmVkIG92ZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMjBweF0gLSBXaWR0aCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMTZweF0gLSBIZWlnaHQgb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWzJweF0gLSBIZWlnaHQgb2YgaW5kaXZpZHVhbCBiYXJzIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFycyBbM10gLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cbkBtaXhpbiBoYW1idXJnZXIoXG4gICRjb2xvcjogJGJsYWNrLFxuICAkY29sb3ItaG92ZXI6ICRkYXJrLWdyYXksXG4gICR3aWR0aDogMjBweCxcbiAgJGhlaWdodDogMTZweCxcbiAgJHdlaWdodDogMnB4LFxuICAkYmFyczogM1xuKSB7XG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxuICAkc2hhZG93OiAoKTtcbiAgJGhvdmVyLXNoYWRvdzogKCk7XG5cbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXG4gICRzcGFjaW5nOiBkaXZpZGUoJGhlaWdodCAtICgkd2VpZ2h0ICogJGJhcnMpLCAkYmFycyAtIDEpO1xuXG4gIEBpZiB1bml0KCRzcGFjaW5nKSA9PSAncHgnIHtcbiAgICAkc3BhY2luZzogZmxvb3IoJHNwYWNpbmcpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLCBjb21tYSk7XG4gIH1cblxuICAvLyBJY29uIGNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gSWNvbiBiYXJzXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgQGlmICRjb2xvci1ob3ZlciB7XG4gICAgLy8gR2VuZXJhdGUgQ1NTXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJGhvdmVyLXNoYWRvdzogYXBwZW5kKCRob3Zlci1zaGFkb3csIDAgJG9mZnNldCAwICRjb2xvci1ob3ZlciwgY29tbWEpO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcbiAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxuLy8vIFRoZXJlIGFyZSB0d28gUE5HIGZhbGxiYWNrczogYSBibGFjayB0cmlhbmdsZSBhbmQgYSB3aGl0ZSB0cmlhbmdsZS4gVGhlIG9uZSB1c2VkIGRlcGVuZHMgb24gdGhlIGxpZ2h0bmVzcyBvZiB0aGUgaW5wdXQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cbkBtaXhpbiBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRjb2xvcjogJGJsYWNrKSB7XG4gICRyZ2I6ICdyZ2IlMjgje3JvdW5kKHJlZCgkY29sb3IpKX0sICN7cm91bmQoZ3JlZW4oJGNvbG9yKSl9LCAje3JvdW5kKGJsdWUoJGNvbG9yKSl9JTI5JztcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZlcnNpb249XCIxLjFcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDMyIDI0XCI+PHBvbHlnb24gcG9pbnRzPVwiMCwwIDMyLDAgMTYsMjRcIiBzdHlsZT1cImZpbGw6ICN7JHJnYn1cIj48L3BvbHlnb24+PC9zdmc+Jyk7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMFxcMCkge1xuICAgIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA8IDYwJSB7XG4gICAgICAvLyBXaGl0ZSB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEJsYWNrIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTUJKUkVGVWVOckVsbHNPaENBTVJWc3pDOUlselU3S0NtVkhUSnNvTVdZTVV0cHl2OUJnYnVYUUI1WlNkZ0JZWVk0eWNnQml2azhLWUZzUU1mTWlUVEJQNG8zblV6Q0t6T2FiTEpiTHkyL2czMWV2R2tBZ2luUjQvWmVnS0g1cVgzYkpDc2NBM3QweDNrZ081dFFGeWhoRmY1MHhScUZMYnlNVU5KUXpneWpHUy93Z0Nwdktxa1JCcHVXckU0VjlkKzFFNGRQVVhxSWcxMDdTUU9FLzJEUlF4TXdURHlnSUluVkRFVDlUM2xDb2ovNmovVkNtR2paT2wybEtwWjhBQXdEUVA3eklpbURHRlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgdGhlIG1pY3JvIGNsZWFyZml4IGhhY2sgcG9wdWxhcml6ZWQgYnkgTmljb2xhcyBHYWxsYWdoZXIuIEluY2x1ZGUgdGhpcyBtaXhpbiBvbiBhIGNvbnRhaW5lciBpZiBpdHMgY2hpbGRyZW4gYXJlIGFsbCBmbG9hdGVkLCB0byBnaXZlIHRoZSBjb250YWluZXIgYSBwcm9wZXIgaGVpZ2h0LlxuLy8vIFRoZSBjbGVhcmZpeCBpcyBhdWdtZW50ZWQgd2l0aCBzcGVjaWZpYyBzdHlsZXMgdG8gcHJldmVudCBib3JkZXJzIGluIGZsZXhib3ggZW52aXJvbm1lbnRzXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcbi8vLyBAbGluayBodHRwOi8vZGFuaXNhZGVzaWduZXIuY29tL2Jsb2cvZmxleGJveC1jbGVhci1maXgtcHNldWRvLWVsZW1lbnRzLyBGbGV4Ym94IGZpeFxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vLyBBZGRzIENTUyBmb3IgYSBcInF1YW50aXR5IHF1ZXJ5XCIgc2VsZWN0b3IgdGhhdCBhdXRvbWF0aWNhbGx5IHNpemVzIGVsZW1lbnRzIGJhc2VkIG9uIGhvdyBtYW55IHRoZXJlIGFyZSBpbnNpZGUgYSBjb250YWluZXIuXG4vLy8gQGxpbmsgaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvcXVhbnRpdHktcXVlcmllcy1mb3ItY3NzIFF1YW50aXR5IFF1ZXJpZXMgZm9yIENTU1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggLSBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBkZXRlY3QuIFRoZSBoaWdoZXIgdGhpcyBudW1iZXIgaXMsIHRoZSBtb3JlIENTUyB0aGF0J3MgcmVxdWlyZWQgdG8gY292ZXIgZWFjaCBudW1iZXIgb2YgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZWxlbSBbbGldIC0gVGFnIHRvIHVzZSBmb3Igc2libGluZyBzZWxlY3RvcnMuXG5AbWl4aW4gYXV0by13aWR0aCgkbWF4LCAkZWxlbTogbGkpIHtcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbWF4IHtcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCxcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCB+ICN7JGVsZW19IHtcbiAgICAgIHdpZHRoOiBwZXJjZW50YWdlKGRpdmlkZSgxLCAkaSkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbi8vLyBAbGluayBodHRwOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZW5mb3JjZSAtIElmIGB0cnVlYCwgdXNlIGAhaW1wb3J0YW50YCBvbiBhcHBsaWVkIHByb3BlcnRpZXNcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZShcbiAgJGVuZm9yY2U6IHRydWVcbikge1xuICAkaW1wb3J0YW50OiBpZigkZW5mb3JjZSwgJyFpbXBvcnRhbnQnLCBudWxsKTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGUgI3skaW1wb3J0YW50fTtcbiAgd2lkdGg6IDFweCAjeyRpbXBvcnRhbnR9O1xuICBoZWlnaHQ6IDFweCAjeyRpbXBvcnRhbnR9O1xuICBwYWRkaW5nOiAwICN7JGltcG9ydGFudH07XG4gIG92ZXJmbG93OiBoaWRkZW4gI3skaW1wb3J0YW50fTtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKSAjeyRpbXBvcnRhbnR9O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICN7JGltcG9ydGFudH07XG4gIGJvcmRlcjogMCAjeyRpbXBvcnRhbnR9O1xufVxuXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGVuZm9yY2UgLSBJZiBgdHJ1ZWAsIHVzZSBgIWltcG9ydGFudGAgb24gYXBwbGllZCBwcm9wZXJ0aWVzXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUtb2ZmKFxuICAkZW5mb3JjZTogdHJ1ZVxuKSB7XG4gICRpbXBvcnRhbnQ6IGlmKCRlbmZvcmNlLCAnIWltcG9ydGFudCcsIG51bGwpO1xuXG4gIHBvc2l0aW9uOiBzdGF0aWMgI3skaW1wb3J0YW50fTtcbiAgd2lkdGg6IGF1dG8gI3skaW1wb3J0YW50fTtcbiAgaGVpZ2h0OiBhdXRvICN7JGltcG9ydGFudH07XG4gIG92ZXJmbG93OiB2aXNpYmxlICN7JGltcG9ydGFudH07XG4gIGNsaXA6IGF1dG8gI3skaW1wb3J0YW50fTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAjeyRpbXBvcnRhbnR9O1xufVxuXG4vLy8gVmVydGljYWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gaG9yaXpvbnRhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4vLy8gQWJzb2x1dGVseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBhYnNvbHV0ZS1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4vLy8gSXRlcmF0ZXMgdGhyb3VnaCBicmVha3BvaW50cyBkZWZpbmVkIGluIGAkYnJlYWtwb2ludC1jbGFzc2VzYCBhbmQgcHJpbnRzIHRoZSBDU1MgaW5zaWRlIHRoZSBtaXhpbiBhdCBlYWNoIGJyZWFrcG9pbnQncyBtZWRpYSBxdWVyeS4gVXNlIHRoaXMgd2l0aCB0aGUgZ3JpZCwgb3IgYW55IG90aGVyIGNvbXBvbmVudCB0aGF0IGhhcyByZXNwb25zaXZlIGNsYXNzZXMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRzbWFsbCBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBza2lwIHRoZSBgc21hbGxgIGJyZWFrcG9pbnQuIFVzZSB0aGlzIHdpdGggY29tcG9uZW50cyB0aGF0IGRvbid0IHByZWZpeCBjbGFzc2VzIHdpdGggYHNtYWxsLWAsIG9ubHkgYG1lZGl1bS1gIGFuZCB1cC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRhdXRvLWluc2VydC1icmVha3BvaW50cyBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBpdGVyYXRlIG92ZXIgYnJlYWtwb2ludHMgd2l0aG91dCBkb2luZyB0aGUgbWVkaWEgcXVlcnkgaXRzZWxmLiBVc2VmdWwgZm9yIG1vcmUgY29tcGxleCBtZWRpYSBxdWVyeSBnZW5lcmF0aW9uIGFzIGluIHRoZSBtYXJnaW4gZ3JpZC5cbkBtaXhpbiAtemYtZWFjaC1icmVha3BvaW50KFxuICAkc21hbGw6IHRydWUsXG4gICRhdXRvLWluc2VydC1icmVha3BvaW50czogdHJ1ZVxuKSB7XG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oYXV0bywgLXpmLWJvb2woJHNtYWxsKSwgLXpmLWJvb2woJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzKSkge1xuICAgIEBjb250ZW50XG4gIH07XG59XG5cbi8vLyBJdGVyYXRlcyB3aXRoIGBAY29udGVudGAgdGhyb3VnaCB0aGUgZ2l2ZW4gbGlzdCBvZiBicmVha3BvaW50cyBgJGJyZWFrcG9pbnRzYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfExpc3R9ICRicmVha3BvaW50cyBbYXV0b10gLSBCcmVha3BvaW50cyB0byBpdGVyYXRlcyBvbi4gSXQgY2FuIGJlIGEgYnJlYWtwb2ludCBuYW1lLCBsaXN0IG9mIGJyZWFrcG9pbnRzIG9yIGBhdXRvYCBmb3IgYWxsIGJyZWFrcG9pbnRzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbnxOdWxsfSAkemVyby1icmVha3BvaW50IFtudWxsXSAtIFdoZXRoZXIgdGhlIHplcm8tYnJlYWtwb2ludCAob2Z0ZW4gYHNtYWxsYCkgbXVzdCBiZSBpbmNsdWRlZC4gSWYgYHRydWVgLCBpdCB3aWxsIGFsd2F5cyBiZSBhZGRlZCB0byB0aGUgbGlzdCBpZiBub3QgYWxyZWFkeSB0aGVyZS4gSWYgYGZhbHNlYCwgaXQgd2lsbCBhbHdheXMgYmUgcmVtb3ZlZC4gRG9lcyBub3RoaW5nIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtCb29sZWFufEtleXdvcmR9ICRtZWRpYS1xdWVyaWVzIFt0cnVlXSAtIFdoZXRoZXIgbWVkaWEtcXVlcmllcyBtdXN0IGJlIGdlbmVyYXRlZC4gSWYgYGZvci1saXN0c2AsIG9ubHkgZ2VuZXJhdGUgbWVkaWEtcXVlcmllcyB3aGVuIGAkYnJlYWtwb2ludHNgIGlzIGEgbGlzdC5cbkBtaXhpbiAtemYtZWFjaC1icmVha3BvaW50LWluKFxuICAkYnJlYWtwb2ludHM6IGF1dG8sXG4gICR6ZXJvLWJyZWFrcG9pbnQ6IG51bGwsXG4gICRtZWRpYS1xdWVyaWVzOiB0cnVlXG4pIHtcbiAgJC1saXN0OiAoKTtcbiAgJC1icmVha3BvaW50cy1pcy1hLWxpc3Q6IHRydWU7XG5cbiAgLy8gUmV0cmlldmUgdGhlIGxpc3Qgb2YgYnJlYWtwb2ludChzKSB0byBpdGVyYXRlIG9uLlxuICBAaWYgJGJyZWFrcG9pbnRzID09IGF1dG8ge1xuICAgICQtbGlzdDogJGJyZWFrcG9pbnQtY2xhc3NlcztcbiAgfVxuICBAZWxzZSBpZiB0eXBlLW9mKCRicmVha3BvaW50cykgPT0gJ2xpc3QnIHtcbiAgICAkLWxpc3Q6ICRicmVha3BvaW50cztcbiAgfVxuICBAZWxzZSBpZiB0eXBlLW9mKCRicmVha3BvaW50cykgPT0gJ3N0cmluZycge1xuICAgICQtbGlzdDogKCRicmVha3BvaW50cyk7XG4gICAgJC1icmVha3BvaW50cy1pcy1hLWxpc3Q6IGZhbHNlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgXCIkYnJlYWtwb2ludHNcIiBpbiBcIi16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oKVwiLiBHb3QgXCIjeyRicmVha3BvaW50c31cIiAoI3t0eXBlLW9mKCRicmVha3BvaW50cyl9KS4gRXhwZWN0ZWQgYSBicmVha3BvaW50IG5hbWUsIGEgbGlzdCBvZiBicmVha3BvaW50cyBvciBcImF1dG9cIic7XG4gIH1cblxuICAvLyBBZGQgb3IgcmVtb3ZlIHRoZSB6ZXJvIGJyZWFrcG9pbnQgYWNjb3JkaW5nIHRvIGAkemVyby1icmVha3BvaW50YFxuICBAaWYgJHplcm8tYnJlYWtwb2ludCA9PSB0cnVlIHtcbiAgICAkLWxpc3Q6IGpvaW4oKCQtemYtemVyby1icmVha3BvaW50KSwgc2wtcmVtb3ZlKCQtbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpKTtcbiAgfVxuICBAZWxzZSBpZiAkemVyby1icmVha3BvaW50ID09IGZhbHNlIHtcbiAgICAkLWxpc3Q6IHNsLXJlbW92ZSgkLWxpc3QsICQtemYtemVyby1icmVha3BvaW50KTtcbiAgfVxuXG4gIC8vIEl0ZXJhdGUgb24gYnJlYWtwb2ludChzKVxuICBAZWFjaCAkYnAgaW4gJC1saXN0IHtcbiAgICAkb2xkLXpmLXNpemU6IG51bGw7XG4gICAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAgICRvbGQtemYtc2l6ZTogJC16Zi1zaXplO1xuICAgIH1cbiAgICAkLXpmLXNpemU6ICRicCAhZ2xvYmFsO1xuXG4gICAgQGlmICgkbWVkaWEtcXVlcmllcyA9PSB0cnVlIG9yICgkbWVkaWEtcXVlcmllcyA9PSAnZm9yLWxpc3RzJyBhbmQgJC1icmVha3BvaW50cy1pcy1hLWxpc3QpKSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicCkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgJC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgdGhlIGBAY29udGVudGAgcGFzc2VkIHRvIHRoZSBtaXhpbiB3aXRoIGEgdmFsdWUgYCQtemYtYnAtdmFsdWVgIHJlbGF0ZWQgdG8gYSBicmVha3BvaW50LCBkZXBlbmRpbmcgb24gdGhlIGAkbmFtZWAgcGFyYW1ldGVyOlxuLy8vIC0gRm9yIGEgc2luZ2xlIHZhbHVlLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhpcyB2YWx1ZS5cbi8vLyAtIEZvciBhIGJyZWFrcG9pbnQgbmFtZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgLlxuLy8vIC0gRm9yIFwiYXV0b1wiLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAgYW5kIGlzIHBhc3NlZCB0byBgQGNvbnRlbnRgLCB3aGljaCBpcyBtYWRlIHJlc3BvbnNpdmUgZm9yIGVhY2ggYnJlYWtwb2ludCBvZiBgJG1hcGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8QXJyYXl8S2V5d29yZH0gJG5hbWUgW2F1dG9dIC0gU2luZ2xlIHZhbHVlLCBicmVha3BvaW50IG5hbWUsIG9yIGxpc3Qgb2YgYnJlYWtwb2ludCBuYW1lcyB0byB1c2UuIFwiYXV0b1wiIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gTWFwIG9mIGJyZWFrcG9pbnRzIGFuZCB2YWx1ZXMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS5cbkBtaXhpbiAtemYtYnJlYWtwb2ludC12YWx1ZShcbiAgJG5hbWU6IGF1dG8sXG4gICRtYXA6IG51bGxcbikge1xuICBAaWYgJG5hbWUgPT0gYXV0byBhbmQgdHlwZS1vZigkbWFwKSA9PSAnbWFwJyB7XG4gICAgLy8gXCJhdXRvXCJcbiAgICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRrKSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCR2LCAkbWFwKSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIGJyZWFrcG9pbnQgbmFtZVxuICAgIEBpZiB0eXBlLW9mKCRuYW1lKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkYnAtdmFsdWU6IC16Zi1nZXQtYnAtdmFsKCRtYXAsICRuYW1lKTtcbiAgICAgIEBpZiAkYnAtdmFsdWUgIT0gbnVsbCB7XG4gICAgICAgICRuYW1lOiAkYnAtdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYnJlYWtwb2ludCB2YWx1ZVxuICAgICQtemYtYnAtdmFsdWU6ICRuYW1lICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWJhc2Vcbi8vLy9cblxuLy8gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuLy8gVGhlc2UgYXJlIHN0eWxlcyBhcHBsaWVkIHRvIGJhc2ljIEhUTUwgdGFncywgaW5jbHVkaW5nOlxuLy8gICAtIFBhcmFncmFwaHMgPHA+XG4vLyAgIC0gQm9sZC9pdGFsaWNzIDxiPiA8c3Ryb25nPiA8aT4gPGVtPlxuLy8gICAtIFNtYWxsIHRleHQgPHNtYWxsPlxuLy8gICAtIEhlYWRpbmdzIDxoMT4tPGg2PlxuLy8gICAtIEFuY2hvcnMgPGE+XG4vLyAgIC0gRGl2aWRlcnMgPGhyPlxuLy8gICAtIExpc3RzIDx1bD4gPG9sPiA8ZGw+XG4vLyAgIC0gQmxvY2txdW90ZXMgPGJsb2NrcXVvdGU+XG4vLyAgIC0gQ29kZSBibG9ja3MgPGNvZGU+XG4vLyAgIC0gQWJicmV2aWF0aW9ucyA8YWJicj5cbi8vICAgLSBDaXRhdGlvbnMgPGNpdGU+XG4vLyAgIC0gS2V5c3Ryb2tlcyA8a2JkPlxuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGhlYWRlciBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0eWxlIChlLmcuIGl0YWxpY2l6ZWQpIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgdXNlZCBmb3IgZWxlbWVudHMgdGhhdCB1c2UgbW9ub3NwYWNlZCB0eXBlLCBzdWNoIGFzIGNvZGUgc2FtcGxlc1xuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIGZvciBoZWFkaW5ncyBhdCB2YXJpb3VzIHNjcmVlbiBzaXplcy4gRWFjaCBrZXkgaXMgYSBicmVha3BvaW50LCBhbmQgZWFjaCB2YWx1ZSBpcyBhIG1hcCBvZiBoZWFkaW5nIHN0eWxlcy5cbi8vLyBAdHlwZSBNYXBcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKSAhZGVmYXVsdDtcblxuLy8gJGhlYWRlci1zdHlsZXMgbWFwIGlzIGJ1aWx0IGZyb20gJGhlYWRlci1zaXplcyBpbiBvcmRlciB0byBlbnN1cmUgZG93bndhcmQgY29tcGF0aWJpbGl0eVxuLy8gd2hlbiAkaGVhZGVyLXNpemVzIGlzIGRlcHJlY2lhdGVkLCAkaGVhZGVyLXN0eWxlcyBuZWVkcyB0byBnZXQgIWRlZmF1bHQgdmFsdWVzIGxpa2Ugc2V0dGluZ3Muc2Nzc1xuQGZ1bmN0aW9uIGJ1aWxkLWZyb20taGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpIHtcbiAgQHdhcm4gJ05vdGUsIHRoYXQgJGhlYWRlci1zaXplcyBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICRoZWFkZXItc3R5bGVzLiAkaGVhZGVyLXNpemVzIHN0aWxsIHdvcmtzLCBidXQgaXQgaXMgZ29pbmcgdG8gYmUgZGVwcmVjaWF0ZWQuJztcbiAgJGhlYWRlci1zdHlsZXM6ICgpO1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XG4gICAgJGhlYWRlci1tYXA6ICgpO1xuICAgIEBlYWNoICRoZWFkZXIsICRmb250LXNpemUgaW4gJGhlYWRlcnMge1xuICAgICAgJGhlYWRlci1tYXA6IG1hcC1tZXJnZSgkaGVhZGVyLW1hcCwgKCRoZWFkZXI6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZSkpKTtcbiAgICB9XG4gICAgJGhlYWRlci1zdHlsZXM6IG1hcC1tZXJnZSgkaGVhZGVyLXN0eWxlcywgKCRzaXplOiAkaGVhZGVyLW1hcCkpO1xuICB9XG4gIEByZXR1cm4gJGhlYWRlci1zdHlsZXM7XG59XG5cbi8vIElmIGl0IGV4aXN0cyAkaGVhZGVycy1zaXplcyBpcyB1c2VkIHRvIGJ1aWxkICRoZWFkZXItc3R5bGVzLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGhlYWRlci1zaXplcykge1xuICAkaGVhZGVyLXN0eWxlczogYnVpbGQtZnJvbS1oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcyk7XG59XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2Qgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBgPHNtYWxsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBgPHNtYWxsPmAgZWxlbWVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnNpZGUgYDxwPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBmb3IgcGFyYWdyYXBoIHRleHQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBVc2UgdGhlIGAuY29kZS1pbmxpbmVgIGNvbXBvbmVudCBhcyBkZWZhdWx0IGZvciBgPGNvZGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZW5hYmxlLWNvZGUtaW5saW5lOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBMaXN0XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0byAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG5cbi8vLyBCdWxsZXQgdHlwZSB0byB1c2UgZm9yIHVub3JkZXJlZCBsaXN0cyAoZS5nLiwgYHNxdWFyZWAsIGBjaXJjbGVgLCBgZGlzY2ApLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uaW5nIGZvciBidWxsZXRzIG9uIHVub3JkZXJlZCBsaXN0IGl0ZW1zLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBsaXN0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgYSBsaXN0IGluc2lkZSBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBgPGRsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBgPGR0PmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYDxkdD5gIGFuZCBgPGRkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgYDxibG9ja3F1b3RlPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuXG4vLy8gU2lkZSBib3JkZXIgZm9yIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFVzZSB0aGUgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQgYXMgZGVmYXVsdCBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGVuYWJsZS1jaXRlLWJsb2NrOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBib3JkZXIgc3R5bGUgZm9yIGA8YWJicj5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2sgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktYmFzZSB7XG4gIC8vIFR5cG9ncmFwaHkgcmVzZXRzXG4gIGRpdixcbiAgZGwsXG4gIGR0LFxuICBkZCxcbiAgdWwsXG4gIG9sLFxuICBsaSxcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNixcbiAgcHJlLFxuICBmb3JtLFxuICBwLFxuICBibG9ja3F1b3RlLFxuICB0aCxcbiAgdGQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUGFyYWdyYXBoc1xuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcbiAgfVxuXG4gIC8vIEVtcGhhc2l6ZWQgdGV4dFxuICBlbSxcbiAgaSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU3Ryb25nIHRleHRcbiAgc3Ryb25nLFxuICBiIHtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFNtYWxsIHRleHRcbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEhlYWRpbmdzXG4gIGgxLCAuaDEsXG4gIGgyLCAuaDIsXG4gIGgzLCAuaDMsXG4gIGg0LCAuaDQsXG4gIGg1LCAuaDUsXG4gIGg2LCAuaDYge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGhlYWRlci1jb2xvcjtcbiAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcblxuICAgIHNtYWxsIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgY29sb3I6ICRoZWFkZXItc21hbGwtZm9udC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBIZWFkaW5nIHN0eWxlc1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zdHlsZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRoZWFkZXIsICRoZWFkZXItZGVmcyBpbiAkaGVhZGVycyB7XG4gICAgICAgICRmb250LXNpemUtdGVtcDogMXJlbTtcbiAgICAgICAgI3skaGVhZGVyfSwgLiN7JGhlYWRlcn0ge1xuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmb250LXNpemUpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmcykge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZnMpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxoKSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKCRoZWFkZXItbGluZWhlaWdodCwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtdCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG10KSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1iKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkaGVhZGVyLW1hcmdpbi1ib3R0b20pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExpbmtzXG4gIGEge1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XG5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRhbmNob3ItY29sb3ItaG92ZXI7XG4gICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSG9yaXpvbnRhbCBydWxlXG4gIGhyIHtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIG1heC13aWR0aDogJGhyLXdpZHRoO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46ICRoci1tYXJnaW47XG5cbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG5cbiAgLy8gTGlzdHNcbiAgdWwsXG4gIG9sLFxuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGxpc3QtbWFyZ2luLWJvdHRvbTtcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXNcbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFVub3JkZXJlZCBsaXN0c1xuICB1bCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gICAgbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xuICB9XG5cbiAgLy8gT3JkZXJlZCBsaXN0c1xuICBvbCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBOZXN0ZWQgdW5vcmRlcmVkL29yZGVyZWQgbGlzdHNcbiAgdWwsIG9sIHtcbiAgICAmICYge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZpbml0aW9uIGxpc3RzXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTtcblxuICAgIGR0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b207XG4gICAgICBmb250LXdlaWdodDogJGRlZm5saXN0LXRlcm0td2VpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8vIEJsb2NrcXVvdGVzXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcblxuICAgICYsIHAge1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJbmxpbmUgQ2l0YXRpb25zXG4gIEBpZiAoJGVuYWJsZS1jaXRlLWJsb2NrID09IHRydWUpIHtcbiAgICBjaXRlIHtcbiAgICAgIC8vIEV4dGVuZGluZyBhIGNsYXNzIGlzIG5vdCByZWNvbW1lbmRlZC5cbiAgICAgIC8vIFRPRE86IEJyZWFrIHRoZSB0eXBvZ3JhcGh5LWJhc2UvdHlwb2dyYXBoeS1oZWxwZXJzIHNlcGFyYXRpb25cbiAgICAgIEBleHRlbmQgJWNpdGUtYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLy8gQWJicmV2aWF0aW9uc1xuICBhYmJyLCBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xuICAgIGN1cnNvcjogaGVscDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBGaWd1cmVzXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gQ29kZVxuICBAaWYgKCRlbmFibGUtY29kZS1pbmxpbmUgPT0gdHJ1ZSkge1xuICAgIGNvZGUge1xuICAgICAgQGV4dGVuZCAlY29kZS1pbmxpbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gS2V5c3Ryb2tlc1xuICBrYmQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAka2V5c3Ryb2tlLXBhZGRpbmc7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka2V5c3Ryb2tlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGtleXN0cm9rZS1mb250O1xuICAgIGNvbG9yOiAka2V5c3Ryb2tlLWNvbG9yO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgka2V5c3Ryb2tlLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJGtleXN0cm9rZS1yYWRpdXM7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ21hdGgnO1xuXG4kdW5pdC13YXJuaW5nczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBSZW1vdmVzIHRoZSB1bml0IChlLmcuIHB4LCBlbSwgcmVtKSBmcm9tIGEgdmFsdWUsIHJldHVybmluZyB0aGUgbnVtYmVyIG9ubHkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgc2FtZSBudW1iZXIsIHNhbnMgdW5pdC5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiBkaXZpZGUoJG51bSwgJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6IGRpdmlkZSgkYmFzZSwgMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gVXNpbmcgcmVtIGFzIGJhc2UgYWxsb3dzIGNvcnJlY3Qgc2NhbGluZ1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgJGNvdW50ID09IDEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG5cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9ICdudW1iZXInIHtcbiAgICBAaWYgJHVuaXQtd2FybmluZ3Mge1xuICAgICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpICsgJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIH1cbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBlbSBpbnRvIHJlbSBpZiBzb21lb25lIGhhbmRzIG92ZXIgJ2VtJ3NcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFyZW07XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbSBvciBlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IGRpdmlkZShzdHJpcC11bml0KCR2YWx1ZSksIHN0cmlwLXVuaXQoJGJhc2UpKSAqIDFyZW07XG4gIH1cblxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWUgPT0gMHJlbSB7XG4gICAgJHZhbHVlOiAwO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsLCBwZXJjZW50YWdlLCByZW0gb3IgZW0gdmFsdWUgdG8gYSB1bml0bGVzcyB2YWx1ZSBiYXNlZCBvbiBhIGdpdmVuIGZvbnQgc2l6ZS4gSWRlYWwgZm9yIHdvcmtpbmcgb3V0IHVuaXRsZXNzIGxpbmUgaGVpZ2h0cy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBjb252ZXJ0IHRvIGEgdW5pdGxlc3MgbGluZSBoZWlnaHRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgZm9udCBzaXplIHRvIHVzZSB0byB3b3JrIG91dCB0aGUgbGluZSBoZWlnaHQgLSBkZWZhdWx0cyB0byAkZ2xvYmFsLWZvbnQtc2l6ZVxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIFVuaXRsZXNzIG51bWJlclxuQGZ1bmN0aW9uIHVuaXRsZXNzLWNhbGMoJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIEZpcnN0LCBsZXRzIGNvbnZlcnQgb3VyICRiYXNlIHRvIHBpeGVsc1xuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogZGl2aWRlKCRiYXNlLCAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ2VtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIC8vIE5vdyBsZXQncyBjb252ZXJ0IG91ciB2YWx1ZSB0byBwaXhlbHMgdG9vXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJyUnIHtcbiAgICAkdmFsdWU6IGRpdmlkZSgkdmFsdWUsIDEwMCUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgLy8gJ3B4J1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgIEByZXR1cm4gZGl2aWRlKHN0cmlwLXVuaXQoJHZhbHVlKSwgc3RyaXAtdW5pdCgkYmFzZSkpO1xuICB9XG5cbiAgLy8gYXNzdW1lIHRoYXQgbGluZS1oZWlnaHRzIGdyZWF0ZXIgdGhhbiAxMCBhcmUgbWVhbnQgdG8gYmUgYWJzb2x1dGUgaW4gJ3B4J1xuICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgKCR2YWx1ZSA+IDEwKSB7XG4gICAgQHJldHVybiBkaXZpZGUoJHZhbHVlLCBzdHJpcC11bml0KCRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gUGF0Y2ggdG8gZml4IGlzc3VlICMxMjA4MFxuJC16Zi1zaXplOiBudWxsO1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBIaURQSSBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcyBmb3IgcmVzb2x1dGlvbnMuXG4vLy8gVmFsdWVzIG11c3QgcmVwcmVzZW50IHRoZSBkZXZpY2UgcGl4ZWxzIC8gd2ViIHBpeGVscyByYXRpb24gYW5kIGJlIHVuaXRsZXNzIG9yIGluIERQUFguXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHMtaGlkcGk6IChcbiAgaGlkcGktMTogMSxcbiAgaGlkcGktMS01OiAxLjUsXG4gIGhpZHBpLTI6IDIsXG4gIHJldGluYTogMixcbiAgaGlkcGktMzogM1xuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdUaGUgZmlyc3Qga2V5IGluIHRoZSAkYnJlYWtwb2ludHMgbWFwIG11c3QgaGF2ZSBhIHZhbHVlIG9mIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBXZWIgc3RhbmRhcmQgUGl4ZWxzIHBlciBpbmNoLiAoMWRkcHggLyAkc3RkLXdlYi1kcGkpID0gMWRwaVxuICAvLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy12YWx1ZXMtMy8jYWJzb2x1dGUtbGVuZ3Roc1xuICAkc3RkLXdlYi1kcGk6IDk2O1xuXG4gIC8vIFNpemUgb3Iga2V5d29yZFxuICAkYnA6IG50aCgkdmFsLCAxKTtcbiAgLy8gVmFsdWUgb2YgdGhlIGZvbGxvd2luZyBicmVha3BvaW50XG4gICRicC1uZXh0OiBudWxsO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1pbjogbnVsbDtcbiAgLy8gVmFsdWUgZm9yIG1pbi13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1tYXg6IG51bGw7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBJZiBuYW1lZCwgbmFtZSBvZiB0aGUgYnJlYWtwb2ludFxuICAkbmFtZTogbnVsbDtcbiAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgYSBIaURQSSBicmVha3BvaW50XG4gICRoaWRwaTogZmFsc2U7XG5cbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxuICBAaWYgJGJwID09ICdsYW5kc2NhcGUnIG9yICRicCA9PSAncG9ydHJhaXQnIHtcbiAgICBAcmV0dXJuICcob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG5cbiAgLy8gSWYgYSBicmVha3BvaW50IG5hbWUgaXMgZ2l2ZW4sIGdldCBpdHMgdmFsdWUgZnJvbSB0aGUgJGJyZWFrcG9pbnRzLyRicmVha3BvaW50cy1oaWRwaSBtYXAuXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgJG5hbWU6ICRicDtcbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICAgICRicC1uZXh0OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cy1oaWRwaSwgJGJwKSB7XG4gICAgICAkbmFtZTogJGJwO1xuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cy1oaWRwaSwgJG5hbWUpO1xuICAgICAgJGJwLW5leHQ6IC16Zi1tYXAtbmV4dC1udW1iZXIoJGJyZWFrcG9pbnRzLWhpZHBpLCAkYnApO1xuICAgICAgJGhpZHBpOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyIGAkYnJlYWtwb2ludHNgIG9yIGAkYnJlYWtwb2ludHMtaGlkcGlgIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICBAaWYgbm90ICRuYW1lIGFuZCAkZGlyID09ICdvbmx5JyB7XG4gICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIE9ubHkgJ29ubHknIGFuZCAndXAnIGhhdmUgYSBtaW4gbGltaXQuXG4gIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICd1cCcge1xuICAgICRicC1taW46IGlmKCRoaWRwaSwgc3RyaXAtdW5pdCgkYnApLCAtemYtYnAtdG8tZW0oJGJwKSk7XG4gIH1cbiAgLy8gT25seSAnb25seScgYW5kICdkb3duJyBoYXZlIGEgbWF4IGxpbWl0LlxuICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIElmIHRoZSBicmVha3BvaW50IGlzIGEgdmFsdWUsIHVzZSBpdCBhcyBtYXggbGltaXQuXG4gICAgQGlmIG5vdCAkbmFtZSB7XG4gICAgICAkYnAtbWF4OiBpZigkaGlkcGksIHN0cmlwLXVuaXQoJGJwKSwgLXpmLWJwLXRvLWVtKCRicCkpO1xuICAgIH1cbiAgICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBuYW1lZCwgdGhlIG1heCBsaW1pdCBpcyB0aGUgZm9sbG93aW5nIGJyZWFrcG9pbnQgLSAxcHguXG4gICAgQGVsc2UgaWYgJGJwLW5leHQge1xuICAgICAgLy8gTWF4IHZhbHVlIGlzIDAuMnB4IHVuZGVyIHRoZSBuZXh0IGJyZWFrcG9pbnQgKDAuMDIgLyAxNiA9IDAuMDAxMjUpLlxuICAgICAgLy8gVXNlIGEgcHJlY2lzaW9uIHVuZGVyIDFweCB0byBzdXBwb3J0IGJyb3dzZXIgem9vbSwgYnV0IG5vdCB0byBsb3cgdG8gYXZvaWQgcm91bmRpbmcuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTEzMTNcbiAgICAgICRicC1tYXg6IGlmKCRoaWRwaSwgJGJwLW5leHQgLSBkaXZpZGUoMSwgJHN0ZC13ZWItZHBpKSwgLXpmLWJwLXRvLWVtKCRicC1uZXh0KSAtIDAuMDAxMjUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdlbmVyYXRlIHRoZSBtZWRpYSBxdWVyeSBzdHJpbmcgZnJvbSBtaW4gYW5kIG1heCBsaW1pdHMuXG4gIEBpZiAkaGlkcGkge1xuICAgIC8vIEdlbmVyYXRlIHZhbHVlcyBpbiBEUEkgaW5zdGVhZCBvZiBEUFBYIGZvciBhbiBJRTktMTEvT3BlcmEgbWluaSBjb21wYXRpYmlsaXR5LlxuICAgIC8vIFNlZSBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy1tZWRpYS1yZXNvbHV0aW9uXG4gICAgJGJwLW1pbi1kcGk6IGlmKCRicC1taW4sICRicC1taW4gKiAkc3RkLXdlYi1kcGkgKiAxZHBpLCAkYnAtbWluKTtcbiAgICAkYnAtbWF4LWRwaTogaWYoJGJwLW1heCwgJGJwLW1heCAqICRzdGQtd2ViLWRwaSAqIDFkcGksICRicC1tYXgpO1xuICAgIEByZXR1cm4gemYtc3RyLWpvaW4oXG4gICAgICAtemYtYnAtam9pbigkYnAtbWluLCAkYnAtbWF4LCAnLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvJywgJy13ZWJraXQtbWF4LWRldmljZS1waXhlbC1yYXRpbycpLFxuICAgICAgLXpmLWJwLWpvaW4oJGJwLW1pbi1kcGksICRicC1tYXgtZHBpLCAnbWluLXJlc29sdXRpb24nLCAnbWF4LXJlc29sdXRpb24nKSxcbiAgICAgICcsICcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIC16Zi1icC1qb2luKCRicC1taW4sICRicC1tYXgpO1xuICB9XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgYW5kIGAkYnJlYWtwb2ludHMtaGlkcGlgIG1hcHMsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBJZiBtdWx0aXBsZSB2YWx1ZXMgYXJlIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgZ2VuZXJhdGUgYSBtZWRpYSBxdWVyeSBmb3IgZWFjaCBvZiB0aGVtIGFzIGRlc2NyaWJlZCBhYm92ZS5cbi8vLyBTaW5jZSB0aGUgY29udGVudCBpcyBkdXBsaWNhdGVkIGZvciBlYWNoIGJyZWFrcG9pbnQsIHRoaXMgbWl4aW4gc2hvdWxkIG9ubHkgYmUgdXNlZCB3aXRoIHByb3BlcnRpZXMgdGhhdFxuLy8vIGNoYW5nZSBhY3Jvc3MgYnJlYWtwb2ludHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWVzLi4uIC0gQnJlYWtwb2ludCBuYW1lIG9yIHB4L3JlbS9lbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWVzLi4uKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZXMpIHtcbiAgICAkdmFsdWU6IG50aCgkdmFsdWVzLCAkaSk7XG4gICAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAgICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCBudGgoJHZhbHVlLCAxKSk7XG4gICAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG4gICAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgICAkZGlyOiBpZihsZW5ndGgoJHZhbHVlKSA+IDEsIG50aCgkdmFsdWUsIDIpLCB1cCk7XG5cbiAgICAkb2xkLXpmLXNpemU6IG51bGw7XG5cbiAgICAvLyBNYWtlIGJyZWFrcG9pbnQgc2l6ZSBhdmFpbGFibGUgYXMgYSB2YXJpYWJsZVxuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgICB9XG4gICAgJC16Zi1zaXplOiBudGgoJHZhbHVlLCAxKSAhZ2xvYmFsOyAvLyBnZXQgdGhlIGZpcnN0IHZhbHVlIHRvIGFjY291bnQgZm9yIGBvbmx5YCBhbmQgYGRvd25gIGtleXdvcmRzXG5cbiAgICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gICAgQGlmICRzdHIgPT0gJycge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcbiAgICBAZWxzZSB7XG4gICAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgICAvLyBnZW5lcmF0ZSBwcmludCBpZiB0aGUgYnJlYWtwb2ludCBhZmZlY3RzIHRoZSBwcmludC1icmVha3BvaW50IChvciBzbWFsbGVyKS5cbiAgICAgIC8vIFRoaXMgbWVhbnMgdGhlIGN1cnJlbnQgY29uZGl0aW9uIG9ubHkgbmVlZHMgdG8gYmUgZXh0ZW5kZWQgc28gJ2Rvd24nIGFsd2F5cyBnZW5lcmF0ZXMgcHJpbnQuXG4gICAgICBAaWYgJGJwICE9IG51bGwgYW5kICgkYnAgPD0gJHBicCBvciAkZGlyID09IGRvd24pIHtcbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcbiAgfVxufVxuXG4vLy8gQ29udmVydHMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuICAkc3RyOiAnJztcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG5cbiAgLy8gU3RvcmUgdGhlIGtleXMgb2YgdGhlIG1hcCBhcyBhIGxpc3RcbiAgJHZhbHVlczogbWFwLWtleXMoJG1hcCk7XG5cbiAgJGk6IDA7XG5cbiAgLy8gSWYgdGhlIEtleSBFeGlzdHMsIEdldCB0aGUgaW5kZXggb2YgdGhlIGtleSB3aXRoaW4gdGhlIG1hcCBhbmQgYWRkIDEgdG8gaXQgZm9yIHRoZSBuZXh0IGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxuICBAaWYgKG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgJGk6IGluZGV4KCR2YWx1ZXMsICRrZXkpICsgMTtcbiAgfVxuXG4gIC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCwgb3IgaXQncyB0aGUgbGFzdCBrZXkgaW4gdGhlIG1hcCwgcmV0dXJuIG51bGxcbiAgQGlmICgkaSA+IGxlbmd0aCgkbWFwKSBvciAkaSA9PSAwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkdmFsdWVzLCAkaSkpO1xuICB9XG5cbn1cblxuLy8vIEZpbmQgdGhlIG5leHQgbnVtYmVyIGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJG51bWJlciAtIE51bWJlciB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIG51bWJlciBmb2xsb3dpbmcgYCRudW1iZXJgLCBpZiBgJG51bWJlcmAgd2FzIGZvdW5kLiBJZiBgJG51bWJlcmAgd2FzIG5vdCBmb3VuZCwgb3IgYCRudW1iZXJgIHdhcyB0aGUgYmlnZ2VzdCBudW1iZXIgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0LW51bWJlcigkbWFwLCAkbnVtYmVyKSB7XG5cbiAgJG5leHQtbnVtYmVyOiBudWxsO1xuXG4gIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICBAaWYgdHlwZS1vZigkdikgPT0gJ251bWJlcicgYW5kICR2ID4gJG51bWJlciBhbmQgKCRuZXh0LW51bWJlciA9PSBudWxsIG9yICR2IDwgJG5leHQtbnVtYmVyKSB7XG4gICAgICAkbmV4dC1udW1iZXI6ICR2O1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG5leHQtbnVtYmVyO1xufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBsYXN0IGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigka2V5KSB7XG4gICRsaXN0OiAoKTtcbiAgJGZvdW5kLWtleTogZmFsc2U7XG5cbiAgQGVhY2ggJG5hbWUgaW4gJC16Zi1icmVha3BvaW50cy1rZXlzIHtcbiAgICBAaWYgKCRuYW1lID09ICRrZXkpIHtcbiAgICAgICRmb3VuZC1rZXk6IHRydWU7XG4gICAgfVxuICAgIEBpZiBub3QgJGZvdW5kLWtleSB7XG4gICAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkbmFtZSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGxpc3Q7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IC0gYSBuYW1lZCBvciBub24tbmFtZWQgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICRsYXN0OiAkLXpmLXplcm8tYnJlYWtwb2ludDtcbiAgJGZvdW5kOiBmYWxzZTtcblxuICAkdmFsdWU6IHVuaXRsZXNzLWNhbGMoJGJyZWFrcG9pbnQsIDFweCk7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICBAaWYgdW5pdGxlc3MtY2FsYygkdmFsKSA+ICR2YWx1ZSB7XG4gICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkbGFzdDogJGtleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsYXN0O1xufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBSZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBJZiB0aGUgZ2l2ZW4gbWFwIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXRcbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJG1hcDtcbiAgfVxuXG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgZ2xvYmFsbHlcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCR2YWx1ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbi8vLyBSZXR1cm4gdGhlIGJlc3QgYnJlYWtwb2ludCB0byB1c2UgYWNjb3JkaW5nIHRvIHRoZSBjYWxsaW5nIGNvbnRleHQuIEl0IHJldHVybnMgaW4gb3JkZXI6XG4vLy8gMS4gdGhlIGdpdmVuIGAkdmFsdWVgIGFyZ3VtZW50IGlmIGl0IGlzIG5vdCBudWxsLlxuLy8vIDIuIHRoZSBnbG9iYWwgYnJlYWtwb2ludCBjb250ZXh0IGAkLXpmLXNpemVgIGlmIGl0IGlzIG5vdCBudWxsIChsaWtlIGlmIGNhbGxlZCBpbnNpZGUgdGhlbiBgYnJlYWtwb2ludCgpYCBtaXhpbilcbi8vLyAzLiB0aGUgZ2l2ZW4gYCRkZWZhdWx0YCBhcmd1bWVudC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGluIHByaW9yaXR5IGlmIG5vbi1udWxsLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRlZmF1bHQgW251bGxdIC0gQnJlYWtwb2ludCB0byB1c2UgYnkgZGVmYXVsdCBpZiBubyBvdGhlciB2YWx1ZSBjYW4gYmUgdXNlZC5cbi8vL1xuLy8vIEByZXR1cm4ge0tleXdvcmR9IFRoZSByZXNvbHZlZCBicmVha3BvaW50LlxuQGZ1bmN0aW9uIC16Zi1jdXJyZW50LWJyZWFrcG9pbnQoJHZhbHVlOiBudWxsLCAkZGVmYXVsdDogbnVsbCkge1xuICBAaWYgKCR2YWx1ZSAhPSBudWxsKSB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgQGVsc2UgaWYgKHZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkgYW5kIHR5cGUtb2YoJC16Zi1zaXplKSAhPSAnbnVtYmVyJykgYW5kICQtemYtc2l6ZSAhPSBudWxsIHtcbiAgICBAcmV0dXJuICQtemYtc2l6ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkZGVmYXVsdDtcbiAgfVxufVxuXG4vLy8gUmV0dXJuIG1lZGlhIHF1ZXJ5IHN0cmluZyBmcm9tIHRoZSBnaXZlbiBtaW4gYW5kL29yIG1heCBsaW1pdHMuXG4vLy8gSWYgYSBsaW1pdCBpcyBlcXVhbCB0byBgbnVsbGAgb3IgYDBgLCBpdCBpcyBpZ25vcmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtaW4gWzBdIC0gTWluIG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IFswXSAtIE1heCBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1pbi1uYW1lIFsnbWluLXdpZHRoJ10gLSBOYW1lIG9mIHRoZSBtaW4gbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkZWxpbWl0ZXIgWydtYXgtd2lkdGgnXSAtIE5hbWUgb2YgdGhlIG1heCBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IE1lZGlhIFF1ZXJ5IHN0cmluZy5cbkBmdW5jdGlvbiAtemYtYnAtam9pbihcbiAgJG1pbjogMCxcbiAgJG1heDogMCxcbiAgJG1pbi1uYW1lOiAnbWluLXdpZHRoJyxcbiAgJG1heC1uYW1lOiAnbWF4LXdpZHRoJ1xuKSB7XG4gIEByZXR1cm4gemYtc3RyLWpvaW4oXG4gICAgaWYoJG1pbiBhbmQgJG1pbiA+IDAsICcoI3skbWluLW5hbWV9OiAjeyRtaW59KScsIG51bGwpLFxuICAgIGlmKCRtYXggYW5kICRtYXggPiAwLCAnKCN7JG1heC1uYW1lfTogI3skbWF4fSknLCBudWxsKSxcbiAgICAnIGFuZCAnKTtcbn1cblxuJHNtYWxsLXVwOiAnJztcbiRzbWFsbC1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuJG1lZGl1bS11cDogJyc7XG4kbWVkaXVtLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcbiAgJG1lZGl1bS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0gb25seSl9Jyk7XG59XG5cbiRsYXJnZS11cDogJyc7XG4kbGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIGxhcmdlKSB7XG4gICRsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2UpfScpO1xuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XG59XG5cbiR4bGFyZ2UtdXA6ICcnO1xuJHhsYXJnZS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG4keHhsYXJnZS11cDogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIFBzZXVkbyBjb250ZW50IGZvciBgLmNpdGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCcgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiB0aGUgYC5jb2RlLWlubGluZWAgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgdGhlIGAuY29kZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLWJsb2NrLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gdW5kZXIgdGhlIGAuY29kZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNvZGUtYmxvY2stbWFyZ2luLWJvdHRvbTogMS41cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gY2l0ZS1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogJGNpdGUtY29sb3I7XG4gIGZvbnQtc2l6ZTogJGNpdGUtZm9udC1zaXplO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkY2l0ZS1wc2V1ZG8tY29udGVudDtcbiAgfVxufVxuXG4vLy8gQWRkIGJhc2ljIHN0eWxlcyBmb3IgYSBjb2RlIGhlbHBlci5cbi8vLyBTZWUgYGNvZGUtaW5saW5lYCBhbmQgYGNvZGUtYmxvY2tgIG1peGlucy5cbkBtaXhpbiBjb2RlLXN0eWxlIHtcbiAgYm9yZGVyOiAkY29kZS1ib3JkZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG5cbiAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkY29kZS1jb2xvcjtcbn1cblxuLy8vIE1ha2UgY29kZSBoZWxwZXIgZnJvbSB0aGUgYGNvZGUtc3R5bGVgIG1peGluIGlubGluZS5cbi8vLyBVc2VkIHRvIGdlbmVyYXRlIGAuY29kZS1pbmxpbmVgXG5AbWl4aW4gY29kZS1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuXG4gIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG59XG5cbi8vLyBNYWtlIGNvZGUgaGVscGVyIGZyb20gdGhlIGBjb2RlLXN0eWxlYCBtaXhpbiBhIGJsb2NrLlxuLy8vIFVzZWQgdG8gZ2VuZXJhdGUgYC5jb2RlLWJsb2NrYFxuQG1peGluIGNvZGUtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG5cbiAgcGFkZGluZzogJGNvZGUtYmxvY2stcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogJGNvZGUtYmxvY2stbWFyZ2luLWJvdHRvbTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRzdWJoZWFkZXItY29sb3I7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYW4gaW50cm9kdWN0b3J5IGxlYWQsIGRlY2ssIGJsdXJiLCBldGMuXG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxlYWQtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhIGxhcmdlIG51bWJlciB0byBkaXNwbGF5IGEgc3RhdGlzdGljXG4gIC5zdGF0IHtcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIHAgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxuXG4gIHVsLCBvbCB7XG4gICAgLy8gVXNlIHRvIHJlbW92ZSBudW1iZXJzIGZyb20gb3JkZXJlZCBsaXN0ICYgYnVsbGV0cyBmcm9tIHVub3JkZXJlZCBsaXN0XG4gICAgJi5uby1idWxsZXQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJWNpdGUtYmxvY2sge1xuICAgIEBpbmNsdWRlIGNpdGUtYmxvY2s7XG4gIH1cblxuICAuY2l0ZS1ibG9jayB7XG4gICAgQGV4dGVuZCAlY2l0ZS1ibG9jaztcbiAgfVxuXG4gICVjb2RlLWlubGluZSB7XG4gICAgQGluY2x1ZGUgY29kZS1zdHlsZTtcbiAgICBAaW5jbHVkZSBjb2RlLWlubGluZTtcbiAgfVxuXG4gIC5jb2RlLWlubGluZSB7XG4gICAgQGV4dGVuZCAlY29kZS1pbmxpbmU7XG4gIH1cblxuICAuY29kZS1ibG9jayB7XG4gICAgQGluY2x1ZGUgY29kZS1zdHlsZTtcbiAgICBAaW5jbHVkZSBjb2RlLWJsb2NrO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBJZiBgdHJ1ZWAsIGFsbCBlbGVtZW50cyB3aWxsIGhhdmUgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMgd2hlbiBwcmludGVkLCB0byBzYXZlIG9uIGluay5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBkaXNwbGF5cyBuZXh0IHRvIGFsbCBsaW5rcyB0aGVpciBcImhyZWZcIiB3aGVuIHByaW50ZWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC1ocmVmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gc2Fzcy1saW50OmRpc2FibGUtYWxsXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByaW50LXN0eWxlcyB7XG4gIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgKiB7XG4gICAgICAvLyBFbnN1cmUgYSBcImJsYWNrLW9uLXdoaXRlXCIgcHJpbnQgYnkgcmVtb3ZpbmcgYmFja2dyb3VuZHMsXG4gICAgICAvLyB1c2luZyBibGFjayB0ZXh0IGV2ZXJ5d2hlcmUgYW5kIGZvcmNpbmcgdGhlIGJyb3dzZXIgdG8gZWNvbm9taXplIGluay5cbiAgICAgIEBpZiAkcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHMge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xuICAgICAgICBjb2xvci1hZGp1c3Q6IGVjb25vbXk7XG4gICAgICB9XG4gICAgICAvLyBPdGhlcndpc2UsIHByZXZlbnQgYW55IGVjb25vbXkgYnkgdGhlIGJyb3dzZXIuXG4gICAgICBAZWxzZSB7XG4gICAgICAgIGNvbG9yLWFkanVzdDogZXhhY3Q7XG4gICAgICB9XG5cbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgLy8gRGlzcGxheSB0aGUgVVJMIG9mIGEgbGluayBhZnRlciB0aGUgdGV4dFxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgIEBpZiAkcHJpbnQtaHJlZnMge1xuICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cbiAgICB9XG5cbiAgICAvLyBEb24ndCBkaXNwbGF5IHRoZSBVUkwgZm9yIGltYWdlcyBvciBKYXZhU2NyaXB0L2ludGVybmFsIGxpbmtzXG4gICAgLmlyIGE6YWZ0ZXIsXG4gICAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgICBhW2hyZWZePScjJ106YWZ0ZXIgeyBjb250ZW50OiAnJzsgfVxuXG4gICAgLy8gRGlzcGxheSB3aGF0IGFuIGFiYnJldmlhdGlvbiBzdGFuZHMgZm9yIGFmdGVyIHRoZSB0ZXh0XG4gICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJzsgfVxuXG4gICAgLy8gUHJldmVudCBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGEgYmxvY2txdW90ZSBvciBwcmVmb3JtYXR0ZWQgdGV4dCBibG9ja1xuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gaDVicC5jb20vdFxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgb3JwaGFuczogMztcbiAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBwYWdlIGJyZWFrcyBhZnRlciBhIGhlYWRpbmdcbiAgICBoMixcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAvLyBIZWxwZXIgdG8gcmUtYWxsb3cgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBjZXJ0YWluIGVsZW1lbnRzIChlLmcuIHByZSwgYmxvY2txdW90ZSwgdHIpXG4gICAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiByZW0oJHNpemUpIHtcbiAgICAkcmVtU2l6ZTogJHNpemUgLyAxNnB4O1xuICAgIC8vRGVmYXVsdCBmb250IHNpemUgb24gaHRtbCBlbGVtZW50IGlzIDEwMCUsIGVxdWl2YWxlbnQgdG8gMTZweDtcbiAgICBAcmV0dXJuICN7JHJlbVNpemV9cmVtO1xufVxuXG4vKipcbiAqIFRleHQgY29sb3IgYmFzZWQgb24gaXRzIGJhY2tncm91bmQuXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICRjb2xvciBDb2xvci5cbiAqIEByZXR1cm4ge051bWJlcn0gQ29sb3IuXG4gKi9cbiBAZnVuY3Rpb24gc2V0LWJ1dHRvbi10ZXh0LWNvbG9yKCRjb2xvcikge1xuICAgIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA+IDU1IHtcbiAgICAgICAgQHJldHVybiAkcHJpbWFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gZ2V0LWNvbG9yKGxpZ2h0LWJsdWUpO1xuICAgIH1cbn1cbiIsIi8vIG1hcmdpbiBhbmQgcGFkZGluZyB2YWx1ZXMgYXJyYXlcbiRzcGFjZS12YWx1ZXM6ICgwLFxuICAgIDEsXG4gICAgMixcbiAgICAzLFxuICAgIDQsXG4gICAgNixcbiAgICA4LFxuICAgIDEwKSAhZGVmYXVsdDtcblxuLy8gbWFyZ2luIGFuZCBwYWRkaW5nIHNob3J0aGFuZHNcbiRzcGFjZS1wcmVmaXhlczogKFxuICAgIGgtcDogIHBhZGRpbmcsXG4gICAgaC1wdDogcGFkZGluZy10b3AsXG4gICAgaC1wcjogcGFkZGluZy1yaWdodCxcbiAgICBoLXBiOiBwYWRkaW5nLWJvdHRvbSxcbiAgICBoLXBsOiBwYWRkaW5nLWxlZnQsXG4gICAgaC1tOiAgbWFyZ2luLFxuICAgIGgtbXQ6IG1hcmdpbi10b3AsXG4gICAgaC1tcjogbWFyZ2luLXJpZ2h0LFxuICAgIGgtbWI6IG1hcmdpbi1ib3R0b20sXG4gICAgaC1tbDogbWFyZ2luLWxlZnQsXG4pICFkZWZhdWx0O1xuXG5AbWl4aW4gbWFrZS1zcGFjZXMoKSB7XG5cbiAgICBAZWFjaCAkYXR0ci1zaG9ydCxcbiAgICAkYXR0ci1sb25nIGluICRzcGFjZS1wcmVmaXhlcyB7XG4gICAgICAgIEBlYWNoICR2YWx1ZSBpbiAkc3BhY2UtdmFsdWVzIHtcbiAgICAgICAgICAgIC4jeyRhdHRyLXNob3J0fS0jeyR2YWx1ZX0ge1xuICAgICAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gICAgICAgICAgICAgICAgI3skYXR0ci1sb25nfTogI3skdmFsdWUgLyAyfSN7XCJyZW1cIn0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIG1hcmdpbiBhbmQgcGFkZGluZyB2YWx1ZXMgYXJyYXlcbiRmb250LXNpemVzOiAoXG4gICAgaC1mb250LXh4czogMSxcbiAgICBoLWZvbnQteHM6ICAxLjIsXG4gICAgaC1mb250LXM6ICAgMS40LFxuICAgIGgtZm9udC1tOiAgIDEuNixcbiAgICBoLWZvbnQtbWw6ICAxLjgsXG4gICAgaC1mb250LWw6ICAgMixcbiAgICBoLWZvbnQteGw6ICAyLjQsXG4gICAgaC1mb250LXh4bDogM1xuKSAhZGVmYXVsdDtcblxuJGZvbnQtcHJlZml4ZXM6IChoLWZvbnRzaXplIDogZm9udC1zaXplKSAhZGVmYXVsdDtcblxuQG1peGluIGZvbnQtc2l6ZXMoKSB7XG5cbiAgICBAZWFjaCAkZm9udC1zaG9ydCxcbiAgICAkZm9udC1zaXplIGluICRmb250LXNpemVzIHtcbiAgICAgICAgLiN7JGZvbnQtc2hvcnR9IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogI3skZm9udC1zaXplICogLjYyNX0je1wicmVtXCJ9O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIFZlcnRpY2FsIGFsaWduIGFueXRoaW5nXG4gKiBAcGFyYW0ge3ZhbHVlfSAkcG9zaXRpb25cbiAqIHJldHVybiBub25lXG4gKi9cblxuQG1peGluIHZlcnRpY2FsLWFsaWduKCRwb3NpdGlvbjogcmVsYXRpdmUpIHtcbiAgICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEFuaW1hdGlvblxuLy8vIEBwYXJhbSB7Kn0gJHN0ciAtIG5hbWUgZHVyYXRpb24gdGltaW5nLWZ1bmN0aW9uIGRlbGF5IGl0ZXJhdGlvbi1jb3VudCBkaXJlY3Rpb24gZmlsbC1tb2RlIHBsYXktc3RhdGVcblxuQG1peGluIGFuaW1hdGlvbigkc3RyKSB7XG4gICAgI3snYW5pbWF0aW9uJ306ICN7JHN0cn07XG59XG5cbi8vIEZvbnQgU2l6ZSBNaXhpblxuQG1peGluIGZvbnQtc2l6ZSgkcmVtLWJhc2U6IDEuNSkge1xuICAgIGZvbnQtc2l6ZTogJHJlbS1iYXNlICogLjYyNSArIHJlbTtcbn1cblxuLy8gQ291bnRpbmcgbnVtYmVyIG9mIGNoaWxkIGVsZW1lbnRzXG5AbWl4aW4gd2l0aC1jb3VudCgkbikge1xuICAgIEBpZiAkbj09MSB7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgxKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JG59KSxcbiAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRufSl+JiB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsImh0bWwge1xuICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblxuICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bztcbiAgICB9XG59XG5cbiV3cmFwcGVyIHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigkd2lkdGg6IDg1dncsICRwYWRkaW5nOiAwKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyO1xuICAgIH1cbn1cblxuLnNlY3Rpb24ge1xuICAgIHBhZGRpbmc6IHJlbSg2MHB4KSAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIEBleHRlbmQgJXdyYXBwZXI7XG4gICAgfVxuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtbWFyZ2luICogMS41KTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtbWFyZ2luICogMy43NSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlIGd1dHRlcnMgZm9yIGEgY2VsbC9jb250YWluZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGVpdGhlciBtYXJnaW4gb3IgcGFkZGluZy5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW3JpZ2h0IGxlZnRdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJG5lZ2F0aXZlIFtmYWxzZV0gLSBXaGV0aGVyIHRvIGFwcGx5IHRoZSBndXR0ZXIgYXMgYSBuZWdhdGl2ZSB2YWx1ZS4gQ29tbW9ubHkgdXNlZCBmb3IgbmVzdGVkIGdyaWRzLlxuQG1peGluIHh5LWd1dHRlcnMoXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRuZWdhdGl2ZTogZmFsc2Vcbikge1xuICAkb3BlcmF0b3I6IGlmKCRuZWdhdGl2ZSwgJy0nLCAnJyk7XG5cbiAgLy8gSWYgd2UgaGF2ZSBkZWNsYXJlZCBuZWdhdGl2ZSBndXR0ZXJzLCBmb3JjZSB0eXBlIHRvIGBtYXJnaW4uXG4gICRndXR0ZXItdHlwZTogaWYoJG5lZ2F0aXZlLCAnbWFyZ2luJywgJGd1dHRlci10eXBlKTtcblxuICAvLyBPdXRwdXQgb3VyIG1hcmdpbiBndXR0ZXJzLlxuICBAaWYgKHR5cGUtb2YoJGd1dHRlcnMpID09ICdtYXAnKSB7XG4gICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoYXV0bywgJGd1dHRlcnMpIHtcbiAgICAgICRndXR0ZXI6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpICogMC41O1xuXG4gICAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBndXR0ZXIgcG9zaXRpb25cbiAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgI3skZ3V0dGVyLXR5cGV9LSN7JHZhbHVlfTogdW5xdW90ZShcIiN7JG9wZXJhdG9yfSN7JGd1dHRlcn1cIik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICh0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbnVtYmVyJykge1xuICAgICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXJzKSAqIDAuNTtcblxuICAgIC8vIExvb3AgdGhyb3VnaCBlYWNoIGd1dHRlciBwb3NpdGlvblxuICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICN7JGd1dHRlci10eXBlfS0jeyR2YWx1ZX06IHVucXVvdGUoXCIjeyRvcGVyYXRvcn0jeyRndXR0ZXJ9XCIpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBtYXggd2lkdGggY29udGFpbmVyLCBkZXNpZ25lZCB0byBob3VzZSB5b3VyIGdyaWQgY29udGVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRncmlkLWNvbnRhaW5lcl0gLSBhIHdpZHRoIHRvIGxpbWl0IHRoZSBjb250YWluZXIgdG8uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkaW5nIFskZ3JpZC1jb250YWluZXItcGFkZGluZ10gLSBwYWRkaW5ncyBvZiB0aGUgY29udGFpbmVyLlxuQG1peGluIHh5LWdyaWQtY29udGFpbmVyKFxuICAkd2lkdGg6ICRncmlkLWNvbnRhaW5lcixcbiAgJHBhZGRpbmc6ICRncmlkLWNvbnRhaW5lci1wYWRkaW5nXG4pIHtcbiAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyczogJHBhZGRpbmcsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG5cbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi8vLyBDcmVhdGVzIGEgY29udGFpbmVyIGZvciB5b3VyIGZsZXggY2VsbHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW2hvcml6b250YWxdIC0gRWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwgZGlyZWN0aW9uIG9mIGNlbGxzIHdpdGhpbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR3cmFwIFt0cnVlXSAtIElmIHRoZSBjZWxscyB3aXRoaW4gc2hvdWxkIHdyYXAgb3Igbm90LlxuQG1peGluIHh5LWdyaWQoXG4gICRkaXJlY3Rpb246IGhvcml6b250YWwsXG4gICR3cmFwOiB0cnVlXG4pIHtcbiAgJGRpcmVjdGlvbjogaWYoJGRpcmVjdGlvbiA9PSAnaG9yaXpvbnRhbCcsIHJvdywgY29sdW1uKTtcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogJGRpcmVjdGlvbiAkd3JhcDtcbn1cbiIsIiVmb250LWFsdCB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG59XG5cbjppcyhoMiwgaDUpIHtcbiAgICBAZXh0ZW5kICVmb250LWFsdDtcbn1cblxuOmlzKGg1KSB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LXNlbWlib2xkO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbiIsIi5oLXZpc2libGUtaGlkZGVuIHtcbiAgICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB3aWR0aDogMXB4O1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGNsaXA6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxufVxuXG4vLyBsaXN0c1xuLmgtbGlzdCB7XG4gICAgJi0tY2xlYW4ge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJi0tY291bnRlciB7XG4gICAgICAgIGNvdW50ZXItcmVzZXQ6IHNlY3Rpb247XG5cbiAgICAgICAgW2NsYXNzKj1cInRpdGxlXCJdIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY291bnRlci1pbmNyZW1lbnQ6IHNlY3Rpb247XG4gICAgICAgICAgICAgICAgY29udGVudDogY291bnRlcihzZWN0aW9uKSBcIi4gXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIHR5cG9ncmFwaHlcbi5oLXRleHQge1xuICAgICYtLXByaW1hcnkge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgfVxuXG4gICAgJi0taXRhbGljIHtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cblxuICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgJi0tdW5kZXJsaW5lZCB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgICYtLWxlZnQge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbn1cblxuLmgtZm9udCB7XG4gICAgJi0tbGlnaHQge1xuICAgICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbGlnaHQ7XG4gICAgfVxuXG4gICAgJi0tcmVndWxhciB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgfVxuXG4gICAgJi0tc2VtaWJvbGQge1xuICAgICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtc2VtaWJvbGQ7XG4gICAgfVxuXG4gICAgJi0tYm9sZCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIH1cbn1cblxuLmgtZm9udC1hbHQge1xuICAgIEBleHRlbmQgJWZvbnQtYWx0ICFvcHRpb25hbDtcbn1cblxuQGluY2x1ZGUgZm9udC1zaXplcygpO1xuLy8gaC1mb250LXh4cyA6IDEwcHggLyAuNnJlbSxcbi8vIGgtZm9udC14cyAgOiAxMnB4IC8gLjc1cmVtLFxuLy8gaC1mb250LXMgICA6IDE0cHggLyAuODc1cmVtLFxuLy8gaC1mb250LW0gICA6IDE2cHggLyAxcmVtLFxuLy8gaC1mb250LW1sICA6IDE4cHggLyAxLjEyNXJlbSxcbi8vIGgtZm9udC1sICAgOiAyMHB4IC8gMS4yNXJlbSxcbi8vIGgtZm9udC14bCAgOiAyNHB4IC8gMS41cmVtLFxuLy8gaC1mb250LXh4bCA6IDMwcHggLyAxLjg3NXJlbVxuXG4vLyBQYWRkaW5nICYgTWFyZ2luXG5AaW5jbHVkZSBtYWtlLXNwYWNlcygpO1xuXG4vLyBiYWNrZ3JvdW5kc1xuIiwiLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uKHRydWUsICRwcmltYXJ5LWNvbG9yLCBhdXRvLCAkd2hpdGUsIHNvbGlkKTtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLnN2Zy1pY29uIHtcbiAgICAgICAgZmlsbDogJHdoaXRlO1xuICAgIH1cblxuICAgICYtLWhvbGxvdyB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbih0cnVlLCAkcHJpbWFyeS1jb2xvciwgdHJhbnNwYXJlbnQsICRwcmltYXJ5LWNvbG9yLCBob2xsb3cpO1xuICAgICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtc2VtaWJvbGQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgLnN2Zy1pY29uIHtcbiAgICAgICAgICAgIGZpbGw6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tc2Vjb25kYXJ5IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKHRydWUsICR3aGl0ZSwgYXV0bywgJGJsYWNrLCBzb2xpZCk7XG4gICAgfVxuXG4gICAgJi0tc3BlY2lhbCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbih0cnVlLCBnZXQtY29sb3IobGltZSksIGF1dG8sICRibGFjaywgc29saWQpO1xuICAgIH1cblxuICAgICYtLXNocmluayB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQoZmFsc2UpO1xuICAgIH1cblxuICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkKCRidXR0b24tb3BhY2l0eS1kaXNhYmxlZCk7XG4gICAgfVxuXG4gICAgJi0tc29jaWFsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LXNlbWlib2xkO1xuXG4gICAgICAgIC5zdmctaWNvbiB7XG4gICAgICAgICAgICBmaWxsOiAkd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogdGhpbiBkb3R0ZWQ7XG4gICAgfVxufVxuXG5idXR0b246Zm9jdXMge1xuICAgIG91dGxpbmU6IHRyYW5zcGFyZW50O1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvblxuLy8vL1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGJ1dHRvbiBlbGVtZW50cy5cbi8vLyBAdHlwZSBGb250XG4kYnV0dG9uLWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGJ1dHRvbiBlbGVtZW50cy5cbi8vLyBJZ25vcmVkIGlmIG51bGwgKGRlZmF1bHQpXG4vLy8gQHR5cGUgRm9udC1XZWlnaHRcbiRidXR0b24tZm9udC13ZWlnaHQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZpbGwgZm9yIGJ1dHRvbnMuIENhbiBlaXRoZXIgYmUgYHNvbGlkYCBvciBgaG9sbG93YC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGl2ZSBmb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgYnV0dG9ucywgdHJhbnNwYXJlbnQgYnkgZGVmYXVsdFxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgd2lkdGggZm9yIGhvbGxvdyBvdXRsaW5lIGJ1dHRvbnNcbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXNpemVzOiAoXG4gIHRpbnk6IDAuNnJlbSxcbiAgc21hbGw6IDAuNzVyZW0sXG4gIGRlZmF1bHQ6IDAuOXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBvcGFjaXR5IGZvciBhIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGhvbGxvdyBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbDogZmxpcCBmcm9tIG1hcmdpbi1yaWdodCB0byBtYXJnaW4tbGVmdCBmb3IgZGVmYXVsdHNcbkBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbn1cblxuLy8vIHRyYW5zaXRpb25zIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBBZGRpdGlvbmFsIHJlc3BvbnNpdmUgY2xhc3NlcyBmb3IgLmV4cGFuZGVkXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJ1dHRvbi1yZXNwb25zaXZlLWV4cGFuZGVkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gVE9ETzogRG9jdW1lbnQgYnV0dG9uLWJhc2UoKSBtaXhpblxuQG1peGluIGJ1dHRvbi1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG5cbiAgQGlmICh0eXBlLW9mKCRidXR0b24tcGFkZGluZykgPT0gJ21hcCcpIHtcbiAgICBAZWFjaCAkc2l6ZSwgJHBhZGRpbmcgaW4gJGJ1dHRvbi1wYWRkaW5nIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBwYWRkaW5nOiAkYnV0dG9uLXBhZGRpbmc7XG4gIH1cblxuICBib3JkZXI6ICRidXR0b24tYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgdHJhbnNpdGlvbjogJGJ1dHRvbi10cmFuc2l0aW9uO1xuICBmb250LWZhbWlseTogJGJ1dHRvbi1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuICBmb250LXdlaWdodDogJGJ1dHRvbi1mb250LXdlaWdodDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8vLyBFeHBhbmRzIGEgYnV0dG9uIHRvIG1ha2UgaXQgZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgdGhlIGV4cGFuZCBiZWhhdmlvci4gU2V0IHRvIGBmYWxzZWAgdG8gcmV2ZXJzZSB0aGlzIGJlaGF2aW9yLlxuQG1peGluIGJ1dHRvbi1leHBhbmQoJGV4cGFuZDogdHJ1ZSkge1xuICBAaWYgJGV4cGFuZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgYmFzZSBzdHlsZXMgb2YgYSBob2xsb3cgb3IgY2xlYXIgYnV0dG9uIGZpbGxpbmcgYWNjb3JkaW5nIHRvIGAkZmlsbGAuXG4vLy8gU2VlIG1peGluIGBidXR0b24tZmlsbC1zdHlsZWAgZm9yIHRoZSBmaWxsaW5nIHN0eWxlcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRmaWxsIFskYnV0dG9uLWZpbGxdIC0gVHlwZSBvZiBmaWxsaW5nIGJldHdlZW4gYGhvbGxvd2AgYW5kIGBjbGVhcmAuIGBzb2xpZGAgaGFzIG5vIGVmZmVjdHMuXG5AbWl4aW4gYnV0dG9uLWZpbGwoXG4gICRmaWxsOiAkYnV0dG9uLWZpbGxcbikge1xuICBAaWYgJGZpbGwgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICB9XG4gIEBlbHNlIGlmICRmaWxsID09IGNsZWFyIHtcbiAgICBAaW5jbHVkZSBidXR0b24tY2xlYXI7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZXMgb2YgYSBzb2xpZC9ob2xsb3cvY2xlYXIgYnV0dG9uIGZpbGxpbmcgYWNjb3JkaW5nIHRvIGAkZmlsbGAuXG4vLy8gU2VlIG1peGlucyBgYnV0dG9uLXN0eWxlYCwgYGJ1dHRvbi1ob2xsb3ctc3R5bGVgIGFuZCBgYnV0dG9uLWNsZWFyLXN0eWxlYCBmb3IgZWZmZWN0cyBvZiB2aXN1YWwgc3R5bGluZyBwYXJhbWV0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZpbGwgWyRidXR0b24tZmlsbF0gLSBUeXBlIG9mIGZpbGxpbmcgYmV0d2VlbiBgaG9sbG93YCBhbmQgYGNsZWFyYC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIC1cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIC1cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gLVxuQG1peGluIGJ1dHRvbi1maWxsLXN0eWxlKFxuICAkZmlsbDogJGJ1dHRvbi1maWxsLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3Jcbikge1xuICBAaWYgJGZpbGwgPT0gc29saWQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXIsICRjb2xvcik7XG4gIH1cbiAgQGVsc2UgaWYgJGZpbGwgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRiYWNrZ3JvdW5kKTtcbiAgfVxuICBAZWxzZSBpZiAkZmlsbCA9PSBjbGVhciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWNsZWFyLXN0eWxlKCRiYWNrZ3JvdW5kKTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tc3R5bGUoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yLWFsdCkpO1xuICB9XG5cbiAgQGlmICRiYWNrZ3JvdW5kLWhvdmVyID09IGF1dG8ge1xuICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzKTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYW5kIGRpc2FibGVkIHN0YXRlc1xuICAmLFxuICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSxcbiAgJi5kaXNhYmxlZDpob3ZlciwgJltkaXNhYmxlZF06aG92ZXIsXG4gICYuZGlzYWJsZWQ6Zm9jdXMsICZbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgYmFzZSBzdHlsZXMgb2YgYSBob2xsb3cgYnV0dG9uLlxuLy8vIFNlZSBtaXhpbiBgYnV0dG9uLWhvbGxvdy1zdHlsZWAgZm9yIHRoZSBmaWxsaW5nIHN0eWxlcy5cbkBtaXhpbiBidXR0b24taG9sbG93IHtcbiAgJiwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBob2xsb3cgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIFRleHQgYW5kIGJvcmRlciBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRob3Zlci1saWdodG5lc3MgWyRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzc10gLSBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJvcmRlci13aWR0aCBbJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXSAtIEJvcmRlciB3aWR0aCBvZiB0aGUgYnV0dG9uLlxuQG1peGluIGJ1dHRvbi1ob2xsb3ctc3R5bGUoXG4gICRjb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3MsXG4gICRib3JkZXItd2lkdGg6ICRidXR0b24taG9sbG93LWJvcmRlci13aWR0aFxuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICAvLyBEZWZhdWx0IGFuZCBkaXNhYmxlZCBzdGF0ZXNcbiAgJixcbiAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQ6aG92ZXIsICZbZGlzYWJsZWRdOmhvdmVyLFxuICAmLmRpc2FibGVkOmZvY3VzLCAmW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgYmFzZSBzdHlsZXMgb2YgYSBjbGVhciBidXR0b24uXG4vLy8gU2VlIG1peGluIGBidXR0b24tY2xlYXItc3R5bGVgIGZvciB0aGUgZmlsbGluZyBzdHlsZXMuXG5AbWl4aW4gYnV0dG9uLWNsZWFyIHtcbiAgJiwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgY2xlYXIgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkaG92ZXItbGlnaHRuZXNzIFskYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3NdIC0gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyLlxuQG1peGluIGJ1dHRvbi1jbGVhci1zdHlsZShcbiAgJGNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICAvLyBEZWZhdWx0IGFuZCBkaXNhYmxlZCBzdGF0ZXNcbiAgJixcbiAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQ6aG92ZXIsICZbZGlzYWJsZWRdOmhvdmVyLFxuICAmLmRpc2FibGVkOmZvY3VzLCAmW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuLy8vIEFkZHMgZGlzYWJsZWQgc3R5bGVzIHRvIGEgYnV0dG9uIGJ5IGZhZGluZyB0aGUgZWxlbWVudCBhbmQgcmVzZXRpbmcgdGhlIGN1cnNvci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9wYWNpdHkgWyRidXR0b24tb3BhY2l0eS1kaXNhYmxlZF0gLSBPcGFjaXR5IG9mIHRoZSBkaXNhYmxlZCBidXR0b24uXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkKFxuICAkb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkXG4pIHtcbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4vLy8gQWRkcyBhIGRyb3Bkb3duIGFycm93IHRvIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSBbMC40ZW1dIC0gU2l6ZSBvZiB0aGUgYXJyb3cuIFdlIHJlY29tbWVuZCB1c2luZyBhbiBgZW1gIHZhbHVlIHNvIHRoZSB0cmlhbmdsZSBzY2FsZXMgd2hlbiB1c2VkIGluc2lkZSBkaWZmZXJlbnQgc2l6ZXMgb2YgYnV0dG9ucy5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgW3doaXRlXSAtIENvbG9yIG9mIHRoZSBhcnJvdy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9mZnNldCBbJGJ1dHRvbi1wYWRkaW5nXSAtIERpc3RhbmNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uLiBEZWZhdWx0cyB0byB3aGF0ZXZlciB0aGUgcmlnaHQgcGFkZGluZyBvZiBhIGJ1dHRvbiBpcy5cbkBtaXhpbiBidXR0b24tZHJvcGRvd24oXG4gICRzaXplOiAwLjRlbSxcbiAgJGNvbG9yOiAkd2hpdGUsXG4gICRvZmZzZXQ6IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpXG4pIHtcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCBkb3duKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjRlbTsgLy8gQWxpZ25zIHRoZSBhcnJvdyB3aXRoIHRoZSB0ZXh0IG9mIHRoZSBidXR0b25cblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogI3skZ2xvYmFsLXJpZ2h0fTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG4gIEBpbmNsdWRlIGJ1dHRvbi1maWxsKCRzdHlsZSk7XG4gIEBpbmNsdWRlIGJ1dHRvbi1maWxsLXN0eWxlKCRzdHlsZSwgJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IpO1xuXG4gIEBpZiAkZXhwYW5kIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbiB7XG4gIC5idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbigkc3R5bGU6IG5vbmUpO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICBAaWYgJGJ1dHRvbi1yZXNwb25zaXZlLWV4cGFuZGVkIHtcbiAgICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCN7JHNpemV9IG9ubHkpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LW9ubHktZXhwYW5kZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCN7JHNpemV9IGRvd24pIHtcbiAgICAgICAgICAgICYuI3skc2l6ZX0tZG93bi1leHBhbmRlZCB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgjeyRzaXplfSkge1xuICAgICAgICAgICAgJi4jeyRzaXplfS1leHBhbmRlZCB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU29saWQsIGhvbGxvdyAmIGNsZWFyIHN0eWxlc1xuICAgIEBlYWNoICRmaWxsaW5nIGluIChzb2xpZCBob2xsb3cgY2xlYXIpIHtcbiAgICAgICRzZWxlY3RvcjogaWYoJGJ1dHRvbi1maWxsID09ICRmaWxsaW5nLCBudWxsLCAnLiN7JGZpbGxpbmd9Jyk7XG5cbiAgICAgICYjeyRzZWxlY3Rvcn0ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbCgkZmlsbGluZyk7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsLXN0eWxlKCRmaWxsaW5nKTtcblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbC1zdHlsZSgkZmlsbGluZywgJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAgICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5ob2xsb3csICYuY2xlYXIge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQnV0dG9uIHdpdGggZHJvcGRvd24gYXJyb3cgb25seVxuICAgICYuYXJyb3ctb25seTo6YWZ0ZXIge1xuICAgICAgdG9wOiAtMC4xZW07XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgfVxuICB9XG5cbiAgYS5idXR0b24geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLmxpc3RfX2NvdW50ZXIge1xuICAgIGNvdW50ZXItcmVzZXQ6IG15Y291bnRlcjtcblxuICAgIGR0IHtcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIobXljb3VudGVyKSBcIi4gXCI7XG4gICAgICAgICAgICBjb3VudGVyLWluY3JlbWVudDogbXljb3VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGQge1xuICAgICAgICBjb3VudGVyLXJlc2V0OiBzdWJjb3VudGVyO1xuICAgIH1cblxuICAgIGRpdiB7XG4gICAgICAgIGNvdW50ZXItcmVzZXQ6IHN1YnN1YmNvdW50ZXI7XG4gICAgfVxuXG4gICAgLnN1YnRpdGxlIHtcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIobXljb3VudGVyKSBcIi5cIiBjb3VudGVyKHN1YmNvdW50ZXIpIFwiLiBcIjtcbiAgICAgICAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBzdWJjb3VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnN1YnN1YnRpdGxlIHtcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIobXljb3VudGVyKSBcIi5cIiBjb3VudGVyKHN1YmNvdW50ZXIpIFwiLlwiIGNvdW50ZXIoc3Vic3ViY291bnRlcikgXCIuIFwiO1xuICAgICAgICAgICAgY291bnRlci1pbmNyZW1lbnQ6IHN1YnN1YmNvdW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuY2FyZCB7XG4gICAgQGluY2x1ZGUgZmxleDtcbiAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtb3JkZXIoMSk7XG4gICAgfVxuXG4gICAgJl9fbmFtZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIH1cblxuICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwICRnbG9iYWwtcGFkZGluZztcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkZ2xvYmFsLXBhZGRpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICAgIH1cbn1cbiIsIkBmdW5jdGlvbiAtemYtZmxleC1qdXN0aWZ5KCR0ZXh0LWRpcmVjdGlvbikge1xuICAkLXpmLWZsZXgtanVzdGlmeTogKFxuICAgICdsZWZ0JzogaWYoJHRleHQtZGlyZWN0aW9uID09IHJ0bCwgZmxleC1lbmQsIGZsZXgtc3RhcnQpLFxuICAgICdyaWdodCc6IGlmKCR0ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGZsZXgtc3RhcnQsIGZsZXgtZW5kKSxcbiAgICAnY2VudGVyJzogY2VudGVyLFxuICAgICdqdXN0aWZ5Jzogc3BhY2UtYmV0d2VlbixcbiAgICAnc3BhY2VkJzogc3BhY2UtYXJvdW5kLFxuICApO1xuXG4gIEByZXR1cm4gJC16Zi1mbGV4LWp1c3RpZnk7XG59XG5cblxuJC16Zi1mbGV4LWFsaWduOiAoXG4gICd0b3AnOiBmbGV4LXN0YXJ0LFxuICAnYm90dG9tJzogZmxleC1lbmQsXG4gICdtaWRkbGUnOiBjZW50ZXIsXG4gICdzdHJldGNoJzogc3RyZXRjaCxcbik7XG5cbiQtemYtZmxleC1kaXJlY3Rpb246IChcbiAgJ3Jvdyc6IHJvdyxcbiAgJ3Jvdy1yZXZlcnNlJzogcm93LXJldmVyc2UsXG4gICdjb2x1bW4nOiBjb2x1bW4sXG4gICdjb2x1bW4tcmV2ZXJzZSc6IGNvbHVtbi1yZXZlcnNlLFxuKTtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBieSBhZGRpbmcgYGRpc3BsYXk6IGZsZXhgIHRvIHRoZSBlbGVtZW50LlxuQG1peGluIGZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBpdGVtcyB3aXRoaW4gYSBmbGV4IGNvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHggW251bGxdIC0gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYGxlZnRgLCBgcmlnaHRgLCBgY2VudGVyYCwgYGp1c3RpZnlgLCBvciBgc3BhY2VkYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IGhvcml6b250YWwgYWxpZ25tZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduKCR4OiBudWxsLCAkeTogbnVsbCkge1xuICBAaWYgJHgge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtanVzdGlmeSwgJHgpIHtcbiAgICAgICR4OiBtYXAtZ2V0KCQtemYtZmxleC1qdXN0aWZ5LCAkeCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHh9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBob3Jpem9udGFsIGFsaWdubWVudC4gVXNlIGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnksIG9yIHNwYWNlZC4nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLXJvdy1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgdmVydGljYWwgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGp1c3RpZnktY29udGVudDogJHg7XG4gIGFsaWduLWl0ZW1zOiAkeTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgYWxpZ24gYSBzaW5nbGUgY29sdW1uIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR5OiBudWxsKSB7XG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLWNvbHVtbi1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGFsaWduLXNlbGY6ICR5O1xufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc291cmNlIG9yZGVyIG9mIGEgZmxleCBjaGlsZC4gQ2hpbGRyZW4gd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgWzBdIC0gT3JkZXIgbnVtYmVyIHRvIGFwcGx5LlxuQG1peGluIGZsZXgtb3JkZXIoJG9yZGVyOiAwKSB7XG4gIG9yZGVyOiAkb3JkZXI7XG59XG5cbi8vLyBDaGFuZ2UgZmxleC1kaXJlY3Rpb25cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW3Jvd10gLSBGbGV4IGRpcmVjdGlvbiB0byB1c2UuIENhbiBiZVxuLy8vICAgLSByb3cgKGRlZmF1bHQpOiBzYW1lIGFzIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIHJvdy1yZXZlcnNlOiBvcHBvc2l0ZSB0byB0ZXh0IGRpcmVjdGlvblxuLy8vICAgLSBjb2x1bW46IHNhbWUgYXMgcm93IGJ1dCB0b3AgdG8gYm90dG9tXG4vLy8gICAtIGNvbHVtbi1yZXZlcnNlOiBzYW1lIGFzIHJvdy1yZXZlcnNlIHRvcCB0byBib3R0b21cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkZGlyZWN0aW9uOiByb3cpIHtcbiAgZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG59XG4iLCIubmF2YmFyIHtcbiAgICAmLW9wZW4ge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgKyAubmF2YmFyX19sYWJlbCB7XG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg3cHgpIHRyYW5zbGF0ZVgoMCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgdHJhbnNsYXRlWCgwKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfiAubmF2YmFyX19saXN0IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgKyBsYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6IGp1c3RpZnkpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IHJlbSg0NHB4KTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAoJGdsb2JhbC1wYWRkaW5nIC8gMS4yNSkgKCRnbG9iYWwtcGFkZGluZyAvIDEuNSk7XG4gICAgICAgIHdpZHRoOiByZW0oNDRweCk7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiAxcHggZG90dGVkICR3aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDNweDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjJzO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNHMgZWFzZTtcbiAgICAgICAgei1pbmRleDogMTIwO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBkb3duKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGdldC1jb2xvcihkYXJrLWJsdWUpLCAwLjk1KTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA4OHB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDY0cHgpO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgyMHB4KTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiAgICAgICAgICAgIHdpZHRoOiA3NXZ3O1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgZ2V0LWNvbG9yKGxpZ2h0LWJsdWUpO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZ2V0LWNvbG9yKGxpZ2h0LWJsdWUpO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMjBweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgdWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBzcGFuOjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCItXCI7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNnB4KTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDE2KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcblxuICAgICAgICBzcGFuOjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIrXCI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDI0cHgpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYyg4KTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5yb3VuZGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2Y3ZjdmNztcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSgzMHB4KTtcbiAgICAgICAgICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDhweCkgcmVtKDE2cHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLmluc3RydWN0aW9ucy1uYXZiYXIge1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMTV2aDtcbiAgICB6LWluZGV4OiA5O1xuXG4gICAgJl9faW5wdXQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICArIGxhYmVsIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXJlbSk7XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDdweCkgdHJhbnNsYXRlWCgxcHgpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC05cHgpIHRyYW5zbGF0ZVgoMXB4KSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfiAuaW5zdHJ1Y3Rpb25zLW5hdmJhcl9fd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB+IC5pbnN0cnVjdGlvbnMtbmF2YmFyX19tYXNrOjpiZWZvcmUge1xuICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgKyBsYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKHJpZ2h0LCBtaWRkbGUpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnZXQtY29sb3IobGlnaHQtYmx1ZSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgcmVtKDMwcHgpIHJlbSgzMHB4KSAwO1xuICAgICAgICBjb2xvcjogZ2V0LWNvbG9yKGdyYXktMDEpO1xuICAgICAgICBoZWlnaHQ6IHJlbSg2MHB4KTtcbiAgICAgICAgbGVmdDogLTFyZW07XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDcuNXB4KTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjRzIGVhc2U7XG4gICAgICAgIHdpZHRoOiByZW0oNzBweCk7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgb3V0bGluZTogMXB4IGRvdHRlZCBnZXQtY29sb3IobGlnaHQtYmx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgd2lkdGg6IHJlbSgxMDBweCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX193cmFwcGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiBqdXN0aWZ5KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnZXQtY29sb3IoZ3JheS0wMSk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg0NHB4KTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICgkZ2xvYmFsLXBhZGRpbmcgLyAxLjI1KSAoJGdsb2JhbC1wYWRkaW5nIC8gMS41KTtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oNDRweCk7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdldC1jb2xvcihsaWdodC1ibHVlKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzLC13ZWJraXQtdHJhbnNmb3JtIC4ycztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAgIHdpZHRoOiA3NSU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ2V0LWNvbG9yKGxpZ2h0LWJsdWUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIHJlbSgzMHB4KSByZW0oMzBweCkgMDtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYyg4MHZoIC0gMzJweCk7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgICAgcGFkZGluZzogKCRnbG9iYWwtcGFkZGluZyAvIDIpIDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNHMgZWFzZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MDBweCk7XG4gICAgICAgIHRvcDogLTJyZW07XG4gICAgICAgIHotaW5kZXg6IDk7XG4gICAgfVxuXG4gICAgJl9fbWFzazo6YmVmb3JlIHtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsYWNrLCAuMzUpO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgcGFkZGluZzogKCRnbG9iYWwtcGFkZGluZyAqIDIpICRnbG9iYWwtcGFkZGluZztcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1tYXJnaW4gLyAyKTtcblxuICAgICAgICAmOmxhc3QtY2hpbGTCoHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG5cbiAgICAgICA+IHVsIHtcbiAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgIH1cblxuICAgICAgIGxpIHtcbiAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiBnZXQtY29sb3IoZ3JheS0wMSk7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIC4xcyBlYXNlO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IGdldC1jb2xvcihncmF5LTAzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi50YWJzIHtcbiAgICAvKiogdGFiIHN0eWxpbmcgKiovXG4gICAgLnRhYiB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJhY2tncm91bmQ6ICR0YWItY29udGVudC1iYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkdGFiLWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oMjZweCk7XG4gICAgICAgIGZsb2F0OiByaWdodDtcblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlIGRvd24pIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qIFN0eWxlIHRoZSBidXR0b25zIGluc2lkZSB0aGUgdGFiICovXG4gICAgLnRhYiBidXR0b24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICAgICBjb2xvcjogJHRhYi1jb2xvcjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBhZGRpbmc6ICR0YWItaXRlbS1wYWRkaW5nO1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICAgICAgICBmb250LXNpemU6ICR0YWItaXRlbS1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkdGFiLWl0ZW0tZm9udC13ZWlnaHQ7XG4gICAgfVxuICAgIC8qIENoYW5nZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIGJ1dHRvbnMgb24gaG92ZXIgKi9cbiAgICAudGFiIGJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cbiAgICAvKiBDcmVhdGUgYW4gYWN0aXZlL2N1cnJlbnQgdGFibGluayBjbGFzcyAqL1xuICAgIC50YWIgYnV0dG9uLmFjdGl2ZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAkdGFiLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFiLWNvbG9yO1xuICAgICAgICBjb2xvcjogJHRhYi1jb250ZW50LWJhY2tncm91bmQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSgyNnB4KTtcbiAgICB9XG4gICAgLyogU3R5bGUgdGhlIHRhYiBjb250ZW50ICovXG4gICAgLnRhYmNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2JrZ19oZXJvLndlYnApO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmLS1ncmF5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ2V0LWNvbG9yKGdyYXktMDEpO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIH1cblxuICAgICZfX3dyYXBwZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG5cbiAgICAmX19uYXZiYXIge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiBqdXN0aWZ5LCAkeTogbWlkZGxlKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShnZXQtY29sb3IoZGFyay1ibHVlKSwgLjk1KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMjVweCByZ2JhKCRibGFjaywgLjEpO1xuICAgICAgICBoZWlnaHQ6IDg4cHg7XG4gICAgICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcblxuICAgICAgICAmLmhpZGUge1xuICAgICAgICAgICAgdG9wOiAtODhweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3dyYXBwZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXIoJHBhZGRpbmc6IDApO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6IGp1c3RpZnksICR5OiB0b3ApO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbG9nbyB7XG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHdpZHRoOiBjbGFtcCgyMDBweCwgMzV2dywgMzAwcHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1wbGFjZWhvbGRlciB7XG4gICAgICAgIGhlaWdodDogODhweDtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5oZXJvIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBhZGRpbmctdG9wOiAoJGdsb2JhbC1tYXJnaW4gKiAzKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvaGVyb19zbWFydHBob25lcy1hcHAud2VicD92PTEuMTEpO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBib3R0b207XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggYXV0bztcbiAgICAgICAgbWFyZ2luLXRvcDogKCRnbG9iYWwtbWFyZ2luICogMS41KTtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG5cbiAgICAgICAgJi0tbm8taW1hZ2Uge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDQyNXB4IGF1dG87XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQ3NXB4O1xuICAgICAgICBwYWRkaW5nOiByZW0oNjBweCkgMDtcbiAgICB9XG5cbiAgICAmX193cmFwcGVyX19lbXB0eV9fdG9wIHtcbiAgICAgICAgbWluLWhlaWdodDogNDc1cHg7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgxNTBweCkgcmVtKDE2cHgpIHJlbSg2MHB4KTtcbiAgICB9XG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1tYXJnaW4gKiAzKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCgxMDAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCg2MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoMTAwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19ib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoNjAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBvbmx5KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcGljdHVyZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICgkZ2xvYmFsLW1hcmdpbiAqIDMpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBvbmx5KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDYpO1xuICAgICAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jdGEge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1tYXJnaW4gKiAzKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQgb25seSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCgxMDAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlICB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQgZG93bikge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNDB2dztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSg2MHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvcHkge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQgb25seSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCg2KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMzVweCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSg0MHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1YnRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcChyZW0oMzBweCksIHJlbSgzOHB4KSwgMTB2aCk7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LXNlbWlib2xkO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1tYXJnaW4gKiAyKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NpdGF0aW9uIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMjBweCk7Ly9jbGFtcChyZW0oMzBweCksIHJlbSgzOHB4KSwgMTB2aCk7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LXNlbWlib2xkO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1tYXJnaW4gKiAyKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4gICAgfVxuXG4gICAgJl9faW1hZ2VfXzUwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSg2MHB4KTtcbiAgICAgICAgaGVpZ2h0OiByZW0oNTBweCk7XG4gICAgfVxuXG4gICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19ncmVlbl9fYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ2V0LWNvbG9yKGFjY2VudC0wNC1kYik7XG4gICAgICAgIGNvbG9yOiBnZXQtY29sb3IoZ3JheS0wMSk7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ2V0LWNvbG9yKGFjY2VudC0wNC1sYik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdldC1jb2xvcihhY2NlbnQtMDQtZGIpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIFJldHVybnMgdGhlIGFwcHJvcHJpYXRlIENTUyBmbGV4IHZhbHVlIGZvciBhIGNlbGwgYmFzZS5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBBY2NlcHRzIGBmdWxsYCwgYGF1dG9gLCBgc2hyaW5rYCwgYGdyb3dgLCBvciBhbnkgb3RoZXIgdmFsdWUgcmVwcmVzZW50aW5nIGEgY2VsbCBzaXplIChpdCB3aWxsIGJlIHRyZWF0ZWQgYXMgYHNocmlua2ApLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IFRoZSBjZWxsIGZsZXggcHJvcGVydHkgdmFsdWUuXG5AZnVuY3Rpb24geHktY2VsbC1iYXNlKCRzaXplOiBmdWxsKSB7XG4gIEBpZiAoJHNpemUgPT0gJ2F1dG8nKSB7XG4gICAgQHJldHVybiAxIDEgMDtcbiAgfVxuICBAZWxzZSBpZiAoJHNpemUgPT0gJ2dyb3cnKSB7XG4gICAgQHJldHVybiAxIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAoJHNpemUgPT0gJ3Nocmluaycgb3IgJHNpemUgPT0gJ2Z1bGwnIG9yIHpmLWlzLWZyYWN0aW9uKCRzaXplLCAkYWxsb3ctbm8tZGVub21pbmF0b3I6IHRydWUpKSB7XG4gICAgQHJldHVybiAwIDAgYXV0bztcbiAgfVxuICBAcmV0dXJuIG51bGw7XG59XG5cbi8vLyBDYWxjdWxhdGUgdGhlIHNpemUgb2YgYSBjZWxsIGd1dHRlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIGBhdXRvYCwgcmV0dXJucyB0aGUgcmVzcG9uc2l2ZSBndXR0ZXJzIG1hcCBgJGd1dHRlcnNgLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfE1hcH0gVGhlIGNlbGwgZ3V0dGVyIHNpemUgb3IgdGhlIHJlc3BvbnNpdmUgZ3V0dGVycyBtYXAuXG5AZnVuY3Rpb24geHktY2VsbC1ndXR0ZXJzKFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRicmVha3BvaW50OiBudWxsXG4pIHtcbiAgLy8gRm9yIGBhdXRvYCwgcmV0dXJucyB0aGUgcmVzcG9uc2l2ZSBtYXAgYCRndXR0ZXJzYC5cbiAgQGlmICgkYnJlYWtwb2ludCA9PSAnYXV0bycpIHtcbiAgICBAcmV0dXJuICRndXR0ZXJzO1xuICB9XG5cbiAgLy8gVXNlIHRoZSBjb250ZXh0dWFsIGJyZWFrcG9pbnQgYnkgZGVmYXVsdC5cbiAgJGJyZWFrcG9pbnQ6IC16Zi1jdXJyZW50LWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpO1xuXG4gIEBpZiAoJGJyZWFrcG9pbnQpIHtcbiAgICBAcmV0dXJuIC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICQtemYtemVyby1icmVha3BvaW50KSBvciAwO1xuICB9XG59XG5cbi8vLyBSZXR1cm5zIHRoZSBwZXJjZW50YWdlIHNpemUgb2YgYSBjZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHNpemUgWyRncmlkLWNvbHVtbnNdIC0gU2l6ZSB0byBtYWtlIHRoZSBjZWxsLiBZb3UgY2FuIHBhc3MgYSB2YWx1ZSBpbiBtdWx0aXBsZSBmb3JtYXRzLCBzdWNoIGFzIGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzNgLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gU2l6ZSBvZiB0aGUgY2VsbCAoaW4gcGVyY2VudCkuXG5AZnVuY3Rpb24geHktY2VsbC1zaXplKFxuICAkc2l6ZTogJGdyaWQtY29sdW1uc1xuKSB7XG4gIEByZXR1cm4gZnJhY3Rpb24tdG8tcGVyY2VudGFnZSgkc2l6ZSwgJGRlbm9taW5hdG9yOiAkZ3JpZC1jb2x1bW5zKTtcbn1cblxuLy8vIFJldHVybnMgdGhlIGFwcHJvcHJpYXRlIENTUyB2YWx1ZSBmb3IgYSBjZWxsIHNpemUuXG4vLy9cbi8vLyBHdXR0ZXJzLXJlbGF0ZWQgYXJndW1lbnRzIGFyZSByZXF1aXJlZCBmb3IgY2VsbHMgd2l0aCBtYXJnaW4gZ3V0dGVycyAoYnkgZGVmYXVsdCkgYXMgdGhlIGd1dHRlciBpcyBpbmNsdWRlZCBpbiB0aGUgd2lkdGguXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAsIGBhdXRvYCwgYHNocmlua2Agb3IgYW55IGZyYWN0aW9uIGxpa2UgYDZgLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvMmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCwgYHBhZGRpbmdgIG9yIGBub25lYC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiBgYXV0b2AsIHJldHVybnMgYSBtYXAgb2Ygc2l6ZXMgYWRhcHRlZCB0byByZXNwb25zaXZlIGd1dHRlcnMuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ8U3RyaW5nfE1hcH0gVGhlIGNlbGwgc2l6aW5nIHByb3BlcnR5IHZhbHVlLCBvciBhIHJlc3BvbnNpdmUgbWFwIG9mIHRoZW0uXG5AZnVuY3Rpb24geHktY2VsbC1zaXplLWNzcyhcbiAgJHNpemU6IGZ1bGwsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRicmVha3BvaW50OiBudWxsXG4pIHtcbiAgJG1hcmdpbi1ndXR0ZXI6IDA7XG5cbiAgQGlmICgkc2l6ZSA9PSAnYXV0bycgb3IgJHNpemUgPT0gJ3NocmluaycpIHtcbiAgICBAcmV0dXJuIGF1dG87XG4gIH1cblxuICAvLyBGb3IgY2VsbHMgd2l0aCBtYXJnaW4gZ3V0dGVycywgdGhlIGd1dHRlciBpcyBpbmNsdWRlZCBpbiB0aGUgd2lkdGguXG4gIEBpZiAoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG4gICAgJG1hcmdpbi1ndXR0ZXI6IHh5LWNlbGwtZ3V0dGVycygkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICAgIEBpZiAoJG1hcmdpbi1ndXR0ZXIgPT0gbnVsbCkge1xuICAgICAgQGVycm9yICd4eS1jZWxsLXNpemU6IG5vIGd1dHRlcnMgd2VyZSBmb3VuZCBpbiBgJGd1dHRlcnNgIGZvciBcIiRicmVha3BvaW50OiAjeyRicmVha3BvaW50fVwiJztcbiAgICB9XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgdGhlIGNlbGwgc2l6ZSAobnVtYmVyKVxuICAkc2l6ZS1yYXc6IGlmKCRzaXplID09ICdmdWxsJywgMTAwJSwgeHktY2VsbC1zaXplKCRzaXplKSk7XG5cbiAgLy8gQ2FsY3VsYXRlIHRoZSBjZWxsIENTUyBzaXplIGluY2x1ZGluZyBndXR0ZXJzIChzdHJpbmcpXG4gIC8vIElmIHRoZSBjZWxsIGhhcyByZXNwb25zaXZlIG1hcmdpbiBndXR0ZXJzLCByZXR1cm4gYSByZXNwb25zaXZlIG1hcCBvZiBzaXplcy5cbiAgQGlmIHR5cGUtb2YoJG1hcmdpbi1ndXR0ZXIpID09ICdtYXAnIHtcbiAgICAkcmVzcG9uc2l2ZS1jc3Mtc2l6ZXM6ICgpO1xuXG4gICAgQGVhY2ggJGJwLCAkbWcgaW4gJG1hcmdpbi1ndXR0ZXIge1xuICAgICAgJHNpemUtY3NzOiBpZigkbWcgPT0gMCwgJHNpemUtcmF3LCBjYWxjKCN7JHNpemUtcmF3fSAtICN7cmVtLWNhbGMoJG1nKX0pKTtcbiAgICAgICRyZXNwb25zaXZlLWNzcy1zaXplczogbWFwLW1lcmdlKCRyZXNwb25zaXZlLWNzcy1zaXplcywgKCRicDogJHNpemUtY3NzKSk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmVzcG9uc2l2ZS1jc3Mtc2l6ZXM7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gYSBzaW5nbGUgQ1NTIHNpemUuXG4gIEBlbHNlIHtcbiAgICAkY3NzLXNpemU6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsICRzaXplLXJhdywgY2FsYygjeyRzaXplLXJhd30gLSAje3JlbS1jYWxjKCRtYXJnaW4tZ3V0dGVyKX0pKTtcbiAgICBAcmV0dXJuICRjc3Mtc2l6ZTtcbiAgfVxufVxuXG4vLy8gU2V0cyBiYXNlIGZsZXggcHJvcGVydGllcyBmb3IgY2VsbHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQWNjZXB0cyBgZnVsbGAsIGBhdXRvYCwgYHNocmlua2AsIGBncm93YCwgb3IgYW55IG90aGVyIHZhbHVlIHJlcHJlc2VudGluZyBhIGNlbGwgc2l6ZSAoaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGBzaHJpbmtgKS5cbkBtaXhpbiB4eS1jZWxsLWJhc2UoJHNpemU6IGZ1bGwpIHtcbiAgJGJhc2U6IHh5LWNlbGwtYmFzZSgkc2l6ZSk7XG5cbiAgZmxleDogI3skYmFzZX07XG5cbiAgLy8gU2V0IGJhc2Ugc3R5bGVzIGZvciBcImZ1bGxcIiBvbmx5XG4gIEBpZigkc2l6ZSA9PSAnZnVsbCcpIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxufVxuXG4vLy8gUmVzZXRzIGEgY2VsbHMgd2lkdGggKG9yIGhlaWdodCBpZiB2ZXJ0aWNhbCBpcyB0cnVlKSBhcyB3ZWxsIGFzIHN0cmlwcyBpdHMgZ3V0dGVycy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXJlc2V0KCR2ZXJ0aWNhbDogdHJ1ZSkge1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgaGVpZ2h0LCB3aWR0aCk7XG4gICN7JGRpcmVjdGlvbn06IGF1dG87XG4gIG1heC0jeyRkaXJlY3Rpb259OiBub25lO1xufVxuXG4vLy8gU2V0cyBzaXppbmcgcHJvcGVydGllcyBmb3IgY2VsbHMuXG4vLy9cbi8vLyBHdXR0ZXJzLXJlbGF0ZWQgYXJndW1lbnRzIGFyZSByZXF1aXJlZCBmb3IgY2VsbHMgd2l0aCBtYXJnaW4gZ3V0dGVycyAoYnkgZGVmYXVsdCkgYXMgdGhlIGd1dHRlciBpcyBpbmNsdWRlZCBpbiB0aGUgd2lkdGguXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKDEwMCUgd2lkdGgpLCBgYXV0b2AgKHVzZSBhbGwgYXZhaWxhYmxlIHNwYWNlKSwgYHNocmlua2AgKHVzZSBvbmx5IHRoZSByZXF1aXJlZCBzcGFjZSkgb3IgYW55IGZyYWN0aW9uIChgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8yYC4uLikuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCwgYHBhZGRpbmdgIG9yIGBub25lYC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiBgYXV0b2AsIGdlbmVyYXRlcyBzaXplcyBhZGFwdGVkIGZvciByZXNwb25zaXZlIGd1dHRlcnMuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG5AbWl4aW4geHktY2VsbC1zaXplKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkc2l6ZXM6IHh5LWNlbGwtc2l6ZS1jc3MoJHNpemUsICRndXR0ZXJzLCAkZ3V0dGVyLXR5cGUsICRicmVha3BvaW50KTtcbiAgJGRpcmVjdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIGhlaWdodCwgd2lkdGgpO1xuXG4gIEBpZiAodHlwZS1vZigkc2l6ZXMpID09ICdtYXAnKSB7XG4gICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoYXV0bywgJHNpemVzKSB7XG4gICAgICAjeyRkaXJlY3Rpb259OiAkLXpmLWJwLXZhbHVlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgI3skZGlyZWN0aW9ufTogJHNpemVzO1xuICB9XG59XG5cbi8vLyBTZXRzIGd1dHRlcnMgcHJvcGVydGllcyBmb3IgY2VsbHMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gLCBgcGFkZGluZ2Agb3IgYG5vbmVgLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbbnVsbF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uIEJ5IGRlZmF1bHQgYHJpZ2h0IGxlZnRgIGZvciBob3Jpem9udGFsIGNlbGxzIGFuZCBgdG9wIGJvdHRvbWAgZm9yIHZlcnRpY2FsIGNlbGxzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIGBhdXRvYCwgZ2VuZXJhdGVzIHJlc3BvbnNpdmUgZ3V0dGVycy4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBEaXJlY3Rpb24gb2YgdGhlIGd1dHRlcnMgdG8gb3V0cHV0LiBTZWUgYCRndXR0ZXItcG9zaXRpb25gLlxuQG1peGluIHh5LWNlbGwtZ3V0dGVycyhcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogbnVsbCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAvLyBHZXQgdGhlIGRlZmF1bHQgZ3V0dGVyIHBvc2l0aW9uIGFjY29yZGluZyB0byBjZWxsIGRpcmVjdGlvblxuICBAaWYoJGd1dHRlci1wb3NpdGlvbiA9PSBudWxsKSB7XG4gICAgJGd1dHRlci1wb3NpdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIHRvcCBib3R0b20sIGxlZnQgcmlnaHQpO1xuICB9XG5cbiAgLy8gR2V0IHRoZSBndXR0ZXIgd2lkdGggZm9yIHRoaXMgYnJlYWtwb2ludFxuICAkZ3V0dGVyLXdpZHRoOiB4eS1jZWxsLWd1dHRlcnMoJGd1dHRlcnMsICRicmVha3BvaW50KTtcbiAgQGlmICgkZ3V0dGVyLXdpZHRoID09IG51bGwpIHtcbiAgICBAZXJyb3IgJ3h5LWNlbGwtZ3V0dGVyczogbm8gZ3V0dGVycyB3ZXJlIGZvdW5kIGluIGAkZ3V0dGVyc2AgZm9yIFwiJGJyZWFrcG9pbnQ6ICN7JGJyZWFrcG9pbnR9XCInO1xuICB9XG5cbiAgQGlmICgkZ3V0dGVyLXR5cGUgYW5kICRndXR0ZXItdHlwZSAhPSBub25lKSB7XG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyLXdpZHRoLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24pO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgY2VsbCBmb3IgeW91ciBncmlkLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBDYW4gYmUgYGZ1bGxgICgxMDAlIHdpZHRoKSwgYGF1dG9gICh1c2UgYWxsIGF2YWlsYWJsZSBzcGFjZSksIGBzaHJpbmtgICh1c2Ugb25seSB0aGUgcmVxdWlyZWQgc3BhY2UpIG9yIGFueSBmcmFjdGlvbiAoYDZgLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvMmAuLi4pLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGd1dHRlci1vdXRwdXQgW251bGxdIC0gW0RFUFJFQ0FURURdIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAsIGBwYWRkaW5nYCBvciBgbm9uZWAuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtudWxsXSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi4gQnkgZGVmYXVsdCBgcmlnaHQgbGVmdGAgZm9yIGhvcml6b250YWwgY2VsbHMgYW5kIGB0b3AgYm90dG9tYCBmb3IgdmVydGljYWwgY2VsbHMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgYGF1dG9gLCBnZW5lcmF0ZXMgcmVzcG9uc2l2ZSBndXR0ZXJzLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuLy8vIEBwYXJhbSB7TGlzdH0gJG91dHB1dCBbKGJhc2Ugc2l6ZSBndXR0ZXJzKV0gLSBDZWxsIHBhcnRzIHRvIG91dHB1dC4gWW91IHdpbGwgbmVlZCB0byBnZW5lcmF0ZSBvdGhlcnMgcGFydHMgb2YgdGhlIGNlbGwgc2VwZXJhdGVseSwgaXQgbWF5IG5vdCB3b3JrIHByb3Blcmx5IG90aGVyd2lzZS5cbkBtaXhpbiB4eS1jZWxsKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlci1vdXRwdXQ6IG51bGwsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IG51bGwsXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkdmVydGljYWw6IGZhbHNlLFxuICAkb3V0cHV0OiAoYmFzZSBzaXplIGd1dHRlcnMpXG4pIHtcbiAgLy8gRGVmYXVsdCBmb3IgJGd1dHRlci1vdXRwdXRcbiAgQGlmICgkZ3V0dGVyLW91dHB1dCAhPSBudWxsKSB7XG4gICAgQHdhcm4gJ3h5LWNlbGw6ICRndXR0ZXItb3V0cHV0IGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gU2VlIG1pZ3JhdGlvbiBub3RlcyBhdCBodHRwczovL2dpdC5pby9mb3VuZGF0aW9uLTYtNi0wJztcbiAgICBAaWYgKCRndXR0ZXItb3V0cHV0ID09IGZhbHNlKSB7XG4gICAgICAkb3V0cHV0OiBzbC1yZW1vdmUoJG91dHB1dCwgZ3V0dGVycyk7XG4gICAgfVxuICB9XG5cbiAgQGlmIChpbmRleCgkb3V0cHV0LCBiYXNlKSkge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZSgkc2l6ZSk7XG4gIH1cbiAgQGlmIChpbmRleCgkb3V0cHV0LCBzaXplKSkge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkc2l6ZSwgJGd1dHRlcnMsICRndXR0ZXItdHlwZSwgJGJyZWFrcG9pbnQsICR2ZXJ0aWNhbCk7XG4gIH1cbiAgQGlmIChpbmRleCgkb3V0cHV0LCBndXR0ZXJzKSkge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtZ3V0dGVycygkZ3V0dGVycywgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uLCAkYnJlYWtwb2ludCwgJHZlcnRpY2FsKTtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHNpemVkIGdyaWQuIFVzZWQgdG8gZ2VuZXJhdGUgb3VyIGdyaWQgY2xhc3Nlcy5cbi8vL1xuLy8vIGB4eS1jZWxsLXN0YXRpYygpYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuXG4vLy8gVXNlIGB4eS1jZWxsKClgIGluc3RlYWQgd2l0aCBgJG91dHB1dDogKHNpemUgZ3V0dGVycylgIHRvIG5vdCBnZW5lcmF0ZSB0aGUgY2VsbCBiYXNlLlxuLy8vIFNlZSBtaWdyYXRpb24gbm90ZXMgYXQgaHR0cHM6Ly9naXQuaW8vZm91bmRhdGlvbi02LTYtMFxuLy8vXG4vLy8gQGRlcHJlY2F0ZWQgdjYuNi4wXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKDEwMCUgd2lkdGgpLCBgYXV0b2AgKHVzZSBhbGwgYXZhaWxhYmxlIHNwYWNlKSwgYHNocmlua2AgKHVzZSBvbmx5IHRoZSByZXF1aXJlZCBzcGFjZSkgb3IgYW55IGZyYWN0aW9uIChgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8yYC4uLikuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVycy4gQWx3YXlzIGB0cnVlYCBmb3IgbWFyZ2luIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXN0YXRpYyhcbiAgJHNpemU6IGZ1bGwsXG4gICRndXR0ZXItb3V0cHV0OiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnQsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICBAd2FybiAneHktY2VsbC1zdGF0aWMoKSBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSBcInh5LWNlbGwoKVwiIGluc3RlYWQuIFNlZSBtaWdyYXRpb24gbm90ZXMgYXQgaHR0cHM6Ly9naXQuaW8vZm91bmRhdGlvbi02LTYtMCc7XG5cbiAgJGd1dHRlcjogLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICRicmVha3BvaW50KTtcbiAgJGd1dHRlci1wb3NpdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIHRvcCBib3R0b20sIGxlZnQgcmlnaHQpO1xuXG4gICQtZ3V0dGVyLW91dHB1dDogaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nLCB0cnVlLCAkZ3V0dGVyLW91dHB1dCk7XG4gICQtZ3V0dGVyLW1hcmdpbjogaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nLCAkZ3V0dGVyLCAwKTtcblxuICBAaW5jbHVkZSAteHktY2VsbC1wcm9wZXJ0aWVzKCRzaXplLCAkLWd1dHRlci1tYXJnaW4sICR2ZXJ0aWNhbCk7XG4gIEBpZiAoJC1ndXR0ZXItb3V0cHV0KSB7XG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24pO1xuICB9XG59XG4iLCIuaGlnaGxpZ2h0cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICZfX2xpc3Qge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9fZWxlbWVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDEwKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtb2Zmc2V0KDEpO1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICgkZ2xvYmFsLXBhZGRpbmcgKiAzLjEyNSk7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDQsICRndXR0ZXJzOiA2cmVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3BpY3R1cmUge1xuICAgICAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICAgICAgICBwYWRkaW5nOiAoJGdsb2JhbC1wYWRkaW5nIC8gMik7XG4gICAgICAgIHdpZHRoOiAxMDBweDtcblxuICAgICAgICBAc3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86IDEgLyAxKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IHJlbSgyMHB4KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIFJldHVybnMgdGhlIGFwcHJvcHJpYXRlIENTUyB2YWx1ZSB0byBvZmZzZXQgYSBjZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBTaXplIHRvIG9mZnNldCBieS4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYHh5LWNlbGwoKWAgbWl4aW4sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIE1hcCBvZiBndXR0ZXJzIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSBUaGUgdHlwZSBvZiBndXR0ZXIgdG8gdXNlLiBDYW4gYmUgYG1hcmdpbmAgb3IgYHBhZGRpbmdgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcnxTdHJpbmd9IFRoZSBjZWxsIG9mZnNldCBwcm9wZXJ0eSB2YWx1ZS5cbkBmdW5jdGlvbiB4eS1jZWxsLW9mZnNldChcbiAgJG4sXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRicmVha3BvaW50OiBudWxsXG4pIHtcbiAgJGJyZWFrcG9pbnQ6IC16Zi1jdXJyZW50LWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQsICRkZWZhdWx0OiAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gICRzaXplOiB4eS1jZWxsLXNpemUoJG4pO1xuXG4gICRvZmZzZXQ6ICRzaXplO1xuICBAaWYgKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuICAgICRndXR0ZXI6IHJlbS1jYWxjKHh5LWNlbGwtZ3V0dGVycygkZ3V0dGVycywgJGJyZWFrcG9pbnQpKTtcbiAgICAkb2Zmc2V0OiBpZigkZ3V0dGVyID09IDAsICRzaXplLCBjYWxjKCN7JHNpemV9ICsgI3skZ3V0dGVyfSAvIDIpKTtcbiAgfVxuICBAcmV0dXJuICRvZmZzZXQ7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodC9ib3R0b20gYnkgYCRuYCBjb2x1bW5zLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBTaXplIHRvIG9mZnNldCBieS4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYHh5LWNlbGwoKWAgbWl4aW4sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIE1hcCBvZiBndXR0ZXJzIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSBUaGUgdHlwZSBvZiBndXR0ZXIgdG8gdXNlLiBDYW4gYmUgYG1hcmdpbmAgb3IgYHBhZGRpbmdgXG4vLy8gQHBhcmFtIHtOdW1iZXJ8QXJyYXl8S2V5d29yZH0gJGJyZWFrcG9pbnQgW251bGxdIC0gQnJlYWtwb2ludCB0byB1c2UgZm9yIGAkZ3V0dGVyc2AuIEl0IGNhbiBiZSBhIGJyZWFrcG9pbnQgbmFtZSwgbGlzdCBvZiBicmVha3BvaW50cyBvciBgYXV0b2AgZm9yIGFsbCBicmVha3BvaW50cy4gSWYgYSBsaXN0IGlzIGdpdmVuLCBtZWRpYS1xdWVyaWVzIHdpbGwgYmUgZ2VuZXJhdGVkLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgdGhlIG9mZnNldC4gSWYgc2V0IHRvIHRydWUgd2lsbCBhcHBseSBtYXJnaW4tdG9wIGluc3RlYWQuXG5AbWl4aW4geHktY2VsbC1vZmZzZXQoXG4gICRuLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRicmVha3BvaW50OiAtemYtY3VycmVudC1icmVha3BvaW50KCRicmVha3BvaW50LCAkZGVmYXVsdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwsICd0b3AnLCAkZ2xvYmFsLWxlZnQpO1xuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oJGJyZWFrcG9pbnQsICRtZWRpYS1xdWVyaWVzOiAnZm9yLWxpc3RzJykge1xuICAgICRvZmZzZXQ6IHh5LWNlbGwtb2Zmc2V0KCRuLCAkZ3V0dGVycywgJGd1dHRlci10eXBlKTtcbiAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogI3skb2Zmc2V0fTtcbiAgfVxufVxuIiwiLndlYnBsYW5uZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvYXNzZXRzL2ltZy93ZWJwbGFubmVyLndlYnApO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MDBweCBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogNzQycHggMzk0cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3AteHhsKSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDc1JSBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2hlYWRlciB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWFpbiB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICBAZXh0ZW5kICVmb250LWFsdDtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMjBweCk7XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1tYXJnaW4gLyAyKTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIubmF0aXZlYXBwIHtcbiAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL25hdGl2ZWFwcC53ZWJwKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA4MCUgY2VudGVyO1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogbWlkZGxlKTtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKGdldC1jb2xvcihncmF5LTAxKSwgLjcpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDcsIDE3LCAyNSwgMSkgMzAlLCByZ2JhKDcsIDE3LCAyNSwgMCkgMTAwJSksXG4gICAgICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxNSwgNywgMjUsIDEpIDE1JSwgcmdiYSgwLCA5MSwgMjM0LCAuNykgMTAwJSk7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAoJGdsb2JhbC1wYWRkaW5nICogMy43NSkgMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21haW4sXG4gICAgJl9faGVhZGVyLFxuICAgICZfX2Zvb3RlciB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZm9vdGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDYwcHgpO1xuICAgIH1cblxuICAgICZfX3ZpZGVvIHtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7XG5cbiAgICAgICAgQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiAxNiAvIDkpIHtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogNTkxLjQ0cHggLyAxMTI3LjM0cHggKiAxMDAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmlkZW8ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBmaWx0ZXI6IHVybCgjbmF0aXZlYXBwX19maWx0ZXIpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xuICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiA4NXZ3O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgICB9XG59XG4iLCIuZmVhdHVyZXMge1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzYyNzM4NztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2ZlYXR1cmVfYmFja2dyb3VuZC53ZWJwP3Y9MS4xMSk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgcGFkZGluZzogKCRnbG9iYWwtcGFkZGluZyAqIDMuNzUpIDA7XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsYWNrLCAuNzUpO1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNXB4KTtcbiAgICAgICAgcGFkZGluZzogKCRnbG9iYWwtcGFkZGluZyAqIDMpICRnbG9iYWwtcGFkZGluZzs7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCg2KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21haW4ge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCg1KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGR0IHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMjBweCk7XG4gICAgfVxuXG4gICAgZGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1tYXJnaW4gKiAyLjI1KTtcbiAgICB9XG59XG4iLCIudGVhbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFsaWNlLWJsdWU7XG4gICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogNzUlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2FyZHMge1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtbWFyZ2luICogMik7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDYsICRndXR0ZXJzOiAwKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoNCwgJGd1dHRlcnM6IDApO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gRmluZHMgdGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yIG9mIHR3byBpbnRlZ2Vycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYSAtIEZpcnN0IG51bWJlciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYiAtIFNlY29uZCBudW1iZXIgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvci5cbkBmdW5jdGlvbiBnY2QoJGEsICRiKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9HcmVhdGVzdF9jb21tb25fZGl2aXNvciNKYXZhU2NyaXB0XG4gIEBpZiAoJGIgIT0gMCkge1xuICAgIEByZXR1cm4gZ2NkKCRiLCAkYSAlICRiKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBhYnMoJGEpO1xuICB9XG59XG5cbi8vLyBIYW5kbGVzIGRlY2ltYWwgZXhwb25lbnRzIGJ5IHRyeWluZyB0byBjb252ZXJ0IHRoZW0gaW50byBhIGZyYWN0aW9uIGFuZCB0aGVuIHVzZSBhIG50aC1yb290LWFsZ29yaXRobSBmb3IgcGFydHMgb2YgdGhlIGNhbGN1bGF0aW9uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgYmFzZSBudW1iZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHBvbmVudCAtIFRoZSBleHBvbmVudC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBwcm9kdWN0IG9mIHRoZSBleHBvbmVudGlhdGlvbi5cbkBmdW5jdGlvbiBwb3coJGJhc2UsICRleHBvbmVudCwgJHByZWM6IDE2KSB7XG4gIEBpZiAoZmxvb3IoJGV4cG9uZW50KSAhPSAkZXhwb25lbnQpIHtcbiAgICAkcHJlYzI6IHBvdygxMCwgJHByZWMpO1xuICAgICRleHBvbmVudDogcm91bmQoJGV4cG9uZW50ICogJHByZWMyKTtcbiAgICAkZGVub21pbmF0b3I6IGdjZCgkZXhwb25lbnQsICRwcmVjMik7XG4gICAgQHJldHVybiBudGgtcm9vdChwb3coJGJhc2UsIGRpdmlkZSgkZXhwb25lbnQsICRkZW5vbWluYXRvcikpLCBkaXZpZGUoJHByZWMyLCAkZGVub21pbmF0b3IpLCAkcHJlYyk7XG4gIH1cblxuICAkdmFsdWU6ICRiYXNlO1xuICBAaWYgJGV4cG9uZW50ID4gMSB7XG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiAkYmFzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cG9uZW50IDwgMSB7XG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAtJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogZGl2aWRlKCR2YWx1ZSwgJGJhc2UpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gbnRoLXJvb3QoJG51bSwgJG46IDIsICRwcmVjOiAxMikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvTnRoX3Jvb3QjSmF2YVNjcmlwdFxuICAkeDogMTtcblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRwcmVjIHtcbiAgICAkeDogZGl2aWRlKDEsICRuKSAqICgoJG4gLSAxKSAqICR4ICsgZGl2aWRlKCRudW0sIHBvdygkeCwgJG4gLSAxKSkpO1xuICB9XG5cbiAgQHJldHVybiAkeDtcbn1cblxuLy8vIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIHdpZHRoIGZvciBhIGdpdmVuIHJhdGlvLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhdGlvIC0gUmF0aW8gdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgaGVpZ2h0LCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG4vLy8gQHJldHVybiB7TnVtYmVyfSBBIHBlcmNlbnRhZ2UgdmFsdWUgZm9yIHRoZSBoZWlnaHQgcmVsYXRpdmUgdG8gdGhlIHdpZHRoIG9mIGEgcmVzcG9uc2l2ZSBjb250YWluZXIuXG5AZnVuY3Rpb24gcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pIHtcbiAgJHc6IG50aCgkcmF0aW8sIDEpO1xuICAkaDogbnRoKCRyYXRpbywgMyk7XG4gIEByZXR1cm4gZGl2aWRlKCRoLCAkdykgKiAxMDAlO1xufVxuXG4vLy8gUGFyc2UgdGhlIGdpdmVuIGAkZnJhY3Rpb25gIHRvIG51bWVyYXRvcnMgYW5kIGRlbnVtZXJhdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJGZyYWN0aW9uIC0gVmFsdWUgcmVwcmVzZW50aW5nIGEgZnJhY3Rpb24gdG8gcGFyc2UuIEl0IGNhbiBiZSBmb3JtYXR0ZWQgYXMgYDUwJWAsIGAxIG9mIDJgLCBgMS8yYCBvciBgNTBgIChubyBkZW5vbWluYXRvciB3b3VsZCBiZSByZXR1cm5lZCkuXG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBMaXN0IG9mIHBhcnNlZCB2YWx1ZXMgd2l0aCBudW1lcmF0b3IgYXQgZmlyc3QgcG9zaXRpb24gYW5kIGRlbnVtZXJhdG9yIGFzIHNlY29uZC4gVGhlc2UgdmFsdWVzIG1heSBiZSBudWxsLlxuQGZ1bmN0aW9uIHpmLXBhcnNlLWZyYWN0aW9uKCRmcmFjdGlvbikge1xuXG4gIEBpZiB0eXBlLW9mKCRmcmFjdGlvbikgPT0gJ251bWJlcicge1xuICAgIC8vIFwiNTAlXCJcbiAgICBAaWYgdW5pdCgkZnJhY3Rpb24pID09ICclJyB7XG4gICAgICBAcmV0dXJuIChzdHJpcC11bml0KCRmcmFjdGlvbiksIDEwMCk7XG4gICAgfVxuICAgIEBlbHNlIGlmICh1bml0KCRmcmFjdGlvbikgPT0gJycpIHtcbiAgICAgIC8vIFwiMC41XCJcbiAgICAgIEBpZiAkZnJhY3Rpb24gPCAxIHtcbiAgICAgICAgQHJldHVybiAoJGZyYWN0aW9uICogMTAwLCAxMDApO1xuICAgICAgfVxuICAgICAgLy8gXCI1MFwiXG4gICAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gKCRmcmFjdGlvbiwgbnVsbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgdHlwZS1vZigkZnJhY3Rpb24pID09ICdsaXN0JyB7XG4gICAgLy8gXCI1MCBvZiAxMDBcIiwgXCI1MC8xMDBcIi4uLlxuICAgIEBpZiBsZW5ndGgoJGZyYWN0aW9uKSA9PSAzXG4gICAgYW5kIHR5cGUtb2YobnRoKCRmcmFjdGlvbiwgMSkgPT0gJ251bWJlcicpXG4gICAgYW5kIHR5cGUtb2YobnRoKCRmcmFjdGlvbiwgMykgPT0gJ251bWJlcicpIHtcbiAgICAgIEByZXR1cm4gKG50aCgkZnJhY3Rpb24sIDEpLCBudGgoJGZyYWN0aW9uLCAzKSk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAobnVsbCwgbnVsbCk7XG59XG5cbi8vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGdpdmVuIGAkdmFsdWVgIHJlcHJlc2VudHMgYSBmcmFjdGlvbi4gU3VwcG9ydHMgZm9ybWF0cyBsaWtlIGA1MCVgLCBgMSBvZiAyYCwgYDEgcGVyIDJgIG9yIGAxLzJgLlxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWUgLSBWYWx1ZSB0byB0ZXN0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGFsbG93LW5vLWRlbm9taW5hdG9yIFtmYWxzZV0gLSBJZiBgdHJ1ZWAsIHNpbXBsZSBudW1iZXJzIHdpdGhvdXQgZGVub21pbmF0b3JzIGxpa2UgYDUwYCBhcmUgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gYHRydWVgIGlmIGAkdmFsdWVgIHJlcHJlc2VudHMgYSBmcmFjdGlvbiwgYGZhbHNlYCBvdGhlcndpc2UuXG5AZnVuY3Rpb24gemYtaXMtZnJhY3Rpb24oJHZhbHVlLCAkYWxsb3ctbm8tZGVub21pbmF0b3I6IGZhbHNlKSB7XG4gICRwYXJzZWQ6IHpmLXBhcnNlLWZyYWN0aW9uKCR2YWx1ZSk7XG4gIEByZXR1cm4gbm90KG50aCgkcGFyc2VkLCAxKSA9PSBudWxsXG4gICAgb3IgKG50aCgkcGFyc2VkLCAyKSA9PSBudWxsIGFuZCAkYWxsb3ctbm8tZGVub21pbmF0b3IgPT0gZmFsc2UpKTtcbn1cblxuLy8vIENhbGN1bGF0ZSBhIHBlcmNlbnRhZ2UgZnJvbSBhIGdpdmVuIGZyYWN0aW9uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGZyYWN0aW9uIC0gVmFsdWUgcmVwcmVzZW50aW5nIGEgZnJhY3Rpb24gdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgcGVyY2VudGFnZSwgZm9ybWF0dGVkIGFzIGA1MGAgKHJlbGF0aXZlIHRvIGAkZGVub21pbmF0b3JgKSwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRkZW5vbWluYXRvciAtIERlZmF1bHQgdmFsdWUgdG8gdXNlIGFzIGRlbm9taW5hdG9yIHdoZW4gYCRmcmFjdGlvbmAgcmVwcmVzZW50cyBhbiBhYnNvbHV0ZSB2YWx1ZS5cbkBmdW5jdGlvbiBmcmFjdGlvbi10by1wZXJjZW50YWdlKFxuICAkZnJhY3Rpb24sXG4gICRkZW5vbWluYXRvcjogbnVsbFxuKSB7XG4gICRwYXJzZWQ6IHpmLXBhcnNlLWZyYWN0aW9uKCRmcmFjdGlvbik7XG4gICRwYXJzZWQtbm9taW5hdG9yOiBudGgoJHBhcnNlZCwgMSk7XG4gICRwYXJzZWQtZGVub21pbmF0b3I6IG50aCgkcGFyc2VkLCAyKTtcblxuICBAaWYgJHBhcnNlZC1ub21pbmF0b3IgPT0gbnVsbCB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIFwiZnJhY3Rpb24tdG8tcGVyY2VudGFnZSgpXCIuIFVzZSBhIG51bWJlciwgZGVjaW1hbCwgcGVyY2VudGFnZSwgb3IgXCJuIG9mIG5cIiAvIFwibi9uXCIuJztcbiAgfVxuICBAaWYgJHBhcnNlZC1kZW5vbWluYXRvciA9PSBudWxsIHtcbiAgICBAaWYgdHlwZS1vZigkZGVub21pbmF0b3IpID09ICdudW1iZXInIHtcbiAgICAgICRwYXJzZWQtZGVub21pbmF0b3I6ICRkZW5vbWluYXRvcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGVycm9yICdFcnJvciB3aXRoIFwiZnJhY3Rpb24tdG8tcGVyY2VudGFnZSgpXCIuIEEgZGVmYXVsdCBcIiRkZW5vbWluYXRvclwiIGlzIHJlcXVpcmVkIHRvIHN1cHBvcnQgYWJzb2x1dGUgdmFsdWVzJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHBlcmNlbnRhZ2UoZGl2aWRlKCRwYXJzZWQtbm9taW5hdG9yLCAkcGFyc2VkLWRlbm9taW5hdG9yKSk7XG59XG5cbi8vLyBEaXZpZGUgdGhlIGdpdmVuIGAkZGl2aWRlbnRgIGJ5IHRoZSBnaXZlbiBgJGRpdmlzb3JgLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRkaXZpZGVudCAtIFRoZSBkaXZpZGVudC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGRpdmlzb3IgLSBUaGUgZGl2aXNvci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHByZWNpc2lvbiAtIFRoZSBwcmVjaXNpb24gZGVjaW1hbHMgZm9yIHRoZSBkaXZpc2lvbi5cbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gVGhlIHByb2R1Y3Qgb2YgdGhlIGRpdmlzaW9uLlxuQGZ1bmN0aW9uIGRpdmlkZSgkZGl2aWRlbmQsICRkaXZpc29yLCAkcHJlY2lzaW9uOiAxMikge1xuICAkc2lnbjogaWYoJGRpdmlkZW5kID4gMCBhbmQgJGRpdmlzb3IgPiAwIG9yICRkaXZpZGVuZCA8IDAgYW5kICRkaXZpc29yIDwgMCwgMSwgLTEpO1xuICAkZGl2aWRlbmQ6IGFicygkZGl2aWRlbmQpO1xuICAkZGl2aXNvcjogYWJzKCRkaXZpc29yKTtcbiAgQGlmICRkaXZpZGVuZCA9PSAwIHtcbiAgICBAcmV0dXJuIDA7XG4gIH1cbiAgQGlmICRkaXZpc29yID09IDAge1xuICAgIEBlcnJvciAnQ2Fubm90IGRpdmlkZSBieSAwJztcbiAgfVxuICAkcmVtYWluZGVyOiAkZGl2aWRlbmQ7XG4gICRyZXN1bHQ6IDA7XG4gICRmYWN0b3I6IDEwO1xuICBAd2hpbGUgKCRyZW1haW5kZXIgPiAwIGFuZCAkcHJlY2lzaW9uID49IDApIHtcbiAgICAkcXVvdGllbnQ6IDA7XG4gICAgQHdoaWxlICgkcmVtYWluZGVyID49ICRkaXZpc29yKSB7XG4gICAgICAkcmVtYWluZGVyOiAkcmVtYWluZGVyIC0gJGRpdmlzb3I7XG4gICAgICAkcXVvdGllbnQ6ICRxdW90aWVudCArIDE7XG4gICAgfVxuICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArICRxdW90aWVudDtcbiAgICAkZmFjdG9yOiAkZmFjdG9yICogMC4xO1xuICAgICRyZW1haW5kZXI6ICRyZW1haW5kZXIgKiAxMDtcbiAgICAkcHJlY2lzaW9uOiAkcHJlY2lzaW9uIC0gMTtcbiAgICBAaWYgKCRwcmVjaXNpb24gPCAwIGFuZCAkcmVtYWluZGVyID49ICRkaXZpc29yICogNSkge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIDE7XG4gICAgfVxuICB9XG4gICRyZXN1bHQ6ICRyZXN1bHQgKiAkZmFjdG9yICogJHNpZ247XG4gICRkaXZpZGVuZC11bml0OiB1bml0KCRkaXZpZGVuZCk7XG4gICRkaXZpc29yLXVuaXQ6IHVuaXQoJGRpdmlzb3IpO1xuICAkdW5pdC1tYXA6IChcbiAgICAncHgnOiAxcHgsXG4gICAgJ3JlbSc6IDFyZW0sXG4gICAgJ2VtJzogMWVtLFxuICAgICclJzogMSVcbiAgKTtcbiAgQGlmICgkZGl2aWRlbmQtdW5pdCAhPSAkZGl2aXNvci11bml0IGFuZCBtYXAtaGFzLWtleSgkdW5pdC1tYXAsICRkaXZpZGVuZC11bml0KSkge1xuICAgICRyZXN1bHQ6ICRyZXN1bHQgKiBtYXAtZ2V0KCR1bml0LW1hcCwgJGRpdmlkZW5kLXVuaXQpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuIiwiLnBhcnRuZXJzIHtcbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogbWlkZGxlKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR5OiB0b3ApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoNCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCgyMCUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtbWFyZ2luIC8gMik7XG4gICAgfVxuXG4gICAgc21hbGwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG4iLCIuY29udGFjdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgIGNvbG9yOiAkd2hpdGU7XG5cbiAgICAmX19zdWJ0aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDQwcHgpO1xuICAgIH1cblxuICAgICZfX3dyYXBwZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogcmVtKDgwMHB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2hyZWZ7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgJl9faHJlZjpob3ZlcntcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG5cblxuICAgICZfX2hlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg4cHgpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCg5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21haW4ge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19mb290ZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoMyk7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oNjRweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19uZXdzbGV0dGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtbWFyZ2luICogMik7XG4gICAgfVxuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZDtcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoYXV0byk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCgxMik7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogbWlkZGxlKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1tYXJnaW4gKiAzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRnbG9iYWwtbWFyZ2luO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA6aXMoZGwsIGR0KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6IGp1c3RpZnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDUsICRndXR0ZXJzOiAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCg0LCAkZ3V0dGVyczogMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29ucyB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oanVzdGlmeSk7XG4gICAgICAgIG1hcmdpbjogKCRnbG9iYWwtbWFyZ2luICogMikgMDtcbiAgICB9XG5cbiAgICAmX19tZW51IHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTZweCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1zZW1pYm9sZDtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVudS1iYXNlO1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICgkZ2xvYmFsLW1hcmdpbiAqIDIpO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjN2RhNWY5O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNHB4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvcHlyaWdodCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCgxMiwgJGd1dHRlcnM6IDApO1xuICAgICAgICB9XG5cbiAgICAgICAgYXtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTZweCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVudVxuLy8vL1xuXG4vLy8gTWFyZ2luIG9mIGEgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIExlZnQtaGFuZCBtYXJnaW4gb2YgYSBuZXN0ZWQgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgaXRlbXMgaW4gYSBwaWxsIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pdGVtcy1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBzaW1wbGUgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LXNpbXBsZS1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGl2ZSB0ZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWNvbG9yLWFsdC1hY3RpdmU6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGFuIGljb24gYW5kIHRleHQgaW4gYSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBtZW51IHN0YXRlLiBJZiB0cnVlLCB0aGlzIGR1cGxpY2F0ZSBgYWN0aXZlYCB3aXRoIGBpcy1hY3RpdmVgLlxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBhY3RpdmVgIHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1zdGF0ZS1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgY2VudGVyZWQuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGAubWVudS1jZW50ZXJlZCA+IC5tZW51YCB3aXRoIGAubWVudS5hbGlnbi1jZW50ZXJgLlxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBtZW51LWNlbnRlcmVkYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciB1c2luZyBgaWNvbi0qYCBjbGFzc2VzIHdpdGhvdXQgYC5pY29uc2AgY2xhc3Nlc1xuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IHRoaXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtaWNvbnMtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBNZW51LlxuQG1peGluIG1lbnUtYmFzZSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgbGkge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgfVxuXG4gIGEsXG4gIC5idXR0b24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtcy1wYWRkaW5nO1xuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9mIGlubmVyIGVsZW1lbnRzXG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuLy8vIEV4cGFuZHMgdGhlIGl0ZW1zIG9mIGEgTWVudSwgc28gZWFjaCBpdGVtIGlzIHRoZSBzYW1lIHdpZHRoLlxuQG1peGluIG1lbnUtZXhwYW5kIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgPiBsaSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFsaWduIG1lbnUgaXRlbXMuXG5AbWl4aW4gbWVudS1hbGlnbigkYWxpZ25tZW50KSB7XG4gIEBpZiAkYWxpZ25tZW50ID09IGxlZnQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuXG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSBjZW50ZXIge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbXBsZSBNZW51LCB3aGljaCBoYXMgbm8gcGFkZGluZyBvciBob3ZlciBzdGF0ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnUuIFRoaXMgZWZmZWN0cyB0aGUgc2lkZSBvZiB0aGUgYDxsaT5gIHRoYXQgcmVjZWl2ZXMgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1hcmdpbiBbJG1lbnUtc2ltcGxlLW1hcmdpbl0gLSBUaGUgbWFyZ2luIHRvIGFwcGx5IHRvIGVhY2ggYDxsaT5gLlxuQG1peGluIG1lbnUtc2ltcGxlKCRkaXI6ICRnbG9iYWwtbGVmdCwgJG1hcmdpbjogJG1lbnUtc2ltcGxlLW1hcmdpbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgbGkgKyBsaSB7XG4gICAgbWFyZ2luLSN7JGRpcn06ICRtYXJnaW47XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBuZXN0ZWQgTWVudSwgYnkgYWRkaW5nIGBtYXJnaW4tbGVmdGAgdG8gdGhlIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJG1hcmdpbiBbJG1lbnUtbmVzdGVkLW1hcmdpbl0gLSBMZW5ndGggb2YgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRuZXN0ZWQtYWxpZ25tZW50IFtsZWZ0XSAtIEFsaWdubWVudCBvZiB0aGUgbmVzdGVkIGNsYXNzXG5AbWl4aW4gbWVudS1uZXN0ZWQoXG4gICRtYXJnaW46ICRtZW51LW5lc3RlZC1tYXJnaW4sXG4gICRuZXN0ZWQtYWxpZ25tZW50OiBsZWZ0XG4pIHtcbiAgQGlmICRuZXN0ZWQtYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJG1hcmdpbjtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbWFyZ2luO1xuICB9XG5cbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBpY29ucyBpbiBtZW51cy5cbkBtaXhpbiBtZW51LWljb25zKCkge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBpbWcsXG4gICAgaSxcbiAgICBzdmcge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgKyBzcGFuIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFsaWduIHRvcC9ib3R0b20gaWNvbnMgd2l0aGluIGEgbWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRhbGlnbm1lbnQgW2NlbnRlcl0gLSBBbGlnbm1lbnQgb2YgdGhlIGljb25cbkBtaXhpbiBtZW51LWljb24tYWxpZ25tZW50KCRhbGlnbm1lbnQ6IGNlbnRlcikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAmLmljb24tdG9wLFxuICAgICYuaWNvbi1ib3R0b20ge1xuICAgICAgbGkgYSB7XG4gICAgICAgIGltZyxcbiAgICAgICAgaSxcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICBAaWYgJGFsaWdubWVudCA9PSBsZWZ0IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSByaWdodCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHBvc2l0aW9uIGNsYXNzZXMgZm9yIGljb25zIHdpdGhpbiBhIG1lbnUuXG5AbWl4aW4gbWVudS1pY29uLXBvc2l0aW9uKCRwb3NpdGlvbjogbGVmdCwgJHNwYWNpbmc6ICRtZW51LWljb24tc3BhY2luZykge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAgYXV0byAkc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAkc3BhY2luZyBhdXRvIDA7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZW51LXRleHQge1xuICBwYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcblxuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5AbWl4aW4gbWVudS1zdGF0ZS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlLCAoJG1lbnUtaXRlbS1jb2xvci1hY3RpdmUsICRtZW51LWl0ZW0tY29sb3ItYWx0LWFjdGl2ZSkpO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZW51IHtcbiAgLm1lbnUge1xuICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcblxuICAgIC8vIERlZmF1bHQgb3JpZW50YXRpb246IGhvcml6b250YWxcbiAgICAmLCAmLmhvcml6b250YWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgfVxuXG4gICAgLy8gVmVydGljYWwgb3JpZW50YXRpb24gbW9kaWZpZXJcbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1hbGlnbm1lbnQobGVmdCk7XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBtb2RpZmllciBmb3IgaG9yaXpvbnRhbCBvcmllbnRhdGlvblxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tYWxpZ25tZW50KGxlZnQpO1xuICAgIH1cblxuICAgIC8vIFNpbXBsZVxuICAgICYuc2ltcGxlIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlO1xuICAgIH1cblxuICAgIC8vIEJyZWFrcG9pbnQgc3BlY2lmaWMgdmVyc2lvbnNcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogZmFsc2UpIHtcbiAgICAgICYuI3skLXpmLXNpemV9LWhvcml6b250YWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tdmVydGljYWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LWV4cGFuZGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXNpbXBsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmLm5lc3RlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZDtcbiAgICB9XG5cbiAgICAvLyBJY29uIEJhc2UgU3R5bGVzXG4gICAgJi5pY29ucyB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuICAgIH1cblxuICAgIC8vIEJhY2t3YXJkIENvbXBhdGliaWxpdHkgZm9yIGFjdGl2ZSBzdGF0ZVxuICAgIEBpZiAkbWVudS1pY29ucy1iYWNrLWNvbXBhdCB7XG4gICAgICAmLmljb24tdG9wLFxuICAgICAgJi5pY29uLXJpZ2h0LFxuICAgICAgJi5pY29uLWJvdHRvbSxcbiAgICAgICYuaWNvbi1sZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNZW51IGljb24gcG9zaXRpb25cbiAgICAvLyBJbmNsdWRlcyBzcGVjaWZpY2l0eSB0byBuZXN0ZWQgaWNvbnMgd2l0aCBhIGRpZmZlcmVudCBwb3NpdGlvblxuICAgICYsXG4gICAgJi5uZXN0ZWQge1xuICAgICAgLy8gSWNvbiBMZWZ0XG4gICAgICAmLmljb24tbGVmdCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihsZWZ0KTtcbiAgICAgIH1cblxuICAgICAgLy8gSWNvbiBSaWdodFxuICAgICAgJi5pY29uLXJpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHJpZ2h0KTtcbiAgICAgIH1cblxuICAgICAgLy8gSWNvbiBUb3BcbiAgICAgICYuaWNvbi10b3Age1xuICAgICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24odG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gSWNvbiBCb3R0b21cbiAgICAgICYuaWNvbi1ib3R0b20ge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24oYm90dG9tKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAuaXMtYWN0aXZlID4gYSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5IGZvciBhY3RpdmUgc3RhdGVcbiAgICBAaWYgJG1lbnUtc3RhdGUtYmFjay1jb21wYXQge1xuICAgICAgLmFjdGl2ZSA+IGEge1xuICAgICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBsZWZ0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtbGVmdH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBBbGlnbiByaWdodFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKHJpZ2h0KTtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1hbGlnbm1lbnQocmlnaHQpO1xuXG4gICAgICAubmVzdGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJG5lc3RlZC1hbGlnbm1lbnQ6IHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBjZW50ZXJcbiAgICAmLmFsaWduLWNlbnRlciB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgfVxuXG4gICAgLm1lbnUtdGV4dCB7XG4gICAgICBAaW5jbHVkZSBtZW51LXRleHQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0IHtcbiAgICAubWVudS1jZW50ZXJlZCB7XG4gICAgICA+IC5tZW51IHtcbiAgICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJldmVudCBGT1VDIHdoZW4gdXNpbmcgdGhlIFJlc3BvbnNpdmUgTWVudSBwbHVnaW5cbiAgLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi5oaXJpbmdkYXJrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmF5O1xuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHk6IG1pZGRsZSk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogdG9wKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCg0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDIwJSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1tYXJnaW4gLyAyKTtcbiAgICB9XG5cbiAgICBzbWFsbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cbiIsIi5oaXJpbmdsaWdodCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogbWlkZGxlKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR5OiB0b3ApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoMjAlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICgkZ2xvYmFsLW1hcmdpbiAvIDIpO1xuICAgIH1cblxuICAgIHNtYWxsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuIiwiLnVzZWNhc2VzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZ2V0LWNvbG9yKGdyYXktMDMpO1xuXG4gICAgLmNhcm91c2VsIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0IGRvd24pIHtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDEyOTZweCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQgZG93bikge1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMTM0MHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlIGRvd24pIHtcbiAgICAgICAgICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpZGUge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgei1pbmRleDogMjA7XG4gICAgICAgIGhlaWdodDogcmVtKDkwMHB4KTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5zbGlkZS5jdXJyZW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHotaW5kZXg6IDUwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLnNsaWRlLnByZXYge1xuICAgICAgICBsZWZ0OiAtMTAwJTtcbiAgICB9XG4gICAgLnNsaWRlLm5leHQge1xuICAgICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cblxuICAgIC5zbGlkZW5hdiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiByZW0oMzBweCk7XG4gICAgICAgIGxlZnQ6IGNhbGMoKDEwMHZ3IC0gI3skZ2xvYmFsLXdpZHRofSkgLyAyKTtcbiAgICAgICAgei1pbmRleDogMjA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IHJlbSg1NDNweCk7XG4gICAgICAgIGhlaWdodDogcmVtKDUycHgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBnZXQtY29sb3IocHJpbWFyeSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSgyNnB4KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQgZG93bikge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgYm90dG9tOiByZW0oNjBweCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSBkb3duKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDg1dnc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpZGVuYXYgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAuc2xpZGVuYXYgYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBjb2xvcjogZ2V0LWNvbG9yKHByaW1hcnkpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUgZG93bikge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDE2cHgpO1xuXG4gICAgICAgICAgICAmLnplcm8ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEuNjI1cmVtIDEuNjI1cmVtIDAgMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5vbmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYudHdvIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgMS42MjVyZW0gMS42MjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zbGlkZW5hdiBidXR0b24uY3VycmVudCB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCBnZXQtY29sb3IocHJpbWFyeSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdldC1jb2xvcihwcmltYXJ5KTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSgyNnB4KTtcbiAgICB9XG4gICAgLnVzZWNhc2Uge1xuICAgICAgICBAaW5jbHVkZSBmbGV4O1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuXG4gICAgICAgIC50ZXh0LWNvbnRlbnQge1xuICAgICAgICAgICAgLy9oYWxmLXNjcmVlbi13aWR0aCBwbHVzIGV4dHJhIHBhZGRpbmcgKDIlIHNjcmVlbiB3aWR0aCkgbWludXMgdGhlIGxlZnQtbWFyZ2luIGF1dG9tYXRpY2FsbHkgYXBwbGllZC5cbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoKDUydncpIC0gKCgxMDB2dyAtICN7JGdsb2JhbC13aWR0aH0pIC8gMikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTV2dztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQgZG93bikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGg2IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBkdCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMThweCk7XG4gICAgICAgIH1cblxuICAgICAgICAuYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg5MDBweCk7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNTAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuaW1nLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDkwMHB4KTtcbiAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgICAgICBvYmplY3QtcG9zaXRpb246IDAlIDUwJTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdC1wb3NpdGlvbjogMjAlIDUwJTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDQ1MHB4KTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucXVvdGF0aW9uLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDIwO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IHJlbSg2MHB4KTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0IGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiByZW0oMzQwcHgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlIGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiByZW0oMzY0cHgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5xdW90YXRpb24ge1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogXCJDb3Jtb3JhbnRcIiwgc2VyaWY7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oNDBweCk7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNDhweCk7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBnZXQtY29sb3IoZ3JheS0wMSk7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAycHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIHJlbSg4cHgpIHJlbSgyNHB4KTtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3AgZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMzJweCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDQwcHgpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUgZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjBweCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDI1cHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgcmVtKDRweCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIucGxheXN0b3Jle1xuICAgIC5xdW90YXRpb24ge1xuICAgICAgICBmb250LWZhbWlseTogXCJDb3Jtb3JhbnRcIiwgc2VyaWY7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiByZW0oNDBweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNDhweCk7XG4gICAgfVxuXG4gICAgLnRleHQtY29udGVudHtcbiAgICAgICAgbWFyZ2luOiByZW0oNjBweCkgMDtcbiAgICB9XG5cbiAgICBmb290ZXJ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIGltZ3tcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgb2JqZWN0LXBvc2l0aW9uOnRvcDtcbiAgICAgICAgd2lkdGg6MTAwdnc7XG4gICAgXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0IGRvd24pIHtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgb2JqZWN0LXBvc2l0aW9uOiAzMCU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0oMTgwcHgpO1xuICAgICAgICB9XG4gICAgfVxufSIsIi5kb3dubG9hZF9hcHB7XG4gICAgLnF1b3RhdGlvbiB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIkNvcm1vcmFudFwiLCBzZXJpZjtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXNpemU6IHJlbSg0MHB4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg0OHB4KTtcbiAgICB9XG5cbiAgICAudGV4dC1jb250ZW50e1xuICAgICAgICBtYXJnaW46IHJlbSg2MHB4KSAwO1xuICAgIH1cblxuICAgIGZvb3RlcntcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgaW1ne1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBvYmplY3QtcG9zaXRpb246dG9wO1xuICAgIFxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKSB7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgIG9iamVjdC1wb3NpdGlvbjogMzAlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogcmVtKDE4MHB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mdWxsLXdpZHRoLWltZ3tcbiAgICAgICAgd2lkdGg6MTAwdnc7XG4gICAgfVxufSIsIi5lYXJseS1hY2Nlc3Mtc2Rre1xuICAgIGgxe1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTtcbiAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlIGRvd24pIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4yNXJlbTtcbiAgICAgICAgICB9XG4gICAgfSBcblxuICAgIC5zZWN0aW9ue1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSBkb3duKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3AgZG93bikge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogNzVyZW07XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIGltZ3tcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgb2JqZWN0LXBvc2l0aW9uOnRvcDtcbiAgICAgICAgd2lkdGg6MTAwdnc7XG4gICAgXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0IGRvd24pIHtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgb2JqZWN0LXBvc2l0aW9uOiAzMCU7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmZvb3Rlci1jb250YWluZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbn1cblxuLmZvb3Rlci1icmFuZGluZyB7XG4gICAgaGVpZ2h0OiByZW0oMTAwcHgpO1xufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3AgZG93bikge1xuICAgIC5mb290ZXItY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IHVuc2V0XG4gICAgfVxuICAgIC5mb290ZXItYnJhbmRpbmcge1xuICAgICAgICBoZWlnaHQ6IHJlbSg4MHB4KVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0IGRvd24pIHtcbiAgICAuZm9vdGVyLWJyYW5kaW5nIHtcbiAgICAgICAgaGVpZ2h0OiByZW0oNjBweClcbiAgICB9XG59IiwiLmF3YXJkcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG94Zm9yZC1ibHVlO1xuICAgIGNvbG9yOiAkd2hpdGU7XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogbWlkZGxlKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR5OiB0b3ApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoNCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCgyMCUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtbWFyZ2luIC8gMik7XG4gICAgfVxuXG4gICAgc21hbGwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmX19zdWJ0aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwcHgpO1xuICAgIH1cbn0iLCIuaW5zdHJ1Y3Rpb25zIHtcbiAgICAmX19maXJzdC1sYXVuY2gge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnZXQtY29sb3IoZ3JheS0wMyk7XG4gICAgfVxuXG4gICAgJl9fdXNpbmctYXBwIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ2V0LWNvbG9yKGdyYXktMDEpO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgICAgICRjb2xvcjogZ2V0LWNvbG9yKGdyYXktMDEpO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6IHNldC1idXR0b24tdGV4dC1jb2xvcigkY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2VjdGlvbiB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgZmlndXJlIHtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1tYXJnaW4gKiAyKTtcbiAgICAgICAgbWF4LXdpZHRoOiByZW0oMzAwcHgpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICgkZ2xvYmFsLW1hcmdpbiAqIDIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzcHgpO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIG1hcmdpbi10b3A6ICgkZ2xvYmFsLW1hcmdpbiAvIDIpO1xuICAgIH1cblxuICAgIDppcyhoNCwgaDUpIHtcbiAgICAgICAgcGFkZGluZy10b3A6ICRnbG9iYWwtbWFyZ2luO1xuICAgIH1cblxuICAgIGg1IHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgfVxufVxuIiwiLmJsb2ctc2VhcmNoYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnZXQtY29sb3IoZ3JheS0wMik7XG4gICAgcGFkZGluZzogcmVtKDYwcHgpIDA7XG5cbiAgICBoMiB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIkNvcm1vcmFudFwiLCBzZXJpZjtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXNpemU6IHJlbSg0MHB4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg0OHB4KTtcbiAgICAgICAgY29sb3I6ICNmN2Y3Zjc7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjlmY2ZlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBnZXQtY29sb3IoZ3JheS0wMSk7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDBweCAycHggMnB4IC0xcHggI2VkZWZmNTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDI2cHgpO1xuICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDEuNzVyZW07XG4gICAgICAgIHdpZHRoOiA2NSU7XG5cbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaWNvbnMvaWNvbl9zZWFyY2guc3ZnXCIpO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5NyUgNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBkb3duKSB7XG4gICAgICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYmxvZy1tYWluIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIC5mbGV4IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleDtcblxuICAgICAgICAmLmhpZ2hsaWdodCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQgZG93bikge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmlnaHQtY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xuICAgICAgICAmLnNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MiU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBkb3duKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07XG4gICAgICAgICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNlY3Rpb24ge1xuICAgICAgICAmX19wb3N0IHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5oaWRkZW4tcG9zdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmltZyB7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgJi5zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogOS4zNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDkuMzc1cmVtO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0IGRvd24pIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogNC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIHdpZHRoOiAxOC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMTguNzVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBkb3duKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEyLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMi41cmVtO1xuICAgICAgICAgICAgICAgIG9yZGVyOiAyO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxLjEyNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUgZG93bikge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA2LjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA2LjVyZW07XG4gICAgICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmljb25zLWxpc3Qge1xuICAgICAgICBAaW5jbHVkZSBmbGV4O1xuICAgICAgICAmLnNtYWxsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMC43NXJlbSAwIDA7XG4gICAgICAgIH1cbiAgICAgICAgJi5oaWdobGlnaHQge1xuICAgICAgICAgICAgbWFyZ2luOiAxLjEyNXJlbSAwIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaWNvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDEwcHgpO1xuICAgICAgICAmLnNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDM1cHgpO1xuICAgICAgICAgICAgd2lkdGg6IHJlbSgzNXB4KTtcbiAgICAgICAgfVxuICAgICAgICAmLmhpZ2hsaWdodCB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg0NXB4KTtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oNDVweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMyxcbiAgICBoNiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIGNvbG9yOiBnZXQtY29sb3IoZ3JheS0wMSk7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICYuc21hbGwge1xuICAgICAgICAgICAgbWFyZ2luOiByZW0oNnB4KSAwIDA7XG4gICAgICAgIH1cbiAgICAgICAgJi5oaWdobGlnaHQge1xuICAgICAgICAgICAgbWFyZ2luOiAwLjc1cmVtIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb24tbGluZTogdW5kZXJsaW5lO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgJi5oaWdobGlnaHQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBociB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZ2V0LWNvbG9yKGdyYXktMDEpO1xuICAgICAgICBtYXJnaW46IDRyZW0gMCByZW0oMzBweCk7XG4gICAgfVxufVxuIiwiLmJsb2ctcG9zdCB7XG4gICAgY29sb3I6IGdldC1jb2xvcihncmF5LTAxKTtcbiAgICAubWFpbi1pbWcge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oNTBweCk7XG5cbiAgICAgICAgJi50aWxlIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oNTU4cHgpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMzMlIDc1JTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0IGRvd24pIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgzMDBweCk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiA2NSUgNzUlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuYV9ndWlkZWxpbmVfdG9fZGVzaWduX2luY2x1c2l2ZV9hcHBfaW50ZXJmYWNlcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2Jsb2cvYV9ndWlkZWxpbmVfdG9fZGVzaWduX2luY2x1c2l2ZV9hcHBfaW50ZXJmYWNlcy9tYWluLmdpZlwiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5zb3VuZF9hc19hX3Rvb2xfdG9faW50ZXJhY3Rfd2l0aF90aGVfd29ybGQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9ibG9nL3NvdW5kX2FzX2FfdG9vbF90b19pbnRlcmFjdF93aXRoX3RoZV93b3JsZC9tYWluLmdpZlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBoNiB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwcHgpO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBjb2xvcjogZ2V0LWNvbG9yKGdyYXktMDEpO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIycHgpO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgJi5oLWZvbnQtLWJvbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDMwcHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0IGRvd24pIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDYsXG4gICAgZmlndXJlLFxuICAgIGZpZ3VyZSArIHAsXG4gICAgLnYtaW1nLWNvbnRhaW5lciArIHAge1xuICAgICAgICBtYXJnaW46IHJlbSgzMHB4KSAwIDA7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgICBtYXJnaW46IHJlbSgxMHB4KSAwO1xuICAgICAgICBwYWRkaW5nOiAwIDJyZW07XG4gICAgICAgICYuaWNvbnMtbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pY29uIHtcbiAgICAgICAgbWFyZ2luOiByZW0oMzBweCkgcmVtKDEwcHgpIDAgMDtcbiAgICAgICAgaGVpZ2h0OiByZW0oNDVweCk7XG4gICAgICAgIHdpZHRoOiByZW0oNDVweCk7XG4gICAgfVxuXG4gICAgcCArIHAsXG4gICAgaDYgKyBwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDEwcHgpO1xuICAgIH1cblxuICAgIGZpZ3VyZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSg4cHgpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiBnZXQtY29sb3IoZ3JheS0wMik7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTRweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTlweCk7XG4gICAgICAgIC8vIG1heC13aWR0aDogNTAlO1xuXG4gICAgICAgIC8vIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBkb3duKSB7XG4gICAgICAgIC8vICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgLW1zLXdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIH1cblxuICAgIGhyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBnZXQtY29sb3IoZ3JheS0wMSk7XG4gICAgICAgIG1hcmdpbjogcmVtKDMwcHgpIDAgMDtcbiAgICB9XG5cbiAgICAuY2l0YXRpb24ge1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwcHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDI3cHgpO1xuICAgICAgICBjb2xvcjogZ2V0LWNvbG9yKGdyYXktMDIpO1xuICAgICAgICBwYWRkaW5nOiAwIDE1JTtcbiAgICAgICAgbWFyZ2luOiByZW0oMzBweCkgMDtcbiAgICB9XG5cbiAgICAuY2l0YXRpb24gc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2cHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIycHgpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAuaC1pbWctcyxcbiAgICAuaC1pbWctbSxcbiAgICAuaC1pbWctYiB7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuaC1pbWctcyB7XG4gICAgICAgIG1heC1oZWlnaHQ6IHJlbSgxMDhweCk7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBkb3duKSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiByZW0oODBweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaC1pbWctbSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IHJlbSgyNjZweCk7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBkb3duKSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiByZW0oMjAwcHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmgtaW1nLWIge1xuICAgICAgICBtYXgtaGVpZ2h0OiByZW0oNDM4cHgpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBkb3duKSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiByZW0oMzUwcHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnYtaW1nLW0ge1xuICAgICAgICBoZWlnaHQ6IHJlbSg0MzhweCk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0IGRvd24pIHtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDQwMHB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC52LWltZy1iIHtcbiAgICAgICAgaGVpZ2h0OiByZW0oNjgzcHgpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBkb3duKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg0MDBweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudi1pbWctY29udGFpbmVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0IGRvd24pIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuICAgIC52LWltZy1jb250YWluZXIgZmlndXJlIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0IGRvd24pIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLmltcHJlc3N1bS1hbmQtcG9saWNpZXMge1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cbiAgICBzZWN0aW9uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtbWFyZ2luICogMik7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgLml1Yl9jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAjaXViZW5kYV9wb2xpY3kge1xuICAgICAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNnB4KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICAgICAgfVxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgyMHB4KSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIGgzLFxuICAgICAgICBoNCxcbiAgICAgICAgaDUsXG4gICAgICAgIGg2IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2cHgpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAub25lX2xpbmVfY29sID4gaDIge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMzBweCkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5sYW5kaW5nLXBhZ2VzLW12cCB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIGZvbnQtZmFtaWx5OiBcIkxleGVuZFwiLCBzYW5zLXNlcmlmO1xuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUgZG93bikge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIGg1LFxuICAgIGg0LFxuICAgIGgzLFxuICAgIGgyLFxuICAgIGgxLFxuICAgIHAge1xuICAgICAgICBmb250LWZhbWlseTogXCJMZXhlbmRcIiwgc2Fucy1zZXJpZjtcbiAgICB9XG5cbiAgICAuc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiAxcmVtO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSBkb3duKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMTZweCkgMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3dyYXBwZXIge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0oMTU0MHB4KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wIGRvd24pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDUlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fMSB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlIGRvd24pIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogcmVtKDQwcHgpIDAgMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbGVmdCB7XG4gICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDM2cHgpO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgzMHB4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjJweCk7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wIGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4cHgpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi5oaWdobGlnaHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICMwMDNERjU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICZfX2ltbWVyc2l2ZS10b3VyaXNtIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI0VCMzMzMztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlIGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDcwdnc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19yaWdodCB7XG4gICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlIGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDIwcHgpIDAgMCAwO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDI0cHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSg2NHB4KTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAvLyBtYXgtd2lkdGg6IDg1JTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDI0cHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmxvZ297XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogcmVtKDE4MHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5idXR0b24ge1xuICAgICAgICBmb250LXNpemU6IDEuM3Z3O1xuICAgICAgICBsaW5lLWhlaWdodDogMS41dnc7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSg4MHB4KTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3AteHhsKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgyNHB4KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMzJweCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSBkb3duKSB7XG4gICAgICAgICAgICBtYXJnaW46IHJlbSg0MHB4KSAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTZweCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIwcHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMnB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlcm9fd3JhcHBlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAxMiU7XG4gICAgICAgICAgICB0b3A6IDcxJTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUgZG93bikge1xuICAgICAgICAgICAgICAgIHRvcDogMzUlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2Jpa2UtZGVsaXZlcnl7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDE3JTtcbiAgICAgICAgICAgICAgICB0b3A6ICA2OSU7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMzUlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2ltbWVyc2l2ZS10b3VyaXNte1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiA3JTtcbiAgICAgICAgICAgICAgICB0b3A6ICA3MyU7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNDIlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50X3dyYXBwZXJ7XG4gICAgICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oNDBweCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlIGRvd24pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmJhY2tncm91bmQtZ3JhZGllbnQtYnV0dG9uIHtcbiAgICAgICAgLyogd2FybmluZzogZ3JhZGllbnQgdXNlcyBhIHJvdGF0aW9uIHRoYXQgaXMgbm90IHN1cHBvcnRlZCBieSBDU1MgYW5kIG1heSBub3QgYmVoYXZlIGFzIGV4cGVjdGVkICovXG4gICAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCgxMTguMTIlIDE2Ni4zOCUgYXQgMTYuOCUgNjYuODklLCAjMDAzZGY1IDEzLjclLCAjNzI5MWVjIDY3LjcxJSwgIzcyZTVlYyAxMDAlKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgICAgICZfX2ltbWVyc2l2ZS10b3VyaXNte1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkxLjVkZWcsICNFQjMzMzMgNS4yOSUsICNGMzVFNUUgNTMuOTUlLCAjRjU1OTdGIDk1LjMxJSk7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaW1hZ2Uge1xuICAgICAgICAmX193cmFwcGVyIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtKDE4MDBweCk7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgLm1vYmlsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUgZG93bikge1xuICAgICAgICAgICAgICAgIC5tb2JpbGUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5kZXNrdG9wIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ob3Jpem9udGFsLWltZyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgJi5sYW5kaW5nLXBhZ2VzLW12cF9fY29udGFjdC1mb3JtIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNjAsIDE1MSwgMjE3LCAwLjEpO1xuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlIGRvd24pIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSg4MHB4KSAwIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250YWN0X2Zvcm1fd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDIycHgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuZm9ybS1oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oNDhweCk7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDg1dnc7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0oMTIzMHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iXX0= */
