@charset "UTF-8";
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p,
blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em,
img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i,
center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table,
caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details,
embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby,
section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
}

:root {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
}

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

html {
  height: 100%;
  font-size: 62.5%;
  block-size: 100%;
  inline-size: 100%;
}

body {
  min-block-size: 100%;
  min-inline-size: 100%;
}

html, body {
  min-height: 100%;
}

p:empty, pre:empty, blockquote:empty, ol:empty, ul:empty, li:empty, legend:empty, figcaption:empty, body:empty, article:empty, nav:empty, aside:empty, section:empty, header:empty, footer:empty, address:empty {
  display: none;
}

article, aside, details, figcaption, figure, footer, header, main, menu, nav, section, summary {
  display: block;
}

svg, symbol {
  overflow: visible;
}

details {
  display: block;
}

summary {
  display: list-item;
  -webkit-appearance: none;
}
summary::-webkit-details-marker, summary::marker {
  display: none;
}

template {
  display: none;
}

[hidden] {
  display: none;
}

body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  width: 100%;
}

address {
  font-style: normal;
}

h1, h2, h3, h4, h5, h6 {
  -webkit-margin-before: 0em;
  -webkit-margin-after: 0em;
  -webkit-margin-start: 0px;
  -webkit-margin-end: 0px;
  font-weight: normal;
}

hr {
  border: none;
  height: 1px;
  box-sizing: content-box;
  overflow: visible;
}

blockquote, q {
  quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
  content: "";
  content: none;
}

pre {
  font-family: monospace, monospace;
  font-size: 1em;
  background-color: white;
  color: black;
  padding: 16px;
  position: relative;
  z-index: 9999;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

button {
  touch-action: manipulation;
}

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;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  cursor: pointer;
}
button:focus,
[type=button]:focus,
[type=reset]:focus,
[type=submit]:focus {
  outline: 0;
}

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

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

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

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

progress {
  vertical-align: baseline;
}

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

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

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

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

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

[disabled] {
  cursor: default;
}

img {
  border-style: none;
}

em {
  font-style: italic;
}

a {
  background-color: transparent;
  text-decoration: none;
  touch-action: manipulation;
}

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

b, strong {
  font-weight: bold;
}

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

textarea {
  resize: none;
  overflow: auto;
}

pre {
  background-color: white;
  color: black;
  text-transform: none;
  text-decoration: none;
  text-align: left;
  display: block;
  font-size: 16px;
  padding: 16px;
  position: relative;
  z-index: 999;
}

body.devmode img:not([alt]) {
  border: 2px red dashed;
}

body {
  width: 100vw;
}
@media (min-width: 321px) {
  body {
    overflow-x: hidden;
  }
}

:where(*) {
  scroll-margin-top: var(--navigation-height, 2rem);
}

.async-hide {
  opacity: 0 !important;
}

main:empty {
  display: none;
}

figure.image,
picture.image {
  display: block;
  background-position: var(--position, center 33%);
  background-size: cover;
  background-repeat: no-repeat;
  overflow: hidden;
  position: relative;
}
figure.image img,
picture.image img {
  display: block;
  position: absolute;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: var(--image-position, center 33.33%);
     object-position: var(--image-position, center 33.33%);
  width: var(--image-size, var(--image-width-size, 100%));
  height: var(--image-size, var(--image-height-size, 100%));
  max-width: var(--image-size, var(--image-width-size, 100%));
  max-height: var(--image-size, var(--image-height-size, 100%));
  top: 0;
  left: 0;
}

video-container {
  --aspect-ratio: 16/9;
  aspect-ratio: var(--aspect-ratio);
  display: block;
  position: relative;
  width: 100%;
  background-color: black;
}
@supports not (aspect-ratio: 16/9) {
  video-container {
    aspect-ratio: initial;
    padding-bottom: calc(100% / (var(--aspect-ratio)));
    height: 0;
  }
  video-container > * {
    position: absolute;
  }
}
video-container iframe, video-container canvas {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  height: 100% !important;
  width: 100% !important;
}

*:has(> .container-inline) {
  container-type: inline-size;
}

mark {
  background-color: #0095ff;
  color: white;
  border-radius: calc(var(--border-radius, 6px) / 2);
  padding: 0 5px;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}

details {
  outline: none;
}

summary {
  -webkit-appearance: none;
}
summary::-webkit-details-marker, summary::marker {
  display: none;
}

.button {
  --font-colour: white;
  --background-colour: var(--primary);
  --border-colour: transparent;
  --padding: 8px 20px;
  --font-size: 16px;
  --border-radius: 50px;
  --hover-font-colour: var(--primary);
  --hover-background-colour: white;
  --hover-border-colour: initial;
  --hover-padding: var(--padding);
  --hover-font-size: var(--font-size);
  --hover-border-radius: var(--border-radius);
  --icon-size: 1.1em;
  cursor: pointer;
  display: inline-flex;
  position: relative;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  border-style: solid;
  border-width: 1px;
  font-weight: bold;
  place-content: center;
  place-items: center;
  align-self: flex-start;
  text-transform: uppercase;
  color: var(--font-colour);
  background-color: var(--background-colour);
  border-color: var(--border-colour);
  padding: var(--padding);
  font-size: var(--font-size);
  border-radius: var(--border-radius);
  transition: background-color var(--transition-duration) var(--transition-ease), color var(--transition-duration) var(--transition-ease), border var(--transition-duration) var(--transition-ease);
}
.button svg {
  width: var(--icon-size);
  height: var(--icon-size);
  order: 3;
  fill: var(--fill, currentColor);
  margin-left: calc(var(--icon-size) / 2);
  transition: fill var(--transition-duration) var(--transition-ease), stroke var(--transition-duration) var(--transition-ease);
}
.button svg[class*=arrow] {
  --icon-size: 0.9em;
}
.button svg.arrow-left {
  margin-right: calc(var(--icon-size) / 2);
  margin-left: 0 !important;
  order: 1;
}
.button > span {
  order: 2;
  text-wrap: balance;
}
.button.small {
  --padding: 6px 18px;
  --font-size: 12px;
}
.button.small svg {
  margin-left: calc(var(--gap) * 0.5);
}
.button.small svg.arrow-left {
  margin-right: calc(var(--gap) * 0.5);
}
.button.large {
  --padding: 12px 24px;
  --font-size: 24px;
}
.button.outline {
  --background-colour: transparent;
  --font-colour: #131f6b;
  --border-colour: #131f6b;
  --hover-background-colour: #131f6b;
  --hover-font-colour: #131f6b;
  --hover-border-colour: transparent;
}
.button.blue {
  --background-colour: #131f6b;
  --font-colour: white;
  --hover-background-colour: white;
  --hover-font-colour: #131f6b;
}
.button.blue.outline {
  --background-colour: transparent;
  --font-colour: #131f6b;
  --border-colour: #131f6b;
  --hover-background-colour: #131f6b;
  --hover-font-colour: #FFFFFF;
  --hover-border-colour: transparent;
}
.button.red {
  --background-colour: #df3035;
  --font-colour: white;
  --hover-background-colour: white;
  --hover-font-colour: #df3035;
}
.button.red.outline {
  --background-colour: transparent;
  --font-colour: #df3035;
  --border-colour: #df3035;
  --hover-background-colour: #df3035;
  --hover-font-colour: #FFFFFF;
  --hover-border-colour: transparent;
}
.button.green {
  --background-colour: #76bb28;
  --font-colour: white;
  --hover-background-colour: white;
  --hover-font-colour: #76bb28;
}
.button.green.outline {
  --background-colour: transparent;
  --font-colour: #76bb28;
  --border-colour: #76bb28;
  --hover-background-colour: #76bb28;
  --hover-font-colour: #FFFFFF;
  --hover-border-colour: transparent;
}
.button.white {
  --background-colour: #FFFFFF;
  --font-colour: var(--primary, #131f6b);
  --hover-background-colour: var(--primary, #131f6b);
  --hover-font-colour: #FFFFFF;
}
.button.white.outline {
  --background-colour: transparent;
  --font-colour: #FFFFFF;
  --border-colour: #FFFFFF;
  --hover-background-colour: #FFFFFF;
  --hover-font-colour: var(--primary, #131f6b);
  --hover-border-colour: transparent;
}
.button.disabled {
  pointer-events: none;
  --background-colour: #dcdcdc;
  --font-colour: white;
  --hover-background-colour: white;
  --hover-font-colour: #dcdcdc;
}
.button.disabled.outline {
  --background-colour: transparent;
  --font-colour: #dcdcdc;
  --border-colour: #dcdcdc;
  --hover-background-colour: #dcdcdc;
  --hover-font-colour: #dcdcdc;
  --hover-border-colour: transparent;
}
@media (hover: hover) {
  .button:hover {
    color: var(--hover-font-colour);
    background-color: var(--hover-background-colour);
    border-color: var(--hover-border-colour);
    border-radius: var(--hover-border-radius);
    padding: var(--hover-padding);
    font-size: var(--hover-font-size);
  }
}
.button.brochure {
  --font-colour: #131f6b;
  --background-colour: transparent;
  --padding: 5px 0px;
  --icon-size: 32px;
  --border-colour: transparent;
  --border-radius: 0;
  --hover-font-colour: #df3035;
  --hover-border-colour: transparent;
  --hover-background-colour: transparent;
  flex-direction: row-reverse;
  text-transform: uppercase;
}
.button.brochure svg {
  margin-right: calc(var(--gap) * 0.5);
  margin-left: 0;
  fill: #df3035;
}
.button.red svg.tick, .button.red svg.download {
  --stroke: #df3035;
}
.button.blue svg.tick, .button.blue svg.download {
  --stroke: #131f6b;
}
.button.outline svg.tick, .button.outline svg.download {
  --stroke: #FFFFFF;
}
@media (hover: hover) {
  .button:hover.red svg.tick,
  .button:hover.red svg.download {
    --stroke: #FFFFFF;
  }
  .button:hover.red.outline svg.tick, .button:hover.red.outline svg.download {
    --stroke: #df3035;
  }
  .button:hover.blue svg.tick,
  .button:hover.blue svg.download {
    --stroke: #FFFFFF;
  }
  .button:hover.blue.outline svg.tick, .button:hover.blue.outline svg.download {
    --stroke: #131f6b;
  }
  .button:hover.white svg.tick, .button:hover.white svg.download {
    --stroke: #131f6b;
  }
}

button-container {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  position: relative;
  gap: calc(var(--gap) * 0.5);
}
button-container .button {
  white-space: nowrap;
}

.sticky {
  position: sticky;
  top: 0px;
}

input[type=search]::-webkit-search-decoration, input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-results-button, input[type=search]::-webkit-search-results-decoration {
  display: none;
  -webkit-appearance: none;
}

#holding-page header svg {
  max-width: 400px;
}
@media (max-width: 980px) {
  #holding-page {
    display: flex;
    flex-direction: column;
    padding: var(--gutter1);
  }
}

body#error-404 header h2 {
  max-width: 900px;
}
body#error-404 search-bar {
  margin-bottom: var(--spacer0);
}
body#error-404 search-bar input[type=search] {
  border: 1px solid #131f6b;
}

body > .idle-dialog {
  position: sticky;
  box-shadow: initial !important;
  display: flex;
  place-items: center;
  place-content: center;
  bottom: var(--gutter1-);
  z-index: 2;
  /* Start hidden below viewport */
  transform: translateY(100%);
  /* Animation with delayed start */
  animation: slide-in-idle-dialog both;
  animation-timeline: scroll();
  animation-range: calc(var(--navigation-height, 0px)) calc(var(--navigation-height, 0px) + clamp(2rem, 5vh, 3rem) * 2);
}
body > .idle-dialog .button {
  outline: 1px solid rgba(255, 255, 255, 0.5);
}
@keyframes slide-in-idle-dialog {
  to {
    transform: translateY(0rem);
  }
}
#contact-modal {
  --dialog-content-background-colour: #f4f4f4;
}
#contact-modal form .submit-row {
  margin-top: var(--gutter1);
}

body > .back-to-top {
  width: 40px;
  height: 40px;
  position: fixed;
  bottom: var(--gutter1);
  right: var(--gutter1);
  background: var(--back-to-top-background, #292b68);
  border: 2px solid white;
  border-radius: 50%;
  z-index: 9999;
  opacity: 0;
  display: flex;
  pointer-events: none;
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), bottom var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  place-content: center;
  place-items: center;
}
body > .back-to-top svg {
  position: relative;
  color: white;
  width: 50%;
  top: -4%;
}
@media (hover: hover) {
  body > .back-to-top:hover {
    background-color: var(--secondary-light, #df3035);
  }
}

footer#footer.in-view ~ .back-to-top {
  bottom: 120px;
}

navigation-bar:not(.in-view) ~ .back-to-top {
  opacity: 1;
  pointer-events: all;
}

:root {
  --primary: #131f6b;
  --secondary: #df3035;
  --breakpoint-min: 320px;
  --breakpoint-small: 480px;
  --breakpoint-small-medium: 980px;
  --breakpoint-medium: 1120px;
  --breakpoint-large: 1400px;
  --breakpoint-max: 1680px;
  --font-colour: #6a6a6a;
  --heading-colour: var(--primary, #131f6b);
  --sub-heading-colour: var(--secondary, #df3035);
  --transition-duration: 0.2s;
  --transition-ease: cubic-bezier(0.42, 0, 0.58, 1);
  --transition-delay: ;
  --breadcrumb-height: 90px;
  --anchors-height: 60px;
  --breadcrumb-and-anchors-sticky-underset: -15px;
  --main-max-width: 900px;
  --navigation-height: 143px;
  --sidebar-width: clamp(300px, 30vw, 500px);
  --gap: 16px;
  --gutter: 3vw;
  --spacer: 4vh;
  --gutter0: clamp(8px, var(--gutter) * 0.5, 12px);
  --gutter0-: calc(-1 * clamp(8px, var(--gutter) * 0.5, 12px));
  --spacer0: clamp(16px, var(--spacer), 32px);
  --spacer0-: calc(-1 * clamp(16px, var(--spacer), 32px));
  --gutter1: clamp(16px, var(--gutter), 32px);
  --gutter1-: calc(-1 * clamp(16px, var(--gutter), 32px));
  --spacer1: clamp(16px, var(--spacer) * 3, 64px);
  --spacer1-: calc(-1 * clamp(16px, var(--spacer) * 3, 64px));
  --gutter2: clamp(16px, var(--gutter) * 2, 48px);
  --gutter2-: calc(-1 * clamp(16px, var(--gutter) * 2, 48px));
  --spacer2: clamp(16px, var(--spacer) * 6, 112px);
  --spacer2-: calc(-1 * clamp(16px, var(--spacer) * 6, 112px));
  --gutter3: clamp(16px, var(--gutter) * 3, 64px);
  --gutter3-: calc(-1 * clamp(16px, var(--gutter) * 3, 64px));
  --spacer3: clamp(16px, var(--spacer) * 9, 160px);
  --spacer3-: calc(-1 * clamp(16px, var(--spacer) * 9, 160px));
  --gutter4: clamp(16px, var(--gutter) * 4, 80px);
  --gutter4-: calc(-1 * clamp(16px, var(--gutter) * 4, 80px));
  --spacer4: clamp(16px, var(--spacer) * 12, 208px);
  --spacer4-: calc(-1 * clamp(16px, var(--spacer) * 12, 208px));
  --gutter5: clamp(16px, var(--gutter) * 5, 96px);
  --gutter5-: calc(-1 * clamp(16px, var(--gutter) * 5, 96px));
  --spacer5: clamp(16px, var(--spacer) * 15, 256px);
  --spacer5-: calc(-1 * clamp(16px, var(--spacer) * 15, 256px));
  --gutter6: clamp(16px, var(--gutter) * 6, 112px);
  --gutter6-: calc(-1 * clamp(16px, var(--gutter) * 6, 112px));
  --spacer6: clamp(16px, var(--spacer) * 18, 304px);
  --spacer6-: calc(-1 * clamp(16px, var(--spacer) * 18, 304px));
  --computed-gutter: calc(((100vw - var(--breakpoint-max)) / 2));
}
@supports not (width: clamp(1px, 5vw, 10px)) {
  :root {
    --sidebar-width: 500px;
  }
  @media (max-width: 1400px) {
    :root {
      --sidebar-width: 300px;
    }
  }
}
@supports not (width: clamp(1px, 5vw, 10px)) {
  :root {
    --gutter0: calc((var(--gutter) * 0.5) + 8px);
    --gutter0-: calc(-1 * calc((var(--gutter) * 0.5) + 8px));
    --spacer0: calc((var(--spacer) * 2) + 16px);
    --spacer0-: calc(-1 * calc((var(--spacer) * 2) + 16px));
    --gutter1: calc((var(--gutter) * 1) + 16px);
    --gutter1-: calc(-1 * calc((var(--gutter) * 1) + 16px));
    --spacer1: calc((var(--spacer) * 4) + 16px);
    --spacer1-: calc(-1 * calc((var(--spacer) * 4) + 16px));
    --gutter2: calc((var(--gutter) * 2) + 16px);
    --gutter2-: calc(-1 * calc((var(--gutter) * 2) + 16px));
    --spacer2: calc((var(--spacer) * 8) + 16px);
    --spacer2-: calc(-1 * calc((var(--spacer) * 8) + 16px));
    --gutter3: calc((var(--gutter) * 3) + 16px);
    --gutter3-: calc(-1 * calc((var(--gutter) * 3) + 16px));
    --spacer3: calc((var(--spacer) * 12) + 16px);
    --spacer3-: calc(-1 * calc((var(--spacer) * 12) + 16px));
    --gutter4: calc((var(--gutter) * 4) + 16px);
    --gutter4-: calc(-1 * calc((var(--gutter) * 4) + 16px));
    --spacer4: calc((var(--spacer) * 16) + 16px);
    --spacer4-: calc(-1 * calc((var(--spacer) * 16) + 16px));
    --gutter5: calc((var(--gutter) * 5) + 16px);
    --gutter5-: calc(-1 * calc((var(--gutter) * 5) + 16px));
    --spacer5: calc((var(--spacer) * 20) + 16px);
    --spacer5-: calc(-1 * calc((var(--spacer) * 20) + 16px));
    --gutter6: calc((var(--gutter) * 6) + 16px);
    --gutter6-: calc(-1 * calc((var(--gutter) * 6) + 16px));
    --spacer6: calc((var(--spacer) * 24) + 16px);
    --spacer6-: calc(-1 * calc((var(--spacer) * 24) + 16px));
  }
}

@font-face {
  font-family: "lato";
  src: url("../../../assets/fonts/lato-bold.woff2") format("woff2"), url("../../../assets/fonts/lato-bold.woff") format("woff"), url("../../../assets/fonts/lato-bold.otf") format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 700;
}
@font-face {
  font-family: "lato";
  src: url("../../../assets/fonts/lato-semibold.woff2") format("woff2"), url("../../../assets/fonts/lato-semibold.woff") format("woff"), url("../../../assets/fonts/lato-semibold.otf") format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 600;
}
@font-face {
  font-family: "lato";
  src: url("../../../assets/fonts/lato-regular.woff2") format("woff2"), url("../../../assets/fonts/lato-regular.woff") format("woff"), url("../../../assets/fonts/lato-regular.otf") format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}
@font-face {
  font-family: "montserrat";
  src: url("../../../assets/fonts/montserrat-medium.woff2") format("woff2"), url("../../../assets/fonts/montserrat-medium.woff") format("woff"), url("../../../assets/fonts/montserrat-medium.otf") format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 500;
}
@font-face {
  font-family: "montserrat";
  src: url("../../../assets/fonts/montserrat-medium-italic.woff2") format("woff2"), url("../../../assets/fonts/montserrat-medium-italic.woff") format("woff"), url("../../../assets/fonts/montserrat-medium-italic.otf") format("opentype");
  font-display: swap;
  font-style: italic;
  font-weight: 500;
}
@font-face {
  font-family: "montserrat";
  src: url("../../../assets/fonts/montserrat-semibold.woff2") format("woff2"), url("../../../assets/fonts/montserrat-semibold.woff") format("woff"), url("../../../assets/fonts/montserrat-semibold.otf") format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 600;
}
body {
  font-family: montserrat, sans-serif;
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: var(--font-colour, #6a6a6a);
  line-height: 1.6;
  font-size: 1.5rem;
}
@supports (width: clamp(1px, 5vw, 10px)) {
  body {
    font-size: clamp(1.4rem, 1.5vw, 1.6rem);
  }
}
@supports not (width: clamp(1px, 5vw, 10px)) {
  @media (max-width: 950px) {
    body {
      font-size: 1.4rem;
    }
  }
  @media (min-width: 1601px) {
    body {
      font-size: 1.6rem;
    }
  }
}

h1 {
  font-size: 3.8125em;
  font-size: clamp(2.5em, 5vw, 3.8125em);
  line-height: 1.2;
}

h2 {
  font-size: 2em;
  line-height: 1.3;
}

h3 {
  font-size: 1.5625em;
  line-height: 1.6;
}

h4 {
  font-size: 1.0625em;
  line-height: 1.6;
}

h5 {
  font-size: 1.0625em;
  line-height: 1.6;
}

h6 {
  font-size: 1.0625em;
  line-height: 1.6;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: lato, sans-serif;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: var(--heading-colour, var(--font-colour));
  text-wrap: pretty;
}
h1.sub-heading,
h2.sub-heading,
h3.sub-heading,
h4.sub-heading,
h5.sub-heading,
h6.sub-heading {
  color: var(--sub-heading-colour);
  font-family: lato, sans-serif;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1 span,
h1 strong,
h1 p,
h2 span,
h2 strong,
h2 p,
h3 span,
h3 strong,
h3 p,
h4 span,
h4 strong,
h4 p,
h5 span,
h5 strong,
h5 p,
h6 span,
h6 strong,
h6 p {
  color: inherit;
  font-family: inherit;
  font-weight: inherit;
}

q,
blockquote {
  quotes: "“" "”" "‘" "’";
}
q::before,
blockquote::before {
  content: open-quote;
}
q::after,
blockquote::after {
  content: close-quote;
}

a {
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  text-decoration: none;
  text-underline-position: under;
  color: var(--font-colour);
}
a.external {
  display: inline-flex;
  align-items: center;
}
a.external svg.external-link {
  opacity: 0.6;
  width: 0.8em;
  height: 0.8em;
  margin-left: 0.5em;
}

ol,
ul {
  list-style: none;
  list-style-position: inside;
}

li a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

small {
  font-size: 0.625em;
  line-height: 1.8;
}

hr {
  background-color: var(--hr-colour, #dcdcdc);
  margin-top: var(--spacer0);
  margin-bottom: var(--spacer0);
}

.note {
  position: relative;
  display: block;
  background-color: #fff5bf;
  border: 1px solid #ffe13c;
  padding: var(--gutter1);
  border-radius: var(--border-radius, 6px);
}
.note a {
  text-decoration: underline;
  color: #978002;
}
.note::before {
  content: "Please Note";
  text-transform: uppercase;
  position: relative;
  font-size: 10px;
  font-weight: bold;
  color: #978002;
  display: block;
  margin-bottom: calc(var(--gap) * 0.5);
}

body {
  --row-navigation: 1;
  --row-breadcrumbs: 2;
  --row-anchors: 3;
  --row-header: 4;
  --row-main: 5;
  --row-background: 1;
  --row-sidebar: 4 / span 3;
  --row-footer: 100;
  --rows: auto;
  --column-left: 2;
  --column-main: 2 / span 2;
  --column-right: 4;
  --column-full: 2 / -2;
  --column-gutter: minmax(0, 1fr);
  --column-content: minmax(0, calc(1680px - (var(--sidebar-width) * 2) - var(--gutter4)));
  --column-sidebar: var(--sidebar-width);
  --columns: var(--column-gutter) var(--column-sidebar) var(--column-content) var(--column-sidebar) var(--column-gutter);
  display: grid;
  min-width: 320px;
  grid-gap: 0 var(--gutter1);
  grid-template-rows: var(--rows);
  grid-template-columns: var(--columns);
}
body > * {
  grid-column: var(--column-full);
}

navigation-bar {
  z-index: 999;
  grid-row: var(--row-navigation);
}
navigation-bar:not(.in-view) ~ #breadcrumbs-bar,
navigation-bar:not(.in-view) ~ #anchors-bar {
  --anchors-height: 50px;
}

#breadcrumbs-bar {
  z-index: 2;
  grid-row: var(--row-breadcrumbs);
  height: var(--breadcrumb-height);
}
#breadcrumbs-bar.sticky {
  top: var(--breadcrumb-and-anchors-sticky-underset);
}

#anchors-bar {
  z-index: 2;
  grid-row: var(--row-anchors);
  height: var(--anchors-height);
}
#anchors-bar.sticky {
  top: calc(var(--breadcrumb-height) - 1px + var(--breadcrumb-and-anchors-sticky-underset) * 2);
}

.header {
  grid-row: var(--row-header);
  grid-column: var(--column-main);
  max-width: var(--main-max-width);
}

#footer {
  grid-row: var(--row-footer);
}

main {
  grid-row: var(--row-main);
  grid-column: var(--column-main);
  max-width: var(--main-max-width);
  display: flex;
  flex-direction: column;
}
main > *,
main ~ section,
main ~ aside,
main ~ div,
main ~ service-centre-finder,
main ~ markets-summary {
  position: relative;
  padding-top: var(--spacer1);
  padding-bottom: var(--spacer1);
  flex-grow: 1;
}
main ~ div:has(div#truendo_container) {
  padding: 0;
}
main service-centre-finder picture {
  --translateX: 0;
  width: calc(100vw + var(--gutter1));
  left: var(--gutter1-);
}
@media (min-width: 1681px) {
  main service-centre-finder picture {
    left: calc((-1 * var(--computed-gutter)) - var(--gutter1));
  }
}

side-bar {
  grid-row: var(--row-sidebar);
  grid-column: var(--column-right);
  width: var(--sidebar-width);
  padding-top: var(--spacer1);
  padding-bottom: var(--spacer1);
}
side-bar > div {
  display: grid;
  grid-gap: var(--gutter1) var(--gutter1);
  grid-template-columns: repeat(1, minmax(var(--sidebar-width), 1fr));
}
side-bar > div.sticky {
  top: calc(var(--breadcrumb-height) + var(--anchors-height) + var(--gutter1));
}
side-bar > div > * {
  position: relative;
}
side-bar > div > *.red {
  --background-colour: #df3035;
}
side-bar > div > *.blue {
  --background-colour: #131f6b;
}
side-bar > div > *.grey {
  --background-colour: #f4f4f4;
  --border-colour: #dcdcdc;
}
side-bar > div > *.white {
  --background-colour: #FFFFFF;
  --border-colour: #f4f4f4;
}

aside#support-information .glossary-terms,
tabbed-content[data-style="1"] > nav {
  top: calc(var(--breadcrumb-height) + var(--anchors-height) + var(--gutter1));
}

@media (max-width: 980px) {
  body {
    --columns: var(--column-gutter) var(--column-content) var(--column-gutter);
    --column-main: var(--column-full);
    --column-left: var(--column-full);
    --column-right: var(--column-full);
    --row-sidebar: auto;
  }
  body > * {
    width: 100%;
  }
  body side-bar {
    padding-top: var(--spacer1);
  }
  body side-bar > div {
    grid-gap: var(--spacer1) var(--gutter1);
  }
  body side-bar > div.sticky {
    position: relative;
    top: initial;
  }
}
@media (max-width: 352px) {
  body {
    --sidebar-width: 100%;
  }
}
.themed.red {
  background: #df3035;
}
.themed.red.blowout + .themed.red {
  box-shadow: 0px 1px var(--border-top-colour);
}
.themed.red.blowout + .themed.red.light {
  --border-top-colour: #dcdcdc;
}
.themed.red.blowout + .themed.red.dark {
  --border-top-colour: rgba(255, 255, 255, 0.2);
}
.themed.blue {
  background: #131f6b;
}
.themed.blue.blowout + .themed.blue {
  box-shadow: 0px 1px var(--border-top-colour);
}
.themed.blue.blowout + .themed.blue.light {
  --border-top-colour: #dcdcdc;
}
.themed.blue.blowout + .themed.blue.dark {
  --border-top-colour: rgba(255, 255, 255, 0.2);
}
.themed.grey {
  background: #f4f4f4;
}
.themed.grey.blowout + .themed.grey {
  box-shadow: 0px 1px var(--border-top-colour);
}
.themed.grey.blowout + .themed.grey.light {
  --border-top-colour: #dcdcdc;
}
.themed.grey.blowout + .themed.grey.dark {
  --border-top-colour: rgba(255, 255, 255, 0.2);
}
.themed.white {
  background: #FFFFFF;
}
.themed.white.blowout + .themed.white {
  box-shadow: 0px 1px var(--border-top-colour);
}
.themed.white.blowout + .themed.white.light {
  --border-top-colour: #dcdcdc;
}
.themed.white.blowout + .themed.white.dark {
  --border-top-colour: rgba(255, 255, 255, 0.2);
}
.themed:not(.blowout) {
  padding-left: var(--gutter1);
  padding-right: var(--gutter1);
  margin-bottom: var(--spacer1);
  margin-top: var(--spacer1);
  border-radius: var(--border-radius, 6px);
}
.themed:not(.blowout).white {
  border: 1px solid #f4f4f4;
}
.themed:not(.blowout).white + .blowout.white,
.themed:not(.blowout).white + :not(.themed) {
  margin-top: var(--spacer1-);
}

.blowout:before {
  content: "";
  background-color: inherit;
  z-index: -1;
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 100%;
  transform: translateX(var(--translateX, -50%));
  background: inherit;
}
@media (max-width: 336px) {
  .blowout:before {
    transform: initial;
    left: calc(var(--gap) * -1);
    width: 100vw;
  }
}
@media (max-width: 980px) {
  .blowout:before {
    transform: initial;
    left: 0;
    margin-left: var(--gutter1-);
    width: 100vw;
  }
}
@media (min-width: 981px) {
  body:not(mobile) main .blowout:before {
    --translateX: 0;
    width: calc(100vw + var(--gutter1));
    left: var(--gutter1-);
    width: calc(100vw + var(--gutter1));
  }
}
@media (min-width: 981px) and (min-width: 1681px) {
  body:not(mobile) main .blowout:before {
    left: calc((-1 * var(--computed-gutter)) - var(--gutter1));
  }
}

body.mobile main .blowout:before {
  --translateX: 0;
  width: calc(100vw + var(--gutter1));
  left: var(--gutter1-);
  width: calc(100vw + var(--gutter1));
}
@media (min-width: 1681px) {
  body.mobile main .blowout:before {
    left: calc((-1 * var(--computed-gutter)) - var(--gutter1));
  }
}

background-image,
background-video {
  z-index: -1;
  grid-row: var(--row-background);
  grid-column: 1/-1;
}
background-image.behind-header,
background-video.behind-header {
  --row-background: 4;
}

img[data-src],
video[data-src] {
  transition: opacity 0.3s ease-in;
  opacity: 0;
}
img[data-src].loaded,
video[data-src].loaded {
  opacity: 1;
}

.center-all {
  justify-content: center;
  justify-items: center;
  padding-block: var(--spacer2);
  gap: var(--spacer1) !important;
}
.center-all > .text :is(h1, h2, h3, h4, h5, h6) {
  margin-bottom: 0;
  text-align: center;
}
.center-all > .text :is(h1, h2, h3, h4, h5, h6) span {
  color: var(--secondary);
}
.center-all article-list {
  max-width: 1100px;
  width: 100%;
  justify-items: center;
  justify-content: center;
  --article-min-width: 420px !important;
}

main ~ *:not(.themed) + :not(.themed):not(#footer):not(side-bar) {
  box-shadow: 0px -1px var(--border-top-colour, #dcdcdc);
}

main > *.themed.content-block {
  box-shadow: initial;
}

main > *.themed + :not(.themed):not(#footer) {
  margin-top: 0;
  box-shadow: initial;
}

main ~ *.themed + :not(.themed):not(#footer),
body.background-positioned-behind-header main > *:first-child {
  box-shadow: initial;
}

main > *:first-child:not(.themed),
main > *:first-child.white {
  box-shadow: 0px -1px var(--border-top-colour, #dcdcdc);
}

main ~ *:not(.themed) + .themed:not(.blowout),
main > *:not(.themed) + .themed:not(.blowout) {
  margin-top: 0;
}

.header ~ main > .themed:not(.blowout):first-child {
  margin-top: var(--spacer1);
}

main > .themed:not(.blowout):last-child {
  margin-bottom: var(--spacer1);
}

main > .themed:not(.blowout) + .blowout {
  margin-top: var(--spacer1);
}

.header ~ main > .themed:not(.blowout) {
  margin-top: 0;
}

main ~ div:has(#CookiebotWidget) {
  padding-top: 0;
  padding-bottom: 0;
}

body:not([data-components*=side-bar]) {
  --main-max-width: auto;
  --column-main: var(--column-full);
}

body:not([data-components*=breadcrumbs-bar]) {
  --row-navigation: 1;
  --row-anchors: 2;
  --row-header: 3;
  --row-main: 4;
}
body:not([data-components*=breadcrumbs-bar]) background-image.full,
body:not([data-components*=breadcrumbs-bar]) background-video.full {
  --row-background: 1 / span 4;
}
body:not([data-components*=breadcrumbs-bar]) background-image.behind-header,
body:not([data-components*=breadcrumbs-bar]) background-video.full {
  --row-background: 3;
}
body:not([data-components*=breadcrumbs-bar]) #anchors-bar.sticky {
  top: 0;
}
@media (min-width: 981px) {
  body:not([data-components*=breadcrumbs-bar]) {
    --row-sidebar: 3 / span 3;
  }
  body:not([data-components*=breadcrumbs-bar]) side-bar div.sticky,
  body:not([data-components*=breadcrumbs-bar]) aside#support-information .glossary-terms,
  body:not([data-components*=breadcrumbs-bar]) tabbed-content[data-style="1"] > nav {
    top: calc(var(--anchors-height) + var(--gutter1));
  }
}

body:not([data-components*=anchors-bar]) {
  --row-navigation: 1;
  --row-breadcrumbs: 2;
  --row-header: 3;
  --row-main: 4;
}
body:not([data-components*=anchors-bar]) background-image.full,
body:not([data-components*=anchors-bar]) background-video.full {
  --row-background: 1 / span 4;
}
body:not([data-components*=anchors-bar]) background-image.behind-header,
body:not([data-components*=anchors-bar]) background-video.behind-header {
  --row-background: 3;
}
body:not([data-components*=anchors-bar]) #breadcrumbs-bar.sticky {
  top: 0;
}
@media (min-width: 981px) {
  body:not([data-components*=anchors-bar]) {
    --row-sidebar: 3 / span 3;
  }
  body:not([data-components*=anchors-bar]) side-bar div.sticky,
  body:not([data-components*=anchors-bar]) aside#support-information .glossary-terms,
  body:not([data-components*=anchors-bar]) tabbed-content[data-style="1"] > nav {
    top: calc(var(--anchors-height) + var(--gutter1));
  }
}

body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) {
  --row-navigation: 1;
  --row-header: 2;
  --row-main: 3;
  --row-background: 1;
}
body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) background-image.full,
body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) background-video.full {
  --row-background: 1 / span 5;
}
body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) background-image.behind-header,
body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) background-video.behind-header {
  --row-background: 2;
}
@media (min-width: 981px) {
  body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) {
    --row-sidebar: 2 / span 3;
  }
  body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) side-bar div.sticky,
  body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) aside#support-information .glossary-terms,
  body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) tabbed-content[data-style="1"] > nav {
    top: var(--gutter1);
  }
}

@media (max-width: 980px) {
  body.rule-last-main-section-is-themed side-bar {
    padding-top: 0;
  }
}

.layout-content-right-sidebar, .layout-content-left-sidebar {
  display: grid;
  grid-gap: var(--gutter1);
  grid-template-columns: 1fr;
}
.layout-content-right-sidebar .left,
.layout-content-right-sidebar .right, .layout-content-left-sidebar .left,
.layout-content-left-sidebar .right {
  grid-column: 1/-1;
  max-width: 100%;
}
.layout-content-right-sidebar .layout-content-right-sidebar, .layout-content-right-sidebar .layout-content-left-sidebar, .layout-content-left-sidebar .layout-content-right-sidebar, .layout-content-left-sidebar .layout-content-left-sidebar {
  --column-content: minmax(0, calc(1680px - (var(--sidebar-width) * 2)));
}

@media (min-width: 981px) {
  body > .layout-content-left-sidebar .left {
    grid-column: 1;
  }
  body > .layout-content-left-sidebar .right {
    grid-column: 2/4;
  }
  body > .layout-content-right-sidebar .left {
    grid-column: 1/3;
    max-width: var(--main-max-width);
  }
  body > .layout-content-right-sidebar .right {
    grid-column: 3;
    padding-left: var(--gutter1);
    padding-right: var(--gutter1);
  }
  body > .layout-content-right-sidebar, body > .layout-content-left-sidebar {
    grid-template-columns: var(--column-sidebar) var(--column-content) var(--column-sidebar);
  }
}
@media (min-width: 1121px) {
  body:not([data-components*=side-bar]) main .layout-content-left-sidebar .left {
    grid-column: 1;
  }
  body:not([data-components*=side-bar]) main .layout-content-left-sidebar .right {
    grid-column: 2/4;
  }
  body:not([data-components*=side-bar]) main .layout-content-right-sidebar .left {
    grid-column: 1/3;
    max-width: var(--main-max-width);
  }
  body:not([data-components*=side-bar]) main .layout-content-right-sidebar .right {
    grid-column: 3;
    padding-left: var(--gutter1);
    padding-right: var(--gutter1);
  }
  body:not([data-components*=side-bar]) main .layout-content-right-sidebar, body:not([data-components*=side-bar]) main .layout-content-left-sidebar {
    grid-template-columns: var(--column-sidebar) var(--column-content) var(--column-sidebar);
  }
}

.content-block > * {
  grid-column: 1/-1;
}
@media (min-width: 701px) {
  .content-block {
    --column-count: 6;
  }
  .content-block .col-1-1 {
    grid-column: 1/span 1;
  }
  .content-block .col-1-2 {
    grid-column: 1/span 2;
  }
  .content-block .col-1-3 {
    grid-column: 1/span 3;
  }
  .content-block .col-1-4 {
    grid-column: 1/span 4;
  }
  .content-block .col-1-5 {
    grid-column: 1/span 5;
  }
  .content-block .col-1-6 {
    grid-column: 1/span 6;
  }
  .content-block .col-2-1 {
    grid-column: 2/span 1;
  }
  .content-block .col-2-2 {
    grid-column: 2/span 2;
  }
  .content-block .col-2-3 {
    grid-column: 2/span 3;
  }
  .content-block .col-2-4 {
    grid-column: 2/span 4;
  }
  .content-block .col-2-5 {
    grid-column: 2/span 5;
  }
  .content-block .col-3-1 {
    grid-column: 3/span 1;
  }
  .content-block .col-3-2 {
    grid-column: 3/span 2;
  }
  .content-block .col-3-3 {
    grid-column: 3/span 3;
  }
  .content-block .col-3-4 {
    grid-column: 3/span 4;
  }
  .content-block .col-4-1 {
    grid-column: 4/span 1;
  }
  .content-block .col-4-2 {
    grid-column: 4/span 2;
  }
  .content-block .col-4-3 {
    grid-column: 4/span 3;
  }
  .content-block .col-5-1 {
    grid-column: 5/span 2;
  }
  .content-block .col-5-2 {
    grid-column: 5/span 2;
  }
  .content-block .col-6-1 {
    grid-column: 6/span 1;
  }
}
@media (min-width: 700px) and (max-width: 1400px) {
  .content-block {
    --column-count: 4;
  }
  .content-block .col-1-3 {
    grid-column: 1/span 2;
  }
  .content-block .col-1-4 {
    grid-column: 1/span 3;
  }
  .content-block .col-1-5 {
    grid-column: 1/span 3;
  }
  .content-block .col-4-3 {
    grid-column: 3/-1;
  }
  .content-block .col-1-6 {
    grid-column: 1/-1;
  }
  .content-block .col-2-3,
  .content-block .col-2-4,
  .content-block .col-2-5 {
    grid-column: 2/-1;
  }
  .content-block .col-3-2,
  .content-block .col-3-3,
  .content-block .col-3-4 {
    grid-column: 3/-1;
  }
  .content-block .col-4-1,
  .content-block .col-4-2,
  .content-block .col-5-1,
  .content-block .col-6-1 {
    grid-column: 4/-1;
  }
  .content-block .col-5-2 {
    grid-column: 1/-1;
  }
}
@media (min-width: 320px) and (max-width: 699px) {
  .content-block {
    --column-count: 2;
  }
  .content-block .col-1-1,
  .content-block .col-3-1,
  .content-block .col-5-1 {
    grid-column: 1;
  }
  .content-block .col-2-1,
  .content-block .col-4-1,
  .content-block .col-6-1 {
    grid-column: 2;
  }
}
@media (min-width: 320px) and (max-width: 699px) and (max-width: 500px) {
  .content-block .col-1-1 {
    grid-column: 1/-1;
  }
  .content-block .col-1-5 + .col-6-1 {
    grid-column: 1/-1;
  }
}
@media (min-width: 320px) and (max-width: 699px) and (min-width: 501px) {
  .content-block .col-2-5 {
    grid-column: 2;
  }
  .content-block .col-1-5 {
    grid-column: 1;
  }
}

navigation-bar {
  position: relative;
  display: flex;
  padding: calc(var(--spacer0) + var(--gap)) 0;
  align-items: flex-end;
  justify-content: space-between;
  align-items: center;
  background-color: #10124d;
  z-index: 5;
  gap: var(--gutter1);
  height: -moz-min-content;
  height: min-content;
  --top-level-link-gutters: var(--gap);
  --top-level-link-colour: white;
  --marker-line-thickness: 3px;
  --spacer-line-thickness: 1px;
}
@media (max-width: 980px) {
  navigation-bar {
    align-items: center;
  }
}
navigation-bar:before {
  content: "";
  background-color: inherit;
  z-index: -1;
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 100%;
  transform: translateX(var(--translateX, -50%));
  background: inherit;
}
navigation-bar > *:not(.image) {
  position: relative;
  z-index: 1;
}
body[data-components*=background-image] navigation-bar.hide-background {
  background-color: initial;
  background: initial;
}
body[data-components*=background-image] navigation-bar.hide-background::before {
  display: none;
}

body[data-components*=background-video] navigation-bar.hide-background {
  background-color: initial;
  background: initial;
}
body[data-components*=background-video] navigation-bar.hide-background::before {
  display: none;
}

navigation-bar.invert {
  background-color: initial;
  background: initial;
  --top-level-link-colour: #131f6b;
}
navigation-bar.invert::before {
  display: none;
}
navigation-bar.invert a.logo img[src*="tagline.svg"] {
  filter: invert(0.9);
}
navigation-bar a.logo {
  max-width: 320px;
  max-width: 280px;
  width: 100%;
  min-width: 200px;
  aspect-ratio: 371/97;
}
navigation-bar a.logo:has(svg.no-taglines) {
  aspect-ratio: initial;
}
:has(header.dark) navigation-bar:not(.invert) a.logo {
  --logo-text-colour: white;
}

navigation-bar:not(.invert) {
  --logo-text-colour: white;
}
navigation-bar nav {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  position: relative;
  gap: 8px;
}
navigation-bar nav main-menu > ul > li.top-level-link:not(:nth-last-child(2)):not(:nth-last-child(3)):not(:last-of-type)::before,
navigation-bar nav secondary-menu > ul > li:not(:last-of-type)::before {
  content: "";
  width: var(--spacer-line-thickness);
  height: 40%;
  position: absolute;
  right: calc(-1 * var(--spacer-line-thickness) / 2);
  top: 30%;
  background-color: var(--spacer-line-colour, #df3035);
}
navigation-bar nav personalise-experience {
  display: none;
}
navigation-bar nav .personalised {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--gap);
}
navigation-bar nav .personalised personalise-experience {
  display: flex;
  width: -moz-fit-content;
  width: fit-content;
}
navigation-bar nav .personalised personalise-experience a.button.personalised {
  --font-size: 0.8em;
  --padding: 4px 10px;
}
@media (max-width: 940px) {
  navigation-bar nav .personalised personalise-experience a.button.personalised {
    --font-size: 16px;
    --padding: 8px 20px;
    --icon-size: 20px;
  }
  navigation-bar nav .personalised personalise-experience a.button.personalised p {
    display: none;
  }
  navigation-bar nav .personalised personalise-experience a.button.personalised svg {
    margin-left: 0;
  }
}
@media (max-width: 600px) {
  navigation-bar nav .personalised personalise-experience a.button.personalised {
    max-height: 36px;
    --icon-size: 1.1em;
  }
}
navigation-bar nav .personalised personalise-experience + secondary-menu {
  width: -moz-fit-content;
  width: fit-content;
  justify-content: flex-end;
}
@media (max-width: 440px) {
  navigation-bar nav .personalised {
    top: unset;
    flex-wrap: nowrap;
  }
  navigation-bar nav .personalised .button,
  navigation-bar nav .personalised personalise-experience a.button.personalised {
    --padding: 8px;
    --icon-size: 0.8em;
  }
}
navigation-bar nav main-menu > ul > li.top-level-link + .search {
  margin-left: -2px;
}
navigation-bar nav .link {
  font-size: var(--font-size);
  text-decoration: none;
}
navigation-bar nav .link svg {
  margin-left: 0.4em;
  height: 0.5em;
  fill: #FFFFFF;
}
navigation-bar nav .link svg:not(.arrow-right):not(.arrow-left) {
  height: 0.8em;
}
navigation-bar nav .link.overview {
  font-weight: bold;
}
navigation-bar nav .link svg,
navigation-bar nav .button svg {
  pointer-events: none;
}
navigation-bar nav main-menu {
  --font-size: 0.95em;
  order: 2;
  align-self: flex-end;
  position: relative;
}
navigation-bar nav main-menu .top-level-links {
  display: flex;
  align-items: center;
}
navigation-bar nav main-menu .top-level-links li {
  position: relative;
}
navigation-bar nav main-menu .top-level-links li.top-level-link a {
  font-weight: bold;
  text-transform: uppercase;
  color: var(--top-level-link-colour);
  padding: calc(var(--gap) * 0.5) var(--top-level-link-gutters);
  height: 100%;
  white-space: nowrap;
  display: flex;
  place-items: center;
}
navigation-bar nav main-menu .top-level-links li.top-level-link a::after {
  content: "";
  height: 3px;
  width: calc(100% - var(--top-level-link-gutters) * 2);
  background-color: var(--top-level-link-colour, #df3035);
  position: absolute;
  bottom: 0;
  left: var(--top-level-link-gutters);
  opacity: 0;
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
navigation-bar nav main-menu .top-level-links li.top-level-link a.active::after {
  opacity: 1 !important;
}
navigation-bar nav main-menu .top-level-links li.top-level-link a.current::after {
  opacity: 1;
}
navigation-bar nav main-menu .top-level-links li.top-level-link[data-nav=menu] {
  order: 1;
}
navigation-bar nav main-menu .top-level-links li.top-level-link[data-nav=submenu] {
  order: 2;
  display: none;
}
navigation-bar nav main-menu .top-level-links li.search {
  white-space: nowrap;
}
navigation-bar nav main-menu .top-level-links li.search a {
  text-decoration: none;
}
navigation-bar nav main-menu .top-level-links li.search svg {
  margin-left: 0;
}
navigation-bar nav main-menu .top-level-links li.search span {
  margin-right: calc(var(--gap) * 0.5);
  pointer-events: none;
}
navigation-bar nav main-menu .top-level-links li.search, navigation-bar nav main-menu .top-level-links li.menu {
  order: 3;
}
navigation-bar nav main-menu .top-level-links li.cart {
  margin-right: calc(var(--top-level-link-gutters) / 2);
  left: -2px;
}
navigation-bar nav main-menu .top-level-links li.cart a {
  text-decoration: none;
  padding: 8px 10px;
}
navigation-bar nav main-menu .top-level-links li.cart a span {
  display: none;
}
navigation-bar nav main-menu .top-level-links li.cart svg {
  order: 1;
  margin-left: 0;
}
li.cart a[data-total]::after {
  content: attr(data-total);
  min-width: 2ch;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0 0.4em;
  margin-left: 0.5em;
  height: 2ch;
  align-self: center;
  background-color: #df3035;
  color: white;
  line-height: 0.2;
  text-align: center;
  display: flex;
  place-content: center;
  place-items: center;
  font-size: 0.8em;
  border-radius: var(--border-radius, 6px);
  order: 2;
}
@media (hover: hover) {
  li.cart a[data-total]:hover {
    background-color: #131f6b;
    color: #FFFFFF;
  }
  li.cart a[data-total]:hover::after {
    color: #FFFFFF;
  }
  li.cart a[data-total]:hover svg {
    fill: #df3035;
  }
}
@media (hover: hover) {
  li.cart a:not([data-total]):hover {
    background-color: #131f6b;
  }
  li.cart a:not([data-total]):hover::after {
    color: #FFFFFF;
  }
  li.cart a:not([data-total]):hover svg {
    fill: #df3035;
  }
}

@media (min-width: 550px) {
  navigation-bar nav main-menu .top-level-links li.cart svg {
    display: none;
  }
  navigation-bar nav main-menu .top-level-links li.cart a {
    padding: 8px 20px;
  }
  navigation-bar nav main-menu .top-level-links li.cart a span {
    display: block;
  }
}
navigation-bar nav main-menu.loading::before {
  --size: 12px;
  content: "";
  position: absolute;
  top: calc(50% - var(--size) / 2);
  left: calc(50% - var(--size) / 2);
  opacity: 0;
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  border: 2px solid var(--loader-colour, white);
  border-top-color: transparent;
  border-bottom-color: transparent;
  animation-name: loader-rotate;
  animation-duration: 0.5s;
  animation-iteration-count: infinite;
  transition: opacity 0.2s cubic-bezier(0.42, 0, 0.58, 1);
  animation-play-state: paused;
}
@keyframes loader-rotate {
  from {
    transform: rotate(180deg);
  }
  to {
    transform: rotate(0deg);
  }
}
@media (hover: hover) {
  navigation-bar nav main-menu.loading:hover::before {
    opacity: 1;
    animation-play-state: running;
    transition-delay: 0s;
  }
}
navigation-bar nav secondary-menu {
  --font-size: 0.8em;
  display: flex;
  order: 1;
  align-self: flex-end;
  z-index: 6;
}
navigation-bar nav secondary-menu > ul {
  display: flex;
  position: relative;
  right: calc(var(--gap) * -1);
}
navigation-bar nav secondary-menu > ul li {
  position: relative;
}
navigation-bar nav secondary-menu > ul li a {
  text-transform: uppercase;
  color: var(--top-level-link-colour);
  padding: calc(var(--gap) * 0.5) var(--gap);
  display: flex;
  place-items: center;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (hover: hover) {
  navigation-bar nav secondary-menu > ul li a:hover {
    color: #0095ff;
  }
}
navigation-bar nav secondary-menu > ul li .sub-menu {
  display: grid;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  right: 50%;
  min-width: calc(100% + calc(var(--gap) * 2));
  width: 200px;
  transform: translate(50%, calc(var(--gap) * -0.5));
  border-radius: var(--border-radius, 6px);
  background-color: var(--primary, #131f6b);
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), transform var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  border: 1px solid rgba(255, 255, 255, 0.1);
}
navigation-bar nav secondary-menu > ul li .sub-menu li:nth-of-type(1) {
  padding-top: calc(var(--gap) * 0.5);
}
navigation-bar nav secondary-menu > ul li .sub-menu li:last-of-type {
  padding-bottom: calc(var(--gap) * 0.5);
}
navigation-bar nav secondary-menu > ul li .sub-menu a {
  padding: calc(calc(var(--gap) * 0.5) / 2) var(--gap);
  text-transform: initial;
  color: white;
}
navigation-bar nav secondary-menu > ul li .sub-menu a.asset {
  display: flex;
}
navigation-bar nav secondary-menu > ul li .sub-menu a.asset svg {
  order: -1;
  margin: 0 0.4em 0 0;
  align-self: flex-start;
  margin-top: 0.4em;
}
navigation-bar nav secondary-menu > ul li .sub-menu[data-level="1"] li:first-of-type {
  order: 100;
}
:root:not([data-browser-feature*=touch]) navigation-bar nav secondary-menu > ul li .sub-menu[data-level="1"] li:first-of-type {
  display: none;
}

@media (hover: hover) {
  navigation-bar nav secondary-menu > ul li:hover > a {
    color: #0095ff;
  }
  navigation-bar nav secondary-menu > ul li:hover .sub-menu {
    opacity: 1;
    transform: translate(50%, 0);
    pointer-events: all;
  }
}
navigation-bar nav secondary-menu > ul li:last-of-type .sub-menu {
  right: calc(100% + var(--gap)) !important;
}
navigation-bar nav secondary-menu > ul > li.has-children::after {
  content: "";
  top: calc(100% + 1px);
  left: 50%;
  width: 10px;
  height: 10px;
  transform: translate(-50%, calc(-50% + calc(var(--gap) * -0.5))) rotate(45deg);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background-color: var(--primary, #131f6b);
  position: absolute;
  clip-path: polygon(0 0, 100% 0%, 50% 50%, 0 100%);
  opacity: 0;
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), transform var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  pointer-events: none;
}
@media (hover: hover) {
  navigation-bar nav secondary-menu > ul > li.has-children:hover::after {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(45deg);
  }
}
@media (max-width: 1400px) {
  navigation-bar {
    --top-level-link-gutters: var(--gap);
  }
  navigation-bar nav main-menu > ul li.search span {
    display: none;
  }
}
@media (max-width: 980px) {
  navigation-bar nav main-menu {
    --font-size: 0.9em;
  }
}
navigation-bar li.menu {
  display: none;
  margin-left: var(--top-level-link-gutters);
}
navigation-bar button.menu {
  width: 40px;
  height: 40px;
}
navigation-bar button.menu svg {
  width: 100%;
  height: 100%;
  display: block;
  pointer-events: none;
}
navigation-bar button.menu svg line {
  stroke-width: 3px;
  stroke: var(--top-level-link-colour);
}
navigation-bar button.menu svg line:nth-child(1) {
  transform-origin: 15% 30%;
  transition: transform 0.3s cubic-bezier(0.86, 0, 0.07, 1);
}
navigation-bar button.menu svg line:nth-child(2) {
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
navigation-bar button.menu svg line:nth-child(3) {
  transform-origin: 15% 70%;
  transition: transform 0.3s cubic-bezier(0.86, 0, 0.07, 1);
}
navigation-bar button.menu.active svg line:nth-child(1) {
  transform: rotate(45deg);
}
navigation-bar button.menu.active svg line:nth-child(2) {
  opacity: 0;
}
navigation-bar button.menu.active svg line:nth-child(3) {
  transform: rotate(-45deg);
}
body.mobile navigation-bar {
  padding: var(--gutter1) 0;
}
body.mobile navigation-bar li.menu {
  display: block;
  height: 40px;
}
@media (min-width: 980px) and (max-width: 1200px) {
  body.mobile navigation-bar .button.search {
    --font-size: 0.8em;
    --padding: 4px 10px;
  }
  body.mobile navigation-bar li.menu {
    display: flex;
    align-items: center;
  }
  body.mobile navigation-bar li.menu button.menu {
    height: 30px;
    width: 30px;
  }
}
body.mobile navigation-bar a.logo {
  max-width: initial;
  width: 200px;
  min-width: initial;
}
body.mobile navigation-bar nav main-menu .top-level-link,
body.mobile navigation-bar nav secondary-menu {
  display: none;
}
body.mobile navigation-bar nav main-menu > ul li.search span,
body.mobile navigation-bar nav main-menu > ul li[data-nav=submenu] {
  display: block;
}
@media (max-width: 980px) {
  body.mobile navigation-bar nav main-menu > ul li.search span {
    display: none;
  }
}

dropdown-menu {
  --min-height: 430px;
  --max-height: 600px;
  --dropdown-group-nav-width: 270px;
  --dropdown-image-width: 300px;
  --dropdown-image-height: 80px;
  --dropdown-open-offset: 6px;
  position: absolute;
  top: calc(100% - var(--marker-line-thickness) - 1px);
  background-color: white;
  border-radius: var(--border-radius, 6px);
  box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.2);
  display: grid;
  grid-template-columns: var(--dropdown-group-nav-width) 1fr;
  pointer-events: none;
  opacity: 0;
  margin-top: 0px;
  overscroll-behavior: contain;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1), margin-top 0.3s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  font-size: 16px;
}
navigation-bar nav main-menu.active .top-level-links .top-level-link .link.current::after {
  opacity: 0;
}
navigation-bar nav main-menu.active dropdown-menu {
  margin-top: var(--dropdown-open-offset);
  opacity: 1;
  pointer-events: all;
}

dropdown-menu::after {
  content: "";
  width: 100%;
  height: calc(var(--marker-line-thickness));
  position: absolute;
  left: 0;
  top: 0px;
  z-index: 5;
  background-color: #df3035;
  border-top-left-radius: var(--border-radius, 6px);
  border-top-right-radius: var(--border-radius, 6px);
}
body.mobile navigation-bar dropdown-menu {
  --dropdown-open-offset: var(--gap);
  width: var(--dropdown-group-nav-width) !important;
  right: 0;
}
@media (max-width: 480px) {
  body.mobile navigation-bar dropdown-menu {
    --dropdown-group-nav-width: calc(100vw - var(--gutter3)) !important;
  }
}

dropdown-group {
  position: relative;
  grid-column: 1;
  grid-row: 1;
  overflow-x: hidden;
  background-color: white;
  opacity: 0;
  height: inherit;
  pointer-events: none;
  will-change: transform;
  transition: opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1), transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);
}
dropdown-group[data-level="0"] {
  z-index: 5;
}
dropdown-group[data-level="1"] {
  z-index: 4;
}
dropdown-group[data-level="2"] {
  z-index: 3;
}
dropdown-group[data-level="3"] {
  z-index: 2;
}
dropdown-group[data-level="4"] {
  z-index: 1;
}
dropdown-group::-webkit-scrollbar {
  width: 0.9em;
  height: 0.9em;
}
dropdown-group::-webkit-scrollbar-button {
  width: 0;
  height: 0;
  display: none;
}
dropdown-group::-webkit-scrollbar-thumb {
  background-color: #969695;
  border-radius: 10px;
  border: 4px solid rgba(0, 0, 0, 0);
  background-clip: padding-box;
  background-color: rgba(0, 0, 0, 0.15);
}
dropdown-group::-webkit-scrollbar-track {
  background-color: transparent;
}
dropdown-group::-webkit-scrollbar-corner {
  background-color: transparent;
}
dropdown-group::-webkit-scrollbar-track {
  border-radius: 10px;
}
dropdown-group .link {
  --font-size: 0.9em;
  display: flex;
  position: relative;
  align-items: center;
  text-align: left;
  line-height: 1.4;
  padding: 4px calc(var(--gap) * 2);
  width: 100%;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  justify-content: space-between;
}
dropdown-group .link.current {
  color: #df3035;
}
dropdown-group .link.active {
  color: white;
  background-color: #131f6b;
  z-index: 1;
}
:root:not([data-browser-feature*=touch]) dropdown-group .link.active::after {
  content: "";
  display: block;
  position: absolute;
  transform: translateY(-50%) rotate(-45deg);
  left: calc(100% - 50px);
  top: 50%;
  width: 100px;
  height: 100px;
}

:not([data-browser-feature*=touch]) dropdown-group .last .link.active::after {
  transform: translateY(-100%) rotate(0deg) skew(-45deg, 0);
}

dropdown-group .link.has-children svg {
  margin-left: calc(var(--gap) * 0.5);
}
@media (hover: hover) {
  dropdown-group .link:hover {
    color: white;
    background-color: #131f6b;
  }
}
dropdown-group ul {
  display: flex;
  flex-direction: column;
  overscroll-behavior: contain;
}
dropdown-group ul li.first {
  padding-top: var(--gap);
}
dropdown-group ul li.last {
  padding-bottom: var(--gap);
}
dropdown-group ul li.overview {
  margin-top: var(--gap);
}
@media (max-width: 768px) {
  dropdown-group ul li.overview ~ .first {
    padding-top: 0;
  }
}
dropdown-group ul li.overview .link {
  color: #131f6b;
  font-weight: bold;
}
@media (hover: hover) {
  dropdown-group ul li.overview .link:hover {
    color: white;
  }
}
dropdown-group ul li.overview .link.active {
  color: white;
}
:root:not([data-browser-feature*=touch]) dropdown-group ul li.overview {
  display: none;
}

dropdown-group ul li.back {
  padding-top: var(--gap);
}
:root:not([data-browser-feature*=touch]) dropdown-group ul li.back {
  display: none;
}

dropdown-group ul li.back .link svg {
  margin-right: 0.4em;
  margin-left: 0;
}
dropdown-group[data-level="1"] {
  border-top-left-radius: var(--border-radius, 6px);
  border-bottom-left-radius: var(--border-radius, 6px);
}
dropdown-group[data-level="1"] li.back {
  display: none;
}
dropdown-group[data-level="2"] {
  width: 95%;
  left: 100%;
  opacity: 0;
  transform: translateX(-5%);
  background-color: #f4f4f4;
}
dropdown-group[data-level="3"] {
  width: calc(95% + 2px);
  opacity: 0;
  left: calc(195% - 1px);
  border-top-right-radius: var(--border-radius, 6px);
  border-bottom-right-radius: var(--border-radius, 6px);
  transform: translateX(-5%);
  background-color: #fafafa;
  transition-delay: 0.3s, 0.3s;
}
dropdown-group.allow-scroll {
  overflow-y: auto;
}
dropdown-group.active {
  opacity: 1;
  pointer-events: all;
}
dropdown-group.active[data-level="2"], dropdown-group.active[data-level="3"] {
  transform: translateX(0%);
}
dropdown-group:not(.active)[data-level="1"], dropdown-group:not(.active)[data-level="2"], dropdown-group:not(.active)[data-level="3"] {
  left: 0%;
  transform: translateX(0%);
}
body:not(.mobile) navigation-bar dropdown-group:not([data-level="1"]) .link {
  padding-top: 6px;
  padding-bottom: 6px;
}

body.mobile navigation-bar dropdown-group {
  border-radius: var(--border-radius, 6px) var(--border-radius, 6px) 0 0 !important;
  left: 0 !important;
  width: inherit !important;
  transition-duration: 0.5s, 0.5s;
  transform: initial !important;
}
body.mobile navigation-bar dropdown-group[data-level="0"] {
  z-index: 1;
}
body.mobile navigation-bar dropdown-group[data-level="1"] {
  z-index: 2;
}
body.mobile navigation-bar dropdown-group[data-level="2"] {
  z-index: 3;
}
body.mobile navigation-bar dropdown-group[data-level="3"] {
  z-index: 4;
}
body.mobile navigation-bar dropdown-group[data-level="4"] {
  z-index: 5;
}
body.mobile navigation-bar dropdown-group .link {
  --font-size: 1em;
  padding-top: calc(var(--gap) * 0.5);
  padding-bottom: calc(var(--gap) * 0.5);
}
body.mobile navigation-bar dropdown-group ul li.overview, body.mobile navigation-bar dropdown-group ul li.back {
  display: block !important;
}

dropdown-image {
  display: block;
  background-position: var(--position, center 33%);
  background-size: cover;
  background-repeat: no-repeat;
  overflow: hidden;
  position: relative;
  height: 100%;
  grid-column: 2;
  background-color: #f4f4f4;
  border-bottom-right-radius: var(--border-radius, 6px);
  border-top-right-radius: var(--border-radius, 6px);
  display: grid;
  justify-items: flex-end;
}
dropdown-image img {
  display: block;
  position: absolute;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: var(--image-position, center 33.33%);
     object-position: var(--image-position, center 33.33%);
  width: var(--image-size, var(--image-width-size, 100%));
  height: var(--image-size, var(--image-height-size, 100%));
  max-width: var(--image-size, var(--image-width-size, 100%));
  max-height: var(--image-size, var(--image-height-size, 100%));
  top: 0;
  left: 0;
}
dropdown-image .image {
  width: clamp(var(--dropdown-image-width) / 2, 30vw, var(--dropdown-image-width));
  grid-row: 1;
  grid-column: 1;
  transition: opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1);
  opacity: 0;
}
dropdown-image .image.active {
  opacity: 1;
  pointer-events: all;
}
dropdown-image .image.active img {
  opacity: 1;
}
body.mobile navigation-bar dropdown-image {
  grid-column: 1;
  z-index: 10;
  width: inherit;
  height: var(--dropdown-image-height);
  border-top-right-radius: initial;
  border-bottom-left-radius: var(--border-radius, 6px);
}
body.mobile navigation-bar dropdown-image .image {
  width: inherit;
  height: inherit;
}

.header {
  padding-top: var(--spacer1);
  padding-bottom: var(--spacer1);
}
.header > h1 sup {
  font-size: 0.6em;
}
.header > h1 span {
  display: block;
  font-size: 0.375em;
  color: #969695;
}
.header > h1 + *, .header > h2 + * {
  margin-top: var(--gutter1);
}
.header > h1 + h2 {
  margin-top: var(--gutter0);
}
.header > h2 {
  color: var(--sub-heading-colour);
  font-family: lato, sans-serif;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.header > h2 a {
  --font-colour: var(--sub-heading-colour);
  text-decoration: underline;
}
@media (hover: hover) {
  .header > h2 a:hover {
    --font-colour: var(--primary, #131f6b);
  }
}
.header time {
  border-radius: var(--border-radius, 6px);
  margin: var(--gutter1) 0;
  padding: 4px 8px;
  background-color: #f4f4f4;
  border: 1px solid #dcdcdc;
  font-size: 0.75em;
  display: inline-block;
  width: -moz-fit-content;
  width: fit-content;
  border-radius: 4px;
  border-left: 4px solid var(--tag-colour, #df3035);
}
.header button-container {
  margin-bottom: calc(var(--gap) * -1);
  margin-top: var(--spacer0);
}
@media (max-width: 480px) {
  .header button-container .button span {
    white-space: normal;
  }
}
.header notice-messages {
  margin-top: var(--spacer0);
}
.header.dark {
  --heading-colour:white;
  --sub-heading-colour:white;
}
.header.dark .button.brochure {
  --font-colour:white;
}
.header.dark .button.brochure svg {
  fill: white;
}
.header.no-devider-line ~ main {
  --border-top-colour: rgba(255, 255, 255, 0.2);
}
.header.no-devider-line ~ main > .content-block:first-of-type {
  padding-top: 0;
  box-shadow: initial;
}

footer#footer {
  --font-colour: white;
  font-size: 0.875em;
  padding-top: var(--spacer1);
  padding-bottom: var(--spacer1);
  background-color: var(--primary, #131f6b);
  grid-gap: var(--gutter1);
  display: grid;
  position: relative;
  align-items: flex-start;
  grid-template-columns: 1fr 300px;
}
footer#footer a {
  text-decoration: none;
  position: relative;
  display: block;
  color: var(--font-colour);
}
@media (hover: hover) {
  footer#footer a:hover {
    color: var(--secondary-light, #e44f53);
  }
}
footer#footer a.current {
  color: var(--secondary-light, #e44f53);
}
footer#footer a.current {
  pointer-events: none;
}
footer#footer .back-to-top {
  width: -moz-fit-content;
  width: fit-content;
  margin: calc(var(--gap) * -1) auto var(--gap) auto;
}
@media (min-width: 481px) {
  footer#footer .back-to-top {
    display: none;
  }
}
footer#footer .tag-line-sign-off {
  grid-column: 1/-1;
  display: flex;
  justify-content: center;
  margin-bottom: var(--spacer0);
  font-size: 2em;
  line-height: 1.3;
}
@supports (width: clamp(1px, 5vw, 10px)) {
  footer#footer .tag-line-sign-off tag-line span {
    font-size: clamp(12px, 1.5vw, 0.4em);
  }
}
@supports not (width: clamp(1px, 5vw, 10px)) {
  @media (max-width: 950px) {
    footer#footer .tag-line-sign-off tag-line span {
      font-size: 12px;
    }
  }
  @media (min-width: 1601px) {
    footer#footer .tag-line-sign-off tag-line span {
      font-size: 0.4em;
    }
  }
}
@media (max-width: 900px) {
  footer#footer .tag-line-sign-off tag-line {
    flex-direction: row;
    margin: 0;
  }
}
@media (max-width: 900px) and (max-width: 600px) {
  footer#footer .tag-line-sign-off tag-line {
    flex-direction: column;
    gap: calc(var(--gap) * 0.5);
  }
  footer#footer .tag-line-sign-off tag-line span {
    font-size: 16px;
  }
}
footer#footer > nav {
  display: grid;
  flex-grow: 1;
  grid-gap: var(--gutter1);
  align-items: flex-start;
  grid-template-columns: 1fr;
}
footer#footer > nav ul {
  display: flex;
  flex-direction: column;
  height: 100%;
  position: relative;
}
footer#footer > nav ul li + li {
  margin-bottom: calc(var(--gap) * 0.5);
}
footer#footer > nav ul:last-of-type {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(333px, 1fr));
  grid-gap: 0 var(--gap);
}
footer#footer > nav ul:last-of-type li:first-of-type {
  grid-column: 1/-1;
}
footer#footer .heading {
  margin-bottom: var(--gap);
  color: var(--secondary, #df3035);
  font-weight: bold;
  font-size: 1.0625em;
  line-height: 1.6;
}
footer#footer .heading::before, footer#footer .heading::after {
  display: none;
}
footer#footer .heading a {
  color: var(--secondary, #df3035);
}
footer#footer company-details {
  display: flex;
  flex-direction: colunm;
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: calc(var(--gap) * 0.5) var(--gap);
}
footer#footer company-details small,
footer#footer company-details .small {
  font-size: 0.625em;
  color: rgba(255, 255, 255, 0.7);
}
footer#footer company-details small br,
footer#footer company-details .small br {
  display: none;
}
footer#footer .base {
  margin-top: var(--spacer1);
  grid-column: 1/-1;
  position: relative;
  display: flex;
  justify-content: space-between;
}
footer#footer .base a.logo {
  width: 100%;
  max-width: 240px;
  position: initial;
}
footer#footer .base a.logo img {
  display: block;
}
@media (min-width: 981px) {
  footer#footer .base a.logo::after {
    content: "";
    background-color: var(--footer-br-colour, #df3035);
    height: 3px;
    width: 100%;
    position: absolute;
    bottom: -1.5px;
    left: 0;
  }
}
footer#footer .base a.yello {
  display: flex;
  position: absolute;
  top: calc(100% + var(--gap));
  font-size: 0.875em;
  right: 0;
  color: rgba(255, 255, 255, 0.5);
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
footer#footer .base a.yello span {
  margin-left: 0.3em;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (hover: hover) {
  footer#footer .base a.yello:hover {
    color: white;
  }
  footer#footer .base a.yello:hover span {
    color: #FFCB08;
  }
}
footer#footer .base admin-links {
  display: flex;
  position: absolute;
  top: calc(100% + var(--gap));
  left: 0;
}
footer#footer .base admin-links a {
  font-size: 12px;
  margin-right: calc(var(--gap) * 0.5);
}
footer#footer .base:has(.cep-logo) {
  --logo-spacer: 200px;
}
footer#footer .base:has(.cep-logo) .cep-logo {
  filter: grayscale(1) invert(1);
}
@media (min-width: 981px) {
  footer#footer .base:has(.cep-logo) {
    margin-right: var(--logo-spacer);
  }
  footer#footer .base:has(.cep-logo) .cep-logo {
    position: absolute;
    height: calc(100% + calc(var(--gap) * 2));
    top: 0;
    right: calc(var(--logo-spacer) * -1);
  }
}
@media (max-width: 980px) {
  footer#footer .base:has(.cep-logo) .cep-logo {
    margin-bottom: var(--gutter2);
  }
}
@media (max-width: 1400px) {
  footer#footer > nav ul:not(:last-of-type) {
    display: none;
  }
  footer#footer company-details small br {
    display: none;
  }
}
@media (max-width: 980px) {
  footer#footer {
    grid-template-columns: 1fr;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  footer#footer > * {
    width: 100%;
  }
  footer#footer > nav {
    align-items: center;
  }
  footer#footer > nav ul:last-of-type {
    grid-template-columns: unset;
  }
  footer#footer .base {
    flex-direction: column;
    align-items: center;
  }
  footer#footer .base a.logo {
    order: 1;
    width: 160px;
  }
  footer#footer .base a.logo img {
    max-width: 100%;
  }
  footer#footer .base social-media {
    margin-top: var(--spacer0-);
    margin-bottom: var(--spacer0);
  }
  footer#footer .base admin-links {
    order: 3;
    position: initial;
    margin-top: var(--gap);
  }
}

.cl-consent-settings {
  left: unset !important;
  right: var(--gutter1);
  width: 42px;
  height: 42px;
  box-shadow: unset !important;
  bottom: calc(var(--gutter3) * 2.75) !important;
  padding: 0;
}
@media (max-width: 980px) {
  .cl-consent-settings {
    bottom: var(--gutter5) !important;
  }
}

body > background-image {
  pointer-events: none;
  display: block;
  background-position: var(--position, center 33%);
  background-size: cover;
  background-repeat: no-repeat;
  overflow: hidden;
  position: relative;
  --background-theme-one: #131f6b;
  --background-theme-two: #292b68;
}
body > background-image img {
  display: block;
  position: absolute;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: var(--image-position, center 33.33%);
     object-position: var(--image-position, center 33.33%);
  width: var(--image-size, var(--image-width-size, 100%));
  height: var(--image-size, var(--image-height-size, 100%));
  max-width: var(--image-size, var(--image-width-size, 100%));
  max-height: var(--image-size, var(--image-height-size, 100%));
  top: 0;
  left: 0;
}
body > background-image::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.7;
  background: linear-gradient(to bottom, var(--background-theme-one), var(--background-theme-two));
}
body > background-image.none::after {
  content: initial;
}
body > background-image.red {
  --background-theme-one: #df3035;
  --background-theme-two: #df3035;
}
body > background-image.black {
  --background-theme-one: #1e1c1c;
  --background-theme-two: #1e1c1c;
}
body > background-image.tile {
  background-repeat: repeat;
  background-size: auto;
}
body > background-image.tile img {
  display: none;
}
body > background-image:not(.tile) {
  max-height: 100vh;
}
body > background-image.behind-header::after {
  opacity: 1;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(10px);
  -webkit-mask-image: linear-gradient(to right, black 20%, transparent 100%);
          mask-image: linear-gradient(to right, black 20%, transparent 100%);
}

body.mobile > background-image, body.mobile > background-video {
  max-height: initial;
}

body > background-video {
  pointer-events: none;
  display: block;
  background-position: var(--position, center 33%);
  background-size: cover;
  background-repeat: no-repeat;
  overflow: hidden;
  position: relative;
}
body > background-video img {
  display: block;
  position: absolute;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: var(--image-position, center 33.33%);
     object-position: var(--image-position, center 33.33%);
  width: var(--image-size, var(--image-width-size, 100%));
  height: var(--image-size, var(--image-height-size, 100%));
  max-width: var(--image-size, var(--image-width-size, 100%));
  max-height: var(--image-size, var(--image-height-size, 100%));
  top: 0;
  left: 0;
}
body > background-video video {
  display: block;
  position: absolute;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: var(--image-position, center 33.33%);
     object-position: var(--image-position, center 33.33%);
  width: var(--image-size, var(--image-width-size, 100%));
  height: var(--image-size, var(--image-height-size, 100%));
  max-width: var(--image-size, var(--image-width-size, 100%));
  max-height: var(--image-size, var(--image-height-size, 100%));
  top: 0;
  left: 0;
}
body > background-video::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, var(--background-theme-one, transparent), var(--background-theme-two, black));
}

#breadcrumbs-bar {
  background-color: var(--primary, #131f6b);
  display: flex;
  align-items: center;
  transition: height var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), top var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
#breadcrumbs-bar ul {
  display: flex;
  position: relative;
  left: calc(var(--gap) * -1);
  width: 100%;
}
#breadcrumbs-bar ul li {
  align-self: stretch;
  align-items: center;
  position: relative;
}
#breadcrumbs-bar ul li + li {
  margin-left: calc(var(--gap) * -1);
}
#breadcrumbs-bar .link {
  display: flex;
  place-items: center;
  height: 100%;
  text-transform: uppercase;
  font-weight: bold;
  font-size: 1.125em;
  padding: var(--gap);
  text-decoration: none;
  color: white;
}
#breadcrumbs-bar .link svg {
  color: rgba(255, 255, 255, 0.8);
  width: 0.7em;
  height: 0.7em;
  margin-left: var(--gap);
}
@media (hover: hover) {
  #breadcrumbs-bar .link:hover {
    color: var(--secondary, #df3035);
  }
}
#breadcrumbs-bar .link.current {
  color: var(--secondary, #df3035);
}
#breadcrumbs-bar .link.current::after {
  content: "";
  bottom: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background-color: var(--secondary, #df3035);
  position: absolute;
}

body.mobile > #breadcrumbs-bar {
  max-height: initial;
  display: none;
}

#anchors-bar {
  background-color: #f4f4f4;
  transition: height var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), top var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  display: flex;
  align-items: center;
  max-width: 100vw;
}
#anchors-bar .container {
  display: flex;
  align-items: center;
  overflow: hidden;
  height: 100%;
}
@media (max-width: 1680px) {
  :root:not([data-browser-feature*=touch]) #anchors-bar {
    width: 100vw;
    margin-left: var(--gutter2-);
  }
  :root:not([data-browser-feature*=touch]) #anchors-bar .container {
    overflow-x: auto;
    scroll-behavior: smooth;
    padding-left: var(--gutter1);
    padding-right: var(--gutter1);
  }
}

:root[data-browser-feature*=touch] #anchors-bar {
  width: calc(100% + var(--gutter2) + calc(var(--gap) * 0.5));
  margin-left: var(--gutter1-);
}
:root[data-browser-feature*=touch] #anchors-bar::before {
  content: initial;
}
:root[data-browser-feature*=touch] #anchors-bar .container {
  overflow-x: auto;
  padding-left: var(--gutter1);
  padding-right: var(--gutter1);
}

#anchors-bar::before {
  border-bottom: 1px solid #dcdcdc;
}
#anchors-bar a {
  grid-row: 1;
  font-size: 0.875em;
  text-transform: uppercase;
  font-weight: bold;
  white-space: nowrap;
  display: flex;
  place-items: center;
  position: relative;
  height: 100%;
  color: #131f6b;
}
#anchors-bar a + a {
  margin-left: var(--gutter1);
}
@media (hover: hover) {
  #anchors-bar a:hover {
    color: var(--secondary, #df3035);
  }
}
#anchors-bar a::after {
  content: "";
  bottom: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background-color: var(--secondary, #df3035);
  position: absolute;
  transform: scaleY(0);
  transition: transform 0.2s cubic-bezier(0.42, 0, 0.58, 1) 0.2s;
}
#anchors-bar a.current {
  color: var(--secondary, #df3035);
}
#anchors-bar a.current::after {
  transform: scaleY(1);
}

side-bar > div > * {
  --background-colour: var(--primary, #131f6b);
  order: 3;
  border-radius: var(--border-radius, 6px);
  padding: var(--gutter2);
  background-color: var(--background-colour);
  border: 1px solid var(--border-colour, rgba(255, 255, 255, 0.2));
}
side-bar > div > *:not(.white) {
  --font-colour: white;
  --heading-colour: white;
}
side-bar > div service-centre-finder {
  order: 1;
}
side-bar > div service-centre-finder ~ #grades-sidebar-list {
  order: 2;
}
side-bar > div .heading {
  margin-bottom: var(--gutter0);
  font-size: 1.5625em;
  line-height: 1.6;
}
side-bar > div > div.sidebar-logos {
  --background-colour: transparent;
  padding: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 2rem;
  justify-content: center;
}
side-bar > div > div.sidebar-logos img {
  max-width: 50%;
  -o-object-fit: contain;
     object-fit: contain;
}
side-bar > div > div.sidebar-logos svg {
  max-width: 150px;
  max-height: 100px;
}
side-bar #powder-tubs,
side-bar #greener-future,
side-bar #liberty-powder {
  position: relative;
  overflow: hidden;
}
side-bar #powder-tubs h3 span,
side-bar #greener-future h3 span,
side-bar #liberty-powder h3 span {
  display: block;
}
side-bar #powder-tubs div,
side-bar #greener-future div,
side-bar #liberty-powder div {
  z-index: 1;
  position: relative;
}
side-bar #powder-tubs .background,
side-bar #greener-future .background,
side-bar #liberty-powder .background {
  opacity: 0.2;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 100% 0%;
     object-position: 100% 0%;
}
side-bar #powder-tubs .image img,
side-bar #greener-future .image img,
side-bar #liberty-powder .image img {
  -o-object-fit: contain;
     object-fit: contain;
}
side-bar #liberty-powder {
  background: transparent;
  border: 1px solid #dcdcdc;
}
side-bar #liberty-powder .image {
  height: 60px;
  margin-bottom: calc(var(--gap) * 2);
}
side-bar #liberty-powder .image img {
  width: auto;
}
side-bar #powder-tubs {
  background: #333236;
}
side-bar #powder-tubs h3 {
  padding-bottom: 225px;
  font-size: 22px;
}
side-bar #powder-tubs h3 span {
  color: #df3035;
}
side-bar #powder-tubs .background {
  opacity: 1;
}
side-bar #powder-tubs .image {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 250px;
  width: 100%;
}
side-bar #powder-tubs .image img {
  width: 100%;
}
@media (min-width: 1120px) {
  side-bar #powder-tubs h3 {
    padding-bottom: 300px;
  }
  side-bar #powder-tubs .image {
    height: 350px;
  }
}
side-bar #greener-future {
  --greener-green: #4ecb3d;
}
side-bar #greener-future h3 {
  margin-bottom: calc(var(--gap) * 2);
}
side-bar #greener-future h3 span {
  color: var(--greener-green);
  line-height: 1;
}
side-bar #greener-future .image {
  height: 90px;
}
side-bar #greener-future .image img {
  width: auto;
}
side-bar #greener-future ul {
  margin-bottom: var(--gap);
}
side-bar #greener-future ul li {
  color: white;
  padding-left: calc(var(--gap) * 2);
  position: relative;
  margin-bottom: var(--gap);
}
side-bar #greener-future ul li:before {
  background: var(--greener-green);
  border-radius: 50%;
  height: 20px;
  width: 20px;
  position: absolute;
  top: 4px;
  left: 0;
  content: "";
}
side-bar #greener-future ul li:after {
  height: 12px;
  width: 6px;
  content: "";
  border-bottom: 2px solid white;
  border-right: 2px solid white;
  position: absolute;
  left: 7px;
  top: 6px;
  transform: rotate(45deg);
}
@media (min-width: 1120px) {
  side-bar #greener-future ul {
    -moz-column-count: 2;
         column-count: 2;
  }
}

.sidebar-block\:local-cta {
  background-color: #676767;
  color: white;
  background-repeat: no-repeat;
  background-position: -1rem bottom;
  background-size: auto 220px;
  display: flex;
  flex-direction: column;
  gap: var(--gutter0);
}
.sidebar-block\:local-cta p {
  font-size: 2rem;
  text-wrap: pretty;
}
@media (width > 1400px) {
  .sidebar-block\:local-cta {
    background-image: url("/assets/uploads/images/20mph-sign.png");
    padding-inline-start: 160px;
  }
}

.sidebar-block\:iso {
  background-color: #74bf03;
  border: initial;
  padding: 0;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center;
  border-radius: var(--border-radius, 6px);
  overflow: hidden;
}
.sidebar-block\:iso img {
  display: block;
  width: 100%;
}

social-media {
  --icon-colour: #FFFFFF;
  --icon-size: 20px;
  display: flex;
  align-items: center;
}
social-media a {
  margin-left: var(--gap);
  display: flex !important;
}
social-media a svg {
  width: var(--icon-size);
  height: var(--icon-size);
  fill: var(--icon-colour);
  transition: var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (hover: hover) {
  social-media a:hover.facebook {
    --icon-colour: #1877f2;
  }
  social-media a:hover.twitter {
    --icon-colour: #1da1f2;
  }
  social-media a:hover.google {
    --icon-colour: #4285f4;
  }
  social-media a:hover.youtube {
    --icon-colour: #ff0000;
  }
  social-media a:hover.linkedin {
    --icon-colour: #007bb5;
  }
  social-media a:hover.instagram {
    --icon-colour: #c32aa3;
  }
  social-media a:hover.pinterest {
    --icon-colour: #bd081c;
  }
  social-media a:hover.dailymotion {
    --icon-colour: #0066DC;
  }
  social-media a:hover.snapchat {
    --icon-colour: #fffc00;
  }
  social-media a:hover.flickr {
    --icon-colour: #f40083;
  }
  social-media a:hover.vimeo {
    --icon-colour: #1ab7ea;
  }
  social-media a:hover.thumbler {
    --icon-colour: #35465d;
  }
  social-media a:hover.reddit {
    --icon-colour: #ff4500;
  }
  social-media a:hover.whatsapp {
    --icon-colour: #25d366;
  }
  social-media a:hover.skype {
    --icon-colour: #00aff0;
  }
  social-media a:hover.discord {
    --icon-colour: #7289da;
  }
}
social-media a span {
  display: none;
}

.article {
  display: flex;
}
.article .container {
  display: flex;
  flex-direction: column;
  padding: var(--gutter1);
  background-color: white;
  border: 1px solid #f4f4f4;
  border-radius: var(--border-radius, 6px);
  overflow: hidden;
  align-content: flex-start;
  width: 100%;
}
.article .container > * {
  order: 2;
}
.article .container .heading {
  font-size: 1.5625em;
  line-height: 1.6;
  line-height: 1.2;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
.article .container .subheading {
  font-size: 1.0625em;
  line-height: 1.6;
  color: var(--article-subheading-font-colour, #6a6a6a);
  max-width: 75ch;
  margin-bottom: auto;
}
.article .container .subheading + .timestamp {
  margin-top: var(--gap);
}
.article .container .introduction {
  font-size: 0.875em;
  max-width: 75ch;
}
.article .container .button {
  justify-self: flex-start;
  margin-bottom: 0;
  margin-top: auto;
}
.article .container time {
  font-weight: bold;
  font-size: 0.875em;
}
.article .container .author {
  --photo-size: 40px;
  display: flex;
  position: relative;
  flex-direction: column;
  justify-content: center;
}
.article .container .author .name {
  font-weight: bold;
  white-space: nowrap;
  color: #131f6b;
  font-size: 0.875em;
  line-height: 1.4;
  order: 1;
  min-height: var(--photo-size);
  display: flex;
  align-items: center;
}
.article .container .author .name em {
  font-size: 0.75em;
  margin-right: 5px;
}
.article .container .author .timestamp {
  white-space: nowrap;
  font-size: 0.875em;
  line-height: 1.4;
  order: 2;
}
.article .container .author .timestamp,
.article .container .author .timestamp ~ .name {
  min-height: calc(var(--photo-size) / 2);
}
.article .container .author .image {
  width: var(--photo-size);
  height: var(--photo-size);
  top: calc(50% - var(--photo-size) / 2);
  border-radius: 50%;
  left: 0;
  position: absolute;
  border: 1px solid #dcdcdc;
}
.article .container .author .image ~ * {
  padding-left: calc(var(--photo-size) + var(--gap));
}
.article .container > .image {
  order: 1;
  margin-bottom: var(--gutter1);
  height: var(--image-height, 180px);
  width: calc(100% + var(--gutter3));
  left: var(--gutter1-);
  margin-top: var(--gutter1-);
}
.article.bg-blue .container {
  background-color: #131f6b;
  --article-subheading-font-colour: #FFFFFF;
  --heading-colour: #FFFFFF;
}
.article.bg-blue .container .text {
  color: #FFFFFF;
}
.article.bg-red .container {
  background-color: #df3035;
  --article-subheading-font-colour: #FFFFFF;
  --heading-colour: #FFFFFF;
}
.article.bg-red .container .text {
  color: #FFFFFF;
}
.article.bg-grey .container {
  background-color: #f4f4f4;
  --heading-colour: var(--secondary);
}
.article.bg-yellow .container {
  background-color: #f6f4db;
}
.article.bg-orange .container {
  background-color: #ff6a00;
  --article-subheading-font-colour: #FFFFFF;
  --heading-colour: #FFFFFF;
}
.article.bg-orange .container .text {
  color: #FFFFFF;
}
.article.bg-green .container {
  background-color: #50bc08;
  --article-subheading-font-colour: #FFFFFF;
  --heading-colour: #FFFFFF;
}
.article.bg-green .container .text {
  color: #FFFFFF;
}
.article.bg-black .container {
  background-color: #1e1c1c;
}
.article.bg-primary .container {
  background-color: var(--primary);
  --article-subheading-font-colour: #FFFFFF;
  --heading-colour: #FFFFFF;
}
.article.bg-secondary .container {
  background-color: var(--secondary);
  --article-subheading-font-colour: #FFFFFF;
  --heading-colour: #FFFFFF;
}
.content-block.black article-list .article .container {
  border: none !important;
}
.content-block.black article-list .article .container .button {
  --font-colour: white;
  --background-colour: #1e1c1c;
  --border-colour: transparent;
  --hover-font-colour: #1e1c1c;
  --hover-background-colour: white;
  --hover-border-colour: transparent;
}

.article:has(div.container button-container .button:only-child) div.container {
  position: relative;
  transition: border-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (hover: hover) {
  .article:has(div.container button-container .button:only-child) div.container:hover {
    border-color: var(--primary, #131f6b);
  }
}
.article:has(div.container button-container .button:only-child) button-container {
  position: initial;
}
.article:has(div.container button-container .button:only-child) button-container .button:only-child {
  position: initial;
}
.article:has(div.container button-container .button:only-child) button-container .button:only-child::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
}
.article a.container {
  transition: border-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (hover: hover) {
  .article a.container:hover {
    border-color: var(--primary, #131f6b);
  }
}
.article button-container {
  margin-top: var(--gutter1);
}
.article button-container .button {
  font-size: small;
}
.article[data-contains*=title][data-contains*=timestamp][data-contains*=author][data-contains*=button][data-contains*=image]:not([data-contains*=subheading]):not([data-contains*=introduction]) .container .timestamp {
  margin-top: auto;
}

.article[data-contains*=title][data-contains*=image]:not([data-contains*=timestamp]):not([data-contains*=author]):not([data-contains*=button]):not([data-contains*=subheading]):not([data-contains*=introduction]) .container .heading {
  margin-bottom: auto;
  font-size: 1.5625em;
  line-height: 1.6;
  line-height: 1.2;
}
.article[data-contains*=title][data-contains*=image]:not([data-contains*=timestamp]):not([data-contains*=author]):not([data-contains*=button]):not([data-contains*=subheading]):not([data-contains*=introduction]) .container > .image {
  --image-height: 130px;
}

.article[data-contains*=serviceCentres] .container div {
  margin-bottom: var(--gap);
}
.article[data-contains*=serviceCentres] .container h4 {
  margin-bottom: 0;
}

.article.layout-text-image-side-by-side:not([class=bg-]) .container,
.article.layout-text-image-side-by-side:not([class=bg-]) .content {
  padding: 0;
}

tag-line {
  display: flex;
  align-items: center;
  text-transform: uppercase;
  justify-content: center;
  gap: var(--gap);
  flex-wrap: wrap;
  font-weight: 400;
  letter-spacing: 5px;
  font-size: 1.5625em;
  line-height: 1.6;
}
tag-line span {
  display: flex;
  align-items: center;
  font-size: 0.5em;
  color: white;
  grid-row: 1;
  line-height: 2;
}
tag-line svg {
  color: var(--tagline-icon-colour, #df3035);
  display: block;
  width: 24px;
  height: 24px;
  margin-right: var(--gap);
}

side-bar form .freeform-form-success {
  background-color: #50bc08;
  color: white;
  width: calc(100% + 30px);
  padding: calc(var(--gap) * 0.5) var(--gap);
  border-radius: var(--border-radius, 6px);
  margin: 0 -15px var(--gap);
}
side-bar form .submit-row {
  margin-top: var(--gap);
}

form select {
  --font-colour: #6a6a6a;
  --background-colour: #FFFFFF;
  --border-radius: var(--border-radius, 6px);
  --border-colour: var(--font-colour);
  --border: 1px solid var(--border-colour);
  --padding: var(--gap) var(--gap);
  border-radius: var(--border-radius, 6px);
  background-color: var(--background-colour);
  border: var(--border);
  padding: var(--padding);
  font-size: 0.875em;
  color: var(--font-colour);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-appearance: none;
  background-repeat: no-repeat;
  background-position: calc(100% - var(--gap)) center;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17.4' height='10.1'%3E%3Cpath d='M16.7.7l-8 8-8-8' fill='none' stroke='%231E1C1C' stroke-width='2' stroke-miterlimit='10'/%3E%3C/svg%3E");
}
form select::-moz-placeholder {
  -moz-transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
form select::placeholder {
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
form select:focus {
  outline-color: #131f6b;
}
form select:focus::-moz-placeholder {
  color: transparent;
}
form select:focus::placeholder {
  color: transparent;
}
form select.autocomplete:not([value=""]):focus {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
form input:not([type=checkbox]):not([type=radio]) {
  --font-colour: #6a6a6a;
  --background-colour: #FFFFFF;
  --border-radius: var(--border-radius, 6px);
  --border-colour: var(--font-colour);
  --border: 1px solid var(--border-colour);
  --padding: var(--gap) var(--gap);
  border-radius: var(--border-radius, 6px);
  background-color: var(--background-colour);
  border: var(--border);
  padding: var(--padding);
  font-size: 0.875em;
  color: var(--font-colour);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
form input:not([type=checkbox]):not([type=radio])::-moz-placeholder {
  -moz-transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
form input:not([type=checkbox]):not([type=radio])::placeholder {
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
form input:not([type=checkbox]):not([type=radio]):focus {
  outline-color: #131f6b;
}
form input:not([type=checkbox]):not([type=radio]):focus::-moz-placeholder {
  color: transparent;
}
form input:not([type=checkbox]):not([type=radio]):focus::placeholder {
  color: transparent;
}
form input:not([type=checkbox]):not([type=radio]).autocomplete:not([value=""]):focus {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
form textarea {
  --font-colour: #6a6a6a;
  --background-colour: #FFFFFF;
  --border-radius: var(--border-radius, 6px);
  --border-colour: var(--font-colour);
  --border: 1px solid var(--border-colour);
  --padding: var(--gap) var(--gap);
  border-radius: var(--border-radius, 6px);
  background-color: var(--background-colour);
  border: var(--border);
  padding: var(--padding);
  font-size: 0.875em;
  color: var(--font-colour);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
form textarea::-moz-placeholder {
  -moz-transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
form textarea::placeholder {
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
form textarea:focus {
  outline-color: #131f6b;
}
form textarea:focus::-moz-placeholder {
  color: transparent;
}
form textarea:focus::placeholder {
  color: transparent;
}
form textarea.autocomplete:not([value=""]):focus {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
form input:-webkit-autofill,
form input:-webkit-autofill:hover,
form input:-webkit-autofill:focus,
form textarea:-webkit-autofill,
form textarea:-webkit-autofill:hover,
form textarea:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--font-colour, inherit);
  -webkit-box-shadow: 0 0 0px 1000px var(--background-colour, white) inset;
}
form[data-freeform] label + div {
  font-size: 0.75em;
  margin-bottom: calc(var(--gap) * 0.5);
}
form[data-freeform] .freeform-row + .freeform-row > div {
  margin-top: var(--gap);
}
form[data-freeform] .freeform-column {
  margin: 0;
  padding: 0;
}
side-bar form label {
  color: white;
}
side-bar form label ~ div {
  color: white;
}

form#login {
  display: flex;
  flex-direction: column;
}
form#login > label ~ label {
  margin-top: var(--gap);
}
form#login div {
  display: flex;
  justify-content: space-between;
  margin-top: var(--gap);
  font-size: 0.75em;
}
@media (hover: hover) {
  form#login div a:hover {
    color: #df3035;
  }
}
form#login button {
  margin-top: var(--gap);
}

form#reset-password {
  background-color: #131f6b;
  border-radius: var(--border-radius, 6px);
  color: white;
  padding: var(--gutter1);
  display: flex;
  flex-direction: column;
}
form#reset-password button {
  margin-top: var(--gap);
}

required-notice {
  display: block;
  width: 5px;
  height: 100%;
  position: absolute;
  right: 0;
  top: 0;
  background: var(--notice-colour, #50bc08);
  border-top-right-radius: 6px;
  transition: background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  border-bottom-right-radius: 6px;
}
required-notice span {
  pointer-events: none;
  white-space: nowrap;
  font-size: 0.75em;
  top: 50%;
  right: calc(100% + calc(var(--gap) * 0.5));
  border: 1px solid #dcdcdc;
  border-radius: 4px;
  background-color: white;
  padding: 4px calc(var(--gap) * 0.5);
  position: absolute;
  opacity: 0;
  transform: translate(10px, -50%);
  transition: var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (hover: hover) {
  required-notice:hover span {
    transform: translate(0px, -50%);
    opacity: 1;
  }
}

form[data-handle=contactUs] .freeform-form-success,
form[data-handle=contactUs] .freeform-form-errors,
form[data-handle=powderContact] .freeform-form-success,
form[data-handle=powderContact] .freeform-form-errors {
  background-color: #50bc08;
  color: white;
  grid-column: 1/-1;
  width: 100%;
  padding: calc(var(--gap) * 0.5) var(--gap);
  border-radius: var(--border-radius, 6px);
  margin-bottom: var(--gutter1);
}
form[data-handle=contactUs] .freeform-form-errors,
form[data-handle=powderContact] .freeform-form-errors {
  background-color: #df3035;
}
form[data-handle=contactUs] .form-fields,
form[data-handle=powderContact] .form-fields {
  display: grid;
  grid-gap: var(--gutter1) var(--gutter1);
}
@media (min-width: 601px) {
  form[data-handle=contactUs] .form-fields,
  form[data-handle=powderContact] .form-fields {
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  }
  form[data-handle=contactUs] .form-fields .freeform-row:first-child,
  form[data-handle=powderContact] .form-fields .freeform-row:first-child {
    grid-row: 1;
  }
  form[data-handle=contactUs] .form-fields .freeform-row.first-name, form[data-handle=contactUs] .form-fields .freeform-row.last-name, form[data-handle=contactUs] .form-fields .freeform-row.email, form[data-handle=contactUs] .form-fields .freeform-row.company-name, form[data-handle=contactUs] .form-fields .freeform-row.contact-no, form[data-handle=contactUs] .form-fields .freeform-row.y-rqg181k-d,
  form[data-handle=powderContact] .form-fields .freeform-row.first-name,
  form[data-handle=powderContact] .form-fields .freeform-row.last-name,
  form[data-handle=powderContact] .form-fields .freeform-row.email,
  form[data-handle=powderContact] .form-fields .freeform-row.company-name,
  form[data-handle=powderContact] .form-fields .freeform-row.contact-no,
  form[data-handle=powderContact] .form-fields .freeform-row.y-rqg181k-d {
    grid-column: 1;
  }
  form[data-handle=contactUs] .form-fields .freeform-row.detailsofenquiry,
  form[data-handle=powderContact] .form-fields .freeform-row.detailsofenquiry {
    grid-column: 2;
    grid-row: 2/span 5;
  }
  form[data-handle=contactUs] .form-fields .freeform-row.submit-row,
  form[data-handle=powderContact] .form-fields .freeform-row.submit-row {
    grid-column: 2;
  }
  form[data-handle=contactUs] .form-fields button[type=submit],
  form[data-handle=powderContact] .form-fields button[type=submit] {
    align-self: flex-end;
  }
}
form[data-handle=contactUs] .form-fields h2,
form[data-handle=powderContact] .form-fields h2 {
  display: flex;
  align-items: center;
}
form[data-handle=contactUs] .form-fields h2 svg.email,
form[data-handle=powderContact] .form-fields h2 svg.email {
  width: 1em;
  margin-right: 0.5em;
  height: 1em;
  fill: #df3035;
}
form[data-handle=contactUs] .form-fields .freeform-row,
form[data-handle=powderContact] .form-fields .freeform-row {
  display: flex;
  flex-direction: column;
  position: relative;
  grid-column: 1/span 2;
}
form[data-handle=contactUs] .form-fields .freeform-row.detailsofenquiry .freeform-instructions,
form[data-handle=powderContact] .form-fields .freeform-row.detailsofenquiry .freeform-instructions {
  display: none;
}
form[data-handle=contactUs] .form-fields .freeform-row.detailsofenquiry textarea,
form[data-handle=powderContact] .form-fields .freeform-row.detailsofenquiry textarea {
  height: 100%;
}
form[data-handle=contactUs] .form-fields .freeform-row.detailsofenquiry .freeform-column,
form[data-handle=powderContact] .form-fields .freeform-row.detailsofenquiry .freeform-column {
  height: 100%;
}
form[data-handle=contactUs] .form-fields .freeform-row .freeform-column,
form[data-handle=powderContact] .form-fields .freeform-row .freeform-column {
  margin: 0;
  display: flex;
  flex-direction: column;
  position: relative;
}
form[data-handle=contactUs] .form-fields .freeform-row .freeform-column label:not(.freeform-input-only-label),
form[data-handle=powderContact] .form-fields .freeform-row .freeform-column label:not(.freeform-input-only-label) {
  display: none;
}
form[data-handle=contactUs] .form-fields .freeform-row.service-centre-contact, form[data-handle=contactUs] .form-fields .freeform-row.lead-status, form[data-handle=contactUs] .form-fields .freeform-row.internal-notes, form[data-handle=contactUs] .form-fields .freeform-row.order-value,
form[data-handle=powderContact] .form-fields .freeform-row.service-centre-contact,
form[data-handle=powderContact] .form-fields .freeform-row.lead-status,
form[data-handle=powderContact] .form-fields .freeform-row.internal-notes,
form[data-handle=powderContact] .form-fields .freeform-row.order-value {
  display: none;
}
form[data-handle=contactUs] .form-fields label.freeform-input-only-label,
form[data-handle=powderContact] .form-fields label.freeform-input-only-label {
  font-size: 0.875em;
  grid-column: 1;
}
form[data-handle=contactUs] .form-fields label.freeform-input-only-label input,
form[data-handle=powderContact] .form-fields label.freeform-input-only-label input {
  width: 20px;
  height: 20px;
  margin-right: calc(var(--gap) * 0.5);
}
form[data-handle=contactUs] .form-fields label.freeform-input-only-label input:checked,
form[data-handle=powderContact] .form-fields label.freeform-input-only-label input:checked {
  background-color: #50bc08;
}
form[data-handle=contactUs] .form-fields select,
form[data-handle=contactUs] .form-fields textarea,
form[data-handle=contactUs] .form-fields input:not([type=submit]),
form[data-handle=powderContact] .form-fields select,
form[data-handle=powderContact] .form-fields textarea,
form[data-handle=powderContact] .form-fields input:not([type=submit]) {
  --border-colour: none;
  --background-colour: white;
}
form[data-handle=contactUs] .freeform-errors,
form[data-handle=powderContact] .freeform-errors {
  color: #df3035;
  font-weight: bold;
  font-size: 0.625em;
  padding: 2px var(--gap);
  position: absolute;
  top: calc(100% - 4px);
  background-color: #df3035;
  color: white;
  width: 100%;
  border-bottom-left-radius: 6px;
  border-bottom-right-radius: 6px;
}
@media (max-width: 400px) {
  form[data-handle=contactUs] button[type=submit],
  form[data-handle=powderContact] button[type=submit] {
    width: 100%;
  }
}
form[data-handle=contactUs] .freeform-input[required]:not(:valid) ~ required-notice,
form[data-handle=powderContact] .freeform-input[required]:not(:valid) ~ required-notice {
  --notice-colour: #df3035;
}
form[data-handle=contactUs]:not(:valid) button[type=submit],
form[data-handle=powderContact]:not(:valid) button[type=submit] {
  pointer-events: none;
  --background-colour: transparent;
  --font-colour: #969695;
  --border-colour: #969695;
  --hover-background-colour: #969695;
  --hover-font-colour: #969695;
  --hover-border-colour: transparent;
}
form[data-handle=contactUs] .service-centre,
form[data-handle=powderContact] .service-centre {
  display: none !important;
}

@media (min-width: 601px) {
  form[data-handle=contactUs] .form-fields {
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  }
  form[data-handle=contactUs] .form-fields .freeform-row:first-child {
    grid-row: 1;
  }
  form[data-handle=contactUs] .form-fields .freeform-row.first-name, form[data-handle=contactUs] .form-fields .freeform-row.last-name, form[data-handle=contactUs] .form-fields .freeform-row.email, form[data-handle=contactUs] .form-fields .freeform-row.company-name, form[data-handle=contactUs] .form-fields .freeform-row.contact-no, form[data-handle=contactUs] .form-fields .freeform-row.y-rqg181k-d, form[data-handle=contactUs] .form-fields .freeform-row.product {
    grid-column: 1/2;
  }
  form[data-handle=contactUs] .form-fields .freeform-row.detailsofenquiry {
    grid-column: 2/-1;
    grid-row: 2/span 6;
  }
}

body#edit form textarea,
body#edit form select,
body#edit form input {
  border: 1px solid black;
}
body#edit form .submit-row {
  order: 20;
}
body#edit form .freeform-row {
  display: none;
}
body#edit form .first-name,
body#edit form .last-name,
body#edit form .email,
body#edit form .product,
body#edit form .detailsofenquiry,
body#edit form .service-centre-contact,
body#edit form .lead-status,
body#edit form .internal-notes,
body#edit form .order-value,
body#edit form .submit-row {
  display: block;
}
body#edit form .first-name .freeform-column select,
body#edit form .first-name .freeform-column textarea,
body#edit form .first-name .freeform-column input,
body#edit form .last-name .freeform-column select,
body#edit form .last-name .freeform-column textarea,
body#edit form .last-name .freeform-column input,
body#edit form .email .freeform-column select,
body#edit form .email .freeform-column textarea,
body#edit form .email .freeform-column input,
body#edit form .product .freeform-column select,
body#edit form .product .freeform-column textarea,
body#edit form .product .freeform-column input,
body#edit form .detailsofenquiry .freeform-column select,
body#edit form .detailsofenquiry .freeform-column textarea,
body#edit form .detailsofenquiry .freeform-column input,
body#edit form .service-centre-contact .freeform-column select,
body#edit form .service-centre-contact .freeform-column textarea,
body#edit form .service-centre-contact .freeform-column input,
body#edit form .lead-status .freeform-column select,
body#edit form .lead-status .freeform-column textarea,
body#edit form .lead-status .freeform-column input,
body#edit form .internal-notes .freeform-column select,
body#edit form .internal-notes .freeform-column textarea,
body#edit form .internal-notes .freeform-column input,
body#edit form .order-value .freeform-column select,
body#edit form .order-value .freeform-column textarea,
body#edit form .order-value .freeform-column input,
body#edit form .submit-row .freeform-column select,
body#edit form .submit-row .freeform-column textarea,
body#edit form .submit-row .freeform-column input {
  display: block !important;
  visibility: visible !important;
}
body#edit form .detailsofenquiry {
  grid-row: 1/span 6;
}
body#edit form .first-name,
body#edit form .last-name,
body#edit form .email,
body#edit form .product,
body#edit form .service-centre-contact {
  pointer-events: none;
}
body#edit form .first-name select,
body#edit form .first-name textarea,
body#edit form .first-name input,
body#edit form .last-name select,
body#edit form .last-name textarea,
body#edit form .last-name input,
body#edit form .email select,
body#edit form .email textarea,
body#edit form .email input,
body#edit form .product select,
body#edit form .product textarea,
body#edit form .product input,
body#edit form .service-centre-contact select,
body#edit form .service-centre-contact textarea,
body#edit form .service-centre-contact input {
  background-color: #eee;
}
body#edit form .detailsofenquiry {
  pointer-events: all;
}
body#edit form .detailsofenquiry textarea {
  background-color: #eee;
}
body#edit form .service-centre-contact .freeform-column label,
body#edit form .lead-status .freeform-column label,
body#edit form .internal-notes .freeform-column label,
body#edit form .order-value .freeform-column label {
  display: block !important;
  visibility: visible !important;
}

modal-wrapper {
  --wrapper-background-colour: rgba(255, 255, 255, 0.95);
  --container-background-colour: white;
  --min-width:300px;
  --max-width:1120px;
  --width:clamp(var(--min-width), 90vw, fit-content);
  --min-height:600px;
  --max-height:calc(100vh - var(--gutter2));
  --height:clamp(var(--min-height), 90vw, fit-content);
  --close-button-size: 30px;
  --nav-button-size: 40px;
  position: fixed;
  inset: 0;
  height: 100%;
  width: 100%;
  background-color: var(--wrapper-background-colour);
  z-index: 10;
  display: flex;
  place-items: center;
  place-content: center;
  transition: opacity 0.5s cubic-bezier(0.42, 0, 0.58, 1);
  overscroll-behavior: contain;
}
@supports (--v:-webkit-fill-available ) {
  modal-wrapper {
    --max-height:-webkit-fill-available;
  }
}
modal-wrapper.loading {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1) 0.3s;
}
modal-wrapper.loading modal-container {
  opacity: 0;
  transform: translateY(2vh);
  transition: opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1), transform 0.3s cubic-bezier(0.895, 0.03, 0.685, 0.22);
}
modal-wrapper button.close {
  position: absolute;
  top: var(--gutter1);
  right: var(--gutter1);
  width: var(--close-button-size);
  height: var(--close-button-size);
}
modal-wrapper button.close svg {
  border: 2px solid var(--secondary, #df3035);
  border-radius: 50%;
  --fill:var(--secondary, #df3035);
}
modal-wrapper button.close svg circle, modal-wrapper button.close svg path {
  transition: 0.3s cubic-bezier(0.42, 0, 0.58, 1);
}
@media (hover: hover) {
  modal-wrapper button.close:hover svg {
    --fill:white;
    --stroke:var(--secondary, #df3035);
  }
}
modal-wrapper button.navigation {
  position: absolute;
  width: var(--nav-button-size);
  height: var(--nav-button-size);
  top: calc(50% - var(--nav-button-size) / 2);
  background-color: var(--secondary, #df3035);
  border-radius: 50%;
  border: 2px solid var(--secondary, #df3035);
  color: white;
  display: flex;
  place-content: center;
  place-items: center;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
modal-wrapper button.navigation.previous {
  left: var(--gutter1);
}
modal-wrapper button.navigation.next {
  right: var(--gutter1);
}
modal-wrapper button.navigation svg {
  width: 50%;
  height: 50%;
}
@media (hover: hover) {
  modal-wrapper button.navigation:hover {
    transform: scale(1.1);
    color: var(--secondary, #df3035);
    background-color: white;
  }
}

modal-container {
  transform: translateY(0);
  transition: opacity 0.5s cubic-bezier(0.42, 0, 0.58, 1) 0.3s, transform 0.5s cubic-bezier(0.165, 0.84, 0.44, 1) 0.3s;
  width: var(--width);
  height: var(--height);
  max-height: var(--max-height);
  max-width: var(--max-width);
  border: 1px solid #dcdcdc;
  border-radius: var(--border-radius, 6px);
  background-color: var(--container-background-colour);
  position: relative;
  display: flex;
  flex-direction: column;
  margin: var(--gutter1);
  overscroll-behavior: contain;
}
@supports not (width: clamp(1px, 5vw, 10px)) {
  modal-container {
    --width: 60vw;
    max-width: var(--max-width);
    min-width: var(--min-width);
    --height: 80vw;
    max-height: var(--max-height);
    min-height: var(--min-height);
  }
}
modal-container:empty {
  width: calc(var(--max-width) / 2);
  height: calc(var(--max-height) / 2);
}
modal-container:empty:after {
  --size: 20px;
  content: "";
  position: absolute;
  top: calc(50% - var(--size) / 2);
  left: calc(50% - var(--size) / 2);
  opacity: 0;
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  border: 2px solid var(--loader-colour, #969695);
  border-top-color: transparent;
  border-bottom-color: transparent;
  animation-name: loader-rotate;
  animation-duration: 0.5s;
  animation-iteration-count: infinite;
  transition: opacity 0.2s cubic-bezier(0.42, 0, 0.58, 1);
  animation-play-state: paused;
  opacity: 1;
  animation-play-state: running;
}
@keyframes loader-rotate {
  from {
    transform: rotate(180deg);
  }
  to {
    transform: rotate(0deg);
  }
}
modal-container > button.close {
  position: relative;
  order: -1;
  align-self: flex-end;
  top: initial;
  right: initial;
  margin-top: calc(-1 * var(--close-button-size) / 2);
  margin-bottom: calc(-1 * var(--close-button-size) / 2);
  margin-right: calc(-1 * var(--close-button-size) / 2);
}

modal-content {
  display: block;
  position: sticky;
  overscroll-behavior: contain;
  width: inherit;
  height: inherit;
  max-height: inherit;
  max-width: inherit;
  overflow-y: auto;
  overflow-x: hidden;
  padding: var(--gutter1);
}
modal-content > * {
  max-width: 100%;
}

modal-wrapper[data-type=image] .image {
  max-height: calc(var(--max-height) - var(--gutter6));
  border: none;
}
modal-wrapper[data-type=image] .image img {
  max-height: calc(100vh - var(--gutter3) - var(--gutter4));
  width: auto;
  height: auto;
  margin: auto;
}

modal-wrapper[data-type=default] modal-content > img[src*=".svg"] {
  width: 100%;
  height: auto;
}

modal-wrapper[data-type=video] {
  --wrapper-background-colour: rgba(0, 0, 0, 0.95);
}
modal-wrapper[data-type=video] modal-container {
  --aspect-ratio: 16/9;
  aspect-ratio: var(--aspect-ratio);
  display: block;
  position: relative;
  width: 100%;
  background-color: black;
  background-color: white;
  padding: var(--gap);
}
@supports not (aspect-ratio: 16/9) {
  modal-wrapper[data-type=video] modal-container {
    aspect-ratio: initial;
    padding-bottom: calc(100% / (var(--aspect-ratio)));
    height: 0;
  }
  modal-wrapper[data-type=video] modal-container > * {
    position: absolute;
  }
}
modal-wrapper[data-type=video] modal-container iframe, modal-wrapper[data-type=video] modal-container canvas {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  height: 100% !important;
  width: 100% !important;
}
modal-wrapper[data-type=video] modal-container modal-content {
  height: 100%;
  border-radius: var(--border-radius, 6px);
}

.open-in-modal {
  cursor: pointer;
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
.open-in-modal:after {
  --size: 20px;
  content: "";
  position: absolute;
  top: calc(50% - var(--size) / 2);
  left: calc(50% - var(--size) / 2);
  opacity: 0;
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  border: 2px solid var(--loader-colour, white);
  border-top-color: transparent;
  border-bottom-color: transparent;
  animation-name: loader-rotate;
  animation-duration: 0.5s;
  animation-iteration-count: infinite;
  transition: opacity 0.2s cubic-bezier(0.42, 0, 0.58, 1);
  animation-play-state: paused;
}
@keyframes loader-rotate {
  from {
    transform: rotate(180deg);
  }
  to {
    transform: rotate(0deg);
  }
}
.open-in-modal.loading {
  pointer-events: none;
}
.open-in-modal.loading:after {
  opacity: 1;
  animation-play-state: running;
}

img.open-in-modal, .open-in-modal img {
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  -o-user-drag: none;
  user-drag: none;
}

:root {
  --dialog-translate-offset: 1rem;
  --dialog-translate-enter: 0 var(--dialog-translate-offset);
  --dialog-translate-leave: 0 calc(-1 * var(--dialog-translate-offset));
  --dialog-translate-duration: 0.4s;
  --dialog-gap: var(--gutter2);
  --dialog-content-max-width: 1080px;
  --dialog-content-background-colour: white;
  --dialog-backdrop-colour: rgba(0, 0, 0, 0.5);
}

dialog.modal {
  border: none;
  overflow: initial;
  flex-direction: column;
  opacity: 0;
  translate: var(--dialog-translate-enter);
  background-color: transparent;
  transition-property: overlay, display, translate, opacity;
  transition-duration: var(--dialog-translate-duration);
  transition-timing-function: ease-in-out;
  transition-behavior: allow-discrete;
  margin: 0;
  z-index: 999;
  min-width: 100%;
  min-height: 100dvh;
  place-items: center;
  place-content: center;
}
dialog.modal *,
dialog.modal *::before,
dialog.modal *::after, dialog.modal {
  box-sizing: border-box;
}
dialog.modal::backdrop {
  transition-property: overlay, display, opacity;
  transition-duration: var(--dialog-translate-duration);
  transition-behavior: allow-discrete;
  backdrop-filter: blur(2px);
  background-color: var(--dialog-backdrop-colour);
  opacity: 0;
}
dialog.modal .dialog\:contents {
  overflow: auto;
  direction: ltr;
  border-radius: 0.6em;
  max-height: 100dvh;
  padding: var(--dialog-gap);
  background-color: var(--dialog-content-background-colour);
  width: min(100%, var(--dialog-content-max-width));
  overscroll-behavior: contain;
}
dialog.modal[open] {
  opacity: 1;
  translate: 0 0;
  display: flex;
}
@starting-style {
  dialog.modal[open] {
    opacity: 0;
    translate: var(--dialog-translate-leave);
  }
}
dialog.modal[open]::backdrop {
  opacity: 1;
}
@starting-style {
  dialog.modal[open]::backdrop {
    opacity: 0;
  }
}
dialog.modal button.dialog\:close {
  margin-block-start: calc(0.5 * var(--dialog-gap));
  align-self: center;
}
:root:has(dialog.modal[open]) [data-modal] {
  pointer-events: none;
}

.content-block {
  display: grid;
  grid-gap: var(--gutter1);
  grid-template-columns: repeat(var(--column-count), 1fr);
}
.content-block:empty {
  display: none;
}
.content-block.blowout.themed ~ .content-block:not(.blowout).themed {
  margin-top: var(--spacer0);
}
.content-block:not(.blowout).themed {
  border-radius: var(--border-radius, 6px);
}
.content-block:not(.blowout).themed:not(:last-of-type) {
  margin-bottom: var(--spacer0);
}
.content-block + .content-block {
  box-shadow: 0px -1px var(--border-top-colour, #dcdcdc);
}
.content-block :is(h2, h3, h4, h5, h6) {
  margin-bottom: var(--gap);
}
.content-block.grey {
  background: #f4f4f4;
}
.content-block.red {
  background: #df3035;
}
.content-block.blue {
  background: #131f6b;
}
.content-block.black {
  background: #1e1c1c;
  color: var(--font-colour);
  --heading-colour: white;
  --font-colour: white;
}
.content-block.side-by-side-components {
  grid-template-columns: repeat(2, minmax(0px, 1fr));
  gap: 0;
}
.content-block.side-by-side-components > * {
  grid-column: auto;
  margin-top: 0;
  margin-bottom: 0;
  border-radius: 0 !important;
}
.content-block.side-by-side-components > *.container-inline {
  padding-block: var(--spacer1);
}
.content-block.side-by-side-components > *.ecoposte-banner {
  padding-top: var(--spacer1);
  align-content: flex-start;
}
main:has(> .content-block.side-by-side-components) {
  margin-top: 0 !important;
}
main:has(> .content-block.side-by-side-components) .side-by-side-components {
  padding-bottom: 0;
}

@media (width < 900px) {
  .content-block.side-by-side-components {
    grid-template-columns: 1fr;
  }
}

.text a {
  --font-colour: var(--primary, #131f6b);
}
@media (hover: hover) {
  .text a:hover {
    --font-colour: var(--secondary, #df3035);
  }
}
.text a a.button {
  text-decoration: none !important;
}
.text ul > li::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle fill='%23DF3035' cx='8' cy='8' r='8'/%3E%3Cpath fill='none' stroke='white' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10' d='M3.5 8.4l2.7 2.7 6.3-6.3'/%3E%3C/svg%3E");
}
.text ul > li {
  position: relative;
  padding-left: calc(var(--list-style-size, 1em) * 1.8);
}
.text ul > li + li {
  margin-top: var(--line-style-spacing, var(--gap));
}
.text ul > li::before {
  display: inline-block;
  top: 0.1em;
  left: 0;
  position: absolute;
  width: var(--list-style-size, 1em);
  height: var(--list-style-size, 1em);
}
.text ol {
  counter-reset: counter;
}
.text ol > li {
  position: relative;
  display: block;
  padding-left: 22px;
  margin-left: var(--list-style-offset, 0);
}
.text ol > li + li {
  margin-top: calc(var(--gap) * 0.5);
}
.text ol > li::before {
  content: counter(counter) ".";
  counter-increment: counter;
  color: var(--list-style-colour, var(--primary));
  position: relative;
  margin-right: 0.5em;
}
.text p:empty, .text p > br {
  display: none;
}
.text > *:not(:last-child) {
  margin-bottom: var(--gap);
}
.text > * ul, .text > * ol {
  margin-top: var(--gap);
}
.text h2, .text h3, .text h4, .text h5, .text h6 {
  margin-bottom: var(--gap);
}
.text .heading-h3 {
  color: var(--secondary, #df3035);
}
.text [style*="text-align: center"] {
  width: 100%;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}
.text .quotes {
  border-left: 5px solid #dcdcdc;
  padding-left: var(--gap);
  font-style: italic;
}
.text figure {
  display: block;
  border-radius: var(--border-radius, 6px);
  background-color: white;
  padding: var(--gap);
}
.text figure img {
  max-width: 100%;
}
.text hr {
  margin-top: var(--spacer0) !important;
  margin-bottom: var(--spacer0) !important;
}
.text .note {
  margin: calc(var(--gap) * 2) 0;
}

.dark {
  --hr-colour: rgba(255, 255, 255, 0.3);
  --list-style-colour: white;
}
.dark .text {
  color: white;
  --heading-colour:white;
}
.dark .text a.button {
  --font-colour: white;
}
.dark .text a:not(.button) {
  --font-colour: rgba(255, 255, 255, 0.7);
  text-decoration: underline;
  text-underline-offset: 2px;
}
@media (hover: hover) {
  .dark .text a:not(.button):hover {
    --font-colour: white;
  }
}
.dark.red .text ul > li::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle fill='%23FFFFFF' cx='8' cy='8' r='8'/%3E%3Cpath fill='none' stroke='%23DF3035' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10' d='M3.5 8.4l2.7 2.7 6.3-6.3'/%3E%3C/svg%3E");
}
.dark.blue .text ul > li::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle fill='%23FFFFFF' cx='8' cy='8' r='8'/%3E%3Cpath fill='none' stroke='%23131F6B' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10' d='M3.5 8.4l2.7 2.7 6.3-6.3'/%3E%3C/svg%3E");
}

.contains-svgs .text figure {
  display: block;
  margin: 0 auto;
  padding: 0 var(--gap);
}
.contains-svgs .text figure img {
  height: 120px;
}

table-container {
  display: grid;
  grid-gap: var(--gap);
}
table-container > div {
  overflow: auto;
  border-radius: var(--border-radius, 6px);
  display: grid;
}
table-container > div:not(:hover) {
  scroll-behavior: smooth;
}
table-container > div::-webkit-scrollbar {
  width: 0.9em;
  height: 0.9em;
}
table-container > div::-webkit-scrollbar-button {
  width: 0;
  height: 0;
  display: none;
}
table-container > div::-webkit-scrollbar-thumb {
  background-color: #969695;
  border-radius: 10px;
  border: 4px solid rgba(0, 0, 0, 0);
  background-clip: padding-box;
  background-color: rgba(0, 0, 0, 0.15);
}
table-container > div::-webkit-scrollbar-track {
  background-color: transparent;
}
table-container > div::-webkit-scrollbar-corner {
  background-color: transparent;
}
table-container h3 {
  margin-bottom: 0 !important;
}
table-container table.table {
  width: auto;
  grid-row: 1;
  grid-column: 1;
}
table-container table.table.fake {
  pointer-events: none;
  will-change: transform;
  transform: translateX(var(--x));
  width: calc(100% - var(--x));
  overflow: hidden;
  background-color: initial;
}
table-container table.table.fake tbody tr td {
  background: white;
  border-right: 1px #dcdcdc dashed;
}
table-container table.table.fake tbody tr:nth-of-type(odd) td {
  background: #f4f4f4;
}
table-container table.table.fake thead tr th:first-of-type {
  border-right: 1px rgba(255, 255, 255, 0.1) dashed;
}
table-container table.table.fake thead tr th:not(:first-of-type), table-container table.table.fake tbody tr td:not(:first-of-type) {
  visibility: hidden;
}
@supports (writing-mode: vertical-lr) {
  table-container.enable-vertical-headings table.table thead tr th:not(:first-of-type) span {
    display: inline-block;
    writing-mode: vertical-lr;
    max-width: 50px;
    text-align: right;
    transform: rotate(180deg);
  }
}
table-container nav {
  align-items: flex-end;
  justify-content: flex-end;
  grid-row: 1;
  grid-column: 2;
  display: none;
}
table-container nav button.navigation {
  align-self: flex-end;
}
table-container nav button.navigation + button {
  margin-left: calc(var(--gap) * 0.5);
}
table-container nav + div {
  grid-column: 1/span 2;
}
table-container.scrolled-right button.next, table-container.scrolled-left button.previous {
  pointer-events: none;
}
table-container.enable-scroll-buttons nav {
  display: flex;
}
table-container button.navigation {
  --button-size: 40px;
  background-color: white;
  border: 1px solid #dcdcdc;
  border-radius: 50%;
  z-index: 1;
  width: var(--button-size);
  height: var(--button-size);
  position: relative;
  display: flex;
  place-items: center;
  place-content: center;
  align-self: center;
  color: #6a6a6a;
  transition: background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
table-container button.navigation.previous svg {
  margin-left: -2px;
}
table-container button.navigation.next svg {
  margin-left: 2px;
}
table-container button.navigation svg {
  width: calc(var(--button-size) / 2.5);
  height: calc(var(--button-size) / 2.5);
}
@media (hover: hover) {
  table-container button.navigation:hover {
    transform: scale(1.1);
    background-color: #131f6b;
    color: white;
    opacity: 1 !important;
    border-color: transparent;
  }
}

table.table {
  width: 100%;
  background-color: white;
  border-collapse: collapse;
  border-radius: var(--border-radius, 6px);
  text-align: left;
  position: relative;
  border-collapse: collapse;
}
table.table thead tr th {
  background-color: var(--primary, #131f6b);
  padding: var(--gap);
  color: white;
  white-space: nowrap;
}
table.table thead tr th:first-of-type {
  border-top-left-radius: var(--border-radius, 6px);
  overflow: hidden;
}
table.table thead tr th:last-of-type {
  border-top-right-radius: var(--border-radius, 6px);
  overflow: hidden;
}
table.table tbody tr td {
  padding: calc(var(--gap) * 0.5) var(--gap);
  position: relative;
}
table.table tbody tr td:first-of-type {
  min-width: 200px;
}
table.table tbody tr td strong {
  font-weight: 700;
  color: #6a6a6a;
}
table.table tbody tr td a {
  color: #131f6b;
  text-decoration: underline;
}
@media (hover: hover) {
  table.table tbody tr td a:hover {
    color: #df3035;
  }
}
table.table tbody tr td svg {
  --fill: var(--primary, #131f6b);
  width: 1em;
  height: 1em;
}
table.table tbody tr td svg.cross {
  --fill: #df3035;
}
table.table tbody tr td svg.tick {
  --fill: #50bc08;
}
table.table tr {
  position: relative;
}
table.table tr:not(:last-of-type) {
  border-bottom: 1px solid #dcdcdc;
}
table.table tr:nth-of-type(odd) {
  background-color: #f4f4f4;
}
table.table.alternating-row-colours tbody tr:nth-child(odd) {
  background-color: rgba(0, 0, 0, 0.1);
}
table.table.last-column-is-green tbody tr td:last-of-type {
  background-color: #131f6b;
  color: white;
}

.dark table-container > h3, .dark.content-block .tab-content > h3 {
  color: white;
}
.dark table-container > div, .dark.content-block .tab-content > div {
  border-radius: initial;
}
.dark table-container table.table, .dark.content-block .tab-content table.table {
  color: white;
  background-color: initial;
}
.dark table-container table.table tr th, .dark.content-block .tab-content table.table tr th {
  background-color: rgba(255, 255, 255, 0.15);
}
.dark table-container table.table tr, .dark.content-block .tab-content table.table tr {
  border: none !important;
}
.dark table-container table.table tr:nth-of-type(odd), .dark.content-block .tab-content table.table tr:nth-of-type(odd) {
  background-color: rgba(255, 255, 255, 0.15);
}

figure.image.static {
  border-radius: var(--border-radius, 6px);
  background-color: white;
  border: 1px solid #f4f4f4;
  height: -moz-fit-content;
  height: fit-content;
}
figure.image.static img {
  --image-height-size: auto;
  position: relative;
}
figure.image.static figcaption {
  font-size: 0.75em;
  font-style: italic;
  padding: calc(var(--gap) * 0.5) var(--gap);
}
figure.image.static.no-caption {
  border: none;
}
figure.image.static.crop-image {
  --aspect-ratio: 16/9;
  aspect-ratio: var(--aspect-ratio);
  --aspect-ratio: inherit;
}
figure.image.static.crop-image figcaption {
  bottom: 0;
  position: absolute;
  left: 0;
  width: 100%;
  background-color: white;
}
@supports not (aspect-ratio: 16/9) {
  figure.image.static.crop-image {
    aspect-ratio: initial;
    padding-bottom: calc(100% / (var(--aspect-ratio)));
    height: 0;
  }
  figure.image.static.crop-image > * {
    position: absolute;
  }
}
figure.image.static.crop-image img {
  --image-height-size: 100%;
}

.image.load-in-view img {
  transition: opacity 0.5s cubic-bezier(0.42, 0, 0.58, 1);
}
.image.load-in-view img:not([src]) {
  opacity: 0;
}

images-container {
  width: 100%;
  display: grid;
  grid-gap: var(--gutter0);
  grid-template-columns: repeat(auto-fill, minmax(calc(var(--main-max-width) / (var(--images-per-row) + 1)), 1fr));
}
images-container.crop-images .image {
  --aspect-ratio: 4/3;
  aspect-ratio: var(--aspect-ratio);
  --aspect-ratio: inherit;
}
@supports not (aspect-ratio: 4/3) {
  images-container.crop-images .image {
    aspect-ratio: initial;
    padding-bottom: calc(100% / (var(--aspect-ratio)));
    height: 0;
  }
  images-container.crop-images .image > * {
    position: absolute;
  }
}
images-container.crop-images .image img {
  --image-height-size: 100%;
}
@supports not (aspect-ratio: 1/1) {
  images-container.crop-images .image img {
    position: absolute;
  }
}
images-container.crop-images .image figcaption {
  bottom: 0;
  position: absolute;
  left: 0;
  width: 100%;
  background-color: white;
}

tabbed-content {
  display: flex;
  flex-direction: column;
  width: 100%;
}
tabbed-content > nav button {
  transition: var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
tabbed-content > nav button[aria-selected=true] {
  pointer-events: none;
}
tabbed-content > nav button svg {
  width: 10px;
  height: 10px;
}
tabbed-content summary {
  display: none;
  --font-colour: white;
  --background-colour: var(--primary, #131f6b);
  background-color: var(--background-colour);
  position: relative;
  cursor: pointer;
  padding-top: var(--gap);
  padding-bottom: var(--gap);
  padding-left: var(--gutter1);
  padding-right: var(--gutter1);
  border-radius: var(--border-radius, 6px);
  align-items: center;
  transition: background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), border-radius var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  outline: none;
  justify-content: space-between;
}
tabbed-content summary::marker {
  display: none;
}
tabbed-content summary, tabbed-content summary .heading {
  color: var(--font-colour);
  font-family: lato, sans-serif;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 1.0625em;
  line-height: 1.6;
}
tabbed-content summary .heading {
  margin-bottom: 0;
}
tabbed-content summary svg {
  height: 8px;
  transition: transform var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  position: absolute;
  right: var(--gutter1);
  top: calc(50% - 4px);
}
tabbed-content summary:hover, tabbed-content details[open] summary:hover {
  --background-colour:#1c2d9c;
}
tabbed-content .tab-content {
  grid-gap: var(--spacer0) 0;
  outline: none;
  position: relative;
  grid-auto-rows: min-content;
}
tabbed-content .tab-content:not([hidden]) {
  display: grid;
}
tabbed-content .tab-content .heading-h4 {
  font-size: 1.5625em;
  line-height: 1.6;
  color: #df3035;
}
tabbed-content .tab-content .heading-h5 {
  font-size: 1.0625em;
  line-height: 1.6;
}
tabbed-content .tab-content .table-container {
  display: inline-flex;
  flex-direction: column;
}
tabbed-content .tab-content .table-container.halves {
  max-width: 40%;
  margin: 0 5% 0 0;
}
tabbed-content .tab-content .table-container.halves:nth-of-type(2n) {
  margin: 0 0 0 5%;
}
tabbed-content .tab-content .table-container.thirds {
  max-width: 30%;
}
tabbed-content .tab-content .table-container.thirds:nth-of-type(3n - 1) {
  margin: 0 5%;
}
tabbed-content table-container {
  width: 100%;
}
tabbed-content:not([data-style="3"]).in-view > nav button[aria-selected=true] {
  color: var(--secondary, #df3035);
}
@media (min-width: 980px) and (max-width: 1300px), (max-width: 700px) {
  tabbed-content:not(.markets).allow-breakpoint-restyling {
    grid-gap: var(--gap) !important;
    display: grid;
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling > nav {
    display: none !important;
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details {
    grid-column: 1/-1;
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details[hidden] {
    display: block;
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details summary {
    display: flex;
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details .tab-content {
    padding: var(--spacer0) var(--gutter1) !important;
    border-bottom: 1px solid #dcdcdc;
    border-left: 1px solid #dcdcdc;
    border-right: 1px solid #dcdcdc;
    overflow: hidden;
    background-color: white;
    border-bottom-left-radius: var(--border-radius, 6px);
    border-bottom-right-radius: var(--border-radius, 6px);
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details .tab-content > * {
    transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
    opacity: 0;
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details .tab-content figure.image {
    flex-direction: column;
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details[open] summary {
    --background-colour:#0f1956;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details[open] summary svg {
    transform: rotate(180deg);
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details[open] .tab-content > * {
    opacity: 1;
  }
}
tabbed-content[data-style="4"].allow-breakpoint-restyling {
  grid-gap: var(--gap) !important;
  display: grid;
}
tabbed-content[data-style="4"].allow-breakpoint-restyling > nav {
  display: none !important;
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details {
  grid-column: 1/-1;
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details[hidden] {
  display: block;
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details summary {
  display: flex;
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details .tab-content {
  padding: var(--spacer0) var(--gutter1) !important;
  border-bottom: 1px solid #dcdcdc;
  border-left: 1px solid #dcdcdc;
  border-right: 1px solid #dcdcdc;
  overflow: hidden;
  background-color: white;
  border-bottom-left-radius: var(--border-radius, 6px);
  border-bottom-right-radius: var(--border-radius, 6px);
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details .tab-content > * {
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  opacity: 0;
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details .tab-content figure.image {
  flex-direction: column;
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details[open] summary {
  --background-colour:#0f1956;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details[open] summary svg {
  transform: rotate(180deg);
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details[open] .tab-content > * {
  opacity: 1;
}
@media (max-width: 1000px) {
  tabbed-content.markets.allow-breakpoint-restyling {
    grid-gap: var(--gap) !important;
    display: grid;
  }
  tabbed-content.markets.allow-breakpoint-restyling > nav {
    display: none !important;
  }
  tabbed-content.markets.allow-breakpoint-restyling details {
    grid-column: 1/-1;
  }
  tabbed-content.markets.allow-breakpoint-restyling details[hidden] {
    display: block;
  }
  tabbed-content.markets.allow-breakpoint-restyling details summary {
    display: flex;
  }
  tabbed-content.markets.allow-breakpoint-restyling details .tab-content {
    padding: var(--spacer0) var(--gutter1) !important;
    border-bottom: 1px solid #dcdcdc;
    border-left: 1px solid #dcdcdc;
    border-right: 1px solid #dcdcdc;
    overflow: hidden;
    background-color: white;
    border-bottom-left-radius: var(--border-radius, 6px);
    border-bottom-right-radius: var(--border-radius, 6px);
  }
  tabbed-content.markets.allow-breakpoint-restyling details .tab-content > * {
    transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
    opacity: 0;
  }
  tabbed-content.markets.allow-breakpoint-restyling details .tab-content figure.image {
    flex-direction: column;
  }
  tabbed-content.markets.allow-breakpoint-restyling details[open] summary {
    --background-colour:#0f1956;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }
  tabbed-content.markets.allow-breakpoint-restyling details[open] summary svg {
    transform: rotate(180deg);
  }
  tabbed-content.markets.allow-breakpoint-restyling details[open] .tab-content > * {
    opacity: 1;
  }
}

tabbed-content[data-style="1"] {
  --side-nav-width: 200px;
  display: grid;
  grid-template-columns: var(--side-nav-width) 1fr;
  grid-gap: var(--gutter1);
}
tabbed-content[data-style="1"] > nav {
  display: flex;
  flex-direction: column;
  position: sticky;
  height: -moz-fit-content;
  height: fit-content;
  top: calc(var(--breadcrumb-height) + var(--anchors-height) - var(--gutter1));
}
tabbed-content[data-style="1"] > nav button {
  padding: var(--gap) 0;
  text-align: left;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
tabbed-content[data-style="1"] > nav button svg {
  margin-left: var(--gap);
}
tabbed-content[data-style="1"] > nav button + button {
  border-top: 1px solid #dcdcdc;
}

tabbed-content[data-style="2"] > nav {
  display: flex;
  justify-content: center;
}
tabbed-content[data-style="2"] > nav button {
  padding: calc(var(--gap) * 2) var(--gutter2);
  text-align: center;
  border: 1px solid #dcdcdc;
  border-bottom: none;
  border-top-left-radius: var(--border-radius, 6px);
  border-top-right-radius: var(--border-radius, 6px);
  margin-left: calc(var(--gap) * 0.5);
  margin-right: calc(var(--gap) * 0.5);
  font-size: 0.875em;
  background-color: white;
  color: var(--primary, #131f6b);
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), border-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
tabbed-content[data-style="2"] > nav button svg {
  display: none;
}
@media (hover: hover) {
  tabbed-content[data-style="2"] > nav button:hover {
    color: var(--secondary, #df3035);
  }
}
tabbed-content[data-style="2"] > nav button[aria-selected=true] {
  background-color: #f4f4f4;
  border-color: transparent;
}
tabbed-content[data-style="2"] .tab-content {
  padding: var(--spacer1) var(--gutter1);
  background: linear-gradient(#f4f4f4, white);
}
tabbed-content[data-style="2"].inview nav button[aria-selected=true] {
  background-color: #f4f4f4;
  color: var(--secondary, #df3035);
}
@media (max-width: 480px) {
  tabbed-content[data-style="2"]:not(.allow-breakpoint-restyling)[data-count="2"] [role=tab] {
    width: 50%;
    padding: var(--gap);
  }
}

tabbed-content[data-style="3"] > nav {
  display: flex;
  justify-content: center;
  margin-bottom: var(--gap);
  border-radius: 50px;
  border: 1px solid #dcdcdc;
  align-self: center;
  background-color: white;
  position: relative;
}
tabbed-content[data-style="3"] > nav button {
  position: relative;
  text-align: center;
  border: none !important;
  text-transform: uppercase;
  font-size: 0.875em;
  border-radius: inherit;
  z-index: 1;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  padding: var(--gap) var(--gutter1);
}
tabbed-content[data-style="3"] > nav button svg {
  display: none;
}
tabbed-content[data-style="3"] > nav button[aria-selected=true] {
  color: white;
}
@media (hover: hover) {
  tabbed-content[data-style="3"] > nav button:not([aria-selected=true]):hover {
    color: #df3035;
  }
}
tabbed-content[data-style="3"] > nav:not(.has-marker) button[aria-selected=true] {
  background-color: #131f6b;
}
tabbed-content[data-style="3"] > nav mark {
  background-color: initial;
  color: inherit;
  border-radius: initial;
  padding: initial;
  transition: initial;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  background-color: #131f6b;
  width: 50%;
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
tabbed-content[data-style="3"] > nav mark.active {
  opacity: 1;
}
tabbed-content[data-style="3"] .tab-content {
  padding: var(--gutter1) 0;
}

.experts-in-your-business {
  --secondary: #df3035;
  position: relative;
  align-content: flex-start;
}
side-bar .experts-in-your-business {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
}
side-bar .experts-in-your-business .container-inline {
  padding: var(--gutter2) !important;
}
side-bar .experts-in-your-business .container-inline > .text {
  padding-top: 0;
}

.experts-in-your-business.themed .container-inline {
  padding: var(--gutter1) var(--gutter1) var(--gutter1) var(--gutter2);
}
.experts-in-your-business .text {
  padding-block-start: var(--gutter1);
}
.experts-in-your-business .text ul > li::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle fill='%23DF3035' cx='8' cy='8' r='8'/%3E%3Cpath fill='none' stroke='white' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10' d='M3.5 8.4l2.7 2.7 6.3-6.3'/%3E%3C/svg%3E") !important;
}
.experts-in-your-business .text > h2 {
  margin-bottom: var(--gutter1);
}
.experts-in-your-business button-container {
  gap: var(--gap);
}
.experts-in-your-business button-container .button {
  margin: 0;
}
.experts-in-your-business figure.image.static {
  background-color: transparent;
  grid-column: 2;
  grid-row: 1/span 2;
  max-width: 260px;
  border-radius: 0;
  align-self: end;
  justify-self: flex-end;
}
.experts-in-your-business .container-inline {
  isolation: isolate;
  display: grid;
  gap: var(--gutter1);
  height: 100%;
  align-self: stretch;
}
.experts-in-your-business .container-inline > *:not(figure) {
  grid-column: 1;
}
@container (width < 500px) {
  .experts-in-your-business .container-inline figure.image.static {
    position: absolute;
    opacity: 0.1;
    z-index: -1;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdsb2JhbC5jc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jb2xsZWN0aW9ucy9ub3JtYWxpc2Vycy9fYnJvd3Nlci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvX2NvcmUvX2luZGV4LnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9oZWxwZXJzL19icmVhay5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvc3R5bGluZy9faW1hZ2Uuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NvbGxlY3Rpb25zL3N0eWxpbmcvX2FzcGVjdC1yYXRpby5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvX2VsZW1lbnRzL3ZpZGVvLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9fZWxlbWVudHMvbWFyay5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvX3ZhcmlhYmxlcy9jb2xvdXJzLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9fZWxlbWVudHMvYnV0dG9uLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jcmVhdGUvX3VuaXRzLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jb2xsZWN0aW9ucy9zdHlsaW5nL19ob3Zlci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvX2NvcmUvY3VzdG9tLXByb3BlcnRpZXMuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL19jb3JlL3R5cG9ncmFwaHkuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL192YXJpYWJsZXMvZm9udHMuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NvbGxlY3Rpb25zL2ZvbnQvX3Jlc3BvbnNpdmUtZm9udHNpemUuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NyZWF0ZS9faGVhZGluZ3Muc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL192YXJpYWJsZXMvdW5pdHMuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL19jb3JlL2xheW91dC5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY3JlYXRlL19icmVha3BvaW50cy5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvc3R5bGluZy9fYmFja2dyb3VuZC5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvc3R5bGluZy9fcG9zaXRpb24uc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL19lbGVtZW50cy9jb21wb25lbnQuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL2NvbXBvbmVudHMvc2VjdGlvbnMvbmF2aWdhdGlvbi1iYXIuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NyZWF0ZS9fcGFsZXR0ZS5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvX2VsZW1lbnRzL2xvYWRlci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvaGVscGVycy9fYnJvd3Nlci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9zZWN0aW9ucy9kcm9wZG93bi1tZW51LnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9fZWxlbWVudHMvc2Nyb2xsLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL3NlY3Rpb25zL2hlYWRlci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9zZWN0aW9ucy9mb290ZXIuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NvbGxlY3Rpb25zL2ZvbnQvX2Nyb3Auc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL2NvbXBvbmVudHMvc2VjdGlvbnMvYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9zZWN0aW9ucy9iYWNrZ3JvdW5kLXZpZGVvLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL3NlY3Rpb25zL2JyZWFkY3J1bWJzLWJhci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9zZWN0aW9ucy9hbmNob3JzLWJhci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9zZWN0aW9ucy9zaWRlLWJhci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9wYXJ0aWFscy9zb2NpYWwtbWVkaWEuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL192YXJpYWJsZXMvdHJhbnNpdGlvbi5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9wYXJ0aWFscy9hcnRpY2xlLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL3BhcnRpYWxzL3RhZy1saW5lLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL2Zvcm1zLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9fZWxlbWVudHMvZm9ybS5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9tb2RhbC5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9kaWFsb2cuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL2NvbXBvbmVudHMvY29udGVudC1ibG9ja3MvX2luZGV4LnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL2NvbnRlbnQtYmxvY2tzL3RleHQuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL19lbGVtZW50cy9saXN0LnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL2NvbnRlbnQtYmxvY2tzL3RhYmxlLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL2NvbnRlbnQtYmxvY2tzL2ltYWdlcy5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9jb250ZW50LWJsb2Nrcy90YWJiZWQtY29udGVudC5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9jb250ZW50LWJsb2Nrcy9jdXN0b20vZXhwZXJ0cy1pbi15b3VyLWJ1c2luZXNzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDMkJkOzs7Ozs7O0VBT0MsU0FBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0Esd0JBQUE7QUR6Qkg7O0FDNEJFO0VBQ0Msc0JBQUE7RUFDQSw4QkFBQTtBRHpCSDs7QUM0QkU7RUFFQyxtQkFBQTtBRDFCSDtBQ3lCRztFQUFVLFVBQUE7QUR0QmI7O0FDMEJFO0VBQ0MsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBRHZCSDs7QUMwQkU7RUFDQyxvQkFBQTtFQUNBLHFCQUFBO0FEdkJIOztBQzBCRTtFQUNDLGdCQUFBO0FEdkJIOztBQzJCRztFQUFVLGFBQUE7QUR2QmI7O0FDMEJFO0VBQ0MsY0FBQTtBRHZCSDs7QUMwQkU7RUFBYyxpQkFBQTtBRHRCaEI7O0FDd0JFO0VBQVUsY0FBQTtBRHBCWjs7QUNzQkU7RUFDQyxrQkFBQTtFQUNBLHdCQUFBO0FEbkJIO0FDb0JHO0VBQXVDLGFBQUE7QURqQjFDOztBQ29CRTtFQUFXLGFBQUE7QURoQmI7O0FDa0JFO0VBQVcsYUFBQTtBRGRiOztBQ3dCRTtFQUNDLGtDQUFBO0VBQ0EsbUNBQUE7RUFDQSxXQUFBO0FEckJIOztBQ3dCRTtFQUNDLGtCQUFBO0FEckJIOztBQ2dDRTtFQUNDLDBCQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7QUQ3Qkg7O0FDd0NFO0VBQ0MsWUFBQTtF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bEJpOUJSO0FBQ0Y7QUdocENFO0Vld01BO0lBQ0UscUJBQUE7RWxCMjhCRjtBQUNGO0FrQnA4Qkk7RUFDRSxtQkF4TWE7QWxCOG9DbkI7QWtCcjhCTTtFQUNFLDRDQUFBO0FsQnU4QlI7QWtCdDhCUTtFQUNFLDRCQUFBO0FsQnc4QlY7QWtCdDhCUTtFQUNFLDZDQUFBO0FsQnc4QlY7QWtCaDlCSTtFQUNFLG1CQXhNYTtBbEIwcENuQjtBa0JqOUJNO0VBQ0UsNENBQUE7QWxCbTlCUjtBa0JsOUJRO0VBQ0UsNEJBQUE7QWxCbzlCVjtBa0JsOUJRO0VBQ0UsNkNBQUE7QWxCbzlCVjtBa0I1OUJJO0VBQ0UsbUJBeE1hO0FsQnNxQ25CO0FrQjc5Qk07RUFDRSw0Q0FBQTtBbEIrOUJSO0FrQjk5QlE7RUFDRSw0QkFBQTtBbEJnK0JWO0FrQjk5QlE7RUFDRSw2Q0FBQTtBbEJnK0JWO0FrQngrQkk7RUFDRSxtQkF4TWE7QWxCa3JDbkI7QWtCeitCTTtFQUNFLDRDQUFBO0FsQjIrQlI7QWtCMStCUTtFQUNFLDRCQUFBO0FsQjQrQlY7QWtCMStCUTtFQUNFLDZDQUFBO0FsQjQrQlY7QWtCditCRTtFQUNFLDRCUnRHTztFUXVHUCw2QlJ2R087RVF3R1AsNkJSbklPO0VRb0lQLDBCUnBJTztFUXFJUCx3Q0QvTGE7QWpCd3FDakI7QWtCeCtCSTtFQUNFLHlCQUFBO0FsQjArQk47QWtCeitCTTs7RUFFRSwyQlIxSStCO0FWcW5DdkM7O0FvQnZ0Q0U7RUFDRSxXQUFBO0VBQ0YseUJBQUE7RUFDQSxXQUFBO0VDYUEsa0JBQUE7RUFTRSxNQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0VBQ0EsOENBQUE7RUhtT0EsbUJBQUE7QWxCbytCSjtBR2h1Q0U7RWlCSkE7SUZxUEksa0JBQUE7SUFDQSwyQlIxTXFCO0lRMk1yQixZQUFBO0VsQm0vQko7QUFDRjtBR3Z1Q0U7RWlCSkE7SUYwUEksa0JBQUE7SUFDQSxPQUFBO0lBQ0EsNEJSL0hpQztJUWdJakMsWUFBQTtFbEJxL0JKO0FBQ0Y7QUdydkNFO0VlcVFTO0lB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WUM7RVZzMkNUO0VrQmwrQkk7SUFFRSx3RkFBQTtFbEJtK0JOO0FBQ0Y7QUd6K0NFO0VlZ2ZNO0lBQ0UsY0FBQTtFbEI0L0JSO0VrQjEvQk07SUFDRSxnQkFBQTtFbEI0L0JSO0VrQnYvQk07SUFDRSxnQkFBQTtJQUNBLGdDQUFBO0VsQnkvQlI7RWtCdi9CTTtJQUNFLGNBQUE7SUFDQSw0QlJoWUM7SVFpWUQsNkJSallDO0VWMDNDVDtFa0J0L0JJO0lBRUUsd0ZBQUE7RWxCdS9CTjtBQUNGOztBa0J0K0JFO0VBQ0UsaUJBQUE7QWxCeStCSjtBR2pnREU7RWVzaEJGO0lBTUksaUJBQUE7RWxCeStCRjtFa0IvOUJFO0lBQ0UscUJBQUE7RWxCaStCSjtFa0IvOUJFO0lBQ0UscUJBQUE7RWxCaStCSjtFa0IvOUJFO0lBQ0UscUJBQUE7RWxCaStCSjtFa0IvOUJFO0lBQ0UscUJBQUE7RWxCaStCSjtFa0IvOUJFO0lBQ0UscUJBQUE7RWxCaStCSjtFa0IvOUJFO0lBQ0UscUJBQUE7RWxCaStCSjtFa0I3OUJFO0lBQ0UscUJBQUE7RWxCKzlCSjtFa0I3OUJFO0lBQ0UscUJBQUE7RWxCKzlCSjtFa0I3OUJFO0lBQ0UscUJBQUE7RWxCKzlCSjtFa0I3OUJFO0lBQ0UscUJBQUE7RWxCKzlCSjtFa0I3OUJFO0lBQ0UscUJBQUE7RWxCKzlCSjtFa0IzOUJFO0lBQ0UscUJBQUE7RWxCNjlCSjtFa0IzOUJFO0lBQ0UscUJBQUE7RWxCNjlCSjtFa0IzOUJFO0lBQ0UscUJBQUE7RWxCNjlCSjtFa0IzOUJFO0lBQ0UscUJBQUE7RWxCNjlCSjtFa0J6OUJFO0lBQ0UscUJBQUE7RWxCMjlCSjtFa0J6OUJFO0lBQ0UscUJBQUE7RWxCMjlCSjtFa0J6OUJFO0lBQ0UscUJBQUE7RWxCMjlCSjtFa0J2OUJFO0lBQ0UscUJBQUE7RWxCeTlCSjtFa0J2OUJFO0lBQ0UscUJBQUE7RWxCeTlCSjtFa0JyOUJFO0lBQ0UscUJBQUE7RWxCdTlCSjtBQUNGO0FHempERTtFZTBnQkY7SUE0RkksaUJBQUE7RWxCdTlCRjtFa0JwOUJFO0lBQ0Us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eHpJSTtFQUxGO0lBTUksVUFBQTtJQUNBLHdDQUFBO0U1QzJ6SUo7QUFDRjtBNEN6eklJO0VBQ0UsVUFBQTtBNUMyeklOO0E0Q3p6SU07RUFIRjtJQUlJLFVBQUE7RTVDNHpJTjtBQUNGO0E0Q3h6SUU7RUFDRSxpREFBQTtFQUNBLGtCQUFBO0E1QzB6SUo7QTRDdnpJRTtFQUNFLG9CQUFBO0E1Q3l6SUo7O0E2Q3g0SUE7RUFDRSxhQUFBO0VBQ0Esd0JuQzhIUztFbUM3SFQsdURBQUE7QTdDMjRJRjtBNkN6NElFO0VBQ0UsYUFBQTtBN0MyNElKO0E2Q3g0SUU7RUFDRSwwQm5DMEZPO0FWZ3pJWDtBNkN4NElFO0VBQ0Usd0M1QjhCYTtBakI0MklqQjtBNkN6NElJO0VBQ0UsNkJuQ3FGSztBVnN6SVg7QTZDdjRJRTtFQUNFLHNEQUFBO0E3Q3k0SUo7QTZDdDRJRTtFQUNFLHlCbkN1Qkk7QVZpM0lSO0E2Q3I0SUU7RUFDRSxtQnJDTEk7QVI0NElSO0E2Q3I0SUU7RUFDRSxtQnJDWEU7QVJrNUlOO0E2Q3I0SUU7RUFDRSxtQnJDcEJHO0FSMjVJUDtBNkNyNElFO0VBQ0UsbUJyQ0pJO0VxQ0tKLHlCQUFBO0VBQ0EsdUJBQUE7RUFDQSxvQkFBQTtBN0N1NElKO0E2Q3A0SUU7RUFDRSxrREFBQTtFQUNBLE1BQUE7QTdDczRJSjtBNkNyNElJO0VBQ0UsaUJBQUE7RUFDQSxhQUFBO0VBQ0EsZ0JBQUE7RUFDQSwyQkFBQTtBN0N1NElOO0E2Q3Q0SU07RUFDRSw2Qm5DaURHO0FWdTFJWDtBNkN0NElNO0VBQ0UsMkJuQzhDRztFbUM3Q0gseUJBQUE7QTdDdzRJUjtBNkNwNElhO0VBQ1Asd0JBQUE7QTdDczRJTjtBNkNyNElNO0VBQ0UsaUJBQUE7QTdDdTRJUjs7QTZDcDRJSTtFQXZCRjtJQXdCSSwwQkFBQTtFN0N3NElKO0FBQ0Y7O0E4QzU4SUU7RUFDRSxzQ0FBQTtBOUMrOElKO0FXLzhJRTtFQUNFO0ltQ0FpQix3Q0FBQTtFOUNrOUluQjtBQUNGO0E4Q2w5SUk7RUFBVyxnQ0FBQTtBOUNxOUlmO0ErQ3Y5SUU7RUFR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O0lBQ0EsV0FBQTtFbkRzdktOO0FBQ0YiLCJmaWxlIjoiZ2xvYmFsLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbmh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCxcbmJsb2NrcXVvdGUsIHByZSwgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLCBkZWwsIGRmbiwgZW0sXG5pbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLCBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLCBiLCB1LCBpLFxuY2VudGVyLCBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLCBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCwgdGFibGUsXG5jYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLCBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLFxuZW1iZWQsIGZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksXG5zZWN0aW9uLCBzdW1tYXJ5LCB0aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG46cm9vdCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbn1cblxuKiwgKjphZnRlciwgKjpiZWZvcmUge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuKjpmb2N1cywgKjphZnRlcjpmb2N1cywgKjpiZWZvcmU6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuXG5odG1sIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDYyLjUlO1xuICBibG9jay1zaXplOiAxMDAlO1xuICBpbmxpbmUtc2l6ZTogMTAwJTtcbn1cblxuYm9keSB7XG4gIG1pbi1ibG9jay1zaXplOiAxMDAlO1xuICBtaW4taW5saW5lLXNpemU6IDEwMCU7XG59XG5cbmh0bWwsIGJvZHkge1xuICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG5wOmVtcHR5LCBwcmU6ZW1wdHksIGJsb2NrcXVvdGU6ZW1wdHksIG9sOmVtcHR5LCB1bDplbXB0eSwgbGk6ZW1wdHksIGxlZ2VuZDplbXB0eSwgZmlnY2FwdGlvbjplbXB0eSwgYm9keTplbXB0eSwgYXJ0aWNsZTplbXB0eSwgbmF2OmVtcHR5LCBhc2lkZTplbXB0eSwgc2VjdGlvbjplbXB0eSwgaGVhZGVyOmVtcHR5LCBmb290ZXI6ZW1wdHksIGFkZHJlc3M6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgbWFpbiwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbnN2Zywgc3ltYm9sIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciwgc3VtbWFyeTo6bWFya2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmJvZHkge1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmFkZHJlc3Mge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAtd2Via2l0LW1hcmdpbi1iZWZvcmU6IDBlbTtcbiAgLXdlYmtpdC1tYXJnaW4tYWZ0ZXI6IDBlbTtcbiAgLXdlYmtpdC1tYXJnaW4tc3RhcnQ6IDBweDtcbiAgLXdlYmtpdC1tYXJnaW4tZW5kOiAwcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbmhyIHtcbiAgYm9yZGVyOiBub25lO1xuICBoZWlnaHQ6IDFweDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5ibG9ja3F1b3RlLCBxIHtcbiAgcXVvdGVzOiBub25lO1xufVxuYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIsIHE6YmVmb3JlLCBxOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgY29udGVudDogbm9uZTtcbn1cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiBibGFjaztcbiAgcGFkZGluZzogMTZweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA5OTk5O1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG5idXR0b24ge1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbn1cblxuYnV0dG9uLCBpbnB1dCwgb3B0Z3JvdXAsIHNlbGVjdCwgdGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgbWFyZ2luOiAwO1xufVxuXG5idXR0b24sIGlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbmJ1dHRvbiwgc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbmJ1dHRvbixcblt0eXBlPWJ1dHRvbl0sXG5bdHlwZT1yZXNldF0sXG5bdHlwZT1zdWJtaXRdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5idXR0b246Zm9jdXMsXG5bdHlwZT1idXR0b25dOmZvY3VzLFxuW3R5cGU9cmVzZXRdOmZvY3VzLFxuW3R5cGU9c3VibWl0XTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPWJ1dHRvbl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1yZXNldF06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1zdWJtaXRdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1idXR0b25dOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9cmVzZXRdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9c3VibWl0XTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuW3R5cGU9Y2hlY2tib3hdLFxuW3R5cGU9cmFkaW9dIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbn1cblxuW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPXNlYXJjaF0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5cblt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgZm9udDogaW5oZXJpdDtcbn1cblxuW2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG5lbSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG59XG5cbmIsIHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5jb2RlLCBrYmQsIHNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG5zdWIsIHN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnRleHRhcmVhIHtcbiAgcmVzaXplOiBub25lO1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxucHJlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiBibGFjaztcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgcGFkZGluZzogMTZweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA5OTk7XG59XG5cbmJvZHkuZGV2bW9kZSBpbWc6bm90KFthbHRdKSB7XG4gIGJvcmRlcjogMnB4IHJlZCBkYXNoZWQ7XG59XG5cbmJvZHkge1xuICB3aWR0aDogMTAwdnc7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMzIxcHgpIHtcbiAgYm9keSB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICB9XG59XG5cbjp3aGVyZSgqKSB7XG4gIHNjcm9sbC1tYXJnaW4tdG9wOiB2YXIoLS1uYXZpZ2F0aW9uLWhlaWdodCwgMnJlbSk7XG59XG5cbi5hc3luYy1oaWRlIHtcbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xufVxuXG5tYWluOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuZmlndXJlLmltYWdlLFxucGljdHVyZS5pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB2YXIoLS1wb3NpdGlvbiwgY2VudGVyIDMzJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbmZpZ3VyZS5pbWFnZSBpbWcsXG5waWN0dXJlLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IHZhcigtLWltYWdlLXBvc2l0aW9uLCBjZW50ZXIgMzMuMzMlKTtcbiAgd2lkdGg6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcbiAgaGVpZ2h0OiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpO1xuICBtYXgtd2lkdGg6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcbiAgbWF4LWhlaWdodDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuXG52aWRlby1jb250YWluZXIge1xuICAtLWFzcGVjdC1yYXRpbzogMTYvOTtcbiAgYXNwZWN0LXJhdGlvOiB2YXIoLS1hc3BlY3QtcmF0aW8pO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG5Ac3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86IDE2LzkpIHtcbiAgdmlkZW8tY29udGFpbmVyIHtcbiAgICBhc3BlY3QtcmF0aW86IGluaXRpYWw7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJSAvICh2YXIoLS1hc3BlY3QtcmF0aW8pKSk7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG4gIHZpZGVvLWNvbnRhaW5lciA+ICoge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxufVxudmlkZW8tY29udGFpbmVyIGlmcmFtZSwgdmlkZW8tY29udGFpbmVyIGNhbnZhcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbio6aGFzKD4gLmNvbnRhaW5lci1pbmxpbmUpIHtcbiAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xufVxuXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTVmZjtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCkgLyAyKTtcbiAgcGFkZGluZzogMCA1cHg7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuXG5kZXRhaWxzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuc3VtbWFyeSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cbnN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIsIHN1bW1hcnk6Om1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5idXR0b24ge1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tcHJpbWFyeSk7XG4gIC0tYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0tcGFkZGluZzogOHB4IDIwcHg7XG4gIC0tZm9udC1zaXplOiAxNnB4O1xuICAtLWJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6IHZhcigtLXByaW1hcnkpO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiBpbml0aWFsO1xuICAtLWhvdmVyLXBhZGRpbmc6IHZhcigtLXBhZGRpbmcpO1xuICAtLWhvdmVyLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKTtcbiAgLS1ob3Zlci1ib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgLS1pY29uLXNpemU6IDEuMWVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBwYWRkaW5nOiB2YXIoLS1wYWRkaW5nKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UpLCBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UpLCBib3JkZXIgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlKTtcbn1cbi5idXR0b24gc3ZnIHtcbiAgd2lkdGg6IHZhcigtLWljb24tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0taWNvbi1zaXplKTtcbiAgb3JkZXI6IDM7XG4gIGZpbGw6IHZhcigtLWZpbGwsIGN1cnJlbnRDb2xvcik7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWljb24tc2l6ZSkgLyAyKTtcbiAgdHJhbnNpdGlvbjogZmlsbCB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UpLCBzdHJva2UgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlKTtcbn1cbi5idXR0b24gc3ZnW2NsYXNzKj1hcnJvd10ge1xuICAtLWljb24tc2l6ZTogMC45ZW07XG59XG4uYnV0dG9uIHN2Zy5hcnJvdy1sZWZ0IHtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWljb24tc2l6ZSkgLyAyKTtcbiAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgb3JkZXI6IDE7XG59XG4uYnV0dG9uID4gc3BhbiB7XG4gIG9yZGVyOiAyO1xuICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG59XG4uYnV0dG9uLnNtYWxsIHtcbiAgLS1wYWRkaW5nOiA2cHggMThweDtcbiAgLS1mb250LXNpemU6IDEycHg7XG59XG4uYnV0dG9uLnNtYWxsIHN2ZyB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxuLmJ1dHRvbi5zbWFsbCBzdmcuYXJyb3ctbGVmdCB7XG4gIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbi5idXR0b24ubGFyZ2Uge1xuICAtLXBhZGRpbmc6IDEycHggMjRweDtcbiAgLS1mb250LXNpemU6IDI0cHg7XG59XG4uYnV0dG9uLm91dGxpbmUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogIzEzMWY2YjtcbiAgLS1ib3JkZXItY29sb3VyOiAjMTMxZjZiO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjMTMxZjZiO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjMTMxZjZiO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuLmJ1dHRvbi5ibHVlIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogIzEzMWY2YjtcbiAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjMTMxZjZiO1xufVxuLmJ1dHRvbi5ibHVlLm91dGxpbmUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogIzEzMWY2YjtcbiAgLS1ib3JkZXItY29sb3VyOiAjMTMxZjZiO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjMTMxZjZiO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuLmJ1dHRvbi5yZWQge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjZGYzMDM1O1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICNkZjMwMzU7XG59XG4uYnV0dG9uLnJlZC5vdXRsaW5lIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0tZm9udC1jb2xvdXI6ICNkZjMwMzU7XG4gIC0tYm9yZGVyLWNvbG91cjogI2RmMzAzNTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogI2RmMzAzNTtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogI0ZGRkZGRjtcbiAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbn1cbi5idXR0b24uZ3JlZW4ge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjNzZiYjI4O1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICM3NmJiMjg7XG59XG4uYnV0dG9uLmdyZWVuLm91dGxpbmUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogIzc2YmIyODtcbiAgLS1ib3JkZXItY29sb3VyOiAjNzZiYjI4O1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjNzZiYjI4O1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuLmJ1dHRvbi53aGl0ZSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0tZm9udC1jb2xvdXI6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogI0ZGRkZGRjtcbn1cbi5idXR0b24ud2hpdGUub3V0bGluZSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWJvcmRlci1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuLmJ1dHRvbi5kaXNhYmxlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjZGNkY2RjO1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICNkY2RjZGM7XG59XG4uYnV0dG9uLmRpc2FibGVkLm91dGxpbmUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogI2RjZGNkYztcbiAgLS1ib3JkZXItY29sb3VyOiAjZGNkY2RjO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjZGNkY2RjO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjZGNkY2RjO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgLmJ1dHRvbjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLWhvdmVyLWZvbnQtY29sb3VyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cik7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ob3Zlci1ib3JkZXItY29sb3VyKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ob3Zlci1ib3JkZXItcmFkaXVzKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1ob3Zlci1wYWRkaW5nKTtcbiAgICBmb250LXNpemU6IHZhcigtLWhvdmVyLWZvbnQtc2l6ZSk7XG4gIH1cbn1cbi5idXR0b24uYnJvY2h1cmUge1xuICAtLWZvbnQtY29sb3VyOiAjMTMxZjZiO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1wYWRkaW5nOiA1cHggMHB4O1xuICAtLWljb24tc2l6ZTogMzJweDtcbiAgLS1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1ib3JkZXItcmFkaXVzOiAwO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjZGYzMDM1O1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmJ1dHRvbi5icm9jaHVyZSBzdmcge1xuICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBmaWxsOiAjZGYzMDM1O1xufVxuLmJ1dHRvbi5yZWQgc3ZnLnRpY2ssIC5idXR0b24ucmVkIHN2Zy5kb3dubG9hZCB7XG4gIC0tc3Ryb2tlOiAjZGYzMDM1O1xufVxuLmJ1dHRvbi5ibHVlIHN2Zy50aWNrLCAuYnV0dG9uLmJsdWUgc3ZnLmRvd25sb2FkIHtcbiAgLS1zdHJva2U6ICMxMzFmNmI7XG59XG4uYnV0dG9uLm91dGxpbmUgc3ZnLnRpY2ssIC5idXR0b24ub3V0bGluZSBzdmcuZG93bmxvYWQge1xuICAtLXN0cm9rZTogI0ZGRkZGRjtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIC5idXR0b246aG92ZXIucmVkIHN2Zy50aWNrLFxuICAuYnV0dG9uOmhvdmVyLnJlZCBzdmcuZG93bmxvYWQge1xuICAgIC0tc3Ryb2tlOiAjRkZGRkZGO1xuICB9XG4gIC5idXR0b246aG92ZXIucmVkLm91dGxpbmUgc3ZnLnRpY2ssIC5idXR0b246aG92ZXIucmVkLm91dGxpbmUgc3ZnLmRvd25sb2FkIHtcbiAgICAtLXN0cm9rZTogI2RmMzAzNTtcbiAgfVxuICAuYnV0dG9uOmhvdmVyLmJsdWUgc3ZnLnRpY2ssXG4gIC5idXR0b246aG92ZXIuYmx1ZSBzdmcuZG93bmxvYWQge1xuICAgIC0tc3Ryb2tlOiAjRkZGRkZGO1xuICB9XG4gIC5idXR0b246aG92ZXIuYmx1ZS5vdXRsaW5lIHN2Zy50aWNrLCAuYnV0dG9uOmhvdmVyLmJsdWUub3V0bGluZSBzdmcuZG93bmxvYWQge1xuICAgIC0tc3Ryb2tlOiAjMTMxZjZiO1xuICB9XG4gIC5idXR0b246aG92ZXIud2hpdGUgc3ZnLnRpY2ssIC5idXR0b246aG92ZXIud2hpdGUgc3ZnLmRvd25sb2FkIHtcbiAgICAtLXN0cm9rZTogIzEzMWY2YjtcbiAgfVxufVxuXG5idXR0b24tY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBnYXA6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5idXR0b24tY29udGFpbmVyIC5idXR0b24ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uc3RpY2t5IHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwcHg7XG59XG5cbmlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiwgaW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLCBpbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uLCBpbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuI2hvbGRpbmctcGFnZSBoZWFkZXIgc3ZnIHtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkge1xuICAjaG9sZGluZy1wYWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSk7XG4gIH1cbn1cblxuYm9keSNlcnJvci00MDQgaGVhZGVyIGgyIHtcbiAgbWF4LXdpZHRoOiA5MDBweDtcbn1cbmJvZHkjZXJyb3ItNDA0IHNlYXJjaC1iYXIge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZXIwKTtcbn1cbmJvZHkjZXJyb3ItNDA0IHNlYXJjaC1iYXIgaW5wdXRbdHlwZT1zZWFyY2hdIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzEzMWY2Yjtcbn1cblxuYm9keSA+IC5pZGxlLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGJveC1zaGFkb3c6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBib3R0b206IHZhcigtLWd1dHRlcjEtKTtcbiAgei1pbmRleDogMjtcbiAgLyogU3RhcnQgaGlkZGVuIGJlbG93IHZpZXdwb3J0ICovXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgLyogQW5pbWF0aW9uIHdpdGggZGVsYXllZCBzdGFydCAqL1xuICBhbmltYXRpb246IHNsaWRlLWluLWlkbGUtZGlhbG9nIGJvdGg7XG4gIGFuaW1hdGlvbi10aW1lbGluZTogc2Nyb2xsKCk7XG4gIGFuaW1hdGlvbi1yYW5nZTogY2FsYyh2YXIoLS1uYXZpZ2F0aW9uLWhlaWdodCwgMHB4KSkgY2FsYyh2YXIoLS1uYXZpZ2F0aW9uLWhlaWdodCwgMHB4KSArIGNsYW1wKDJyZW0sIDV2aCwgM3JlbSkgKiAyKTtcbn1cbmJvZHkgPiAuaWRsZS1kaWFsb2cgLmJ1dHRvbiB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG5Aa2V5ZnJhbWVzIHNsaWRlLWluLWlkbGUtZGlhbG9nIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcmVtKTtcbiAgfVxufVxuI2NvbnRhY3QtbW9kYWwge1xuICAtLWRpYWxvZy1jb250ZW50LWJhY2tncm91bmQtY29sb3VyOiAjZjRmNGY0O1xufVxuI2NvbnRhY3QtbW9kYWwgZm9ybSAuc3VibWl0LXJvdyB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWd1dHRlcjEpO1xufVxuXG5ib2R5ID4gLmJhY2stdG8tdG9wIHtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IHZhcigtLWd1dHRlcjEpO1xuICByaWdodDogdmFyKC0tZ3V0dGVyMSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2stdG8tdG9wLWJhY2tncm91bmQsICMyOTJiNjgpO1xuICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB6LWluZGV4OiA5OTk5O1xuICBvcGFjaXR5OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgYm90dG9tIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG59XG5ib2R5ID4gLmJhY2stdG8tdG9wIHN2ZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6IHdoaXRlO1xuICB3aWR0aDogNTAlO1xuICB0b3A6IC00JTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIGJvZHkgPiAuYmFjay10by10b3A6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1saWdodCwgI2RmMzAzNSk7XG4gIH1cbn1cblxuZm9vdGVyI2Zvb3Rlci5pbi12aWV3IH4gLmJhY2stdG8tdG9wIHtcbiAgYm90dG9tOiAxMjBweDtcbn1cblxubmF2aWdhdGlvbi1iYXI6bm90KC5pbi12aWV3KSB+IC5iYWNrLXRvLXRvcCB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbjpyb290IHtcbiAgLS1wcmltYXJ5OiAjMTMxZjZiO1xuICAtLXNlY29uZGFyeTogI2RmMzAzNTtcbiAgLS1icmVha3BvaW50LW1pbjogMzIwcHg7XG4gIC0tYnJlYWtwb2ludC1zbWFsbDogNDgwcHg7XG4gIC0tYnJlYWtwb2ludC1zbWFsbC1tZWRpdW06IDk4MHB4O1xuICAtLWJyZWFrcG9pbnQtbWVkaXVtOiAxMTIwcHg7XG4gIC0tYnJlYWtwb2ludC1sYXJnZTogMTQwMHB4O1xuICAtLWJyZWFrcG9pbnQtbWF4OiAxNjgwcHg7XG4gIC0tZm9udC1jb2xvdXI6ICM2YTZhNmE7XG4gIC0taGVhZGluZy1jb2xvdXI6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICAtLXN1Yi1oZWFkaW5nLWNvbG91cjogdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICAtLXRyYW5zaXRpb24tZWFzZTogY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgLS1icmVhZGNydW1iLWhlaWdodDogOTBweDtcbiAgLS1hbmNob3JzLWhlaWdodDogNjBweDtcbiAgLS1icmVhZGNydW1iLWFuZC1hbmNob3JzLXN0aWNreS11bmRlcnNldDogLTE1cHg7XG4gIC0tbWFpbi1tYXgtd2lkdGg6IDkwMHB4O1xuICAtLW5hdmlnYXRpb24taGVpZ2h0OiAxNDNweDtcbiAgLS1zaWRlYmFyLXdpZHRoOiBjbGFtcCgzMDBweCwgMzB2dywgNTAwcHgpO1xuICAtLWdhcDogMTZweDtcbiAgLS1ndXR0ZXI6IDN2dztcbiAgLS1zcGFjZXI6IDR2aDtcbiAgLS1ndXR0ZXIwOiBjbGFtcCg4cHgsIHZhcigtLWd1dHRlcikgKiAwLjUsIDEycHgpO1xuICAtLWd1dHRlcjAtOiBjYWxjKC0xICogY2xhbXAoOHB4LCB2YXIoLS1ndXR0ZXIpICogMC41LCAxMnB4KSk7XG4gIC0tc3BhY2VyMDogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSwgMzJweCk7XG4gIC0tc3BhY2VyMC06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpLCAzMnB4KSk7XG4gIC0tZ3V0dGVyMTogY2xhbXAoMTZweCwgdmFyKC0tZ3V0dGVyKSwgMzJweCk7XG4gIC0tZ3V0dGVyMS06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpLCAzMnB4KSk7XG4gIC0tc3BhY2VyMTogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDMsIDY0cHgpO1xuICAtLXNwYWNlcjEtOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDMsIDY0cHgpKTtcbiAgLS1ndXR0ZXIyOiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpICogMiwgNDhweCk7XG4gIC0tZ3V0dGVyMi06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpICogMiwgNDhweCkpO1xuICAtLXNwYWNlcjI6IGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiA2LCAxMTJweCk7XG4gIC0tc3BhY2VyMi06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogNiwgMTEycHgpKTtcbiAgLS1ndXR0ZXIzOiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpICogMywgNjRweCk7XG4gIC0tZ3V0dGVyMy06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpICogMywgNjRweCkpO1xuICAtLXNwYWNlcjM6IGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiA5LCAxNjBweCk7XG4gIC0tc3BhY2VyMy06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogOSwgMTYwcHgpKTtcbiAgLS1ndXR0ZXI0OiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpICogNCwgODBweCk7XG4gIC0tZ3V0dGVyNC06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpICogNCwgODBweCkpO1xuICAtLXNwYWNlcjQ6IGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiAxMiwgMjA4cHgpO1xuICAtLXNwYWNlcjQtOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDEyLCAyMDhweCkpO1xuICAtLWd1dHRlcjU6IGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiA1LCA5NnB4KTtcbiAgLS1ndXR0ZXI1LTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiA1LCA5NnB4KSk7XG4gIC0tc3BhY2VyNTogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDE1LCAyNTZweCk7XG4gIC0tc3BhY2VyNS06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogMTUsIDI1NnB4KSk7XG4gIC0tZ3V0dGVyNjogY2xhbXAoMTZweCwgdmFyKC0tZ3V0dGVyKSAqIDYsIDExMnB4KTtcbiAgLS1ndXR0ZXI2LTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiA2LCAxMTJweCkpO1xuICAtLXNwYWNlcjY6IGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiAxOCwgMzA0cHgpO1xuICAtLXNwYWNlcjYtOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDE4LCAzMDRweCkpO1xuICAtLWNvbXB1dGVkLWd1dHRlcjogY2FsYygoKDEwMHZ3IC0gdmFyKC0tYnJlYWtwb2ludC1tYXgpKSAvIDIpKTtcbn1cbkBzdXBwb3J0cyBub3QgKHdpZHRoOiBjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcbiAgOnJvb3Qge1xuICAgIC0tc2lkZWJhci13aWR0aDogNTAwcHg7XG4gIH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDE0MDBweCkge1xuICAgIDpyb290IHtcbiAgICAgIC0tc2lkZWJhci13aWR0aDogMzAwcHg7XG4gICAgfVxuICB9XG59XG5Ac3VwcG9ydHMgbm90ICh3aWR0aDogY2xhbXAoMXB4LCA1dncsIDEwcHgpKSB7XG4gIDpyb290IHtcbiAgICAtLWd1dHRlcjA6IGNhbGMoKHZhcigtLWd1dHRlcikgKiAwLjUpICsgOHB4KTtcbiAgICAtLWd1dHRlcjAtOiBjYWxjKC0xICogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDAuNSkgKyA4cHgpKTtcbiAgICAtLXNwYWNlcjA6IGNhbGMoKHZhcigtLXNwYWNlcikgKiAyKSArIDE2cHgpO1xuICAgIC0tc3BhY2VyMC06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1zcGFjZXIpICogMikgKyAxNnB4KSk7XG4gICAgLS1ndXR0ZXIxOiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogMSkgKyAxNnB4KTtcbiAgICAtLWd1dHRlcjEtOiBjYWxjKC0xICogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDEpICsgMTZweCkpO1xuICAgIC0tc3BhY2VyMTogY2FsYygodmFyKC0tc3BhY2VyKSAqIDQpICsgMTZweCk7XG4gICAgLS1zcGFjZXIxLTogY2FsYygtMSAqIGNhbGMoKHZhcigtLXNwYWNlcikgKiA0KSArIDE2cHgpKTtcbiAgICAtLWd1dHRlcjI6IGNhbGMoKHZhcigtLWd1dHRlcikgKiAyKSArIDE2cHgpO1xuICAgIC0tZ3V0dGVyMi06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogMikgKyAxNnB4KSk7XG4gICAgLS1zcGFjZXIyOiBjYWxjKCh2YXIoLS1zcGFjZXIpICogOCkgKyAxNnB4KTtcbiAgICAtLXNwYWNlcjItOiBjYWxjKC0xICogY2FsYygodmFyKC0tc3BhY2VyKSAqIDgpICsgMTZweCkpO1xuICAgIC0tZ3V0dGVyMzogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDMpICsgMTZweCk7XG4gICAgLS1ndXR0ZXIzLTogY2FsYygtMSAqIGNhbGMoKHZhcigtLWd1dHRlcikgKiAzKSArIDE2cHgpKTtcbiAgICAtLXNwYWNlcjM6IGNhbGMoKHZhcigtLXNwYWNlcikgKiAxMikgKyAxNnB4KTtcbiAgICAtLXNwYWNlcjMtOiBjYWxjKC0xICogY2FsYygodmFyKC0tc3BhY2VyKSAqIDEyKSArIDE2cHgpKTtcbiAgICAtLWd1dHRlcjQ6IGNhbGMoKHZhcigtLWd1dHRlcikgKiA0KSArIDE2cHgpO1xuICAgIC0tZ3V0dGVyNC06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogNCkgKyAxNnB4KSk7XG4gICAgLS1zcGFjZXI0OiBjYWxjKCh2YXIoLS1zcGFjZXIpICogMTYpICsgMTZweCk7XG4gICAgLS1zcGFjZXI0LTogY2FsYygtMSAqIGNhbGMoKHZhcigtLXNwYWNlcikgKiAxNikgKyAxNnB4KSk7XG4gICAgLS1ndXR0ZXI1OiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogNSkgKyAxNnB4KTtcbiAgICAtLWd1dHRlcjUtOiBjYWxjKC0xICogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDUpICsgMTZweCkpO1xuICAgIC0tc3BhY2VyNTogY2FsYygodmFyKC0tc3BhY2VyKSAqIDIwKSArIDE2cHgpO1xuICAgIC0tc3BhY2VyNS06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1zcGFjZXIpICogMjApICsgMTZweCkpO1xuICAgIC0tZ3V0dGVyNjogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDYpICsgMTZweCk7XG4gICAgLS1ndXR0ZXI2LTogY2FsYygtMSAqIGNhbGMoKHZhcigtLWd1dHRlcikgKiA2KSArIDE2cHgpKTtcbiAgICAtLXNwYWNlcjY6IGNhbGMoKHZhcigtLXNwYWNlcikgKiAyNCkgKyAxNnB4KTtcbiAgICAtLXNwYWNlcjYtOiBjYWxjKC0xICogY2FsYygodmFyKC0tc3BhY2VyKSAqIDI0KSArIDE2cHgpKTtcbiAgfVxufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwibGF0b1wiO1xuICBzcmM6IHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLWJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLWJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1ib2xkLm90ZlwiKSBmb3JtYXQoXCJvcGVudHlwZVwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwibGF0b1wiO1xuICBzcmM6IHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXNlbWlib2xkLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1zZW1pYm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXNlbWlib2xkLm90ZlwiKSBmb3JtYXQoXCJvcGVudHlwZVwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwibGF0b1wiO1xuICBzcmM6IHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXJlZ3VsYXIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXJlZ3VsYXIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1yZWd1bGFyLm90ZlwiKSBmb3JtYXQoXCJvcGVudHlwZVwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwibW9udHNlcnJhdFwiO1xuICBzcmM6IHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLm90ZlwiKSBmb3JtYXQoXCJvcGVudHlwZVwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwibW9udHNlcnJhdFwiO1xuICBzcmM6IHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS1pdGFsaWMud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS1pdGFsaWMud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0taXRhbGljLm90ZlwiKSBmb3JtYXQoXCJvcGVudHlwZVwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwibW9udHNlcnJhdFwiO1xuICBzcmM6IHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1zZW1pYm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLm90ZlwiKSBmb3JtYXQoXCJvcGVudHlwZVwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IG1vbnRzZXJyYXQsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyLCAjNmE2YTZhKTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgZm9udC1zaXplOiAxLjVyZW07XG59XG5Ac3VwcG9ydHMgKHdpZHRoOiBjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcbiAgYm9keSB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjRyZW0sIDEuNXZ3LCAxLjZyZW0pO1xuICB9XG59XG5Ac3VwcG9ydHMgbm90ICh3aWR0aDogY2xhbXAoMXB4LCA1dncsIDEwcHgpKSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5NTBweCkge1xuICAgIGJvZHkge1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgfVxuICB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxNjAxcHgpIHtcbiAgICBib2R5IHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIH1cbiAgfVxufVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMy44MTI1ZW07XG4gIGZvbnQtc2l6ZTogY2xhbXAoMi41ZW0sIDV2dywgMy44MTI1ZW0pO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMS41NjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbmg0IHtcbiAgZm9udC1zaXplOiAxLjA2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuaDUge1xuICBmb250LXNpemU6IDEuMDYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMS4wNjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGZvbnQtZmFtaWx5OiBsYXRvLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGNvbG9yOiB2YXIoLS1oZWFkaW5nLWNvbG91ciwgdmFyKC0tZm9udC1jb2xvdXIpKTtcbiAgdGV4dC13cmFwOiBwcmV0dHk7XG59XG5oMS5zdWItaGVhZGluZyxcbmgyLnN1Yi1oZWFkaW5nLFxuaDMuc3ViLWhlYWRpbmcsXG5oNC5zdWItaGVhZGluZyxcbmg1LnN1Yi1oZWFkaW5nLFxuaDYuc3ViLWhlYWRpbmcge1xuICBjb2xvcjogdmFyKC0tc3ViLWhlYWRpbmctY29sb3VyKTtcbiAgZm9udC1mYW1pbHk6IGxhdG8sIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cbmgxIHNwYW4sXG5oMSBzdHJvbmcsXG5oMSBwLFxuaDIgc3BhbixcbmgyIHN0cm9uZyxcbmgyIHAsXG5oMyBzcGFuLFxuaDMgc3Ryb25nLFxuaDMgcCxcbmg0IHNwYW4sXG5oNCBzdHJvbmcsXG5oNCBwLFxuaDUgc3Bhbixcbmg1IHN0cm9uZyxcbmg1IHAsXG5oNiBzcGFuLFxuaDYgc3Ryb25nLFxuaDYgcCB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG59XG5cbnEsXG5ibG9ja3F1b3RlIHtcbiAgcXVvdGVzOiBcIuKAnFwiIFwi4oCdXCIgXCLigJhcIiBcIuKAmVwiO1xufVxucTo6YmVmb3JlLFxuYmxvY2txdW90ZTo6YmVmb3JlIHtcbiAgY29udGVudDogb3Blbi1xdW90ZTtcbn1cbnE6OmFmdGVyLFxuYmxvY2txdW90ZTo6YWZ0ZXIge1xuICBjb250ZW50OiBjbG9zZS1xdW90ZTtcbn1cblxuYSB7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlcjtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbn1cbmEuZXh0ZXJuYWwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbmEuZXh0ZXJuYWwgc3ZnLmV4dGVybmFsLWxpbmsge1xuICBvcGFjaXR5OiAwLjY7XG4gIHdpZHRoOiAwLjhlbTtcbiAgaGVpZ2h0OiAwLjhlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xufVxuXG5vbCxcbnVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xufVxuXG5saSBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMnB4O1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMC42MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbn1cblxuaHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1oci1jb2xvdXIsICNkY2RjZGMpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXIwKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2VyMCk7XG59XG5cbi5ub3RlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjViZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmZTEzYztcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG59XG4ubm90ZSBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGNvbG9yOiAjOTc4MDAyO1xufVxuLm5vdGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiUGxlYXNlIE5vdGVcIjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzk3ODAwMjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5cbmJvZHkge1xuICAtLXJvdy1uYXZpZ2F0aW9uOiAxO1xuICAtLXJvdy1icmVhZGNydW1iczogMjtcbiAgLS1yb3ctYW5jaG9yczogMztcbiAgLS1yb3ctaGVhZGVyOiA0O1xuICAtLXJvdy1tYWluOiA1O1xuICAtLXJvdy1iYWNrZ3JvdW5kOiAxO1xuICAtLXJvdy1zaWRlYmFyOiA0IC8gc3BhbiAzO1xuICAtLXJvdy1mb290ZXI6IDEwMDtcbiAgLS1yb3dzOiBhdXRvO1xuICAtLWNvbHVtbi1sZWZ0OiAyO1xuICAtLWNvbHVtbi1tYWluOiAyIC8gc3BhbiAyO1xuICAtLWNvbHVtbi1yaWdodDogNDtcbiAgLS1jb2x1bW4tZnVsbDogMiAvIC0yO1xuICAtLWNvbHVtbi1ndXR0ZXI6IG1pbm1heCgwLCAxZnIpO1xuICAtLWNvbHVtbi1jb250ZW50OiBtaW5tYXgoMCwgY2FsYygxNjgwcHggLSAodmFyKC0tc2lkZWJhci13aWR0aCkgKiAyKSAtIHZhcigtLWd1dHRlcjQpKSk7XG4gIC0tY29sdW1uLXNpZGViYXI6IHZhcigtLXNpZGViYXItd2lkdGgpO1xuICAtLWNvbHVtbnM6IHZhcigtLWNvbHVtbi1ndXR0ZXIpIHZhcigtLWNvbHVtbi1zaWRlYmFyKSB2YXIoLS1jb2x1bW4tY29udGVudCkgdmFyKC0tY29sdW1uLXNpZGViYXIpIHZhcigtLWNvbHVtbi1ndXR0ZXIpO1xuICBkaXNwbGF5OiBncmlkO1xuICBtaW4td2lkdGg6IDMyMHB4O1xuICBncmlkLWdhcDogMCB2YXIoLS1ndXR0ZXIxKTtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiB2YXIoLS1yb3dzKTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1jb2x1bW5zKTtcbn1cbmJvZHkgPiAqIHtcbiAgZ3JpZC1jb2x1bW46IHZhcigtLWNvbHVtbi1mdWxsKTtcbn1cblxubmF2aWdhdGlvbi1iYXIge1xuICB6LWluZGV4OiA5OTk7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctbmF2aWdhdGlvbik7XG59XG5uYXZpZ2F0aW9uLWJhcjpub3QoLmluLXZpZXcpIH4gI2JyZWFkY3J1bWJzLWJhcixcbm5hdmlnYXRpb24tYmFyOm5vdCguaW4tdmlldykgfiAjYW5jaG9ycy1iYXIge1xuICAtLWFuY2hvcnMtaGVpZ2h0OiA1MHB4O1xufVxuXG4jYnJlYWRjcnVtYnMtYmFyIHtcbiAgei1pbmRleDogMjtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1icmVhZGNydW1icyk7XG4gIGhlaWdodDogdmFyKC0tYnJlYWRjcnVtYi1oZWlnaHQpO1xufVxuI2JyZWFkY3J1bWJzLWJhci5zdGlja3kge1xuICB0b3A6IHZhcigtLWJyZWFkY3J1bWItYW5kLWFuY2hvcnMtc3RpY2t5LXVuZGVyc2V0KTtcbn1cblxuI2FuY2hvcnMtYmFyIHtcbiAgei1pbmRleDogMjtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1hbmNob3JzKTtcbiAgaGVpZ2h0OiB2YXIoLS1hbmNob3JzLWhlaWdodCk7XG59XG4jYW5jaG9ycy1iYXIuc3RpY2t5IHtcbiAgdG9wOiBjYWxjKHZhcigtLWJyZWFkY3J1bWItaGVpZ2h0KSAtIDFweCArIHZhcigtLWJyZWFkY3J1bWItYW5kLWFuY2hvcnMtc3RpY2t5LXVuZGVyc2V0KSAqIDIpO1xufVxuXG4uaGVhZGVyIHtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1oZWFkZXIpO1xuICBncmlkLWNvbHVtbjogdmFyKC0tY29sdW1uLW1haW4pO1xuICBtYXgtd2lkdGg6IHZhcigtLW1haW4tbWF4LXdpZHRoKTtcbn1cblxuI2Zvb3RlciB7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctZm9vdGVyKTtcbn1cblxubWFpbiB7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctbWFpbik7XG4gIGdyaWQtY29sdW1uOiB2YXIoLS1jb2x1bW4tbWFpbik7XG4gIG1heC13aWR0aDogdmFyKC0tbWFpbi1tYXgtd2lkdGgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxubWFpbiA+ICosXG5tYWluIH4gc2VjdGlvbixcbm1haW4gfiBhc2lkZSxcbm1haW4gfiBkaXYsXG5tYWluIH4gc2VydmljZS1jZW50cmUtZmluZGVyLFxubWFpbiB+IG1hcmtldHMtc3VtbWFyeSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlcjEpO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2VyMSk7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbm1haW4gfiBkaXY6aGFzKGRpdiN0cnVlbmRvX2NvbnRhaW5lcikge1xuICBwYWRkaW5nOiAwO1xufVxubWFpbiBzZXJ2aWNlLWNlbnRyZS1maW5kZXIgcGljdHVyZSB7XG4gIC0tdHJhbnNsYXRlWDogMDtcbiAgd2lkdGg6IGNhbGMoMTAwdncgKyB2YXIoLS1ndXR0ZXIxKSk7XG4gIGxlZnQ6IHZhcigtLWd1dHRlcjEtKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxNjgxcHgpIHtcbiAgbWFpbiBzZXJ2aWNlLWNlbnRyZS1maW5kZXIgcGljdHVyZSB7XG4gICAgbGVmdDogY2FsYygoLTEgKiB2YXIoLS1jb21wdXRlZC1ndXR0ZXIpKSAtIHZhcigtLWd1dHRlcjEpKTtcbiAgfVxufVxuXG5zaWRlLWJhciB7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctc2lkZWJhcik7XG4gIGdyaWQtY29sdW1uOiB2YXIoLS1jb2x1bW4tcmlnaHQpO1xuICB3aWR0aDogdmFyKC0tc2lkZWJhci13aWR0aCk7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjZXIxKTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNlcjEpO1xufVxuc2lkZS1iYXIgPiBkaXYge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMSkgdmFyKC0tZ3V0dGVyMSk7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIG1pbm1heCh2YXIoLS1zaWRlYmFyLXdpZHRoKSwgMWZyKSk7XG59XG5zaWRlLWJhciA+IGRpdi5zdGlja3kge1xuICB0b3A6IGNhbGModmFyKC0tYnJlYWRjcnVtYi1oZWlnaHQpICsgdmFyKC0tYW5jaG9ycy1oZWlnaHQpICsgdmFyKC0tZ3V0dGVyMSkpO1xufVxuc2lkZS1iYXIgPiBkaXYgPiAqIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuc2lkZS1iYXIgPiBkaXYgPiAqLnJlZCB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICNkZjMwMzU7XG59XG5zaWRlLWJhciA+IGRpdiA+ICouYmx1ZSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICMxMzFmNmI7XG59XG5zaWRlLWJhciA+IGRpdiA+ICouZ3JleSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICNmNGY0ZjQ7XG4gIC0tYm9yZGVyLWNvbG91cjogI2RjZGNkYztcbn1cbnNpZGUtYmFyID4gZGl2ID4gKi53aGl0ZSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0tYm9yZGVyLWNvbG91cjogI2Y0ZjRmNDtcbn1cblxuYXNpZGUjc3VwcG9ydC1pbmZvcm1hdGlvbiAuZ2xvc3NhcnktdGVybXMsXG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMVwiXSA+IG5hdiB7XG4gIHRvcDogY2FsYyh2YXIoLS1icmVhZGNydW1iLWhlaWdodCkgKyB2YXIoLS1hbmNob3JzLWhlaWdodCkgKyB2YXIoLS1ndXR0ZXIxKSk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkge1xuICBib2R5IHtcbiAgICAtLWNvbHVtbnM6IHZhcigtLWNvbHVtbi1ndXR0ZXIpIHZhcigtLWNvbHVtbi1jb250ZW50KSB2YXIoLS1jb2x1bW4tZ3V0dGVyKTtcbiAgICAtLWNvbHVtbi1tYWluOiB2YXIoLS1jb2x1bW4tZnVsbCk7XG4gICAgLS1jb2x1bW4tbGVmdDogdmFyKC0tY29sdW1uLWZ1bGwpO1xuICAgIC0tY29sdW1uLXJpZ2h0OiB2YXIoLS1jb2x1bW4tZnVsbCk7XG4gICAgLS1yb3ctc2lkZWJhcjogYXV0bztcbiAgfVxuICBib2R5ID4gKiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgYm9keSBzaWRlLWJhciB7XG4gICAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlcjEpO1xuICB9XG4gIGJvZHkgc2lkZS1iYXIgPiBkaXYge1xuICAgIGdyaWQtZ2FwOiB2YXIoLS1zcGFjZXIxKSB2YXIoLS1ndXR0ZXIxKTtcbiAgfVxuICBib2R5IHNpZGUtYmFyID4gZGl2LnN0aWNreSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogaW5pdGlhbDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDM1MnB4KSB7XG4gIGJvZHkge1xuICAgIC0tc2lkZWJhci13aWR0aDogMTAwJTtcbiAgfVxufVxuLnRoZW1lZC5yZWQge1xuICBiYWNrZ3JvdW5kOiAjZGYzMDM1O1xufVxuLnRoZW1lZC5yZWQuYmxvd291dCArIC50aGVtZWQucmVkIHtcbiAgYm94LXNoYWRvdzogMHB4IDFweCB2YXIoLS1ib3JkZXItdG9wLWNvbG91cik7XG59XG4udGhlbWVkLnJlZC5ibG93b3V0ICsgLnRoZW1lZC5yZWQubGlnaHQge1xuICAtLWJvcmRlci10b3AtY29sb3VyOiAjZGNkY2RjO1xufVxuLnRoZW1lZC5yZWQuYmxvd291dCArIC50aGVtZWQucmVkLmRhcmsge1xuICAtLWJvcmRlci10b3AtY29sb3VyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG59XG4udGhlbWVkLmJsdWUge1xuICBiYWNrZ3JvdW5kOiAjMTMxZjZiO1xufVxuLnRoZW1lZC5ibHVlLmJsb3dvdXQgKyAudGhlbWVkLmJsdWUge1xuICBib3gtc2hhZG93OiAwcHggMXB4IHZhcigtLWJvcmRlci10b3AtY29sb3VyKTtcbn1cbi50aGVtZWQuYmx1ZS5ibG93b3V0ICsgLnRoZW1lZC5ibHVlLmxpZ2h0IHtcbiAgLS1ib3JkZXItdG9wLWNvbG91cjogI2RjZGNkYztcbn1cbi50aGVtZWQuYmx1ZS5ibG93b3V0ICsgLnRoZW1lZC5ibHVlLmRhcmsge1xuICAtLWJvcmRlci10b3AtY29sb3VyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG59XG4udGhlbWVkLmdyZXkge1xuICBiYWNrZ3JvdW5kOiAjZjRmNGY0O1xufVxuLnRoZW1lZC5ncmV5LmJsb3dvdXQgKyAudGhlbWVkLmdyZXkge1xuICBib3gtc2hhZG93OiAwcHggMXB4IHZhcigtLWJvcmRlci10b3AtY29sb3VyKTtcbn1cbi50aGVtZWQuZ3JleS5ibG93b3V0ICsgLnRoZW1lZC5ncmV5LmxpZ2h0IHtcbiAgLS1ib3JkZXItdG9wLWNvbG91cjogI2RjZGNkYztcbn1cbi50aGVtZWQuZ3JleS5ibG93b3V0ICsgLnRoZW1lZC5ncmV5LmRhcmsge1xuICAtLWJvcmRlci10b3AtY29sb3VyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG59XG4udGhlbWVkLndoaXRlIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbn1cbi50aGVtZWQud2hpdGUuYmxvd291dCArIC50aGVtZWQud2hpdGUge1xuICBib3gtc2hhZG93OiAwcHggMXB4IHZhcigtLWJvcmRlci10b3AtY29sb3VyKTtcbn1cbi50aGVtZWQud2hpdGUuYmxvd291dCArIC50aGVtZWQud2hpdGUubGlnaHQge1xuICAtLWJvcmRlci10b3AtY29sb3VyOiAjZGNkY2RjO1xufVxuLnRoZW1lZC53aGl0ZS5ibG93b3V0ICsgLnRoZW1lZC53aGl0ZS5kYXJrIHtcbiAgLS1ib3JkZXItdG9wLWNvbG91cjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xufVxuLnRoZW1lZDpub3QoLmJsb3dvdXQpIHtcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgcGFkZGluZy1yaWdodDogdmFyKC0tZ3V0dGVyMSk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlcjEpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXIxKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbn1cbi50aGVtZWQ6bm90KC5ibG93b3V0KS53aGl0ZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmNGY0ZjQ7XG59XG4udGhlbWVkOm5vdCguYmxvd291dCkud2hpdGUgKyAuYmxvd291dC53aGl0ZSxcbi50aGVtZWQ6bm90KC5ibG93b3V0KS53aGl0ZSArIDpub3QoLnRoZW1lZCkge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXIxLSk7XG59XG5cbi5ibG93b3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIHotaW5kZXg6IC0xO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKHZhcigtLXRyYW5zbGF0ZVgsIC01MCUpKTtcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAzMzZweCkge1xuICAuYmxvd291dDpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogaW5pdGlhbDtcbiAgICBsZWZ0OiBjYWxjKHZhcigtLWdhcCkgKiAtMSk7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgLmJsb3dvdXQ6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ3V0dGVyMS0pO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSB7XG4gIGJvZHk6bm90KG1vYmlsZSkgbWFpbiAuYmxvd291dDpiZWZvcmUge1xuICAgIC0tdHJhbnNsYXRlWDogMDtcbiAgICB3aWR0aDogY2FsYygxMDB2dyArIHZhcigtLWd1dHRlcjEpKTtcbiAgICBsZWZ0OiB2YXIoLS1ndXR0ZXIxLSk7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgKyB2YXIoLS1ndXR0ZXIxKSk7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkgYW5kIChtaW4td2lkdGg6IDE2ODFweCkge1xuICBib2R5Om5vdChtb2JpbGUpIG1haW4gLmJsb3dvdXQ6YmVmb3JlIHtcbiAgICBsZWZ0OiBjYWxjKCgtMSAqIHZhcigtLWNvbXB1dGVkLWd1dHRlcikpIC0gdmFyKC0tZ3V0dGVyMSkpO1xuICB9XG59XG5cbmJvZHkubW9iaWxlIG1haW4gLmJsb3dvdXQ6YmVmb3JlIHtcbiAgLS10cmFuc2xhdGVYOiAwO1xuICB3aWR0aDogY2FsYygxMDB2dyArIHZhcigtLWd1dHRlcjEpKTtcbiAgbGVmdDogdmFyKC0tZ3V0dGVyMS0pO1xuICB3aWR0aDogY2FsYygxMDB2dyArIHZhcigtLWd1dHRlcjEpKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxNjgxcHgpIHtcbiAgYm9keS5tb2JpbGUgbWFpbiAuYmxvd291dDpiZWZvcmUge1xuICAgIGxlZnQ6IGNhbGMoKC0xICogdmFyKC0tY29tcHV0ZWQtZ3V0dGVyKSkgLSB2YXIoLS1ndXR0ZXIxKSk7XG4gIH1cbn1cblxuYmFja2dyb3VuZC1pbWFnZSxcbmJhY2tncm91bmQtdmlkZW8ge1xuICB6LWluZGV4OiAtMTtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1iYWNrZ3JvdW5kKTtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG59XG5iYWNrZ3JvdW5kLWltYWdlLmJlaGluZC1oZWFkZXIsXG5iYWNrZ3JvdW5kLXZpZGVvLmJlaGluZC1oZWFkZXIge1xuICAtLXJvdy1iYWNrZ3JvdW5kOiA0O1xufVxuXG5pbWdbZGF0YS1zcmNdLFxudmlkZW9bZGF0YS1zcmNdIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW47XG4gIG9wYWNpdHk6IDA7XG59XG5pbWdbZGF0YS1zcmNdLmxvYWRlZCxcbnZpZGVvW2RhdGEtc3JjXS5sb2FkZWQge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY2VudGVyLWFsbCB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNwYWNlcjIpO1xuICBnYXA6IHZhcigtLXNwYWNlcjEpICFpbXBvcnRhbnQ7XG59XG4uY2VudGVyLWFsbCA+IC50ZXh0IDppcyhoMSwgaDIsIGgzLCBoNCwgaDUsIGg2KSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jZW50ZXItYWxsID4gLnRleHQgOmlzKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpIHNwYW4ge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5KTtcbn1cbi5jZW50ZXItYWxsIGFydGljbGUtbGlzdCB7XG4gIG1heC13aWR0aDogMTEwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgLS1hcnRpY2xlLW1pbi13aWR0aDogNDIwcHggIWltcG9ydGFudDtcbn1cblxubWFpbiB+ICo6bm90KC50aGVtZWQpICsgOm5vdCgudGhlbWVkKTpub3QoI2Zvb3Rlcik6bm90KHNpZGUtYmFyKSB7XG4gIGJveC1zaGFkb3c6IDBweCAtMXB4IHZhcigtLWJvcmRlci10b3AtY29sb3VyLCAjZGNkY2RjKTtcbn1cblxubWFpbiA+ICoudGhlbWVkLmNvbnRlbnQtYmxvY2sge1xuICBib3gtc2hhZG93OiBpbml0aWFsO1xufVxuXG5tYWluID4gKi50aGVtZWQgKyA6bm90KC50aGVtZWQpOm5vdCgjZm9vdGVyKSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGJveC1zaGFkb3c6IGluaXRpYWw7XG59XG5cbm1haW4gfiAqLnRoZW1lZCArIDpub3QoLnRoZW1lZCk6bm90KCNmb290ZXIpLFxuYm9keS5iYWNrZ3JvdW5kLXBvc2l0aW9uZWQtYmVoaW5kLWhlYWRlciBtYWluID4gKjpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IGluaXRpYWw7XG59XG5cbm1haW4gPiAqOmZpcnN0LWNoaWxkOm5vdCgudGhlbWVkKSxcbm1haW4gPiAqOmZpcnN0LWNoaWxkLndoaXRlIHtcbiAgYm94LXNoYWRvdzogMHB4IC0xcHggdmFyKC0tYm9yZGVyLXRvcC1jb2xvdXIsICNkY2RjZGMpO1xufVxuXG5tYWluIH4gKjpub3QoLnRoZW1lZCkgKyAudGhlbWVkOm5vdCguYmxvd291dCksXG5tYWluID4gKjpub3QoLnRoZW1lZCkgKyAudGhlbWVkOm5vdCguYmxvd291dCkge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4uaGVhZGVyIH4gbWFpbiA+IC50aGVtZWQ6bm90KC5ibG93b3V0KTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjEpO1xufVxuXG5tYWluID4gLnRoZW1lZDpub3QoLmJsb3dvdXQpOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZXIxKTtcbn1cblxubWFpbiA+IC50aGVtZWQ6bm90KC5ibG93b3V0KSArIC5ibG93b3V0IHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMSk7XG59XG5cbi5oZWFkZXIgfiBtYWluID4gLnRoZW1lZDpub3QoLmJsb3dvdXQpIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxubWFpbiB+IGRpdjpoYXMoI0Nvb2tpZWJvdFdpZGdldCkge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPXNpZGUtYmFyXSkge1xuICAtLW1haW4tbWF4LXdpZHRoOiBhdXRvO1xuICAtLWNvbHVtbi1tYWluOiB2YXIoLS1jb2x1bW4tZnVsbCk7XG59XG5cbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pIHtcbiAgLS1yb3ctbmF2aWdhdGlvbjogMTtcbiAgLS1yb3ctYW5jaG9yczogMjtcbiAgLS1yb3ctaGVhZGVyOiAzO1xuICAtLXJvdy1tYWluOiA0O1xufVxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSkgYmFja2dyb3VuZC1pbWFnZS5mdWxsLFxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSkgYmFja2dyb3VuZC12aWRlby5mdWxsIHtcbiAgLS1yb3ctYmFja2dyb3VuZDogMSAvIHNwYW4gNDtcbn1cbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pIGJhY2tncm91bmQtaW1hZ2UuYmVoaW5kLWhlYWRlcixcbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pIGJhY2tncm91bmQtdmlkZW8uZnVsbCB7XG4gIC0tcm93LWJhY2tncm91bmQ6IDM7XG59XG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKSAjYW5jaG9ycy1iYXIuc3RpY2t5IHtcbiAgdG9wOiAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSB7XG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pIHtcbiAgICAtLXJvdy1zaWRlYmFyOiAzIC8gc3BhbiAzO1xuICB9XG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pIHNpZGUtYmFyIGRpdi5zdGlja3ksXG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pIGFzaWRlI3N1cHBvcnQtaW5mb3JtYXRpb24gLmdsb3NzYXJ5LXRlcm1zLFxuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKSB0YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMVwiXSA+IG5hdiB7XG4gICAgdG9wOiBjYWxjKHZhcigtLWFuY2hvcnMtaGVpZ2h0KSArIHZhcigtLWd1dHRlcjEpKTtcbiAgfVxufVxuXG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIHtcbiAgLS1yb3ctbmF2aWdhdGlvbjogMTtcbiAgLS1yb3ctYnJlYWRjcnVtYnM6IDI7XG4gIC0tcm93LWhlYWRlcjogMztcbiAgLS1yb3ctbWFpbjogNDtcbn1cbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgYmFja2dyb3VuZC1pbWFnZS5mdWxsLFxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSBiYWNrZ3JvdW5kLXZpZGVvLmZ1bGwge1xuICAtLXJvdy1iYWNrZ3JvdW5kOiAxIC8gc3BhbiA0O1xufVxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSBiYWNrZ3JvdW5kLWltYWdlLmJlaGluZC1oZWFkZXIsXG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIGJhY2tncm91bmQtdmlkZW8uYmVoaW5kLWhlYWRlciB7XG4gIC0tcm93LWJhY2tncm91bmQ6IDM7XG59XG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pICNicmVhZGNydW1icy1iYXIuc3RpY2t5IHtcbiAgdG9wOiAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSB7XG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkge1xuICAgIC0tcm93LXNpZGViYXI6IDMgLyBzcGFuIDM7XG4gIH1cbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSBzaWRlLWJhciBkaXYuc3RpY2t5LFxuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIGFzaWRlI3N1cHBvcnQtaW5mb3JtYXRpb24gLmdsb3NzYXJ5LXRlcm1zLFxuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIHRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIxXCJdID4gbmF2IHtcbiAgICB0b3A6IGNhbGModmFyKC0tYW5jaG9ycy1oZWlnaHQpICsgdmFyKC0tZ3V0dGVyMSkpO1xuICB9XG59XG5cbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pOm5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIHtcbiAgLS1yb3ctbmF2aWdhdGlvbjogMTtcbiAgLS1yb3ctaGVhZGVyOiAyO1xuICAtLXJvdy1tYWluOiAzO1xuICAtLXJvdy1iYWNrZ3JvdW5kOiAxO1xufVxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgYmFja2dyb3VuZC1pbWFnZS5mdWxsLFxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgYmFja2dyb3VuZC12aWRlby5mdWxsIHtcbiAgLS1yb3ctYmFja2dyb3VuZDogMSAvIHNwYW4gNTtcbn1cbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pOm5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIGJhY2tncm91bmQtaW1hZ2UuYmVoaW5kLWhlYWRlcixcbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pOm5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIGJhY2tncm91bmQtdmlkZW8uYmVoaW5kLWhlYWRlciB7XG4gIC0tcm93LWJhY2tncm91bmQ6IDI7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTgxcHgpIHtcbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkge1xuICAgIC0tcm93LXNpZGViYXI6IDIgLyBzcGFuIDM7XG4gIH1cbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgc2lkZS1iYXIgZGl2LnN0aWNreSxcbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgYXNpZGUjc3VwcG9ydC1pbmZvcm1hdGlvbiAuZ2xvc3NhcnktdGVybXMsXG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pOm5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIHRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIxXCJdID4gbmF2IHtcbiAgICB0b3A6IHZhcigtLWd1dHRlcjEpO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkge1xuICBib2R5LnJ1bGUtbGFzdC1tYWluLXNlY3Rpb24taXMtdGhlbWVkIHNpZGUtYmFyIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgfVxufVxuXG4ubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciwgLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiB2YXIoLS1ndXR0ZXIxKTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG59XG4ubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciAubGVmdCxcbi5sYXlvdXQtY29udGVudC1yaWdodC1zaWRlYmFyIC5yaWdodCwgLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciAubGVmdCxcbi5sYXlvdXQtY29udGVudC1sZWZ0LXNpZGViYXIgLnJpZ2h0IHtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi5sYXlvdXQtY29udGVudC1yaWdodC1zaWRlYmFyIC5sYXlvdXQtY29udGVudC1yaWdodC1zaWRlYmFyLCAubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciAubGF5b3V0LWNvbnRlbnQtbGVmdC1zaWRlYmFyLCAubGF5b3V0LWNvbnRlbnQtbGVmdC1zaWRlYmFyIC5sYXlvdXQtY29udGVudC1yaWdodC1zaWRlYmFyLCAubGF5b3V0LWNvbnRlbnQtbGVmdC1zaWRlYmFyIC5sYXlvdXQtY29udGVudC1sZWZ0LXNpZGViYXIge1xuICAtLWNvbHVtbi1jb250ZW50OiBtaW5tYXgoMCwgY2FsYygxNjgwcHggLSAodmFyKC0tc2lkZWJhci13aWR0aCkgKiAyKSkpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTgxcHgpIHtcbiAgYm9keSA+IC5sYXlvdXQtY29udGVudC1sZWZ0LXNpZGViYXIgLmxlZnQge1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICB9XG4gIGJvZHkgPiAubGF5b3V0LWNvbnRlbnQtbGVmdC1zaWRlYmFyIC5yaWdodCB7XG4gICAgZ3JpZC1jb2x1bW46IDIvNDtcbiAgfVxuICBib2R5ID4gLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIgLmxlZnQge1xuICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1tYWluLW1heC13aWR0aCk7XG4gIH1cbiAgYm9keSA+IC5sYXlvdXQtY29udGVudC1yaWdodC1zaWRlYmFyIC5yaWdodCB7XG4gICAgZ3JpZC1jb2x1bW46IDM7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgfVxuICBib2R5ID4gLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIsIGJvZHkgPiAubGF5b3V0LWNvbnRlbnQtbGVmdC1zaWRlYmFyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWNvbHVtbi1zaWRlYmFyKSB2YXIoLS1jb2x1bW4tY29udGVudCkgdmFyKC0tY29sdW1uLXNpZGViYXIpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTEyMXB4KSB7XG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPXNpZGUtYmFyXSkgbWFpbiAubGF5b3V0LWNvbnRlbnQtbGVmdC1zaWRlYmFyIC5sZWZ0IHtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgfVxuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1zaWRlLWJhcl0pIG1haW4gLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciAucmlnaHQge1xuICAgIGdyaWQtY29sdW1uOiAyLzQ7XG4gIH1cbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9c2lkZS1iYXJdKSBtYWluIC5sYXlvdXQtY29udGVudC1yaWdodC1zaWRlYmFyIC5sZWZ0IHtcbiAgICBncmlkLWNvbHVtbjogMS8zO1xuICAgIG1heC13aWR0aDogdmFyKC0tbWFpbi1tYXgtd2lkdGgpO1xuICB9XG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPXNpZGUtYmFyXSkgbWFpbiAubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciAucmlnaHQge1xuICAgIGdyaWQtY29sdW1uOiAzO1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ3V0dGVyMSk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tZ3V0dGVyMSk7XG4gIH1cbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9c2lkZS1iYXJdKSBtYWluIC5sYXlvdXQtY29udGVudC1yaWdodC1zaWRlYmFyLCBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1zaWRlLWJhcl0pIG1haW4gLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1jb2x1bW4tc2lkZWJhcikgdmFyKC0tY29sdW1uLWNvbnRlbnQpIHZhcigtLWNvbHVtbi1zaWRlYmFyKTtcbiAgfVxufVxuXG4uY29udGVudC1ibG9jayA+ICoge1xuICBncmlkLWNvbHVtbjogMS8tMTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MDFweCkge1xuICAuY29udGVudC1ibG9jayB7XG4gICAgLS1jb2x1bW4tY291bnQ6IDY7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTEge1xuICAgIGdyaWQtY29sdW1uOiAxL3NwYW4gMTtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtMiB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiAyO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS0zIHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDM7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTQge1xuICAgIGdyaWQtY29sdW1uOiAxL3NwYW4gNDtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtNSB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiA1O1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS02IHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDY7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0yLTEge1xuICAgIGdyaWQtY29sdW1uOiAyL3NwYW4gMTtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTItMiB7XG4gICAgZ3JpZC1jb2x1bW46IDIvc3BhbiAyO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMi0zIHtcbiAgICBncmlkLWNvbHVtbjogMi9zcGFuIDM7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0yLTQge1xuICAgIGdyaWQtY29sdW1uOiAyL3NwYW4gNDtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTItNSB7XG4gICAgZ3JpZC1jb2x1bW46IDIvc3BhbiA1O1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMy0xIHtcbiAgICBncmlkLWNvbHVtbjogMy9zcGFuIDE7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0zLTIge1xuICAgIGdyaWQtY29sdW1uOiAzL3NwYW4gMjtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTMtMyB7XG4gICAgZ3JpZC1jb2x1bW46IDMvc3BhbiAzO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMy00IHtcbiAgICBncmlkLWNvbHVtbjogMy9zcGFuIDQ7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC00LTEge1xuICAgIGdyaWQtY29sdW1uOiA0L3NwYW4gMTtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTQtMiB7XG4gICAgZ3JpZC1jb2x1bW46IDQvc3BhbiAyO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNC0zIHtcbiAgICBncmlkLWNvbHVtbjogNC9zcGFuIDM7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC01LTEge1xuICAgIGdyaWQtY29sdW1uOiA1L3NwYW4gMjtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTUtMiB7XG4gICAgZ3JpZC1jb2x1bW46IDUvc3BhbiAyO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNi0xIHtcbiAgICBncmlkLWNvbHVtbjogNi9zcGFuIDE7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3MDBweCkgYW5kIChtYXgtd2lkdGg6IDE0MDBweCkge1xuICAuY29udGVudC1ibG9jayB7XG4gICAgLS1jb2x1bW4tY291bnQ6IDQ7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTMge1xuICAgIGdyaWQtY29sdW1uOiAxL3NwYW4gMjtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtNCB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiAzO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS01IHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDM7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC00LTMge1xuICAgIGdyaWQtY29sdW1uOiAzLy0xO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS02IHtcbiAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTItMyxcbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0yLTQsXG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMi01IHtcbiAgICBncmlkLWNvbHVtbjogMi8tMTtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTMtMixcbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0zLTMsXG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMy00IHtcbiAgICBncmlkLWNvbHVtbjogMy8tMTtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTQtMSxcbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC00LTIsXG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNS0xLFxuICAuY29udGVudC1ibG9jayAuY29sLTYtMSB7XG4gICAgZ3JpZC1jb2x1bW46IDQvLTE7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC01LTIge1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMzIwcHgpIGFuZCAobWF4LXdpZHRoOiA2OTlweCkge1xuICAuY29udGVudC1ibG9jayB7XG4gICAgLS1jb2x1bW4tY291bnQ6IDI7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTEsXG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMy0xLFxuICAuY29udGVudC1ibG9jayAuY29sLTUtMSB7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0yLTEsXG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNC0xLFxuICAuY29udGVudC1ibG9jayAuY29sLTYtMSB7XG4gICAgZ3JpZC1jb2x1bW46IDI7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDY5OXB4KSBhbmQgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTEge1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS01ICsgLmNvbC02LTEge1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMzIwcHgpIGFuZCAobWF4LXdpZHRoOiA2OTlweCkgYW5kIChtaW4td2lkdGg6IDUwMXB4KSB7XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMi01IHtcbiAgICBncmlkLWNvbHVtbjogMjtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtNSB7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gIH1cbn1cblxubmF2aWdhdGlvbi1iYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tc3BhY2VyMCkgKyB2YXIoLS1nYXApKSAwO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEwMTI0ZDtcbiAgei1pbmRleDogNTtcbiAgZ2FwOiB2YXIoLS1ndXR0ZXIxKTtcbiAgaGVpZ2h0OiBtaW4tY29udGVudDtcbiAgLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzOiB2YXIoLS1nYXApO1xuICAtLXRvcC1sZXZlbC1saW5rLWNvbG91cjogd2hpdGU7XG4gIC0tbWFya2VyLWxpbmUtdGhpY2tuZXNzOiAzcHg7XG4gIC0tc3BhY2VyLWxpbmUtdGhpY2tuZXNzOiAxcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgbmF2aWdhdGlvbi1iYXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbn1cbm5hdmlnYXRpb24tYmFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIHotaW5kZXg6IC0xO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKHZhcigtLXRyYW5zbGF0ZVgsIC01MCUpKTtcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcbn1cbm5hdmlnYXRpb24tYmFyID4gKjpub3QoLmltYWdlKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbn1cbmJvZHlbZGF0YS1jb21wb25lbnRzKj1iYWNrZ3JvdW5kLWltYWdlXSBuYXZpZ2F0aW9uLWJhci5oaWRlLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICBiYWNrZ3JvdW5kOiBpbml0aWFsO1xufVxuYm9keVtkYXRhLWNvbXBvbmVudHMqPWJhY2tncm91bmQtaW1hZ2VdIG5hdmlnYXRpb24tYmFyLmhpZGUtYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuYm9keVtkYXRhLWNvbXBvbmVudHMqPWJhY2tncm91bmQtdmlkZW9dIG5hdmlnYXRpb24tYmFyLmhpZGUtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gIGJhY2tncm91bmQ6IGluaXRpYWw7XG59XG5ib2R5W2RhdGEtY29tcG9uZW50cyo9YmFja2dyb3VuZC12aWRlb10gbmF2aWdhdGlvbi1iYXIuaGlkZS1iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5uYXZpZ2F0aW9uLWJhci5pbnZlcnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICBiYWNrZ3JvdW5kOiBpbml0aWFsO1xuICAtLXRvcC1sZXZlbC1saW5rLWNvbG91cjogIzEzMWY2Yjtcbn1cbm5hdmlnYXRpb24tYmFyLmludmVydDo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbm5hdmlnYXRpb24tYmFyLmludmVydCBhLmxvZ28gaW1nW3NyYyo9XCJ0YWdsaW5lLnN2Z1wiXSB7XG4gIGZpbHRlcjogaW52ZXJ0KDAuOSk7XG59XG5uYXZpZ2F0aW9uLWJhciBhLmxvZ28ge1xuICBtYXgtd2lkdGg6IDMyMHB4O1xuICBtYXgtd2lkdGg6IDI4MHB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgYXNwZWN0LXJhdGlvOiAzNzEvOTc7XG59XG5uYXZpZ2F0aW9uLWJhciBhLmxvZ286aGFzKHN2Zy5uby10YWdsaW5lcykge1xuICBhc3BlY3QtcmF0aW86IGluaXRpYWw7XG59XG46aGFzKGhlYWRlci5kYXJrKSBuYXZpZ2F0aW9uLWJhcjpub3QoLmludmVydCkgYS5sb2dvIHtcbiAgLS1sb2dvLXRleHQtY29sb3VyOiB3aGl0ZTtcbn1cblxubmF2aWdhdGlvbi1iYXI6bm90KC5pbnZlcnQpIHtcbiAgLS1sb2dvLXRleHQtY29sb3VyOiB3aGl0ZTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZ2FwOiA4cHg7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51ID4gdWwgPiBsaS50b3AtbGV2ZWwtbGluazpub3QoOm50aC1sYXN0LWNoaWxkKDIpKTpub3QoOm50aC1sYXN0LWNoaWxkKDMpKTpub3QoOmxhc3Qtb2YtdHlwZSk6OmJlZm9yZSxcbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsID4gbGk6bm90KDpsYXN0LW9mLXR5cGUpOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogdmFyKC0tc3BhY2VyLWxpbmUtdGhpY2tuZXNzKTtcbiAgaGVpZ2h0OiA0MCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1zcGFjZXItbGluZS10aGlja25lc3MpIC8gMik7XG4gIHRvcDogMzAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zcGFjZXItbGluZS1jb2xvdXIsICNkZjMwMzUpO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IHBlcnNvbmFsaXNlLWV4cGVyaWVuY2Uge1xuICBkaXNwbGF5OiBub25lO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IC5wZXJzb25hbGlzZWQge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tZ2FwKTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiAucGVyc29uYWxpc2VkIHBlcnNvbmFsaXNlLWV4cGVyaWVuY2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCBwZXJzb25hbGlzZS1leHBlcmllbmNlIGEuYnV0dG9uLnBlcnNvbmFsaXNlZCB7XG4gIC0tZm9udC1zaXplOiAwLjhlbTtcbiAgLS1wYWRkaW5nOiA0cHggMTBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NDBweCkge1xuICBuYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCBwZXJzb25hbGlzZS1leHBlcmllbmNlIGEuYnV0dG9uLnBlcnNvbmFsaXNlZCB7XG4gICAgLS1mb250LXNpemU6IDE2cHg7XG4gICAgLS1wYWRkaW5nOiA4cHggMjBweDtcbiAgICAtLWljb24tc2l6ZTogMjBweDtcbiAgfVxuICBuYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCBwZXJzb25hbGlzZS1leHBlcmllbmNlIGEuYnV0dG9uLnBlcnNvbmFsaXNlZCBwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIG5hdmlnYXRpb24tYmFyIG5hdiAucGVyc29uYWxpc2VkIHBlcnNvbmFsaXNlLWV4cGVyaWVuY2UgYS5idXR0b24ucGVyc29uYWxpc2VkIHN2ZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICBuYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCBwZXJzb25hbGlzZS1leHBlcmllbmNlIGEuYnV0dG9uLnBlcnNvbmFsaXNlZCB7XG4gICAgbWF4LWhlaWdodDogMzZweDtcbiAgICAtLWljb24tc2l6ZTogMS4xZW07XG4gIH1cbn1cbm5hdmlnYXRpb24tYmFyIG5hdiAucGVyc29uYWxpc2VkIHBlcnNvbmFsaXNlLWV4cGVyaWVuY2UgKyBzZWNvbmRhcnktbWVudSB7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0NDBweCkge1xuICBuYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCB7XG4gICAgdG9wOiB1bnNldDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxuICBuYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCAuYnV0dG9uLFxuICBuYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCBwZXJzb25hbGlzZS1leHBlcmllbmNlIGEuYnV0dG9uLnBlcnNvbmFsaXNlZCB7XG4gICAgLS1wYWRkaW5nOiA4cHg7XG4gICAgLS1pY29uLXNpemU6IDAuOGVtO1xuICB9XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51ID4gdWwgPiBsaS50b3AtbGV2ZWwtbGluayArIC5zZWFyY2gge1xuICBtYXJnaW4tbGVmdDogLTJweDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiAubGluayB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IC5saW5rIHN2ZyB7XG4gIG1hcmdpbi1sZWZ0OiAwLjRlbTtcbiAgaGVpZ2h0OiAwLjVlbTtcbiAgZmlsbDogI0ZGRkZGRjtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiAubGluayBzdmc6bm90KC5hcnJvdy1yaWdodCk6bm90KC5hcnJvdy1sZWZ0KSB7XG4gIGhlaWdodDogMC44ZW07XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgLmxpbmsub3ZlcnZpZXcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiAubGluayBzdmcsXG5uYXZpZ2F0aW9uLWJhciBuYXYgLmJ1dHRvbiBzdmcge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUge1xuICAtLWZvbnQtc2l6ZTogMC45NWVtO1xuICBvcmRlcjogMjtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkudG9wLWxldmVsLWxpbmsgYSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tdG9wLWxldmVsLWxpbmstY29sb3VyKTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1nYXApICogMC41KSB2YXIoLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzKTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLnRvcC1sZXZlbC1saW5rIGE6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgaGVpZ2h0OiAzcHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzKSAqIDIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10b3AtbGV2ZWwtbGluay1jb2xvdXIsICNkZjMwMzUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogdmFyKC0tdG9wLWxldmVsLWxpbmstZ3V0dGVycyk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkudG9wLWxldmVsLWxpbmsgYS5hY3RpdmU6OmFmdGVyIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLnRvcC1sZXZlbC1saW5rIGEuY3VycmVudDo6YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLnRvcC1sZXZlbC1saW5rW2RhdGEtbmF2PW1lbnVdIHtcbiAgb3JkZXI6IDE7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkudG9wLWxldmVsLWxpbmtbZGF0YS1uYXY9c3VibWVudV0ge1xuICBvcmRlcjogMjtcbiAgZGlzcGxheTogbm9uZTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS5zZWFyY2gge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLnNlYXJjaCBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLnNlYXJjaCBzdmcge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS5zZWFyY2ggc3BhbiB7XG4gIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkuc2VhcmNoLCBuYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkubWVudSB7XG4gIG9yZGVyOiAzO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLmNhcnQge1xuICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tdG9wLWxldmVsLWxpbmstZ3V0dGVycykgLyAyKTtcbiAgbGVmdDogLTJweDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS5jYXJ0IGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLmNhcnQgYSBzcGFuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS5jYXJ0IHN2ZyB7XG4gIG9yZGVyOiAxO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbmxpLmNhcnQgYVtkYXRhLXRvdGFsXTo6YWZ0ZXIge1xuICBjb250ZW50OiBhdHRyKGRhdGEtdG90YWwpO1xuICBtaW4td2lkdGg6IDJjaDtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBwYWRkaW5nOiAwIDAuNGVtO1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG4gIGhlaWdodDogMmNoO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZjMwMzU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbGluZS1oZWlnaHQ6IDAuMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIG9yZGVyOiAyO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgbGkuY2FydCBhW2RhdGEtdG90YWxdOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTMxZjZiO1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICB9XG4gIGxpLmNhcnQgYVtkYXRhLXRvdGFsXTpob3Zlcjo6YWZ0ZXIge1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICB9XG4gIGxpLmNhcnQgYVtkYXRhLXRvdGFsXTpob3ZlciBzdmcge1xuICAgIGZpbGw6ICNkZjMwMzU7XG4gIH1cbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIGxpLmNhcnQgYTpub3QoW2RhdGEtdG90YWxdKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzEzMWY2YjtcbiAgfVxuICBsaS5jYXJ0IGE6bm90KFtkYXRhLXRvdGFsXSk6aG92ZXI6OmFmdGVyIHtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgfVxuICBsaS5jYXJ0IGE6bm90KFtkYXRhLXRvdGFsXSk6aG92ZXIgc3ZnIHtcbiAgICBmaWxsOiAjZGYzMDM1O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA1NTBweCkge1xuICBuYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkuY2FydCBzdmcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLmNhcnQgYSB7XG4gICAgcGFkZGluZzogOHB4IDIwcHg7XG4gIH1cbiAgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLmNhcnQgYSBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudS5sb2FkaW5nOjpiZWZvcmUge1xuICAtLXNpemU6IDEycHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDUwJSAtIHZhcigtLXNpemUpIC8gMik7XG4gIGxlZnQ6IGNhbGMoNTAlIC0gdmFyKC0tc2l6ZSkgLyAyKTtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IHZhcigtLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXNpemUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWxvYWRlci1jb2xvdXIsIHdoaXRlKTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICBhbmltYXRpb24tbmFtZTogbG9hZGVyLXJvdGF0ZTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbn1cbkBrZXlmcmFtZXMgbG9hZGVyLXJvdGF0ZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBuYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51LmxvYWRpbmc6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZztcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgfVxufVxubmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51IHtcbiAgLS1mb250LXNpemU6IDAuOGVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBvcmRlcjogMTtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIHotaW5kZXg6IDY7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcmlnaHQ6IGNhbGModmFyKC0tZ2FwKSAqIC0xKTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgbGkgYSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS10b3AtbGV2ZWwtbGluay1jb2xvdXIpO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpIHZhcigtLWdhcCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgbmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgbGkgYTpob3ZlciB7XG4gICAgY29sb3I6ICMwMDk1ZmY7XG4gIH1cbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIC5zdWItbWVudSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA1MCU7XG4gIG1pbi13aWR0aDogY2FsYygxMDAlICsgY2FsYyh2YXIoLS1nYXApICogMikpO1xuICB3aWR0aDogMjAwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgY2FsYyh2YXIoLS1nYXApICogLTAuNSkpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaSAuc3ViLW1lbnUgbGk6bnRoLW9mLXR5cGUoMSkge1xuICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIC5zdWItbWVudSBsaTpsYXN0LW9mLXR5cGUge1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIC5zdWItbWVudSBhIHtcbiAgcGFkZGluZzogY2FsYyhjYWxjKHZhcigtLWdhcCkgKiAwLjUpIC8gMikgdmFyKC0tZ2FwKTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIC5zdWItbWVudSBhLmFzc2V0IHtcbiAgZGlzcGxheTogZmxleDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIC5zdWItbWVudSBhLmFzc2V0IHN2ZyB7XG4gIG9yZGVyOiAtMTtcbiAgbWFyZ2luOiAwIDAuNGVtIDAgMDtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgbWFyZ2luLXRvcDogMC40ZW07XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaSAuc3ViLW1lbnVbZGF0YS1sZXZlbD1cIjFcIl0gbGk6Zmlyc3Qtb2YtdHlwZSB7XG4gIG9yZGVyOiAxMDA7XG59XG46cm9vdDpub3QoW2RhdGEtYnJvd3Nlci1mZWF0dXJlKj10b3VjaF0pIG5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIC5zdWItbWVudVtkYXRhLWxldmVsPVwiMVwiXSBsaTpmaXJzdC1vZi10eXBlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgbmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgbGk6aG92ZXIgPiBhIHtcbiAgICBjb2xvcjogIzAwOTVmZjtcbiAgfVxuICBuYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaTpob3ZlciAuc3ViLW1lbnUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAwKTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICB9XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaTpsYXN0LW9mLXR5cGUgLnN1Yi1tZW51IHtcbiAgcmlnaHQ6IGNhbGMoMTAwJSArIHZhcigtLWdhcCkpICFpbXBvcnRhbnQ7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCA+IGxpLmhhcy1jaGlsZHJlbjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICB0b3A6IGNhbGMoMTAwJSArIDFweCk7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgY2FsYygtNTAlICsgY2FsYyh2YXIoLS1nYXApICogLTAuNSkpKSByb3RhdGUoNDVkZWcpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIDEwMCUgMCUsIDUwJSA1MCUsIDAgMTAwJSk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBuYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCA+IGxpLmhhcy1jaGlsZHJlbjpob3Zlcjo6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE0MDBweCkge1xuICBuYXZpZ2F0aW9uLWJhciB7XG4gICAgLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzOiB2YXIoLS1nYXApO1xuICB9XG4gIG5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgPiB1bCBsaS5zZWFyY2ggc3BhbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gIG5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUge1xuICAgIC0tZm9udC1zaXplOiAwLjllbTtcbiAgfVxufVxubmF2aWdhdGlvbi1iYXIgbGkubWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzKTtcbn1cbm5hdmlnYXRpb24tYmFyIGJ1dHRvbi5tZW51IHtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbn1cbm5hdmlnYXRpb24tYmFyIGJ1dHRvbi5tZW51IHN2ZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbm5hdmlnYXRpb24tYmFyIGJ1dHRvbi5tZW51IHN2ZyBsaW5lIHtcbiAgc3Ryb2tlLXdpZHRoOiAzcHg7XG4gIHN0cm9rZTogdmFyKC0tdG9wLWxldmVsLWxpbmstY29sb3VyKTtcbn1cbm5hdmlnYXRpb24tYmFyIGJ1dHRvbi5tZW51IHN2ZyBsaW5lOm50aC1jaGlsZCgxKSB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDE1JSAzMCU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjg2LCAwLCAwLjA3LCAxKTtcbn1cbm5hdmlnYXRpb24tYmFyIGJ1dHRvbi5tZW51IHN2ZyBsaW5lOm50aC1jaGlsZCgyKSB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5uYXZpZ2F0aW9uLWJhciBidXR0b24ubWVudSBzdmcgbGluZTpudGgtY2hpbGQoMykge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAxNSUgNzAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC44NiwgMCwgMC4wNywgMSk7XG59XG5uYXZpZ2F0aW9uLWJhciBidXR0b24ubWVudS5hY3RpdmUgc3ZnIGxpbmU6bnRoLWNoaWxkKDEpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxubmF2aWdhdGlvbi1iYXIgYnV0dG9uLm1lbnUuYWN0aXZlIHN2ZyBsaW5lOm50aC1jaGlsZCgyKSB7XG4gIG9wYWNpdHk6IDA7XG59XG5uYXZpZ2F0aW9uLWJhciBidXR0b24ubWVudS5hY3RpdmUgc3ZnIGxpbmU6bnRoLWNoaWxkKDMpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIHtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSkgMDtcbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGxpLm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiA0MHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gIGJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIC5idXR0b24uc2VhcmNoIHtcbiAgICAtLWZvbnQtc2l6ZTogMC44ZW07XG4gICAgLS1wYWRkaW5nOiA0cHggMTBweDtcbiAgfVxuICBib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBsaS5tZW51IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgbGkubWVudSBidXR0b24ubWVudSB7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHdpZHRoOiAzMHB4O1xuICB9XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBhLmxvZ28ge1xuICBtYXgtd2lkdGg6IGluaXRpYWw7XG4gIHdpZHRoOiAyMDBweDtcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmssXG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUge1xuICBkaXNwbGF5OiBub25lO1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSA+IHVsIGxpLnNlYXJjaCBzcGFuLFxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSA+IHVsIGxpW2RhdGEtbmF2PXN1Ym1lbnVdIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSA+IHVsIGxpLnNlYXJjaCBzcGFuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbmRyb3Bkb3duLW1lbnUge1xuICAtLW1pbi1oZWlnaHQ6IDQzMHB4O1xuICAtLW1heC1oZWlnaHQ6IDYwMHB4O1xuICAtLWRyb3Bkb3duLWdyb3VwLW5hdi13aWR0aDogMjcwcHg7XG4gIC0tZHJvcGRvd24taW1hZ2Utd2lkdGg6IDMwMHB4O1xuICAtLWRyb3Bkb3duLWltYWdlLWhlaWdodDogODBweDtcbiAgLS1kcm9wZG93bi1vcGVuLW9mZnNldDogNnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlIC0gdmFyKC0tbWFya2VyLWxpbmUtdGhpY2tuZXNzKSAtIDFweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0tZHJvcGRvd24tZ3JvdXAtbmF2LXdpZHRoKSAxZnI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwO1xuICBtYXJnaW4tdG9wOiAwcHg7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpLCBtYXJnaW4tdG9wIDAuM3MgY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1LCAwLjU1LCAwLjk1KTtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudS5hY3RpdmUgLnRvcC1sZXZlbC1saW5rcyAudG9wLWxldmVsLWxpbmsgLmxpbmsuY3VycmVudDo6YWZ0ZXIge1xuICBvcGFjaXR5OiAwO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudS5hY3RpdmUgZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWRyb3Bkb3duLW9wZW4tb2Zmc2V0KTtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuZHJvcGRvd24tbWVudTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLW1hcmtlci1saW5lLXRoaWNrbmVzcykpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMHB4O1xuICB6LWluZGV4OiA1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGYzMDM1O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGRyb3Bkb3duLW1lbnUge1xuICAtLWRyb3Bkb3duLW9wZW4tb2Zmc2V0OiB2YXIoLS1nYXApO1xuICB3aWR0aDogdmFyKC0tZHJvcGRvd24tZ3JvdXAtbmF2LXdpZHRoKSAhaW1wb3J0YW50O1xuICByaWdodDogMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICBib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1tZW51IHtcbiAgICAtLWRyb3Bkb3duLWdyb3VwLW5hdi13aWR0aDogY2FsYygxMDB2dyAtIHZhcigtLWd1dHRlcjMpKSAhaW1wb3J0YW50O1xuICB9XG59XG5cbmRyb3Bkb3duLWdyb3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBncmlkLWNvbHVtbjogMTtcbiAgZ3JpZC1yb3c6IDE7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDA7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSksIHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTtcbn1cbmRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCIwXCJdIHtcbiAgei1pbmRleDogNTtcbn1cbmRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCIxXCJdIHtcbiAgei1pbmRleDogNDtcbn1cbmRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCIyXCJdIHtcbiAgei1pbmRleDogMztcbn1cbmRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCIzXCJdIHtcbiAgei1pbmRleDogMjtcbn1cbmRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCI0XCJdIHtcbiAgei1pbmRleDogMTtcbn1cbmRyb3Bkb3duLWdyb3VwOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiAwLjllbTtcbiAgaGVpZ2h0OiAwLjllbTtcbn1cbmRyb3Bkb3duLWdyb3VwOjotd2Via2l0LXNjcm9sbGJhci1idXR0b24ge1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBub25lO1xufVxuZHJvcGRvd24tZ3JvdXA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk2OTY5NTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm9yZGVyOiA0cHggc29saWQgcmdiYSgwLCAwLCAwLCAwKTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbmRyb3Bkb3duLWdyb3VwOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuZHJvcGRvd24tZ3JvdXA6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuZHJvcGRvd24tZ3JvdXA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cbmRyb3Bkb3duLWdyb3VwIC5saW5rIHtcbiAgLS1mb250LXNpemU6IDAuOWVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIHBhZGRpbmc6IDRweCBjYWxjKHZhcigtLWdhcCkgKiAyKTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5kcm9wZG93bi1ncm91cCAubGluay5jdXJyZW50IHtcbiAgY29sb3I6ICNkZjMwMzU7XG59XG5kcm9wZG93bi1ncm91cCAubGluay5hY3RpdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG4gIHotaW5kZXg6IDE7XG59XG46cm9vdDpub3QoW2RhdGEtYnJvd3Nlci1mZWF0dXJlKj10b3VjaF0pIGRyb3Bkb3duLWdyb3VwIC5saW5rLmFjdGl2ZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gIGxlZnQ6IGNhbGMoMTAwJSAtIDUwcHgpO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDEwMHB4O1xuICBoZWlnaHQ6IDEwMHB4O1xufVxuXG46bm90KFtkYXRhLWJyb3dzZXItZmVhdHVyZSo9dG91Y2hdKSBkcm9wZG93bi1ncm91cCAubGFzdCAubGluay5hY3RpdmU6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKSByb3RhdGUoMGRlZykgc2tldygtNDVkZWcsIDApO1xufVxuXG5kcm9wZG93bi1ncm91cCAubGluay5oYXMtY2hpbGRyZW4gc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBkcm9wZG93bi1ncm91cCAubGluazpob3ZlciB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG4gIH1cbn1cbmRyb3Bkb3duLWdyb3VwIHVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbn1cbmRyb3Bkb3duLWdyb3VwIHVsIGxpLmZpcnN0IHtcbiAgcGFkZGluZy10b3A6IHZhcigtLWdhcCk7XG59XG5kcm9wZG93bi1ncm91cCB1bCBsaS5sYXN0IHtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcCk7XG59XG5kcm9wZG93bi1ncm91cCB1bCBsaS5vdmVydmlldyB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgZHJvcGRvd24tZ3JvdXAgdWwgbGkub3ZlcnZpZXcgfiAuZmlyc3Qge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG59XG5kcm9wZG93bi1ncm91cCB1bCBsaS5vdmVydmlldyAubGluayB7XG4gIGNvbG9yOiAjMTMxZjZiO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIGRyb3Bkb3duLWdyb3VwIHVsIGxpLm92ZXJ2aWV3IC5saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbn1cbmRyb3Bkb3duLWdyb3VwIHVsIGxpLm92ZXJ2aWV3IC5saW5rLmFjdGl2ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbjpyb290Om5vdChbZGF0YS1icm93c2VyLWZlYXR1cmUqPXRvdWNoXSkgZHJvcGRvd24tZ3JvdXAgdWwgbGkub3ZlcnZpZXcge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5kcm9wZG93bi1ncm91cCB1bCBsaS5iYWNrIHtcbiAgcGFkZGluZy10b3A6IHZhcigtLWdhcCk7XG59XG46cm9vdDpub3QoW2RhdGEtYnJvd3Nlci1mZWF0dXJlKj10b3VjaF0pIGRyb3Bkb3duLWdyb3VwIHVsIGxpLmJhY2sge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5kcm9wZG93bi1ncm91cCB1bCBsaS5iYWNrIC5saW5rIHN2ZyB7XG4gIG1hcmdpbi1yaWdodDogMC40ZW07XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjFcIl0ge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xufVxuZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjFcIl0gbGkuYmFjayB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5kcm9wZG93bi1ncm91cFtkYXRhLWxldmVsPVwiMlwiXSB7XG4gIHdpZHRoOiA5NSU7XG4gIGxlZnQ6IDEwMCU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNSUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xufVxuZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjNcIl0ge1xuICB3aWR0aDogY2FsYyg5NSUgKyAycHgpO1xuICBvcGFjaXR5OiAwO1xuICBsZWZ0OiBjYWxjKDE5NSUgLSAxcHgpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNSUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjNzLCAwLjNzO1xufVxuZHJvcGRvd24tZ3JvdXAuYWxsb3ctc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbmRyb3Bkb3duLWdyb3VwLmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5kcm9wZG93bi1ncm91cC5hY3RpdmVbZGF0YS1sZXZlbD1cIjJcIl0sIGRyb3Bkb3duLWdyb3VwLmFjdGl2ZVtkYXRhLWxldmVsPVwiM1wiXSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG59XG5kcm9wZG93bi1ncm91cDpub3QoLmFjdGl2ZSlbZGF0YS1sZXZlbD1cIjFcIl0sIGRyb3Bkb3duLWdyb3VwOm5vdCguYWN0aXZlKVtkYXRhLWxldmVsPVwiMlwiXSwgZHJvcGRvd24tZ3JvdXA6bm90KC5hY3RpdmUpW2RhdGEtbGV2ZWw9XCIzXCJdIHtcbiAgbGVmdDogMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG59XG5ib2R5Om5vdCgubW9iaWxlKSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1ncm91cDpub3QoW2RhdGEtbGV2ZWw9XCIxXCJdKSAubGluayB7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG4gIHBhZGRpbmctYm90dG9tOiA2cHg7XG59XG5cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGRyb3Bkb3duLWdyb3VwIHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KSB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpIDAgMCAhaW1wb3J0YW50O1xuICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXMsIDAuNXM7XG4gIHRyYW5zZm9ybTogaW5pdGlhbCAhaW1wb3J0YW50O1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjBcIl0ge1xuICB6LWluZGV4OiAxO1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjFcIl0ge1xuICB6LWluZGV4OiAyO1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjJcIl0ge1xuICB6LWluZGV4OiAzO1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjNcIl0ge1xuICB6LWluZGV4OiA0O1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjRcIl0ge1xuICB6LWluZGV4OiA1O1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tZ3JvdXAgLmxpbmsge1xuICAtLWZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgcGFkZGluZy1ib3R0b206IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1ncm91cCB1bCBsaS5vdmVydmlldywgYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tZ3JvdXAgdWwgbGkuYmFjayB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5cbmRyb3Bkb3duLWltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHZhcigtLXBvc2l0aW9uLCBjZW50ZXIgMzMlKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGdyaWQtY29sdW1uOiAyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGp1c3RpZnktaXRlbXM6IGZsZXgtZW5kO1xufVxuZHJvcGRvd24taW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG9iamVjdC1wb3NpdGlvbjogdmFyKC0taW1hZ2UtcG9zaXRpb24sIGNlbnRlciAzMy4zMyUpO1xuICB3aWR0aDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2Utd2lkdGgtc2l6ZSwgMTAwJSkpO1xuICBoZWlnaHQ6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7XG4gIG1heC13aWR0aDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2Utd2lkdGgtc2l6ZSwgMTAwJSkpO1xuICBtYXgtaGVpZ2h0OiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG5kcm9wZG93bi1pbWFnZSAuaW1hZ2Uge1xuICB3aWR0aDogY2xhbXAodmFyKC0tZHJvcGRvd24taW1hZ2Utd2lkdGgpIC8gMiwgMzB2dywgdmFyKC0tZHJvcGRvd24taW1hZ2Utd2lkdGgpKTtcbiAgZ3JpZC1yb3c6IDE7XG4gIGdyaWQtY29sdW1uOiAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xuICBvcGFjaXR5OiAwO1xufVxuZHJvcGRvd24taW1hZ2UgLmltYWdlLmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5kcm9wZG93bi1pbWFnZSAuaW1hZ2UuYWN0aXZlIGltZyB7XG4gIG9wYWNpdHk6IDE7XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1pbWFnZSB7XG4gIGdyaWQtY29sdW1uOiAxO1xuICB6LWluZGV4OiAxMDtcbiAgd2lkdGg6IGluaGVyaXQ7XG4gIGhlaWdodDogdmFyKC0tZHJvcGRvd24taW1hZ2UtaGVpZ2h0KTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGluaXRpYWw7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1pbWFnZSAuaW1hZ2Uge1xuICB3aWR0aDogaW5oZXJpdDtcbiAgaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4uaGVhZGVyIHtcbiAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlcjEpO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2VyMSk7XG59XG4uaGVhZGVyID4gaDEgc3VwIHtcbiAgZm9udC1zaXplOiAwLjZlbTtcbn1cbi5oZWFkZXIgPiBoMSBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC4zNzVlbTtcbiAgY29sb3I6ICM5Njk2OTU7XG59XG4uaGVhZGVyID4gaDEgKyAqLCAuaGVhZGVyID4gaDIgKyAqIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ3V0dGVyMSk7XG59XG4uaGVhZGVyID4gaDEgKyBoMiB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWd1dHRlcjApO1xufVxuLmhlYWRlciA+IGgyIHtcbiAgY29sb3I6IHZhcigtLXN1Yi1oZWFkaW5nLWNvbG91cik7XG4gIGZvbnQtZmFtaWx5OiBsYXRvLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG4uaGVhZGVyID4gaDIgYSB7XG4gIC0tZm9udC1jb2xvdXI6IHZhcigtLXN1Yi1oZWFkaW5nLWNvbG91cik7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgLmhlYWRlciA+IGgyIGE6aG92ZXIge1xuICAgIC0tZm9udC1jb2xvdXI6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICB9XG59XG4uaGVhZGVyIHRpbWUge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBtYXJnaW46IHZhcigtLWd1dHRlcjEpIDA7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLXRhZy1jb2xvdXIsICNkZjMwMzUpO1xufVxuLmhlYWRlciBidXR0b24tY29udGFpbmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1nYXApICogLTEpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXIwKTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuaGVhZGVyIGJ1dHRvbi1jb250YWluZXIgLmJ1dHRvbiBzcGFuIHtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB9XG59XG4uaGVhZGVyIG5vdGljZS1tZXNzYWdlcyB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjApO1xufVxuLmhlYWRlci5kYXJrIHtcbiAgLS1oZWFkaW5nLWNvbG91cjp3aGl0ZTtcbiAgLS1zdWItaGVhZGluZy1jb2xvdXI6d2hpdGU7XG59XG4uaGVhZGVyLmRhcmsgLmJ1dHRvbi5icm9jaHVyZSB7XG4gIC0tZm9udC1jb2xvdXI6d2hpdGU7XG59XG4uaGVhZGVyLmRhcmsgLmJ1dHRvbi5icm9jaHVyZSBzdmcge1xuICBmaWxsOiB3aGl0ZTtcbn1cbi5oZWFkZXIubm8tZGV2aWRlci1saW5lIH4gbWFpbiB7XG4gIC0tYm9yZGVyLXRvcC1jb2xvdXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi5oZWFkZXIubm8tZGV2aWRlci1saW5lIH4gbWFpbiA+IC5jb250ZW50LWJsb2NrOmZpcnN0LW9mLXR5cGUge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgYm94LXNoYWRvdzogaW5pdGlhbDtcbn1cblxuZm9vdGVyI2Zvb3RlciB7XG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjZXIxKTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNlcjEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgZ3JpZC1nYXA6IHZhcigtLWd1dHRlcjEpO1xuICBkaXNwbGF5OiBncmlkO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAzMDBweDtcbn1cbmZvb3RlciNmb290ZXIgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIGZvb3RlciNmb290ZXIgYTpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1saWdodCwgI2U0NGY1Myk7XG4gIH1cbn1cbmZvb3RlciNmb290ZXIgYS5jdXJyZW50IHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1saWdodCwgI2U0NGY1Myk7XG59XG5mb290ZXIjZm9vdGVyIGEuY3VycmVudCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuZm9vdGVyI2Zvb3RlciAuYmFjay10by10b3Age1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIG1hcmdpbjogY2FsYyh2YXIoLS1nYXApICogLTEpIGF1dG8gdmFyKC0tZ2FwKSBhdXRvO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gIGZvb3RlciNmb290ZXIgLmJhY2stdG8tdG9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5mb290ZXIjZm9vdGVyIC50YWctbGluZS1zaWduLW9mZiB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2VyMCk7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuQHN1cHBvcnRzICh3aWR0aDogY2xhbXAoMXB4LCA1dncsIDEwcHgpKSB7XG4gIGZvb3RlciNmb290ZXIgLnRhZy1saW5lLXNpZ24tb2ZmIHRhZy1saW5lIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMTJweCwgMS41dncsIDAuNGVtKTtcbiAgfVxufVxuQHN1cHBvcnRzIG5vdCAod2lkdGg6IGNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICBAbWVkaWEgKG1heC13aWR0aDogOTUwcHgpIHtcbiAgICBmb290ZXIjZm9vdGVyIC50YWctbGluZS1zaWduLW9mZiB0YWctbGluZSBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB9XG4gIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDE2MDFweCkge1xuICAgIGZvb3RlciNmb290ZXIgLnRhZy1saW5lLXNpZ24tb2ZmIHRhZy1saW5lIHNwYW4ge1xuICAgICAgZm9udC1zaXplOiAwLjRlbTtcbiAgICB9XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICBmb290ZXIjZm9vdGVyIC50YWctbGluZS1zaWduLW9mZiB0YWctbGluZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkgYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIGZvb3RlciNmb290ZXIgLnRhZy1saW5lLXNpZ24tb2ZmIHRhZy1saW5lIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgfVxuICBmb290ZXIjZm9vdGVyIC50YWctbGluZS1zaWduLW9mZiB0YWctbGluZSBzcGFuIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbmZvb3RlciNmb290ZXIgPiBuYXYge1xuICBkaXNwbGF5OiBncmlkO1xuICBmbGV4LWdyb3c6IDE7XG4gIGdyaWQtZ2FwOiB2YXIoLS1ndXR0ZXIxKTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xufVxuZm9vdGVyI2Zvb3RlciA+IG5hdiB1bCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuZm9vdGVyI2Zvb3RlciA+IG5hdiB1bCBsaSArIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbmZvb3RlciNmb290ZXIgPiBuYXYgdWw6bGFzdC1vZi10eXBlIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMzNweCwgMWZyKSk7XG4gIGdyaWQtZ2FwOiAwIHZhcigtLWdhcCk7XG59XG5mb290ZXIjZm9vdGVyID4gbmF2IHVsOmxhc3Qtb2YtdHlwZSBsaTpmaXJzdC1vZi10eXBlIHtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG59XG5mb290ZXIjZm9vdGVyIC5oZWFkaW5nIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwKTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuMDYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuZm9vdGVyI2Zvb3RlciAuaGVhZGluZzo6YmVmb3JlLCBmb290ZXIjZm9vdGVyIC5oZWFkaW5nOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5mb290ZXIjZm9vdGVyIC5oZWFkaW5nIGEge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbn1cbmZvb3RlciNmb290ZXIgY29tcGFueS1kZXRhaWxzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVubTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgZ3JpZC1nYXA6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgdmFyKC0tZ2FwKTtcbn1cbmZvb3RlciNmb290ZXIgY29tcGFueS1kZXRhaWxzIHNtYWxsLFxuZm9vdGVyI2Zvb3RlciBjb21wYW55LWRldGFpbHMgLnNtYWxsIHtcbiAgZm9udC1zaXplOiAwLjYyNWVtO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuZm9vdGVyI2Zvb3RlciBjb21wYW55LWRldGFpbHMgc21hbGwgYnIsXG5mb290ZXIjZm9vdGVyIGNvbXBhbnktZGV0YWlscyAuc21hbGwgYnIge1xuICBkaXNwbGF5OiBub25lO1xufVxuZm9vdGVyI2Zvb3RlciAuYmFzZSB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjEpO1xuICBncmlkLWNvbHVtbjogMS8tMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5mb290ZXIjZm9vdGVyIC5iYXNlIGEubG9nbyB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDI0MHB4O1xuICBwb3NpdGlvbjogaW5pdGlhbDtcbn1cbmZvb3RlciNmb290ZXIgLmJhc2UgYS5sb2dvIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSB7XG4gIGZvb3RlciNmb290ZXIgLmJhc2UgYS5sb2dvOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb290ZXItYnItY29sb3VyLCAjZGYzMDM1KTtcbiAgICBoZWlnaHQ6IDNweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAtMS41cHg7XG4gICAgbGVmdDogMDtcbiAgfVxufVxuZm9vdGVyI2Zvb3RlciAuYmFzZSBhLnllbGxvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArIHZhcigtLWdhcCkpO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIHJpZ2h0OiAwO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbmZvb3RlciNmb290ZXIgLmJhc2UgYS55ZWxsbyBzcGFuIHtcbiAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIGZvb3RlciNmb290ZXIgLmJhc2UgYS55ZWxsbzpob3ZlciB7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG4gIGZvb3RlciNmb290ZXIgLmJhc2UgYS55ZWxsbzpob3ZlciBzcGFuIHtcbiAgICBjb2xvcjogI0ZGQ0IwODtcbiAgfVxufVxuZm9vdGVyI2Zvb3RlciAuYmFzZSBhZG1pbi1saW5rcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyB2YXIoLS1nYXApKTtcbiAgbGVmdDogMDtcbn1cbmZvb3RlciNmb290ZXIgLmJhc2UgYWRtaW4tbGlua3MgYSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxuZm9vdGVyI2Zvb3RlciAuYmFzZTpoYXMoLmNlcC1sb2dvKSB7XG4gIC0tbG9nby1zcGFjZXI6IDIwMHB4O1xufVxuZm9vdGVyI2Zvb3RlciAuYmFzZTpoYXMoLmNlcC1sb2dvKSAuY2VwLWxvZ28ge1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgxKSBpbnZlcnQoMSk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTgxcHgpIHtcbiAgZm9vdGVyI2Zvb3RlciAuYmFzZTpoYXMoLmNlcC1sb2dvKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1sb2dvLXNwYWNlcik7XG4gIH1cbiAgZm9vdGVyI2Zvb3RlciAuYmFzZTpoYXMoLmNlcC1sb2dvKSAuY2VwLWxvZ28ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIGNhbGModmFyKC0tZ2FwKSAqIDIpKTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IGNhbGModmFyKC0tbG9nby1zcGFjZXIpICogLTEpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgZm9vdGVyI2Zvb3RlciAuYmFzZTpoYXMoLmNlcC1sb2dvKSAuY2VwLWxvZ28ge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWd1dHRlcjIpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTQwMHB4KSB7XG4gIGZvb3RlciNmb290ZXIgPiBuYXYgdWw6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIGZvb3RlciNmb290ZXIgY29tcGFueS1kZXRhaWxzIHNtYWxsIGJyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgZm9vdGVyI2Zvb3RlciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgZm9vdGVyI2Zvb3RlciA+ICoge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIGZvb3RlciNmb290ZXIgPiBuYXYge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgZm9vdGVyI2Zvb3RlciA+IG5hdiB1bDpsYXN0LW9mLXR5cGUge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdW5zZXQ7XG4gIH1cbiAgZm9vdGVyI2Zvb3RlciAuYmFzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIGZvb3RlciNmb290ZXIgLmJhc2UgYS5sb2dvIHtcbiAgICBvcmRlcjogMTtcbiAgICB3aWR0aDogMTYwcHg7XG4gIH1cbiAgZm9vdGVyI2Zvb3RlciAuYmFzZSBhLmxvZ28gaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgZm9vdGVyI2Zvb3RlciAuYmFzZSBzb2NpYWwtbWVkaWEge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjAtKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZXIwKTtcbiAgfVxuICBmb290ZXIjZm9vdGVyIC5iYXNlIGFkbWluLWxpbmtzIHtcbiAgICBvcmRlcjogMztcbiAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXApO1xuICB9XG59XG5cbi5jbC1jb25zZW50LXNldHRpbmdzIHtcbiAgbGVmdDogdW5zZXQgIWltcG9ydGFudDtcbiAgcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBib3gtc2hhZG93OiB1bnNldCAhaW1wb3J0YW50O1xuICBib3R0b206IGNhbGModmFyKC0tZ3V0dGVyMykgKiAyLjc1KSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gIC5jbC1jb25zZW50LXNldHRpbmdzIHtcbiAgICBib3R0b206IHZhcigtLWd1dHRlcjUpICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuYm9keSA+IGJhY2tncm91bmQtaW1hZ2Uge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHZhcigtLXBvc2l0aW9uLCBjZW50ZXIgMzMlKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtLWJhY2tncm91bmQtdGhlbWUtb25lOiAjMTMxZjZiO1xuICAtLWJhY2tncm91bmQtdGhlbWUtdHdvOiAjMjkyYjY4O1xufVxuYm9keSA+IGJhY2tncm91bmQtaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG9iamVjdC1wb3NpdGlvbjogdmFyKC0taW1hZ2UtcG9zaXRpb24sIGNlbnRlciAzMy4zMyUpO1xuICB3aWR0aDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2Utd2lkdGgtc2l6ZSwgMTAwJSkpO1xuICBoZWlnaHQ6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7XG4gIG1heC13aWR0aDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2Utd2lkdGgtc2l6ZSwgMTAwJSkpO1xuICBtYXgtaGVpZ2h0OiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG5ib2R5ID4gYmFja2dyb3VuZC1pbWFnZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3BhY2l0eTogMC43O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB2YXIoLS1iYWNrZ3JvdW5kLXRoZW1lLW9uZSksIHZhcigtLWJhY2tncm91bmQtdGhlbWUtdHdvKSk7XG59XG5ib2R5ID4gYmFja2dyb3VuZC1pbWFnZS5ub25lOjphZnRlciB7XG4gIGNvbnRlbnQ6IGluaXRpYWw7XG59XG5ib2R5ID4gYmFja2dyb3VuZC1pbWFnZS5yZWQge1xuICAtLWJhY2tncm91bmQtdGhlbWUtb25lOiAjZGYzMDM1O1xuICAtLWJhY2tncm91bmQtdGhlbWUtdHdvOiAjZGYzMDM1O1xufVxuYm9keSA+IGJhY2tncm91bmQtaW1hZ2UuYmxhY2sge1xuICAtLWJhY2tncm91bmQtdGhlbWUtb25lOiAjMWUxYzFjO1xuICAtLWJhY2tncm91bmQtdGhlbWUtdHdvOiAjMWUxYzFjO1xufVxuYm9keSA+IGJhY2tncm91bmQtaW1hZ2UudGlsZSB7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogYXV0bztcbn1cbmJvZHkgPiBiYWNrZ3JvdW5kLWltYWdlLnRpbGUgaW1nIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmJvZHkgPiBiYWNrZ3JvdW5kLWltYWdlOm5vdCgudGlsZSkge1xuICBtYXgtaGVpZ2h0OiAxMDB2aDtcbn1cbmJvZHkgPiBiYWNrZ3JvdW5kLWltYWdlLmJlaGluZC1oZWFkZXI6OmFmdGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIG1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgYmxhY2sgMjAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbn1cblxuYm9keS5tb2JpbGUgPiBiYWNrZ3JvdW5kLWltYWdlLCBib2R5Lm1vYmlsZSA+IGJhY2tncm91bmQtdmlkZW8ge1xuICBtYXgtaGVpZ2h0OiBpbml0aWFsO1xufVxuXG5ib2R5ID4gYmFja2dyb3VuZC12aWRlbyB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdmFyKC0tcG9zaXRpb24sIGNlbnRlciAzMyUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5ib2R5ID4gYmFja2dyb3VuZC12aWRlbyBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiB2YXIoLS1pbWFnZS1wb3NpdGlvbiwgY2VudGVyIDMzLjMzJSk7XG4gIHdpZHRoOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG4gIGhlaWdodDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG4gIG1heC1oZWlnaHQ6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cbmJvZHkgPiBiYWNrZ3JvdW5kLXZpZGVvIHZpZGVvIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG9iamVjdC1wb3NpdGlvbjogdmFyKC0taW1hZ2UtcG9zaXRpb24sIGNlbnRlciAzMy4zMyUpO1xuICB3aWR0aDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2Utd2lkdGgtc2l6ZSwgMTAwJSkpO1xuICBoZWlnaHQ6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7XG4gIG1heC13aWR0aDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2Utd2lkdGgtc2l6ZSwgMTAwJSkpO1xuICBtYXgtaGVpZ2h0OiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG5ib2R5ID4gYmFja2dyb3VuZC12aWRlbzo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdmFyKC0tYmFja2dyb3VuZC10aGVtZS1vbmUsIHRyYW5zcGFyZW50KSwgdmFyKC0tYmFja2dyb3VuZC10aGVtZS10d28sIGJsYWNrKSk7XG59XG5cbiNicmVhZGNydW1icy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCB0b3AgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG4jYnJlYWRjcnVtYnMtYmFyIHVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiBjYWxjKHZhcigtLWdhcCkgKiAtMSk7XG4gIHdpZHRoOiAxMDAlO1xufVxuI2JyZWFkY3J1bWJzLWJhciB1bCBsaSB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiNicmVhZGNydW1icy1iYXIgdWwgbGkgKyBsaSB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWdhcCkgKiAtMSk7XG59XG4jYnJlYWRjcnVtYnMtYmFyIC5saW5rIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxLjEyNWVtO1xuICBwYWRkaW5nOiB2YXIoLS1nYXApO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbiNicmVhZGNydW1icy1iYXIgLmxpbmsgc3ZnIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgd2lkdGg6IDAuN2VtO1xuICBoZWlnaHQ6IDAuN2VtO1xuICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICNicmVhZGNydW1icy1iYXIgLmxpbms6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICB9XG59XG4jYnJlYWRjcnVtYnMtYmFyIC5saW5rLmN1cnJlbnQge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbn1cbiNicmVhZGNydW1icy1iYXIgLmxpbmsuY3VycmVudDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG5ib2R5Lm1vYmlsZSA+ICNicmVhZGNydW1icy1iYXIge1xuICBtYXgtaGVpZ2h0OiBpbml0aWFsO1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jYW5jaG9ycy1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIHRvcCB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiAxMDB2dztcbn1cbiNhbmNob3JzLWJhciAuY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE2ODBweCkge1xuICA6cm9vdDpub3QoW2RhdGEtYnJvd3Nlci1mZWF0dXJlKj10b3VjaF0pICNhbmNob3JzLWJhciB7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1ndXR0ZXIyLSk7XG4gIH1cbiAgOnJvb3Q6bm90KFtkYXRhLWJyb3dzZXItZmVhdHVyZSo9dG91Y2hdKSAjYW5jaG9ycy1iYXIgLmNvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWd1dHRlcjEpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xuICB9XG59XG5cbjpyb290W2RhdGEtYnJvd3Nlci1mZWF0dXJlKj10b3VjaF0gI2FuY2hvcnMtYmFyIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLWd1dHRlcjIpICsgY2FsYyh2YXIoLS1nYXApICogMC41KSk7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1ndXR0ZXIxLSk7XG59XG46cm9vdFtkYXRhLWJyb3dzZXItZmVhdHVyZSo9dG91Y2hdICNhbmNob3JzLWJhcjo6YmVmb3JlIHtcbiAgY29udGVudDogaW5pdGlhbDtcbn1cbjpyb290W2RhdGEtYnJvd3Nlci1mZWF0dXJlKj10b3VjaF0gI2FuY2hvcnMtYmFyIC5jb250YWluZXIge1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLWd1dHRlcjEpO1xuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbn1cblxuI2FuY2hvcnMtYmFyOjpiZWZvcmUge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbn1cbiNhbmNob3JzLWJhciBhIHtcbiAgZ3JpZC1yb3c6IDE7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBjb2xvcjogIzEzMWY2Yjtcbn1cbiNhbmNob3JzLWJhciBhICsgYSB7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1ndXR0ZXIxKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICNhbmNob3JzLWJhciBhOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbiAgfVxufVxuI2FuY2hvcnMtYmFyIGE6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSAwLjJzO1xufVxuI2FuY2hvcnMtYmFyIGEuY3VycmVudCB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xufVxuI2FuY2hvcnMtYmFyIGEuY3VycmVudDo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlWSgxKTtcbn1cblxuc2lkZS1iYXIgPiBkaXYgPiAqIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIG9yZGVyOiAzO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikpO1xufVxuc2lkZS1iYXIgPiBkaXYgPiAqOm5vdCgud2hpdGUpIHtcbiAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gIC0taGVhZGluZy1jb2xvdXI6IHdoaXRlO1xufVxuc2lkZS1iYXIgPiBkaXYgc2VydmljZS1jZW50cmUtZmluZGVyIHtcbiAgb3JkZXI6IDE7XG59XG5zaWRlLWJhciA+IGRpdiBzZXJ2aWNlLWNlbnRyZS1maW5kZXIgfiAjZ3JhZGVzLXNpZGViYXItbGlzdCB7XG4gIG9yZGVyOiAyO1xufVxuc2lkZS1iYXIgPiBkaXYgLmhlYWRpbmcge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ndXR0ZXIwKTtcbiAgZm9udC1zaXplOiAxLjU2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cbnNpZGUtYmFyID4gZGl2ID4gZGl2LnNpZGViYXItbG9nb3Mge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDJyZW07XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuc2lkZS1iYXIgPiBkaXYgPiBkaXYuc2lkZWJhci1sb2dvcyBpbWcge1xuICBtYXgtd2lkdGg6IDUwJTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbnNpZGUtYmFyID4gZGl2ID4gZGl2LnNpZGViYXItbG9nb3Mgc3ZnIHtcbiAgbWF4LXdpZHRoOiAxNTBweDtcbiAgbWF4LWhlaWdodDogMTAwcHg7XG59XG5zaWRlLWJhciAjcG93ZGVyLXR1YnMsXG5zaWRlLWJhciAjZ3JlZW5lci1mdXR1cmUsXG5zaWRlLWJhciAjbGliZXJ0eS1wb3dkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5zaWRlLWJhciAjcG93ZGVyLXR1YnMgaDMgc3BhbixcbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSBoMyBzcGFuLFxuc2lkZS1iYXIgI2xpYmVydHktcG93ZGVyIGgzIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbnNpZGUtYmFyICNwb3dkZXItdHVicyBkaXYsXG5zaWRlLWJhciAjZ3JlZW5lci1mdXR1cmUgZGl2LFxuc2lkZS1iYXIgI2xpYmVydHktcG93ZGVyIGRpdiB7XG4gIHotaW5kZXg6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbnNpZGUtYmFyICNwb3dkZXItdHVicyAuYmFja2dyb3VuZCxcbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSAuYmFja2dyb3VuZCxcbnNpZGUtYmFyICNsaWJlcnR5LXBvd2RlciAuYmFja2dyb3VuZCB7XG4gIG9wYWNpdHk6IDAuMjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IDEwMCUgMCU7XG59XG5zaWRlLWJhciAjcG93ZGVyLXR1YnMgLmltYWdlIGltZyxcbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSAuaW1hZ2UgaW1nLFxuc2lkZS1iYXIgI2xpYmVydHktcG93ZGVyIC5pbWFnZSBpbWcge1xuICBvYmplY3QtZml0OiBjb250YWluO1xufVxuc2lkZS1iYXIgI2xpYmVydHktcG93ZGVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG59XG5zaWRlLWJhciAjbGliZXJ0eS1wb3dkZXIgLmltYWdlIHtcbiAgaGVpZ2h0OiA2MHB4O1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWdhcCkgKiAyKTtcbn1cbnNpZGUtYmFyICNsaWJlcnR5LXBvd2RlciAuaW1hZ2UgaW1nIHtcbiAgd2lkdGg6IGF1dG87XG59XG5zaWRlLWJhciAjcG93ZGVyLXR1YnMge1xuICBiYWNrZ3JvdW5kOiAjMzMzMjM2O1xufVxuc2lkZS1iYXIgI3Bvd2Rlci10dWJzIGgzIHtcbiAgcGFkZGluZy1ib3R0b206IDIyNXB4O1xuICBmb250LXNpemU6IDIycHg7XG59XG5zaWRlLWJhciAjcG93ZGVyLXR1YnMgaDMgc3BhbiB7XG4gIGNvbG9yOiAjZGYzMDM1O1xufVxuc2lkZS1iYXIgI3Bvd2Rlci10dWJzIC5iYWNrZ3JvdW5kIHtcbiAgb3BhY2l0eTogMTtcbn1cbnNpZGUtYmFyICNwb3dkZXItdHVicyAuaW1hZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgaGVpZ2h0OiAyNTBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5zaWRlLWJhciAjcG93ZGVyLXR1YnMgLmltYWdlIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMjBweCkge1xuICBzaWRlLWJhciAjcG93ZGVyLXR1YnMgaDMge1xuICAgIHBhZGRpbmctYm90dG9tOiAzMDBweDtcbiAgfVxuICBzaWRlLWJhciAjcG93ZGVyLXR1YnMgLmltYWdlIHtcbiAgICBoZWlnaHQ6IDM1MHB4O1xuICB9XG59XG5zaWRlLWJhciAjZ3JlZW5lci1mdXR1cmUge1xuICAtLWdyZWVuZXItZ3JlZW46ICM0ZWNiM2Q7XG59XG5zaWRlLWJhciAjZ3JlZW5lci1mdXR1cmUgaDMge1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWdhcCkgKiAyKTtcbn1cbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSBoMyBzcGFuIHtcbiAgY29sb3I6IHZhcigtLWdyZWVuZXItZ3JlZW4pO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSAuaW1hZ2Uge1xuICBoZWlnaHQ6IDkwcHg7XG59XG5zaWRlLWJhciAjZ3JlZW5lci1mdXR1cmUgLmltYWdlIGltZyB7XG4gIHdpZHRoOiBhdXRvO1xufVxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIHVsIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwKTtcbn1cbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSB1bCBsaSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLWdhcCkgKiAyKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xufVxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIHVsIGxpOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuZXItZ3JlZW4pO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGhlaWdodDogMjBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA0cHg7XG4gIGxlZnQ6IDA7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5zaWRlLWJhciAjZ3JlZW5lci1mdXR1cmUgdWwgbGk6YWZ0ZXIge1xuICBoZWlnaHQ6IDEycHg7XG4gIHdpZHRoOiA2cHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB3aGl0ZTtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgd2hpdGU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogN3B4O1xuICB0b3A6IDZweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMjBweCkge1xuICBzaWRlLWJhciAjZ3JlZW5lci1mdXR1cmUgdWwge1xuICAgIGNvbHVtbi1jb3VudDogMjtcbiAgfVxufVxuXG4uc2lkZWJhci1ibG9ja1xcOmxvY2FsLWN0YSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NzY3Njc7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTFyZW0gYm90dG9tO1xuICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMjIwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tZ3V0dGVyMCk7XG59XG4uc2lkZWJhci1ibG9ja1xcOmxvY2FsLWN0YSBwIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICB0ZXh0LXdyYXA6IHByZXR0eTtcbn1cbkBtZWRpYSAod2lkdGggPiAxNDAwcHgpIHtcbiAgLnNpZGViYXItYmxvY2tcXDpsb2NhbC1jdGEge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9hc3NldHMvdXBsb2Fkcy9pbWFnZXMvMjBtcGgtc2lnbi5wbmdcIik7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDE2MHB4O1xuICB9XG59XG5cbi5zaWRlYmFyLWJsb2NrXFw6aXNvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc0YmYwMztcbiAgYm9yZGVyOiBpbml0aWFsO1xuICBwYWRkaW5nOiAwO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnNpZGViYXItYmxvY2tcXDppc28gaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5zb2NpYWwtbWVkaWEge1xuICAtLWljb24tY29sb3VyOiAjRkZGRkZGO1xuICAtLWljb24tc2l6ZTogMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbnNvY2lhbC1tZWRpYSBhIHtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWdhcCk7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbn1cbnNvY2lhbC1tZWRpYSBhIHN2ZyB7XG4gIHdpZHRoOiB2YXIoLS1pY29uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLWljb24tc2l6ZSk7XG4gIGZpbGw6IHZhcigtLWljb24tY29sb3VyKTtcbiAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBzb2NpYWwtbWVkaWEgYTpob3Zlci5mYWNlYm9vayB7XG4gICAgLS1pY29uLWNvbG91cjogIzE4NzdmMjtcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci50d2l0dGVyIHtcbiAgICAtLWljb24tY29sb3VyOiAjMWRhMWYyO1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLmdvb2dsZSB7XG4gICAgLS1pY29uLWNvbG91cjogIzQyODVmNDtcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci55b3V0dWJlIHtcbiAgICAtLWljb24tY29sb3VyOiAjZmYwMDAwO1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLmxpbmtlZGluIHtcbiAgICAtLWljb24tY29sb3VyOiAjMDA3YmI1O1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLmluc3RhZ3JhbSB7XG4gICAgLS1pY29uLWNvbG91cjogI2MzMmFhMztcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci5waW50ZXJlc3Qge1xuICAgIC0taWNvbi1jb2xvdXI6ICNiZDA4MWM7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIuZGFpbHltb3Rpb24ge1xuICAgIC0taWNvbi1jb2xvdXI6ICMwMDY2REM7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIuc25hcGNoYXQge1xuICAgIC0taWNvbi1jb2xvdXI6ICNmZmZjMDA7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIuZmxpY2tyIHtcbiAgICAtLWljb24tY29sb3VyOiAjZjQwMDgzO1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLnZpbWVvIHtcbiAgICAtLWljb24tY29sb3VyOiAjMWFiN2VhO1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLnRodW1ibGVyIHtcbiAgICAtLWljb24tY29sb3VyOiAjMzU0NjVkO1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLnJlZGRpdCB7XG4gICAgLS1pY29uLWNvbG91cjogI2ZmNDUwMDtcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci53aGF0c2FwcCB7XG4gICAgLS1pY29uLWNvbG91cjogIzI1ZDM2NjtcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci5za3lwZSB7XG4gICAgLS1pY29uLWNvbG91cjogIzAwYWZmMDtcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci5kaXNjb3JkIHtcbiAgICAtLWljb24tY29sb3VyOiAjNzI4OWRhO1xuICB9XG59XG5zb2NpYWwtbWVkaWEgYSBzcGFuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmFydGljbGUge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmFydGljbGUgLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcjEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2Y0ZjRmNDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyID4gKiB7XG4gIG9yZGVyOiAyO1xufVxuLmFydGljbGUgLmNvbnRhaW5lciAuaGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogMS41NjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuLmFydGljbGUgLmNvbnRhaW5lciAuc3ViaGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogMS4wNjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGNvbG9yOiB2YXIoLS1hcnRpY2xlLXN1YmhlYWRpbmctZm9udC1jb2xvdXIsICM2YTZhNmEpO1xuICBtYXgtd2lkdGg6IDc1Y2g7XG4gIG1hcmdpbi1ib3R0b206IGF1dG87XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5zdWJoZWFkaW5nICsgLnRpbWVzdGFtcCB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5pbnRyb2R1Y3Rpb24ge1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIG1heC13aWR0aDogNzVjaDtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgLmJ1dHRvbiB7XG4gIGp1c3RpZnktc2VsZjogZmxleC1zdGFydDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbWFyZ2luLXRvcDogYXV0bztcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgdGltZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDAuODc1ZW07XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5hdXRob3Ige1xuICAtLXBob3RvLXNpemU6IDQwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5hdXRob3IgLm5hbWUge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY29sb3I6ICMxMzFmNmI7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgb3JkZXI6IDE7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLXBob3RvLXNpemUpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmFydGljbGUgLmNvbnRhaW5lciAuYXV0aG9yIC5uYW1lIGVtIHtcbiAgZm9udC1zaXplOiAwLjc1ZW07XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLmFydGljbGUgLmNvbnRhaW5lciAuYXV0aG9yIC50aW1lc3RhbXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG9yZGVyOiAyO1xufVxuLmFydGljbGUgLmNvbnRhaW5lciAuYXV0aG9yIC50aW1lc3RhbXAsXG4uYXJ0aWNsZSAuY29udGFpbmVyIC5hdXRob3IgLnRpbWVzdGFtcCB+IC5uYW1lIHtcbiAgbWluLWhlaWdodDogY2FsYyh2YXIoLS1waG90by1zaXplKSAvIDIpO1xufVxuLmFydGljbGUgLmNvbnRhaW5lciAuYXV0aG9yIC5pbWFnZSB7XG4gIHdpZHRoOiB2YXIoLS1waG90by1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1waG90by1zaXplKTtcbiAgdG9wOiBjYWxjKDUwJSAtIHZhcigtLXBob3RvLXNpemUpIC8gMik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xufVxuLmFydGljbGUgLmNvbnRhaW5lciAuYXV0aG9yIC5pbWFnZSB+ICoge1xuICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tcGhvdG8tc2l6ZSkgKyB2YXIoLS1nYXApKTtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgPiAuaW1hZ2Uge1xuICBvcmRlcjogMTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ3V0dGVyMSk7XG4gIGhlaWdodDogdmFyKC0taW1hZ2UtaGVpZ2h0LCAxODBweCk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1ndXR0ZXIzKSk7XG4gIGxlZnQ6IHZhcigtLWd1dHRlcjEtKTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ3V0dGVyMS0pO1xufVxuLmFydGljbGUuYmctYmx1ZSAuY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEzMWY2YjtcbiAgLS1hcnRpY2xlLXN1YmhlYWRpbmctZm9udC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taGVhZGluZy1jb2xvdXI6ICNGRkZGRkY7XG59XG4uYXJ0aWNsZS5iZy1ibHVlIC5jb250YWluZXIgLnRleHQge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi5hcnRpY2xlLmJnLXJlZCAuY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmMzAzNTtcbiAgLS1hcnRpY2xlLXN1YmhlYWRpbmctZm9udC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taGVhZGluZy1jb2xvdXI6ICNGRkZGRkY7XG59XG4uYXJ0aWNsZS5iZy1yZWQgLmNvbnRhaW5lciAudGV4dCB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLmFydGljbGUuYmctZ3JleSAuY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbiAgLS1oZWFkaW5nLWNvbG91cjogdmFyKC0tc2Vjb25kYXJ5KTtcbn1cbi5hcnRpY2xlLmJnLXllbGxvdyAuY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjRkYjtcbn1cbi5hcnRpY2xlLmJnLW9yYW5nZSAuY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmEwMDtcbiAgLS1hcnRpY2xlLXN1YmhlYWRpbmctZm9udC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taGVhZGluZy1jb2xvdXI6ICNGRkZGRkY7XG59XG4uYXJ0aWNsZS5iZy1vcmFuZ2UgLmNvbnRhaW5lciAudGV4dCB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLmFydGljbGUuYmctZ3JlZW4gLmNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MGJjMDg7XG4gIC0tYXJ0aWNsZS1zdWJoZWFkaW5nLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWhlYWRpbmctY29sb3VyOiAjRkZGRkZGO1xufVxuLmFydGljbGUuYmctZ3JlZW4gLmNvbnRhaW5lciAudGV4dCB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLmFydGljbGUuYmctYmxhY2sgLmNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTFjMWM7XG59XG4uYXJ0aWNsZS5iZy1wcmltYXJ5IC5jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcbiAgLS1hcnRpY2xlLXN1YmhlYWRpbmctZm9udC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taGVhZGluZy1jb2xvdXI6ICNGRkZGRkY7XG59XG4uYXJ0aWNsZS5iZy1zZWNvbmRhcnkgLmNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeSk7XG4gIC0tYXJ0aWNsZS1zdWJoZWFkaW5nLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWhlYWRpbmctY29sb3VyOiAjRkZGRkZGO1xufVxuLmNvbnRlbnQtYmxvY2suYmxhY2sgYXJ0aWNsZS1saXN0IC5hcnRpY2xlIC5jb250YWluZXIge1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5jb250ZW50LWJsb2NrLmJsYWNrIGFydGljbGUtbGlzdCAuYXJ0aWNsZSAuY29udGFpbmVyIC5idXR0b24ge1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogIzFlMWMxYztcbiAgLS1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogIzFlMWMxYztcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG59XG5cbi5hcnRpY2xlOmhhcyhkaXYuY29udGFpbmVyIGJ1dHRvbi1jb250YWluZXIgLmJ1dHRvbjpvbmx5LWNoaWxkKSBkaXYuY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAuYXJ0aWNsZTpoYXMoZGl2LmNvbnRhaW5lciBidXR0b24tY29udGFpbmVyIC5idXR0b246b25seS1jaGlsZCkgZGl2LmNvbnRhaW5lcjpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgfVxufVxuLmFydGljbGU6aGFzKGRpdi5jb250YWluZXIgYnV0dG9uLWNvbnRhaW5lciAuYnV0dG9uOm9ubHktY2hpbGQpIGJ1dHRvbi1jb250YWluZXIge1xuICBwb3NpdGlvbjogaW5pdGlhbDtcbn1cbi5hcnRpY2xlOmhhcyhkaXYuY29udGFpbmVyIGJ1dHRvbi1jb250YWluZXIgLmJ1dHRvbjpvbmx5LWNoaWxkKSBidXR0b24tY29udGFpbmVyIC5idXR0b246b25seS1jaGlsZCB7XG4gIHBvc2l0aW9uOiBpbml0aWFsO1xufVxuLmFydGljbGU6aGFzKGRpdi5jb250YWluZXIgYnV0dG9uLWNvbnRhaW5lciAuYnV0dG9uOm9ubHktY2hpbGQpIGJ1dHRvbi1jb250YWluZXIgLmJ1dHRvbjpvbmx5LWNoaWxkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAyO1xufVxuLmFydGljbGUgYS5jb250YWluZXIge1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAuYXJ0aWNsZSBhLmNvbnRhaW5lcjpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgfVxufVxuLmFydGljbGUgYnV0dG9uLWNvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWd1dHRlcjEpO1xufVxuLmFydGljbGUgYnV0dG9uLWNvbnRhaW5lciAuYnV0dG9uIHtcbiAgZm9udC1zaXplOiBzbWFsbDtcbn1cbi5hcnRpY2xlW2RhdGEtY29udGFpbnMqPXRpdGxlXVtkYXRhLWNvbnRhaW5zKj10aW1lc3RhbXBdW2RhdGEtY29udGFpbnMqPWF1dGhvcl1bZGF0YS1jb250YWlucyo9YnV0dG9uXVtkYXRhLWNvbnRhaW5zKj1pbWFnZV06bm90KFtkYXRhLWNvbnRhaW5zKj1zdWJoZWFkaW5nXSk6bm90KFtkYXRhLWNvbnRhaW5zKj1pbnRyb2R1Y3Rpb25dKSAuY29udGFpbmVyIC50aW1lc3RhbXAge1xuICBtYXJnaW4tdG9wOiBhdXRvO1xufVxuXG4uYXJ0aWNsZVtkYXRhLWNvbnRhaW5zKj10aXRsZV1bZGF0YS1jb250YWlucyo9aW1hZ2VdOm5vdChbZGF0YS1jb250YWlucyo9dGltZXN0YW1wXSk6bm90KFtkYXRhLWNvbnRhaW5zKj1hdXRob3JdKTpub3QoW2RhdGEtY29udGFpbnMqPWJ1dHRvbl0pOm5vdChbZGF0YS1jb250YWlucyo9c3ViaGVhZGluZ10pOm5vdChbZGF0YS1jb250YWlucyo9aW50cm9kdWN0aW9uXSkgLmNvbnRhaW5lciAuaGVhZGluZyB7XG4gIG1hcmdpbi1ib3R0b206IGF1dG87XG4gIGZvbnQtc2l6ZTogMS41NjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG4uYXJ0aWNsZVtkYXRhLWNvbnRhaW5zKj10aXRsZV1bZGF0YS1jb250YWlucyo9aW1hZ2VdOm5vdChbZGF0YS1jb250YWlucyo9dGltZXN0YW1wXSk6bm90KFtkYXRhLWNvbnRhaW5zKj1hdXRob3JdKTpub3QoW2RhdGEtY29udGFpbnMqPWJ1dHRvbl0pOm5vdChbZGF0YS1jb250YWlucyo9c3ViaGVhZGluZ10pOm5vdChbZGF0YS1jb250YWlucyo9aW50cm9kdWN0aW9uXSkgLmNvbnRhaW5lciA+IC5pbWFnZSB7XG4gIC0taW1hZ2UtaGVpZ2h0OiAxMzBweDtcbn1cblxuLmFydGljbGVbZGF0YS1jb250YWlucyo9c2VydmljZUNlbnRyZXNdIC5jb250YWluZXIgZGl2IHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwKTtcbn1cbi5hcnRpY2xlW2RhdGEtY29udGFpbnMqPXNlcnZpY2VDZW50cmVzXSAuY29udGFpbmVyIGg0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmFydGljbGUubGF5b3V0LXRleHQtaW1hZ2Utc2lkZS1ieS1zaWRlOm5vdChbY2xhc3M9YmctXSkgLmNvbnRhaW5lcixcbi5hcnRpY2xlLmxheW91dC10ZXh0LWltYWdlLXNpZGUtYnktc2lkZTpub3QoW2NsYXNzPWJnLV0pIC5jb250ZW50IHtcbiAgcGFkZGluZzogMDtcbn1cblxudGFnLWxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1nYXApO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiA1cHg7XG4gIGZvbnQtc2l6ZTogMS41NjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG50YWctbGluZSBzcGFuIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjVlbTtcbiAgY29sb3I6IHdoaXRlO1xuICBncmlkLXJvdzogMTtcbiAgbGluZS1oZWlnaHQ6IDI7XG59XG50YWctbGluZSBzdmcge1xuICBjb2xvcjogdmFyKC0tdGFnbGluZS1pY29uLWNvbG91ciwgI2RmMzAzNSk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcCk7XG59XG5cbnNpZGUtYmFyIGZvcm0gLmZyZWVmb3JtLWZvcm0tc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MGJjMDg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDMwcHgpO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpIHZhcigtLWdhcCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIG1hcmdpbjogMCAtMTVweCB2YXIoLS1nYXApO1xufVxuc2lkZS1iYXIgZm9ybSAuc3VibWl0LXJvdyB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG59XG5cbmZvcm0gc2VsZWN0IHtcbiAgLS1mb250LWNvbG91cjogIzZhNmE2YTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI0ZGRkZGRjtcbiAgLS1ib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICAtLWJvcmRlci1jb2xvdXI6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLS1ib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgLS1wYWRkaW5nOiB2YXIoLS1nYXApIHZhcigtLWdhcCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXIpO1xuICBwYWRkaW5nOiB2YXIoLS1wYWRkaW5nKTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSB2YXIoLS1nYXApKSBjZW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTcuNCcgaGVpZ2h0PScxMC4xJyUzRSUzQ3BhdGggZD0nTTE2LjcuN2wtOCA4LTgtOCcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMxRTFDMUMnIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuZm9ybSBzZWxlY3Q6OnBsYWNlaG9sZGVyIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5mb3JtIHNlbGVjdDpmb2N1cyB7XG4gIG91dGxpbmUtY29sb3I6ICMxMzFmNmI7XG59XG5mb3JtIHNlbGVjdDpmb2N1czo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5mb3JtIHNlbGVjdC5hdXRvY29tcGxldGU6bm90KFt2YWx1ZT1cIlwiXSk6Zm9jdXMge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbmZvcm0gaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPXJhZGlvXSkge1xuICAtLWZvbnQtY29sb3VyOiAjNmE2YTZhO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIC0tYm9yZGVyLWNvbG91cjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtLWJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICAtLXBhZGRpbmc6IHZhcigtLWdhcCkgdmFyKC0tZ2FwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXI6IHZhcigtLWJvcmRlcik7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmcpO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuZm9ybSBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9cmFkaW9dKTo6cGxhY2Vob2xkZXIge1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbmZvcm0gaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPXJhZGlvXSk6Zm9jdXMge1xuICBvdXRsaW5lLWNvbG9yOiAjMTMxZjZiO1xufVxuZm9ybSBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9cmFkaW9dKTpmb2N1czo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5mb3JtIGlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1yYWRpb10pLmF1dG9jb21wbGV0ZTpub3QoW3ZhbHVlPVwiXCJdKTpmb2N1cyB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuZm9ybSB0ZXh0YXJlYSB7XG4gIC0tZm9udC1jb2xvdXI6ICM2YTZhNmE7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0tYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgLS1ib3JkZXItY29sb3VyOiB2YXIoLS1mb250LWNvbG91cik7XG4gIC0tYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIC0tcGFkZGluZzogdmFyKC0tZ2FwKSB2YXIoLS1nYXApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyKTtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5mb3JtIHRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuZm9ybSB0ZXh0YXJlYTpmb2N1cyB7XG4gIG91dGxpbmUtY29sb3I6ICMxMzFmNmI7XG59XG5mb3JtIHRleHRhcmVhOmZvY3VzOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbmZvcm0gdGV4dGFyZWEuYXV0b2NvbXBsZXRlOm5vdChbdmFsdWU9XCJcIl0pOmZvY3VzIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG5mb3JtIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGwsXG5mb3JtIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG5mb3JtIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG5mb3JtIHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGwsXG5mb3JtIHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG5mb3JtIHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMge1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdmFyKC0tZm9udC1jb2xvdXIsIGluaGVyaXQpO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwcHggMTAwMHB4IHZhcigtLWJhY2tncm91bmQtY29sb3VyLCB3aGl0ZSkgaW5zZXQ7XG59XG5mb3JtW2RhdGEtZnJlZWZvcm1dIGxhYmVsICsgZGl2IHtcbiAgZm9udC1zaXplOiAwLjc1ZW07XG4gIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5mb3JtW2RhdGEtZnJlZWZvcm1dIC5mcmVlZm9ybS1yb3cgKyAuZnJlZWZvcm0tcm93ID4gZGl2IHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwKTtcbn1cbmZvcm1bZGF0YS1mcmVlZm9ybV0gLmZyZWVmb3JtLWNvbHVtbiB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbnNpZGUtYmFyIGZvcm0gbGFiZWwge1xuICBjb2xvcjogd2hpdGU7XG59XG5zaWRlLWJhciBmb3JtIGxhYmVsIH4gZGl2IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG5mb3JtI2xvZ2luIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbmZvcm0jbG9naW4gPiBsYWJlbCB+IGxhYmVsIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwKTtcbn1cbmZvcm0jbG9naW4gZGl2IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1nYXApO1xuICBmb250LXNpemU6IDAuNzVlbTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIGZvcm0jbG9naW4gZGl2IGE6aG92ZXIge1xuICAgIGNvbG9yOiAjZGYzMDM1O1xuICB9XG59XG5mb3JtI2xvZ2luIGJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG59XG5cbmZvcm0jcmVzZXQtcGFzc3dvcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTMxZjZiO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcjEpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuZm9ybSNyZXNldC1wYXNzd29yZCBidXR0b24ge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1nYXApO1xufVxuXG5yZXF1aXJlZC1ub3RpY2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDVweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdGljZS1jb2xvdXIsICM1MGJjMDgpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNnB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xufVxucmVxdWlyZWQtbm90aWNlIHNwYW4ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1zaXplOiAwLjc1ZW07XG4gIHRvcDogNTAlO1xuICByaWdodDogY2FsYygxMDAlICsgY2FsYyh2YXIoLS1nYXApICogMC41KSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDRweCBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwcHgsIC01MCUpO1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIHJlcXVpcmVkLW5vdGljZTpob3ZlciBzcGFuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC01MCUpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mcmVlZm9ybS1mb3JtLXN1Y2Nlc3MsXG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZyZWVmb3JtLWZvcm0tZXJyb3JzLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZnJlZWZvcm0tZm9ybS1zdWNjZXNzLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZnJlZWZvcm0tZm9ybS1lcnJvcnMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTBiYzA4O1xuICBjb2xvcjogd2hpdGU7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1nYXApICogMC41KSB2YXIoLS1nYXApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ndXR0ZXIxKTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZnJlZWZvcm0tZm9ybS1lcnJvcnMsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mcmVlZm9ybS1mb3JtLWVycm9ycyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZjMwMzU7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMSkgdmFyKC0tZ3V0dGVyMSk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjAxcHgpIHtcbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDM0MHB4LCAxZnIpKTtcbiAgfVxuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3c6Zmlyc3QtY2hpbGQsXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3c6Zmlyc3QtY2hpbGQge1xuICAgIGdyaWQtcm93OiAxO1xuICB9XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5maXJzdC1uYW1lLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cubGFzdC1uYW1lLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZW1haWwsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5jb21wYW55LW5hbWUsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5jb250YWN0LW5vLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cueS1ycWcxODFrLWQsXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZmlyc3QtbmFtZSxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5sYXN0LW5hbWUsXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZW1haWwsXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuY29tcGFueS1uYW1lLFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmNvbnRhY3Qtbm8sXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cueS1ycWcxODFrLWQge1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICB9XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5kZXRhaWxzb2ZlbnF1aXJ5LFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmRldGFpbHNvZmVucXVpcnkge1xuICAgIGdyaWQtY29sdW1uOiAyO1xuICAgIGdyaWQtcm93OiAyL3NwYW4gNTtcbiAgfVxuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuc3VibWl0LXJvdyxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5zdWJtaXQtcm93IHtcbiAgICBncmlkLWNvbHVtbjogMjtcbiAgfVxuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIGJ1dHRvblt0eXBlPXN1Ym1pdF0sXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIGJ1dHRvblt0eXBlPXN1Ym1pdF0ge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICB9XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIGgyLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgaDIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyBoMiBzdmcuZW1haWwsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyBoMiBzdmcuZW1haWwge1xuICB3aWR0aDogMWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgZmlsbDogI2RmMzAzNTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdyxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGdyaWQtY29sdW1uOiAxL3NwYW4gMjtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5kZXRhaWxzb2ZlbnF1aXJ5IC5mcmVlZm9ybS1pbnN0cnVjdGlvbnMsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmRldGFpbHNvZmVucXVpcnkgLmZyZWVmb3JtLWluc3RydWN0aW9ucyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZGV0YWlsc29mZW5xdWlyeSB0ZXh0YXJlYSxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZGV0YWlsc29mZW5xdWlyeSB0ZXh0YXJlYSB7XG4gIGhlaWdodDogMTAwJTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5kZXRhaWxzb2ZlbnF1aXJ5IC5mcmVlZm9ybS1jb2x1bW4sXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmRldGFpbHNvZmVucXVpcnkgLmZyZWVmb3JtLWNvbHVtbiB7XG4gIGhlaWdodDogMTAwJTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdyAuZnJlZWZvcm0tY29sdW1uLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdyAuZnJlZWZvcm0tY29sdW1uIHtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cgLmZyZWVmb3JtLWNvbHVtbiBsYWJlbDpub3QoLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwpLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdyAuZnJlZWZvcm0tY29sdW1uIGxhYmVsOm5vdCguZnJlZWZvcm0taW5wdXQtb25seS1sYWJlbCkge1xuICBkaXNwbGF5OiBub25lO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LnNlcnZpY2UtY2VudHJlLWNvbnRhY3QsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5sZWFkLXN0YXR1cywgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmludGVybmFsLW5vdGVzLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cub3JkZXItdmFsdWUsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LnNlcnZpY2UtY2VudHJlLWNvbnRhY3QsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmxlYWQtc3RhdHVzLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5pbnRlcm5hbC1ub3RlcyxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cub3JkZXItdmFsdWUge1xuICBkaXNwbGF5OiBub25lO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyBsYWJlbC5mcmVlZm9ybS1pbnB1dC1vbmx5LWxhYmVsLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgbGFiZWwuZnJlZWZvcm0taW5wdXQtb25seS1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgZ3JpZC1jb2x1bW46IDE7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIGxhYmVsLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwgaW5wdXQsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyBsYWJlbC5mcmVlZm9ybS1pbnB1dC1vbmx5LWxhYmVsIGlucHV0IHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyBsYWJlbC5mcmVlZm9ybS1pbnB1dC1vbmx5LWxhYmVsIGlucHV0OmNoZWNrZWQsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyBsYWJlbC5mcmVlZm9ybS1pbnB1dC1vbmx5LWxhYmVsIGlucHV0OmNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTBiYzA4O1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyBzZWxlY3QsXG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIHRleHRhcmVhLFxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSksXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyBzZWxlY3QsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyB0ZXh0YXJlYSxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKSB7XG4gIC0tYm9yZGVyLWNvbG91cjogbm9uZTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZyZWVmb3JtLWVycm9ycyxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZyZWVmb3JtLWVycm9ycyB7XG4gIGNvbG9yOiAjZGYzMDM1O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAwLjYyNWVtO1xuICBwYWRkaW5nOiAycHggdmFyKC0tZ2FwKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSAtIDRweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZjMwMzU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDZweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0MDBweCkge1xuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gYnV0dG9uW3R5cGU9c3VibWl0XSxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSBidXR0b25bdHlwZT1zdWJtaXRdIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mcmVlZm9ybS1pbnB1dFtyZXF1aXJlZF06bm90KDp2YWxpZCkgfiByZXF1aXJlZC1ub3RpY2UsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mcmVlZm9ybS1pbnB1dFtyZXF1aXJlZF06bm90KDp2YWxpZCkgfiByZXF1aXJlZC1ub3RpY2Uge1xuICAtLW5vdGljZS1jb2xvdXI6ICNkZjMwMzU7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc106bm90KDp2YWxpZCkgYnV0dG9uW3R5cGU9c3VibWl0XSxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF06bm90KDp2YWxpZCkgYnV0dG9uW3R5cGU9c3VibWl0XSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogIzk2OTY5NTtcbiAgLS1ib3JkZXItY29sb3VyOiAjOTY5Njk1O1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjOTY5Njk1O1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjOTY5Njk1O1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5zZXJ2aWNlLWNlbnRyZSxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLnNlcnZpY2UtY2VudHJlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAxcHgpIHtcbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMzQwcHgsIDFmcikpO1xuICB9XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdzpmaXJzdC1jaGlsZCB7XG4gICAgZ3JpZC1yb3c6IDE7XG4gIH1cbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmZpcnN0LW5hbWUsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5sYXN0LW5hbWUsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5lbWFpbCwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmNvbXBhbnktbmFtZSwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmNvbnRhY3Qtbm8sIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy55LXJxZzE4MWstZCwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LnByb2R1Y3Qge1xuICAgIGdyaWQtY29sdW1uOiAxLzI7XG4gIH1cbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmRldGFpbHNvZmVucXVpcnkge1xuICAgIGdyaWQtY29sdW1uOiAyLy0xO1xuICAgIGdyaWQtcm93OiAyL3NwYW4gNjtcbiAgfVxufVxuXG5ib2R5I2VkaXQgZm9ybSB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIGlucHV0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG59XG5ib2R5I2VkaXQgZm9ybSAuc3VibWl0LXJvdyB7XG4gIG9yZGVyOiAyMDtcbn1cbmJvZHkjZWRpdCBmb3JtIC5mcmVlZm9ybS1yb3cge1xuICBkaXNwbGF5OiBub25lO1xufVxuYm9keSNlZGl0IGZvcm0gLmZpcnN0LW5hbWUsXG5ib2R5I2VkaXQgZm9ybSAubGFzdC1uYW1lLFxuYm9keSNlZGl0IGZvcm0gLmVtYWlsLFxuYm9keSNlZGl0IGZvcm0gLnByb2R1Y3QsXG5ib2R5I2VkaXQgZm9ybSAuZGV0YWlsc29mZW5xdWlyeSxcbmJvZHkjZWRpdCBmb3JtIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0LFxuYm9keSNlZGl0IGZvcm0gLmxlYWQtc3RhdHVzLFxuYm9keSNlZGl0IGZvcm0gLmludGVybmFsLW5vdGVzLFxuYm9keSNlZGl0IGZvcm0gLm9yZGVyLXZhbHVlLFxuYm9keSNlZGl0IGZvcm0gLnN1Ym1pdC1yb3cge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbmJvZHkjZWRpdCBmb3JtIC5maXJzdC1uYW1lIC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLmZpcnN0LW5hbWUgLmZyZWVmb3JtLWNvbHVtbiB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5maXJzdC1uYW1lIC5mcmVlZm9ybS1jb2x1bW4gaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAubGFzdC1uYW1lIC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLmxhc3QtbmFtZSAuZnJlZWZvcm0tY29sdW1uIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLmxhc3QtbmFtZSAuZnJlZWZvcm0tY29sdW1uIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLmVtYWlsIC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLmVtYWlsIC5mcmVlZm9ybS1jb2x1bW4gdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAuZW1haWwgLmZyZWVmb3JtLWNvbHVtbiBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5wcm9kdWN0IC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLnByb2R1Y3QgLmZyZWVmb3JtLWNvbHVtbiB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5wcm9kdWN0IC5mcmVlZm9ybS1jb2x1bW4gaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAuZGV0YWlsc29mZW5xdWlyeSAuZnJlZWZvcm0tY29sdW1uIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5kZXRhaWxzb2ZlbnF1aXJ5IC5mcmVlZm9ybS1jb2x1bW4gdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAuZGV0YWlsc29mZW5xdWlyeSAuZnJlZWZvcm0tY29sdW1uIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLnNlcnZpY2UtY2VudHJlLWNvbnRhY3QgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAuc2VydmljZS1jZW50cmUtY29udGFjdCAuZnJlZWZvcm0tY29sdW1uIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLnNlcnZpY2UtY2VudHJlLWNvbnRhY3QgLmZyZWVmb3JtLWNvbHVtbiBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5sZWFkLXN0YXR1cyAuZnJlZWZvcm0tY29sdW1uIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5sZWFkLXN0YXR1cyAuZnJlZWZvcm0tY29sdW1uIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLmxlYWQtc3RhdHVzIC5mcmVlZm9ybS1jb2x1bW4gaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAuaW50ZXJuYWwtbm90ZXMgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAuaW50ZXJuYWwtbm90ZXMgLmZyZWVmb3JtLWNvbHVtbiB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5pbnRlcm5hbC1ub3RlcyAuZnJlZWZvcm0tY29sdW1uIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLm9yZGVyLXZhbHVlIC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLm9yZGVyLXZhbHVlIC5mcmVlZm9ybS1jb2x1bW4gdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAub3JkZXItdmFsdWUgLmZyZWVmb3JtLWNvbHVtbiBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5zdWJtaXQtcm93IC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLnN1Ym1pdC1yb3cgLmZyZWVmb3JtLWNvbHVtbiB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5zdWJtaXQtcm93IC5mcmVlZm9ybS1jb2x1bW4gaW5wdXQge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5ib2R5I2VkaXQgZm9ybSAuZGV0YWlsc29mZW5xdWlyeSB7XG4gIGdyaWQtcm93OiAxL3NwYW4gNjtcbn1cbmJvZHkjZWRpdCBmb3JtIC5maXJzdC1uYW1lLFxuYm9keSNlZGl0IGZvcm0gLmxhc3QtbmFtZSxcbmJvZHkjZWRpdCBmb3JtIC5lbWFpbCxcbmJvZHkjZWRpdCBmb3JtIC5wcm9kdWN0LFxuYm9keSNlZGl0IGZvcm0gLnNlcnZpY2UtY2VudHJlLWNvbnRhY3Qge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbmJvZHkjZWRpdCBmb3JtIC5maXJzdC1uYW1lIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5maXJzdC1uYW1lIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLmZpcnN0LW5hbWUgaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAubGFzdC1uYW1lIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5sYXN0LW5hbWUgdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAubGFzdC1uYW1lIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLmVtYWlsIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5lbWFpbCB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5lbWFpbCBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5wcm9kdWN0IHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5wcm9kdWN0IHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLnByb2R1Y3QgaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAuc2VydmljZS1jZW50cmUtY29udGFjdCBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAuc2VydmljZS1jZW50cmUtY29udGFjdCB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0IGlucHV0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbn1cbmJvZHkjZWRpdCBmb3JtIC5kZXRhaWxzb2ZlbnF1aXJ5IHtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cbmJvZHkjZWRpdCBmb3JtIC5kZXRhaWxzb2ZlbnF1aXJ5IHRleHRhcmVhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbn1cbmJvZHkjZWRpdCBmb3JtIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0IC5mcmVlZm9ybS1jb2x1bW4gbGFiZWwsXG5ib2R5I2VkaXQgZm9ybSAubGVhZC1zdGF0dXMgLmZyZWVmb3JtLWNvbHVtbiBsYWJlbCxcbmJvZHkjZWRpdCBmb3JtIC5pbnRlcm5hbC1ub3RlcyAuZnJlZWZvcm0tY29sdW1uIGxhYmVsLFxuYm9keSNlZGl0IGZvcm0gLm9yZGVyLXZhbHVlIC5mcmVlZm9ybS1jb2x1bW4gbGFiZWwge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5cbm1vZGFsLXdyYXBwZXIge1xuICAtLXdyYXBwZXItYmFja2dyb3VuZC1jb2xvdXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gIC0tY29udGFpbmVyLWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbiAgLS1taW4td2lkdGg6MzAwcHg7XG4gIC0tbWF4LXdpZHRoOjExMjBweDtcbiAgLS13aWR0aDpjbGFtcCh2YXIoLS1taW4td2lkdGgpLCA5MHZ3LCBmaXQtY29udGVudCk7XG4gIC0tbWluLWhlaWdodDo2MDBweDtcbiAgLS1tYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSB2YXIoLS1ndXR0ZXIyKSk7XG4gIC0taGVpZ2h0OmNsYW1wKHZhcigtLW1pbi1oZWlnaHQpLCA5MHZ3LCBmaXQtY29udGVudCk7XG4gIC0tY2xvc2UtYnV0dG9uLXNpemU6IDMwcHg7XG4gIC0tbmF2LWJ1dHRvbi1zaXplOiA0MHB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13cmFwcGVyLWJhY2tncm91bmQtY29sb3VyKTtcbiAgei1pbmRleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbn1cbkBzdXBwb3J0cyAoLS12Oi13ZWJraXQtZmlsbC1hdmFpbGFibGUgKSB7XG4gIG1vZGFsLXdyYXBwZXIge1xuICAgIC0tbWF4LWhlaWdodDotd2Via2l0LWZpbGwtYXZhaWxhYmxlO1xuICB9XG59XG5tb2RhbC13cmFwcGVyLmxvYWRpbmcge1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSAwLjNzO1xufVxubW9kYWwtd3JhcHBlci5sb2FkaW5nIG1vZGFsLWNvbnRhaW5lciB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgydmgpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpLCB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC44OTUsIDAuMDMsIDAuNjg1LCAwLjIyKTtcbn1cbm1vZGFsLXdyYXBwZXIgYnV0dG9uLmNsb3NlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IHZhcigtLWd1dHRlcjEpO1xuICByaWdodDogdmFyKC0tZ3V0dGVyMSk7XG4gIHdpZHRoOiB2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tY2xvc2UtYnV0dG9uLXNpemUpO1xufVxubW9kYWwtd3JhcHBlciBidXR0b24uY2xvc2Ugc3ZnIHtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAtLWZpbGw6dmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbn1cbm1vZGFsLXdyYXBwZXIgYnV0dG9uLmNsb3NlIHN2ZyBjaXJjbGUsIG1vZGFsLXdyYXBwZXIgYnV0dG9uLmNsb3NlIHN2ZyBwYXRoIHtcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSk7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBtb2RhbC13cmFwcGVyIGJ1dHRvbi5jbG9zZTpob3ZlciBzdmcge1xuICAgIC0tZmlsbDp3aGl0ZTtcbiAgICAtLXN0cm9rZTp2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICB9XG59XG5tb2RhbC13cmFwcGVyIGJ1dHRvbi5uYXZpZ2F0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogdmFyKC0tbmF2LWJ1dHRvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1uYXYtYnV0dG9uLXNpemUpO1xuICB0b3A6IGNhbGMoNTAlIC0gdmFyKC0tbmF2LWJ1dHRvbi1zaXplKSAvIDIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpO1xufVxubW9kYWwtd3JhcHBlciBidXR0b24ubmF2aWdhdGlvbi5wcmV2aW91cyB7XG4gIGxlZnQ6IHZhcigtLWd1dHRlcjEpO1xufVxubW9kYWwtd3JhcHBlciBidXR0b24ubmF2aWdhdGlvbi5uZXh0IHtcbiAgcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xufVxubW9kYWwtd3JhcHBlciBidXR0b24ubmF2aWdhdGlvbiBzdmcge1xuICB3aWR0aDogNTAlO1xuICBoZWlnaHQ6IDUwJTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIG1vZGFsLXdyYXBwZXIgYnV0dG9uLm5hdmlnYXRpb246aG92ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgfVxufVxuXG5tb2RhbC1jb250YWluZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkgMC4zcywgdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKSAwLjNzO1xuICB3aWR0aDogdmFyKC0td2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLWhlaWdodCk7XG4gIG1heC1oZWlnaHQ6IHZhcigtLW1heC1oZWlnaHQpO1xuICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luOiB2YXIoLS1ndXR0ZXIxKTtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbn1cbkBzdXBwb3J0cyBub3QgKHdpZHRoOiBjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcbiAgbW9kYWwtY29udGFpbmVyIHtcbiAgICAtLXdpZHRoOiA2MHZ3O1xuICAgIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcbiAgICBtaW4td2lkdGg6IHZhcigtLW1pbi13aWR0aCk7XG4gICAgLS1oZWlnaHQ6IDgwdnc7XG4gICAgbWF4LWhlaWdodDogdmFyKC0tbWF4LWhlaWdodCk7XG4gICAgbWluLWhlaWdodDogdmFyKC0tbWluLWhlaWdodCk7XG4gIH1cbn1cbm1vZGFsLWNvbnRhaW5lcjplbXB0eSB7XG4gIHdpZHRoOiBjYWxjKHZhcigtLW1heC13aWR0aCkgLyAyKTtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLW1heC1oZWlnaHQpIC8gMik7XG59XG5tb2RhbC1jb250YWluZXI6ZW1wdHk6YWZ0ZXIge1xuICAtLXNpemU6IDIwcHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDUwJSAtIHZhcigtLXNpemUpIC8gMik7XG4gIGxlZnQ6IGNhbGMoNTAlIC0gdmFyKC0tc2l6ZSkgLyAyKTtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IHZhcigtLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXNpemUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWxvYWRlci1jb2xvdXIsICM5Njk2OTUpO1xuICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBsb2FkZXItcm90YXRlO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xuICBvcGFjaXR5OiAxO1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZztcbn1cbkBrZXlmcmFtZXMgbG9hZGVyLXJvdGF0ZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG59XG5tb2RhbC1jb250YWluZXIgPiBidXR0b24uY2xvc2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG9yZGVyOiAtMTtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIHRvcDogaW5pdGlhbDtcbiAgcmlnaHQ6IGluaXRpYWw7XG4gIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSkgLyAyKTtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNsb3NlLWJ1dHRvbi1zaXplKSAvIDIpO1xuICBtYXJnaW4tcmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSkgLyAyKTtcbn1cblxubW9kYWwtY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICB3aWR0aDogaW5oZXJpdDtcbiAgaGVpZ2h0OiBpbmhlcml0O1xuICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSk7XG59XG5tb2RhbC1jb250ZW50ID4gKiB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxubW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9aW1hZ2VdIC5pbWFnZSB7XG4gIG1heC1oZWlnaHQ6IGNhbGModmFyKC0tbWF4LWhlaWdodCkgLSB2YXIoLS1ndXR0ZXI2KSk7XG4gIGJvcmRlcjogbm9uZTtcbn1cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPWltYWdlXSAuaW1hZ2UgaW1nIHtcbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLWd1dHRlcjMpIC0gdmFyKC0tZ3V0dGVyNCkpO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW46IGF1dG87XG59XG5cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPWRlZmF1bHRdIG1vZGFsLWNvbnRlbnQgPiBpbWdbc3JjKj1cIi5zdmdcIl0ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5tb2RhbC13cmFwcGVyW2RhdGEtdHlwZT12aWRlb10ge1xuICAtLXdyYXBwZXItYmFja2dyb3VuZC1jb2xvdXI6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG5tb2RhbC13cmFwcGVyW2RhdGEtdHlwZT12aWRlb10gbW9kYWwtY29udGFpbmVyIHtcbiAgLS1hc3BlY3QtcmF0aW86IDE2Lzk7XG4gIGFzcGVjdC1yYXRpbzogdmFyKC0tYXNwZWN0LXJhdGlvKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogdmFyKC0tZ2FwKTtcbn1cbkBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMTYvOSkge1xuICBtb2RhbC13cmFwcGVyW2RhdGEtdHlwZT12aWRlb10gbW9kYWwtY29udGFpbmVyIHtcbiAgICBhc3BlY3QtcmF0aW86IGluaXRpYWw7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJSAvICh2YXIoLS1hc3BlY3QtcmF0aW8pKSk7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG4gIG1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPXZpZGVvXSBtb2RhbC1jb250YWluZXIgPiAqIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbn1cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPXZpZGVvXSBtb2RhbC1jb250YWluZXIgaWZyYW1lLCBtb2RhbC13cmFwcGVyW2RhdGEtdHlwZT12aWRlb10gbW9kYWwtY29udGFpbmVyIGNhbnZhcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5tb2RhbC13cmFwcGVyW2RhdGEtdHlwZT12aWRlb10gbW9kYWwtY29udGFpbmVyIG1vZGFsLWNvbnRlbnQge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG59XG5cbi5vcGVuLWluLW1vZGFsIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuLm9wZW4taW4tbW9kYWw6YWZ0ZXIge1xuICAtLXNpemU6IDIwcHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDUwJSAtIHZhcigtLXNpemUpIC8gMik7XG4gIGxlZnQ6IGNhbGMoNTAlIC0gdmFyKC0tc2l6ZSkgLyAyKTtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IHZhcigtLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXNpemUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWxvYWRlci1jb2xvdXIsIHdoaXRlKTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICBhbmltYXRpb24tbmFtZTogbG9hZGVyLXJvdGF0ZTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbn1cbkBrZXlmcmFtZXMgbG9hZGVyLXJvdGF0ZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG59XG4ub3Blbi1pbi1tb2RhbC5sb2FkaW5nIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ub3Blbi1pbi1tb2RhbC5sb2FkaW5nOmFmdGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7XG59XG5cbmltZy5vcGVuLWluLW1vZGFsLCAub3Blbi1pbi1tb2RhbCBpbWcge1xuICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcbiAgLWtodG1sLXVzZXItZHJhZzogbm9uZTtcbiAgLW1vei11c2VyLWRyYWc6IG5vbmU7XG4gIC1vLXVzZXItZHJhZzogbm9uZTtcbiAgdXNlci1kcmFnOiBub25lO1xufVxuXG46cm9vdCB7XG4gIC0tZGlhbG9nLXRyYW5zbGF0ZS1vZmZzZXQ6IDFyZW07XG4gIC0tZGlhbG9nLXRyYW5zbGF0ZS1lbnRlcjogMCB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLW9mZnNldCk7XG4gIC0tZGlhbG9nLXRyYW5zbGF0ZS1sZWF2ZTogMCBjYWxjKC0xICogdmFyKC0tZGlhbG9nLXRyYW5zbGF0ZS1vZmZzZXQpKTtcbiAgLS1kaWFsb2ctdHJhbnNsYXRlLWR1cmF0aW9uOiAwLjRzO1xuICAtLWRpYWxvZy1nYXA6IHZhcigtLWd1dHRlcjIpO1xuICAtLWRpYWxvZy1jb250ZW50LW1heC13aWR0aDogMTA4MHB4O1xuICAtLWRpYWxvZy1jb250ZW50LWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbiAgLS1kaWFsb2ctYmFja2Ryb3AtY29sb3VyOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG5cbmRpYWxvZy5tb2RhbCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3ZlcmZsb3c6IGluaXRpYWw7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zbGF0ZTogdmFyKC0tZGlhbG9nLXRyYW5zbGF0ZS1lbnRlcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvdmVybGF5LCBkaXNwbGF5LCB0cmFuc2xhdGUsIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLWRpYWxvZy10cmFuc2xhdGUtZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb24tYmVoYXZpb3I6IGFsbG93LWRpc2NyZXRlO1xuICBtYXJnaW46IDA7XG4gIHotaW5kZXg6IDk5OTtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDBkdmg7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbn1cbmRpYWxvZy5tb2RhbCAqLFxuZGlhbG9nLm1vZGFsICo6OmJlZm9yZSxcbmRpYWxvZy5tb2RhbCAqOjphZnRlciwgZGlhbG9nLm1vZGFsIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbmRpYWxvZy5tb2RhbDo6YmFja2Ryb3Age1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvdmVybGF5LCBkaXNwbGF5LCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi1iZWhhdmlvcjogYWxsb3ctZGlzY3JldGU7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kaWFsb2ctYmFja2Ryb3AtY29sb3VyKTtcbiAgb3BhY2l0eTogMDtcbn1cbmRpYWxvZy5tb2RhbCAuZGlhbG9nXFw6Y29udGVudHMge1xuICBvdmVyZmxvdzogYXV0bztcbiAgZGlyZWN0aW9uOiBsdHI7XG4gIGJvcmRlci1yYWRpdXM6IDAuNmVtO1xuICBtYXgtaGVpZ2h0OiAxMDBkdmg7XG4gIHBhZGRpbmc6IHZhcigtLWRpYWxvZy1nYXApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kaWFsb2ctY29udGVudC1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIHdpZHRoOiBtaW4oMTAwJSwgdmFyKC0tZGlhbG9nLWNvbnRlbnQtbWF4LXdpZHRoKSk7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG59XG5kaWFsb2cubW9kYWxbb3Blbl0ge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2xhdGU6IDAgMDtcbiAgZGlzcGxheTogZmxleDtcbn1cbkBzdGFydGluZy1zdHlsZSB7XG4gIGRpYWxvZy5tb2RhbFtvcGVuXSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2xhdGU6IHZhcigtLWRpYWxvZy10cmFuc2xhdGUtbGVhdmUpO1xuICB9XG59XG5kaWFsb2cubW9kYWxbb3Blbl06OmJhY2tkcm9wIHtcbiAgb3BhY2l0eTogMTtcbn1cbkBzdGFydGluZy1zdHlsZSB7XG4gIGRpYWxvZy5tb2RhbFtvcGVuXTo6YmFja2Ryb3Age1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbmRpYWxvZy5tb2RhbCBidXR0b24uZGlhbG9nXFw6Y2xvc2Uge1xuICBtYXJnaW4tYmxvY2stc3RhcnQ6IGNhbGMoMC41ICogdmFyKC0tZGlhbG9nLWdhcCkpO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG46cm9vdDpoYXMoZGlhbG9nLm1vZGFsW29wZW5dKSBbZGF0YS1tb2RhbF0ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNvbnRlbnQtYmxvY2sge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMSk7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbHVtbi1jb3VudCksIDFmcik7XG59XG4uY29udGVudC1ibG9jazplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uY29udGVudC1ibG9jay5ibG93b3V0LnRoZW1lZCB+IC5jb250ZW50LWJsb2NrOm5vdCguYmxvd291dCkudGhlbWVkIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMCk7XG59XG4uY29udGVudC1ibG9jazpub3QoLmJsb3dvdXQpLnRoZW1lZCB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG59XG4uY29udGVudC1ibG9jazpub3QoLmJsb3dvdXQpLnRoZW1lZDpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZXIwKTtcbn1cbi5jb250ZW50LWJsb2NrICsgLmNvbnRlbnQtYmxvY2sge1xuICBib3gtc2hhZG93OiAwcHggLTFweCB2YXIoLS1ib3JkZXItdG9wLWNvbG91ciwgI2RjZGNkYyk7XG59XG4uY29udGVudC1ibG9jayA6aXMoaDIsIGgzLCBoNCwgaDUsIGg2KSB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcCk7XG59XG4uY29udGVudC1ibG9jay5ncmV5IHtcbiAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcbn1cbi5jb250ZW50LWJsb2NrLnJlZCB7XG4gIGJhY2tncm91bmQ6ICNkZjMwMzU7XG59XG4uY29udGVudC1ibG9jay5ibHVlIHtcbiAgYmFja2dyb3VuZDogIzEzMWY2Yjtcbn1cbi5jb250ZW50LWJsb2NrLmJsYWNrIHtcbiAgYmFja2dyb3VuZDogIzFlMWMxYztcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLS1oZWFkaW5nLWNvbG91cjogd2hpdGU7XG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xufVxuLmNvbnRlbnQtYmxvY2suc2lkZS1ieS1zaWRlLWNvbXBvbmVudHMge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMHB4LCAxZnIpKTtcbiAgZ2FwOiAwO1xufVxuLmNvbnRlbnQtYmxvY2suc2lkZS1ieS1zaWRlLWNvbXBvbmVudHMgPiAqIHtcbiAgZ3JpZC1jb2x1bW46IGF1dG87XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbn1cbi5jb250ZW50LWJsb2NrLnNpZGUtYnktc2lkZS1jb21wb25lbnRzID4gKi5jb250YWluZXItaW5saW5lIHtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc3BhY2VyMSk7XG59XG4uY29udGVudC1ibG9jay5zaWRlLWJ5LXNpZGUtY29tcG9uZW50cyA+ICouZWNvcG9zdGUtYmFubmVyIHtcbiAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlcjEpO1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxubWFpbjpoYXMoPiAuY29udGVudC1ibG9jay5zaWRlLWJ5LXNpZGUtY29tcG9uZW50cykge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5tYWluOmhhcyg+IC5jb250ZW50LWJsb2NrLnNpZGUtYnktc2lkZS1jb21wb25lbnRzKSAuc2lkZS1ieS1zaWRlLWNvbXBvbmVudHMge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuQG1lZGlhICh3aWR0aCA8IDkwMHB4KSB7XG4gIC5jb250ZW50LWJsb2NrLnNpZGUtYnktc2lkZS1jb21wb25lbnRzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxufVxuXG4udGV4dCBhIHtcbiAgLS1mb250LWNvbG91cjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAudGV4dCBhOmhvdmVyIHtcbiAgICAtLWZvbnQtY29sb3VyOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICB9XG59XG4udGV4dCBhIGEuYnV0dG9uIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG4udGV4dCB1bCA+IGxpOjpiZWZvcmUge1xuICBjb250ZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyUzRSUzQ2NpcmNsZSBmaWxsPSclMjNERjMwMzUnIGN4PSc4JyBjeT0nOCcgcj0nOCcvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBzdHJva2U9J3doaXRlJyBzdHJva2Utd2lkdGg9JzEuNCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J00zLjUgOC40bDIuNyAyLjcgNi4zLTYuMycvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cbi50ZXh0IHVsID4gbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1saXN0LXN0eWxlLXNpemUsIDFlbSkgKiAxLjgpO1xufVxuLnRleHQgdWwgPiBsaSArIGxpIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tbGluZS1zdHlsZS1zcGFjaW5nLCB2YXIoLS1nYXApKTtcbn1cbi50ZXh0IHVsID4gbGk6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdG9wOiAwLjFlbTtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogdmFyKC0tbGlzdC1zdHlsZS1zaXplLCAxZW0pO1xuICBoZWlnaHQ6IHZhcigtLWxpc3Qtc3R5bGUtc2l6ZSwgMWVtKTtcbn1cbi50ZXh0IG9sIHtcbiAgY291bnRlci1yZXNldDogY291bnRlcjtcbn1cbi50ZXh0IG9sID4gbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDIycHg7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1saXN0LXN0eWxlLW9mZnNldCwgMCk7XG59XG4udGV4dCBvbCA+IGxpICsgbGkge1xuICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxuLnRleHQgb2wgPiBsaTo6YmVmb3JlIHtcbiAgY29udGVudDogY291bnRlcihjb3VudGVyKSBcIi5cIjtcbiAgY291bnRlci1pbmNyZW1lbnQ6IGNvdW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1saXN0LXN0eWxlLWNvbG91ciwgdmFyKC0tcHJpbWFyeSkpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1yaWdodDogMC41ZW07XG59XG4udGV4dCBwOmVtcHR5LCAudGV4dCBwID4gYnIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnRleHQgPiAqOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xufVxuLnRleHQgPiAqIHVsLCAudGV4dCA+ICogb2wge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1nYXApO1xufVxuLnRleHQgaDIsIC50ZXh0IGgzLCAudGV4dCBoNCwgLnRleHQgaDUsIC50ZXh0IGg2IHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwKTtcbn1cbi50ZXh0IC5oZWFkaW5nLWgzIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG59XG4udGV4dCBbc3R5bGUqPVwidGV4dC1hbGlnbjogY2VudGVyXCJdIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogODAwcHg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4udGV4dCAucXVvdGVzIHtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjZGNkY2RjO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcCk7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi50ZXh0IGZpZ3VyZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogdmFyKC0tZ2FwKTtcbn1cbi50ZXh0IGZpZ3VyZSBpbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4udGV4dCBociB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjApICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlcjApICFpbXBvcnRhbnQ7XG59XG4udGV4dCAubm90ZSB7XG4gIG1hcmdpbjogY2FsYyh2YXIoLS1nYXApICogMikgMDtcbn1cblxuLmRhcmsge1xuICAtLWhyLWNvbG91cjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICAtLWxpc3Qtc3R5bGUtY29sb3VyOiB3aGl0ZTtcbn1cbi5kYXJrIC50ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xuICAtLWhlYWRpbmctY29sb3VyOndoaXRlO1xufVxuLmRhcmsgLnRleHQgYS5idXR0b24ge1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbn1cbi5kYXJrIC50ZXh0IGE6bm90KC5idXR0b24pIHtcbiAgLS1mb250LWNvbG91cjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHg7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAuZGFyayAudGV4dCBhOm5vdCguYnV0dG9uKTpob3ZlciB7XG4gICAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gIH1cbn1cbi5kYXJrLnJlZCAudGV4dCB1bCA+IGxpOjpiZWZvcmUge1xuICBjb250ZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyUzRSUzQ2NpcmNsZSBmaWxsPSclMjNGRkZGRkYnIGN4PSc4JyBjeT0nOCcgcj0nOCcvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBzdHJva2U9JyUyM0RGMzAzNScgc3Ryb2tlLXdpZHRoPScxLjQnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJyBkPSdNMy41IDguNGwyLjcgMi43IDYuMy02LjMnLyUzRSUzQy9zdmclM0VcIik7XG59XG4uZGFyay5ibHVlIC50ZXh0IHVsID4gbGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnJTNFJTNDY2lyY2xlIGZpbGw9JyUyM0ZGRkZGRicgY3g9JzgnIGN5PSc4JyByPSc4Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzMTMxRjZCJyBzdHJva2Utd2lkdGg9JzEuNCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J00zLjUgOC40bDIuNyAyLjcgNi4zLTYuMycvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cblxuLmNvbnRhaW5zLXN2Z3MgLnRleHQgZmlndXJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAwIHZhcigtLWdhcCk7XG59XG4uY29udGFpbnMtc3ZncyAudGV4dCBmaWd1cmUgaW1nIHtcbiAgaGVpZ2h0OiAxMjBweDtcbn1cblxudGFibGUtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6IHZhcigtLWdhcCk7XG59XG50YWJsZS1jb250YWluZXIgPiBkaXYge1xuICBvdmVyZmxvdzogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgZGlzcGxheTogZ3JpZDtcbn1cbnRhYmxlLWNvbnRhaW5lciA+IGRpdjpub3QoOmhvdmVyKSB7XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxudGFibGUtY29udGFpbmVyID4gZGl2Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiAwLjllbTtcbiAgaGVpZ2h0OiAwLjllbTtcbn1cbnRhYmxlLWNvbnRhaW5lciA+IGRpdjo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uIHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnRhYmxlLWNvbnRhaW5lciA+IGRpdjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTY5Njk1O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3JkZXI6IDRweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDApO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxudGFibGUtY29udGFpbmVyID4gZGl2Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxudGFibGUtY29udGFpbmVyID4gZGl2Ojotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbnRhYmxlLWNvbnRhaW5lciBoMyB7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cbnRhYmxlLWNvbnRhaW5lciB0YWJsZS50YWJsZSB7XG4gIHdpZHRoOiBhdXRvO1xuICBncmlkLXJvdzogMTtcbiAgZ3JpZC1jb2x1bW46IDE7XG59XG50YWJsZS1jb250YWluZXIgdGFibGUudGFibGUuZmFrZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgodmFyKC0teCkpO1xuICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0teCkpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xufVxudGFibGUtY29udGFpbmVyIHRhYmxlLnRhYmxlLmZha2UgdGJvZHkgdHIgdGQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggI2RjZGNkYyBkYXNoZWQ7XG59XG50YWJsZS1jb250YWluZXIgdGFibGUudGFibGUuZmFrZSB0Ym9keSB0cjpudGgtb2YtdHlwZShvZGQpIHRkIHtcbiAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcbn1cbnRhYmxlLWNvbnRhaW5lciB0YWJsZS50YWJsZS5mYWtlIHRoZWFkIHRyIHRoOmZpcnN0LW9mLXR5cGUge1xuICBib3JkZXItcmlnaHQ6IDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgZGFzaGVkO1xufVxudGFibGUtY29udGFpbmVyIHRhYmxlLnRhYmxlLmZha2UgdGhlYWQgdHIgdGg6bm90KDpmaXJzdC1vZi10eXBlKSwgdGFibGUtY29udGFpbmVyIHRhYmxlLnRhYmxlLmZha2UgdGJvZHkgdHIgdGQ6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbkBzdXBwb3J0cyAod3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scikge1xuICB0YWJsZS1jb250YWluZXIuZW5hYmxlLXZlcnRpY2FsLWhlYWRpbmdzIHRhYmxlLnRhYmxlIHRoZWFkIHRyIHRoOm5vdCg6Zmlyc3Qtb2YtdHlwZSkgc3BhbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7XG4gICAgbWF4LXdpZHRoOiA1MHB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIH1cbn1cbnRhYmxlLWNvbnRhaW5lciBuYXYge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGdyaWQtcm93OiAxO1xuICBncmlkLWNvbHVtbjogMjtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnRhYmxlLWNvbnRhaW5lciBuYXYgYnV0dG9uLm5hdmlnYXRpb24ge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbn1cbnRhYmxlLWNvbnRhaW5lciBuYXYgYnV0dG9uLm5hdmlnYXRpb24gKyBidXR0b24ge1xuICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbnRhYmxlLWNvbnRhaW5lciBuYXYgKyBkaXYge1xuICBncmlkLWNvbHVtbjogMS9zcGFuIDI7XG59XG50YWJsZS1jb250YWluZXIuc2Nyb2xsZWQtcmlnaHQgYnV0dG9uLm5leHQsIHRhYmxlLWNvbnRhaW5lci5zY3JvbGxlZC1sZWZ0IGJ1dHRvbi5wcmV2aW91cyB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxudGFibGUtY29udGFpbmVyLmVuYWJsZS1zY3JvbGwtYnV0dG9ucyBuYXYge1xuICBkaXNwbGF5OiBmbGV4O1xufVxudGFibGUtY29udGFpbmVyIGJ1dHRvbi5uYXZpZ2F0aW9uIHtcbiAgLS1idXR0b24tc2l6ZTogNDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IHZhcigtLWJ1dHRvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1idXR0b24tc2l6ZSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIGNvbG9yOiAjNmE2YTZhO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpO1xufVxudGFibGUtY29udGFpbmVyIGJ1dHRvbi5uYXZpZ2F0aW9uLnByZXZpb3VzIHN2ZyB7XG4gIG1hcmdpbi1sZWZ0OiAtMnB4O1xufVxudGFibGUtY29udGFpbmVyIGJ1dHRvbi5uYXZpZ2F0aW9uLm5leHQgc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cbnRhYmxlLWNvbnRhaW5lciBidXR0b24ubmF2aWdhdGlvbiBzdmcge1xuICB3aWR0aDogY2FsYyh2YXIoLS1idXR0b24tc2l6ZSkgLyAyLjUpO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tYnV0dG9uLXNpemUpIC8gMi41KTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIHRhYmxlLWNvbnRhaW5lciBidXR0b24ubmF2aWdhdGlvbjpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbnRhYmxlLnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG50YWJsZS50YWJsZSB0aGVhZCB0ciB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICBwYWRkaW5nOiB2YXIoLS1nYXApO1xuICBjb2xvcjogd2hpdGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG50YWJsZS50YWJsZSB0aGVhZCB0ciB0aDpmaXJzdC1vZi10eXBlIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbnRhYmxlLnRhYmxlIHRoZWFkIHRyIHRoOmxhc3Qtb2YtdHlwZSB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxudGFibGUudGFibGUgdGJvZHkgdHIgdGQge1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpIHZhcigtLWdhcCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbnRhYmxlLnRhYmxlIHRib2R5IHRyIHRkOmZpcnN0LW9mLXR5cGUge1xuICBtaW4td2lkdGg6IDIwMHB4O1xufVxudGFibGUudGFibGUgdGJvZHkgdHIgdGQgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICM2YTZhNmE7XG59XG50YWJsZS50YWJsZSB0Ym9keSB0ciB0ZCBhIHtcbiAgY29sb3I6ICMxMzFmNmI7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgdGFibGUudGFibGUgdGJvZHkgdHIgdGQgYTpob3ZlciB7XG4gICAgY29sb3I6ICNkZjMwMzU7XG4gIH1cbn1cbnRhYmxlLnRhYmxlIHRib2R5IHRyIHRkIHN2ZyB7XG4gIC0tZmlsbDogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIHdpZHRoOiAxZW07XG4gIGhlaWdodDogMWVtO1xufVxudGFibGUudGFibGUgdGJvZHkgdHIgdGQgc3ZnLmNyb3NzIHtcbiAgLS1maWxsOiAjZGYzMDM1O1xufVxudGFibGUudGFibGUgdGJvZHkgdHIgdGQgc3ZnLnRpY2sge1xuICAtLWZpbGw6ICM1MGJjMDg7XG59XG50YWJsZS50YWJsZSB0ciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbnRhYmxlLnRhYmxlIHRyOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xufVxudGFibGUudGFibGUgdHI6bnRoLW9mLXR5cGUob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG59XG50YWJsZS50YWJsZS5hbHRlcm5hdGluZy1yb3ctY29sb3VycyB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbnRhYmxlLnRhYmxlLmxhc3QtY29sdW1uLWlzLWdyZWVuIHRib2R5IHRyIHRkOmxhc3Qtb2YtdHlwZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmRhcmsgdGFibGUtY29udGFpbmVyID4gaDMsIC5kYXJrLmNvbnRlbnQtYmxvY2sgLnRhYi1jb250ZW50ID4gaDMge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGFyayB0YWJsZS1jb250YWluZXIgPiBkaXYsIC5kYXJrLmNvbnRlbnQtYmxvY2sgLnRhYi1jb250ZW50ID4gZGl2IHtcbiAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbn1cbi5kYXJrIHRhYmxlLWNvbnRhaW5lciB0YWJsZS50YWJsZSwgLmRhcmsuY29udGVudC1ibG9jayAudGFiLWNvbnRlbnQgdGFibGUudGFibGUge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG59XG4uZGFyayB0YWJsZS1jb250YWluZXIgdGFibGUudGFibGUgdHIgdGgsIC5kYXJrLmNvbnRlbnQtYmxvY2sgLnRhYi1jb250ZW50IHRhYmxlLnRhYmxlIHRyIHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbn1cbi5kYXJrIHRhYmxlLWNvbnRhaW5lciB0YWJsZS50YWJsZSB0ciwgLmRhcmsuY29udGVudC1ibG9jayAudGFiLWNvbnRlbnQgdGFibGUudGFibGUgdHIge1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5kYXJrIHRhYmxlLWNvbnRhaW5lciB0YWJsZS50YWJsZSB0cjpudGgtb2YtdHlwZShvZGQpLCAuZGFyay5jb250ZW50LWJsb2NrIC50YWItY29udGVudCB0YWJsZS50YWJsZSB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbn1cblxuZmlndXJlLmltYWdlLnN0YXRpYyB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjRmNGY0O1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xufVxuZmlndXJlLmltYWdlLnN0YXRpYyBpbWcge1xuICAtLWltYWdlLWhlaWdodC1zaXplOiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5maWd1cmUuaW1hZ2Uuc3RhdGljIGZpZ2NhcHRpb24ge1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpIHZhcigtLWdhcCk7XG59XG5maWd1cmUuaW1hZ2Uuc3RhdGljLm5vLWNhcHRpb24ge1xuICBib3JkZXI6IG5vbmU7XG59XG5maWd1cmUuaW1hZ2Uuc3RhdGljLmNyb3AtaW1hZ2Uge1xuICAtLWFzcGVjdC1yYXRpbzogMTYvOTtcbiAgYXNwZWN0LXJhdGlvOiB2YXIoLS1hc3BlY3QtcmF0aW8pO1xuICAtLWFzcGVjdC1yYXRpbzogaW5oZXJpdDtcbn1cbmZpZ3VyZS5pbWFnZS5zdGF0aWMuY3JvcC1pbWFnZSBmaWdjYXB0aW9uIHtcbiAgYm90dG9tOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbkBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMTYvOSkge1xuICBmaWd1cmUuaW1hZ2Uuc3RhdGljLmNyb3AtaW1hZ2Uge1xuICAgIGFzcGVjdC1yYXRpbzogaW5pdGlhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMDAlIC8gKHZhcigtLWFzcGVjdC1yYXRpbykpKTtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cbiAgZmlndXJlLmltYWdlLnN0YXRpYy5jcm9wLWltYWdlID4gKiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG59XG5maWd1cmUuaW1hZ2Uuc3RhdGljLmNyb3AtaW1hZ2UgaW1nIHtcbiAgLS1pbWFnZS1oZWlnaHQtc2l6ZTogMTAwJTtcbn1cblxuLmltYWdlLmxvYWQtaW4tdmlldyBpbWcge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xufVxuLmltYWdlLmxvYWQtaW4tdmlldyBpbWc6bm90KFtzcmNdKSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbmltYWdlcy1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6IHZhcigtLWd1dHRlcjApO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heChjYWxjKHZhcigtLW1haW4tbWF4LXdpZHRoKSAvICh2YXIoLS1pbWFnZXMtcGVyLXJvdykgKyAxKSksIDFmcikpO1xufVxuaW1hZ2VzLWNvbnRhaW5lci5jcm9wLWltYWdlcyAuaW1hZ2Uge1xuICAtLWFzcGVjdC1yYXRpbzogNC8zO1xuICBhc3BlY3QtcmF0aW86IHZhcigtLWFzcGVjdC1yYXRpbyk7XG4gIC0tYXNwZWN0LXJhdGlvOiBpbmhlcml0O1xufVxuQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiA0LzMpIHtcbiAgaW1hZ2VzLWNvbnRhaW5lci5jcm9wLWltYWdlcyAuaW1hZ2Uge1xuICAgIGFzcGVjdC1yYXRpbzogaW5pdGlhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMDAlIC8gKHZhcigtLWFzcGVjdC1yYXRpbykpKTtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cbiAgaW1hZ2VzLWNvbnRhaW5lci5jcm9wLWltYWdlcyAuaW1hZ2UgPiAqIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbn1cbmltYWdlcy1jb250YWluZXIuY3JvcC1pbWFnZXMgLmltYWdlIGltZyB7XG4gIC0taW1hZ2UtaGVpZ2h0LXNpemU6IDEwMCU7XG59XG5Ac3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86IDEvMSkge1xuICBpbWFnZXMtY29udGFpbmVyLmNyb3AtaW1hZ2VzIC5pbWFnZSBpbWcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxufVxuaW1hZ2VzLWNvbnRhaW5lci5jcm9wLWltYWdlcyAuaW1hZ2UgZmlnY2FwdGlvbiB7XG4gIGJvdHRvbTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbnRhYmJlZC1jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG59XG50YWJiZWQtY29udGVudCA+IG5hdiBidXR0b24ge1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbnRhYmJlZC1jb250ZW50ID4gbmF2IGJ1dHRvblthcmlhLXNlbGVjdGVkPXRydWVdIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG50YWJiZWQtY29udGVudCA+IG5hdiBidXR0b24gc3ZnIHtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbn1cbnRhYmJlZC1jb250ZW50IHN1bW1hcnkge1xuICBkaXNwbGF5OiBub25lO1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1nYXApO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwKTtcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgcGFkZGluZy1yaWdodDogdmFyKC0tZ3V0dGVyMSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIGJvcmRlci1yYWRpdXMgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbnRhYmJlZC1jb250ZW50IHN1bW1hcnk6Om1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG50YWJiZWQtY29udGVudCBzdW1tYXJ5LCB0YWJiZWQtY29udGVudCBzdW1tYXJ5IC5oZWFkaW5nIHtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgZm9udC1mYW1pbHk6IGxhdG8sIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgZm9udC1zaXplOiAxLjA2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cbnRhYmJlZC1jb250ZW50IHN1bW1hcnkgLmhlYWRpbmcge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxudGFiYmVkLWNvbnRlbnQgc3VtbWFyeSBzdmcge1xuICBoZWlnaHQ6IDhweDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgdG9wOiBjYWxjKDUwJSAtIDRweCk7XG59XG50YWJiZWQtY29udGVudCBzdW1tYXJ5OmhvdmVyLCB0YWJiZWQtY29udGVudCBkZXRhaWxzW29wZW5dIHN1bW1hcnk6aG92ZXIge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiMxYzJkOWM7XG59XG50YWJiZWQtY29udGVudCAudGFiLWNvbnRlbnQge1xuICBncmlkLWdhcDogdmFyKC0tc3BhY2VyMCkgMDtcbiAgb3V0bGluZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBncmlkLWF1dG8tcm93czogbWluLWNvbnRlbnQ7XG59XG50YWJiZWQtY29udGVudCAudGFiLWNvbnRlbnQ6bm90KFtoaWRkZW5dKSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG59XG50YWJiZWQtY29udGVudCAudGFiLWNvbnRlbnQgLmhlYWRpbmctaDQge1xuICBmb250LXNpemU6IDEuNTYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBjb2xvcjogI2RmMzAzNTtcbn1cbnRhYmJlZC1jb250ZW50IC50YWItY29udGVudCAuaGVhZGluZy1oNSB7XG4gIGZvbnQtc2l6ZTogMS4wNjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG50YWJiZWQtY29udGVudCAudGFiLWNvbnRlbnQgLnRhYmxlLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxudGFiYmVkLWNvbnRlbnQgLnRhYi1jb250ZW50IC50YWJsZS1jb250YWluZXIuaGFsdmVzIHtcbiAgbWF4LXdpZHRoOiA0MCU7XG4gIG1hcmdpbjogMCA1JSAwIDA7XG59XG50YWJiZWQtY29udGVudCAudGFiLWNvbnRlbnQgLnRhYmxlLWNvbnRhaW5lci5oYWx2ZXM6bnRoLW9mLXR5cGUoMm4pIHtcbiAgbWFyZ2luOiAwIDAgMCA1JTtcbn1cbnRhYmJlZC1jb250ZW50IC50YWItY29udGVudCAudGFibGUtY29udGFpbmVyLnRoaXJkcyB7XG4gIG1heC13aWR0aDogMzAlO1xufVxudGFiYmVkLWNvbnRlbnQgLnRhYi1jb250ZW50IC50YWJsZS1jb250YWluZXIudGhpcmRzOm50aC1vZi10eXBlKDNuIC0gMSkge1xuICBtYXJnaW46IDAgNSU7XG59XG50YWJiZWQtY29udGVudCB0YWJsZS1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbn1cbnRhYmJlZC1jb250ZW50Om5vdChbZGF0YS1zdHlsZT1cIjNcIl0pLmluLXZpZXcgPiBuYXYgYnV0dG9uW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0ge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODBweCkgYW5kIChtYXgtd2lkdGg6IDEzMDBweCksIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIHRhYmJlZC1jb250ZW50Om5vdCgubWFya2V0cykuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcge1xuICAgIGdyaWQtZ2FwOiB2YXIoLS1nYXApICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nID4gbmF2IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQ6bm90KC5tYXJrZXRzKS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIHtcbiAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQ6bm90KC5tYXJrZXRzKS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIHN1bW1hcnkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQ6bm90KC5tYXJrZXRzKS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIC50YWItY29udGVudCB7XG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2VyMCkgdmFyKC0tZ3V0dGVyMSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQ6bm90KC5tYXJrZXRzKS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIC50YWItY29udGVudCA+ICoge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMgLnRhYi1jb250ZW50IGZpZ3VyZS5pbWFnZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbb3Blbl0gc3VtbWFyeSB7XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG91cjojMGYxOTU2O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQ6bm90KC5tYXJrZXRzKS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzW29wZW5dIHN1bW1hcnkgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Om5vdCgubWFya2V0cykuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlsc1tvcGVuXSAudGFiLWNvbnRlbnQgPiAqIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiNFwiXS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyB7XG4gIGdyaWQtZ2FwOiB2YXIoLS1nYXApICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGdyaWQ7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiNFwiXS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyA+IG5hdiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCI0XCJdLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMge1xuICBncmlkLWNvbHVtbjogMS8tMTtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCI0XCJdLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjRcIl0uYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyBzdW1tYXJ5IHtcbiAgZGlzcGxheTogZmxleDtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCI0XCJdLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMgLnRhYi1jb250ZW50IHtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2VyMCkgdmFyKC0tZ3V0dGVyMSkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RjZGNkYztcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjRcIl0uYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyAudGFiLWNvbnRlbnQgPiAqIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgb3BhY2l0eTogMDtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCI0XCJdLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMgLnRhYi1jb250ZW50IGZpZ3VyZS5pbWFnZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiNFwiXS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzW29wZW5dIHN1bW1hcnkge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiMwZjE5NTY7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjRcIl0uYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlsc1tvcGVuXSBzdW1tYXJ5IHN2ZyB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiNFwiXS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzW29wZW5dIC50YWItY29udGVudCA+ICoge1xuICBvcGFjaXR5OiAxO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMDBweCkge1xuICB0YWJiZWQtY29udGVudC5tYXJrZXRzLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIHtcbiAgICBncmlkLWdhcDogdmFyKC0tZ2FwKSAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyA+IG5hdiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIHRhYmJlZC1jb250ZW50Lm1hcmtldHMuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyB7XG4gICAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Lm1hcmtldHMuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG4gIHRhYmJlZC1jb250ZW50Lm1hcmtldHMuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyAudGFiLWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNlcjApIHZhcigtLWd1dHRlcjEpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Lm1hcmtldHMuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyAudGFiLWNvbnRlbnQgPiAqIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIC50YWItY29udGVudCBmaWd1cmUuaW1hZ2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzW29wZW5dIHN1bW1hcnkge1xuICAgIC0tYmFja2dyb3VuZC1jb2xvdXI6IzBmMTk1NjtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Lm1hcmtldHMuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlsc1tvcGVuXSBzdW1tYXJ5IHN2ZyB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgfVxuICB0YWJiZWQtY29udGVudC5tYXJrZXRzLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbb3Blbl0gLnRhYi1jb250ZW50ID4gKiB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMVwiXSB7XG4gIC0tc2lkZS1uYXYtd2lkdGg6IDIwMHB4O1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLXNpZGUtbmF2LXdpZHRoKSAxZnI7XG4gIGdyaWQtZ2FwOiB2YXIoLS1ndXR0ZXIxKTtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIxXCJdID4gbmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgdG9wOiBjYWxjKHZhcigtLWJyZWFkY3J1bWItaGVpZ2h0KSArIHZhcigtLWFuY2hvcnMtaGVpZ2h0KSAtIHZhcigtLWd1dHRlcjEpKTtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIxXCJdID4gbmF2IGJ1dHRvbiB7XG4gIHBhZGRpbmc6IHZhcigtLWdhcCkgMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjFcIl0gPiBuYXYgYnV0dG9uIHN2ZyB7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXApO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjFcIl0gPiBuYXYgYnV0dG9uICsgYnV0dG9uIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7XG59XG5cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIyXCJdID4gbmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMlwiXSA+IG5hdiBidXR0b24ge1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAyKSB2YXIoLS1ndXR0ZXIyKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjJcIl0gPiBuYXYgYnV0dG9uIHN2ZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICB0YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMlwiXSA+IG5hdiBidXR0b246aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICB9XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMlwiXSA+IG5hdiBidXR0b25bYXJpYS1zZWxlY3RlZD10cnVlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMlwiXSAudGFiLWNvbnRlbnQge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjZXIxKSB2YXIoLS1ndXR0ZXIxKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCNmNGY0ZjQsIHdoaXRlKTtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIyXCJdLmludmlldyBuYXYgYnV0dG9uW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICB0YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMlwiXTpub3QoLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nKVtkYXRhLWNvdW50PVwiMlwiXSBbcm9sZT10YWJdIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIHBhZGRpbmc6IHZhcigtLWdhcCk7XG4gIH1cbn1cblxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjNcIl0gPiBuYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwKTtcbiAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjNcIl0gPiBuYXYgYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBwYWRkaW5nOiB2YXIoLS1nYXApIHZhcigtLWd1dHRlcjEpO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjNcIl0gPiBuYXYgYnV0dG9uIHN2ZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSA+IG5hdiBidXR0b25bYXJpYS1zZWxlY3RlZD10cnVlXSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIHRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIzXCJdID4gbmF2IGJ1dHRvbjpub3QoW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0pOmhvdmVyIHtcbiAgICBjb2xvcjogI2RmMzAzNTtcbiAgfVxufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjNcIl0gPiBuYXY6bm90KC5oYXMtbWFya2VyKSBidXR0b25bYXJpYS1zZWxlY3RlZD10cnVlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSA+IG5hdiBtYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlci1yYWRpdXM6IGluaXRpYWw7XG4gIHBhZGRpbmc6IGluaXRpYWw7XG4gIHRyYW5zaXRpb246IGluaXRpYWw7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG4gIHdpZHRoOiA1MCU7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjNcIl0gPiBuYXYgbWFyay5hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjNcIl0gLnRhYi1jb250ZW50IHtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSkgMDtcbn1cblxuLmV4cGVydHMtaW4teW91ci1idXNpbmVzcyB7XG4gIC0tc2Vjb25kYXJ5OiAjZGYzMDM1O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5zaWRlLWJhciAuZXhwZXJ0cy1pbi15b3VyLWJ1c2luZXNzIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cbnNpZGUtYmFyIC5leHBlcnRzLWluLXlvdXItYnVzaW5lc3MgLmNvbnRhaW5lci1pbmxpbmUge1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIyKSAhaW1wb3J0YW50O1xufVxuc2lkZS1iYXIgLmV4cGVydHMtaW4teW91ci1idXNpbmVzcyAuY29udGFpbmVyLWlubGluZSA+IC50ZXh0IHtcbiAgcGFkZGluZy10b3A6IDA7XG59XG5cbi5leHBlcnRzLWluLXlvdXItYnVzaW5lc3MudGhlbWVkIC5jb250YWluZXItaW5saW5lIHtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSkgdmFyKC0tZ3V0dGVyMSkgdmFyKC0tZ3V0dGVyMSkgdmFyKC0tZ3V0dGVyMik7XG59XG4uZXhwZXJ0cy1pbi15b3VyLWJ1c2luZXNzIC50ZXh0IHtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tZ3V0dGVyMSk7XG59XG4uZXhwZXJ0cy1pbi15b3VyLWJ1c2luZXNzIC50ZXh0IHVsID4gbGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnJTNFJTNDY2lyY2xlIGZpbGw9JyUyM0RGMzAzNScgY3g9JzgnIGN5PSc4JyByPSc4Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIHN0cm9rZT0nd2hpdGUnIHN0cm9rZS13aWR0aD0nMS40JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgZD0nTTMuNSA4LjRsMi43IDIuNyA2LjMtNi4zJy8lM0UlM0Mvc3ZnJTNFXCIpICFpbXBvcnRhbnQ7XG59XG4uZXhwZXJ0cy1pbi15b3VyLWJ1c2luZXNzIC50ZXh0ID4gaDIge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ndXR0ZXIxKTtcbn1cbi5leHBlcnRzLWluLXlvdXItYnVzaW5lc3MgYnV0dG9uLWNvbnRhaW5lciB7XG4gIGdhcDogdmFyKC0tZ2FwKTtcbn1cbi5leHBlcnRzLWluLXlvdXItYnVzaW5lc3MgYnV0dG9uLWNvbnRhaW5lciAuYnV0dG9uIHtcbiAgbWFyZ2luOiAwO1xufVxuLmV4cGVydHMtaW4teW91ci1idXNpbmVzcyBmaWd1cmUuaW1hZ2Uuc3RhdGljIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGdyaWQtY29sdW1uOiAyO1xuICBncmlkLXJvdzogMS9zcGFuIDI7XG4gIG1heC13aWR0aDogMjYwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGFsaWduLXNlbGY6IGVuZDtcbiAganVzdGlmeS1zZWxmOiBmbGV4LWVuZDtcbn1cbi5leHBlcnRzLWluLXlvdXItYnVzaW5lc3MgLmNvbnRhaW5lci1pbmxpbmUge1xuICBpc29sYXRpb246IGlzb2xhdGU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogdmFyKC0tZ3V0dGVyMSk7XG4gIGhlaWdodDogMTAwJTtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbn1cbi5leHBlcnRzLWluLXlvdXItYnVzaW5lc3MgLmNvbnRhaW5lci1pbmxpbmUgPiAqOm5vdChmaWd1cmUpIHtcbiAgZ3JpZC1jb2x1bW46IDE7XG59XG5AY29udGFpbmVyICh3aWR0aCA8IDUwMHB4KSB7XG4gIC5leHBlcnRzLWluLXlvdXItYnVzaW5lc3MgLmNvbnRhaW5lci1pbmxpbmUgZmlndXJlLmltYWdlLnN0YXRpYyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9wYWNpdHk6IDAuMTtcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBOb3JtYWxpc2Vyc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8vIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2Vcbi8vLyBAYXV0aG9yIEF1dGhvcnMgbmFtZVxuLy8vIEBzZWUgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3NcblxuJG5vcm1hbGlzZSAgICAgICAgIDogdHJ1ZSAhZGVmYXVsdDtcbiRiYXNlLWVsZW1lbnRzICAgICA6IHRydWUgIWRlZmF1bHQ7XG4kc2VjdGlvbi1lbGVtZW50cyAgOiB0cnVlICFkZWZhdWx0O1xuJGhlYWRlci1lbGVtZW50cyAgIDogdHJ1ZSAhZGVmYXVsdDtcbiRncm91cGluZy1lbGVtZW50cyA6IHRydWUgIWRlZmF1bHQ7XG4kdGFibGUtZWxlbWVudHMgICAgOiB0cnVlICFkZWZhdWx0O1xuJGZvcm0tZWxlbWVudHMgICAgIDogdHJ1ZSAhZGVmYXVsdDtcbiRlbWJlZGRlZC1lbGVtZW50cyA6IHRydWUgIWRlZmF1bHQ7XG4kdGV4dC1lbGVtZW50cyAgICAgOiB0cnVlICFkZWZhdWx0O1xuJGRldi1lbGVtZW50cyAgICAgIDogdHJ1ZSAhZGVmYXVsdDtcblxuQGlmICRub3JtYWxpc2Uge1xuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXHQvLyBCYXNlIEVsZW1lbnRzXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXG5cdEBpZiAkYmFzZS1lbGVtZW50cyB7XG5cblx0XHRodG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsXG5cdFx0YmxvY2txdW90ZSwgcHJlLCBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSxcblx0XHRpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLCBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLCBiLCB1LCBpLFxuXHRcdGNlbnRlciwgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsIHRhYmxlLFxuXHRcdGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsXG5cdFx0ZW1iZWQsIGZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksXG5cdFx0c2VjdGlvbiwgc3VtbWFyeSwgdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cdFx0fVxuXG5cdFx0OnJvb3Qge1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcblx0XHR9XG5cblx0XHQqLCAqOmFmdGVyLCAqOmJlZm9yZSB7XG5cdFx0XHQmOmZvY3VzIHsgb3V0bGluZTowOyB9O1xuXHRcdFx0Ym94LXNpemluZzppbmhlcml0O1xuXHRcdH1cblxuXHRcdGh0bWwgeyBcblx0XHRcdGhlaWdodDoxMDAlOyBcblx0XHRcdGZvbnQtc2l6ZTo2Mi41JTsgXG5cdFx0XHRibG9jay1zaXplOiAxMDAlO1xuXHRcdFx0aW5saW5lLXNpemU6IDEwMCU7XG5cdFx0fVxuXG5cdFx0Ym9keSB7IFxuXHRcdFx0bWluLWJsb2NrLXNpemU6IDEwMCU7XG5cdFx0XHRtaW4taW5saW5lLXNpemU6IDEwMCU7XG5cdFx0fVxuXG5cdFx0aHRtbCwgYm9keSB7XG5cdFx0XHRtaW4taGVpZ2h0OjEwMCU7XG5cdFx0fVxuXG5cdFx0cCwgcHJlLCBibG9ja3F1b3RlLCBvbCwgdWwsIGxpLCBsZWdlbmQsIGZpZ2NhcHRpb24sIGJvZHksIGFydGljbGUsIG5hdiwgYXNpZGUsIHNlY3Rpb24sIGhlYWRlciwgZm9vdGVyLCBhZGRyZXNzIHtcblx0XHRcdCY6ZW1wdHkgeyBkaXNwbGF5Om5vbmU7IH1cblx0XHR9XG5cblx0XHRhcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgbWFpbiwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5IHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblxuXHRcdHN2Zywgc3ltYm9sIHsgb3ZlcmZsb3c6dmlzaWJsZTsgfVxuXG5cdFx0ZGV0YWlscyB7IGRpc3BsYXk6IGJsb2NrO1x0fVxuXG5cdFx0c3VtbWFyeSB7XG5cdFx0XHRkaXNwbGF5OiBsaXN0LWl0ZW07XG5cdFx0XHQtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtcblx0XHRcdCY6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIsICY6Om1hcmtlciB7IGRpc3BsYXk6bm9uZTsgfVxuXHRcdH1cblxuXHRcdHRlbXBsYXRlIHsgZGlzcGxheTogbm9uZTtcdH1cblxuXHRcdFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblx0Ly8gU2VjdGlvbiBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJHNlY3Rpb24tZWxlbWVudHMge1xuXG5cdFx0Ym9keSB7XG5cdFx0XHR0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuXHRcdFx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdH1cblxuXHRcdGFkZHJlc3Mge1xuXHRcdFx0Zm9udC1zdHlsZTpub3JtYWw7XG5cdFx0fVxuXG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblx0Ly8gSGVhZGVyIEVsZW1lbnRzXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXG5cdEBpZiAkaGVhZGVyLWVsZW1lbnRzIHtcblxuXHRcdGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuXHRcdFx0LXdlYmtpdC1tYXJnaW4tYmVmb3JlOjBlbTtcblx0XHRcdC13ZWJraXQtbWFyZ2luLWFmdGVyOjBlbTtcblx0XHRcdC13ZWJraXQtbWFyZ2luLXN0YXJ0OjBweDtcblx0XHRcdC13ZWJraXQtbWFyZ2luLWVuZDowcHg7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdH1cblxuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cdC8vIEdyb3VwaW5nIEVsZW1lbnRzXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXG5cdEBpZiAkZ3JvdXBpbmctZWxlbWVudHMge1xuXG5cdFx0aHIge1xuXHRcdFx0Ym9yZGVyOm5vbmU7XG5cdFx0XHRoZWlnaHQ6MXB4O1xuXHRcdFx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblx0XHR9XG5cblx0XHRibG9ja3F1b3RlLCBxIHtcblx0XHRcdHF1b3Rlczogbm9uZTtcblx0XHRcdCY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdGNvbnRlbnQ6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cHJlIHtcblx0XHRcdGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcblx0XHRcdGZvbnQtc2l6ZTogMWVtO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdFx0XHRjb2xvcjogYmxhY2s7XG5cdFx0XHRwYWRkaW5nOjE2cHg7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdHotaW5kZXg6OTk5OTtcblx0XHR9XG5cblx0fVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXHQvLyBUYWJsZSBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJHRhYmxlLWVsZW1lbnRzIHtcblxuXHRcdHRhYmxlIHtcblx0XHRcdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdFx0XHRib3JkZXItc3BhY2luZzogMDtcblx0XHR9XG5cblx0fVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXHQvLyBGb3JtIEVsZW1lbnRzXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXG5cdEBpZiAkZm9ybS1lbGVtZW50cyB7XG5cblx0XHRidXR0b24ge1xuXHRcdFx0dG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cdFx0fVxuXG5cdFx0YnV0dG9uLFx0aW5wdXQsIG9wdGdyb3VwLFx0c2VsZWN0LFx0dGV4dGFyZWEge1xuXHRcdFx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdFx0XHRmb250LXNpemU6IDEwMCU7XG5cdFx0XHRsaW5lLWhlaWdodDogMS4xNTtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cblx0XHRidXR0b24sXHRpbnB1dCB7XG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblx0XHR9XG5cblx0XHRidXR0b24sXHRzZWxlY3Qge1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdFx0fVxuXG5cdFx0YnV0dG9uLFxuXHRcdFt0eXBlPVwiYnV0dG9uXCJdLFxuXHRcdFt0eXBlPVwicmVzZXRcIl0sXG5cdFx0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHRcdFx0LXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG5cdFx0XHRiYWNrZ3JvdW5kOm5vbmU7XG5cdFx0XHRib3JkZXI6bm9uZTtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdG1hcmdpbjowO1xuXHRcdFx0Y3Vyc29yOnBvaW50ZXI7XG5cdFx0XHQmOmZvY3VzIHsgb3V0bGluZTowOyB9XG5cdFx0fVxuXG5cdFx0YnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuXHRcdFt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuXHRcdFt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5cdFx0W3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuXHRcdFx0Ym9yZGVyLXN0eWxlOiBub25lO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cblx0XHRidXR0b246LW1vei1mb2N1c3JpbmcsXG5cdFx0W3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5cdFx0W3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblx0XHRbdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG5cdFx0XHRvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG5cdFx0fVxuXG5cdFx0ZmllbGRzZXQge1xuXHRcdFx0cGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xuXHRcdH1cblxuXHRcdGxlZ2VuZCB7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXHRcdH1cblxuXHRcdHByb2dyZXNzIHtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblx0XHR9XG5cblx0XHRbdHlwZT1cImNoZWNrYm94XCJdLFxuXHRcdFt0eXBlPVwicmFkaW9cIl0ge1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXG5cdFx0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5cdFx0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdH1cblxuXHRcdFt0eXBlPVwic2VhcmNoXCJdIHtcblx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuXHRcdFx0b3V0bGluZS1vZmZzZXQ6IC0ycHg7XG5cdFx0fVxuXG5cdFx0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuXHRcdFx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHRcdH1cblx0XHQ6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcblx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuXHRcdFx0Zm9udDogaW5oZXJpdDtcblx0XHR9XG5cblx0XHRbZGlzYWJsZWRdIHtcblx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHR9XG5cblx0fVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXHQvLyBFbWJlZGRlZCBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJGVtYmVkZGVkLWVsZW1lbnRzIHtcblxuXHRcdGltZyB7XG5cdFx0XHRib3JkZXItc3R5bGU6IG5vbmU7XG5cdFx0fVxuXG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblx0Ly8gVGV4dCBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJHRleHQtZWxlbWVudHMge1xuXG5cdFx0ZW0ge1xuXHRcdFx0Zm9udC1zdHlsZTppdGFsaWM7XG5cdFx0fVxuXG5cdFx0YSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOm5vbmU7XG5cdFx0XHR0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcblx0XHR9XG5cblx0XHRhYmJyW3RpdGxlXSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG5cdFx0fVxuXG5cdFx0Yiwgc3Ryb25nIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdH1cblxuXHRcdGNvZGUsXHRrYmQsIHNhbXAge1xuXHRcdFx0Zm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuXHRcdFx0Zm9udC1zaXplOiAxZW07XG5cdFx0fVxuXG5cdFx0c21hbGwge1xuXHRcdFx0Zm9udC1zaXplOiA4MCU7XG5cdFx0fVxuXG5cdFx0c3ViLCBzdXAge1xuXHRcdFx0Zm9udC1zaXplOiA3NSU7XG5cdFx0XHRsaW5lLWhlaWdodDogMDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblx0XHR9XG5cblx0XHRzdWIge1xuXHRcdFx0Ym90dG9tOiAtMC4yNWVtO1xuXHRcdH1cblxuXHRcdHN1cCB7XG5cdFx0XHR0b3A6IC0wLjVlbTtcblx0XHR9XG5cblx0XHR0ZXh0YXJlYSB7XG5cdFx0XHRyZXNpemU6bm9uZTtcblx0XHRcdG92ZXJmbG93OiBhdXRvO1xuXHRcdH1cblxuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cdC8vIERldmVsb3BtZW50IEVsZW1lbnRzXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXG5cdEBpZiAkZGV2LWVsZW1lbnRzIHtcblxuXHRcdHByZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO1xuXHRcdFx0Y29sb3I6YmxhY2s7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTpub25lO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOm5vbmU7XG5cdFx0XHR0ZXh0LWFsaWduOmxlZnQ7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0Zm9udC1zaXplOjE2cHg7XG5cdFx0XHRwYWRkaW5nOjE2cHg7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdHotaW5kZXg6OTk5O1xuXHRcdH1cblx0XHRcblx0XHRib2R5LmRldm1vZGUge1xuXHRcdFx0aW1nOm5vdChbYWx0XSkge1xuXHRcdFx0XHRib3JkZXI6IDJweCByZWQgZGFzaGVkO1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gR2xvYmFsIFN0eWxpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5ib2R5IHtcbiAgd2lkdGg6IDEwMHZ3O1xuICBAaW5jbHVkZSBicmVhay1vdXQobWluKSB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICB9XG59XG5cbjp3aGVyZSgqKSB7XG4gIHNjcm9sbC1tYXJnaW4tdG9wOiB2YXIoLS1uYXZpZ2F0aW9uLWhlaWdodCwgMnJlbSk7XG59XG5cbi5hc3luYy1oaWRlIHtcbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xufVxuXG5tYWluOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuZmlndXJlLmltYWdlLFxucGljdHVyZS5pbWFnZSB7XG4gIEBpbmNsdWRlIGltYWdlLXNyY3NldCgpO1xufVxuXG52aWRlby1jb250YWluZXIge1xuICBAaW5jbHVkZSB2aWRlby1jb250YWluZXIoKTtcbn1cblxuKjpoYXMoPiAuY29udGFpbmVyLWlubGluZSkge1xuICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG59XG5cbm1hcmsge1xuICBAaW5jbHVkZSBtYXJrKCk7XG59XG5cbmRldGFpbHMge1xuICBvdXRsaW5lOiBub25lO1xufVxuc3VtbWFyeSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgJjo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlcixcbiAgJjo6bWFya2VyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5idXR0b24ge1xuICBAaW5jbHVkZSBidXR0b24oKTtcbiAgJi5icm9jaHVyZSB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWJyb2NodXJlKCk7XG4gIH1cbiAgJi5yZWQgc3ZnIHtcbiAgICAmLnRpY2ssXG4gICAgJi5kb3dubG9hZCB7XG4gICAgICAtLXN0cm9rZTogI3skcmVkfTtcbiAgICB9XG4gIH1cbiAgJi5ibHVlIHN2ZyB7XG4gICAgJi50aWNrLFxuICAgICYuZG93bmxvYWQge1xuICAgICAgLS1zdHJva2U6ICN7JGJsdWV9O1xuICAgIH1cbiAgfVxuICAmLm91dGxpbmUgc3ZnIHtcbiAgICAmLnRpY2ssXG4gICAgJi5kb3dubG9hZCB7XG4gICAgICAtLXN0cm9rZTogI3skd2hpdGV9O1xuICAgIH1cbiAgfVxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgJi5yZWQge1xuICAgICAgc3ZnLnRpY2ssXG4gICAgICBzdmcuZG93bmxvYWQge1xuICAgICAgICAtLXN0cm9rZTogI3skd2hpdGV9O1xuICAgICAgfVxuICAgICAgJi5vdXRsaW5lIHN2ZyB7XG4gICAgICAgICYudGljayxcbiAgICAgICAgJi5kb3dubG9hZCB7XG4gICAgICAgICAgLS1zdHJva2U6ICN7JHJlZH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5ibHVlIHtcbiAgICAgIHN2Zy50aWNrLFxuICAgICAgc3ZnLmRvd25sb2FkIHtcbiAgICAgICAgLS1zdHJva2U6ICN7JHdoaXRlfTtcbiAgICAgIH1cbiAgICAgICYub3V0bGluZSBzdmcge1xuICAgICAgICAmLnRpY2ssXG4gICAgICAgICYuZG93bmxvYWQge1xuICAgICAgICAgIC0tc3Ryb2tlOiAjeyRibHVlfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLndoaXRlIHN2ZyB7XG4gICAgICAmLnRpY2ssXG4gICAgICAmLmRvd25sb2FkIHtcbiAgICAgICAgLS1zdHJva2U6ICN7JGJsdWV9O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5idXR0b24tY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWNvbnRhaW5lcigpO1xufVxuXG4uc3RpY2t5IHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwcHg7XG59XG5cbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgJjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbixcbiAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICY6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cbn1cblxuI2hvbGRpbmctcGFnZSB7XG4gIGhlYWRlciBzdmcge1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWstaW4oJ3NtYWxsLW1lZGl1bScpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogJGd1dHRlcjtcbiAgfVxufVxuXG5ib2R5I2Vycm9yLTQwNCB7XG4gIGhlYWRlciBoMiB7XG4gICAgbWF4LXdpZHRoOiA5MDBweDtcbiAgfVxuICBzZWFyY2gtYmFyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyMDtcbiAgICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkYmx1ZTtcbiAgICB9XG4gIH1cbn1cblxuYm9keSA+IC5pZGxlLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGJveC1zaGFkb3c6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBib3R0b206ICRndXR0ZXItO1xuICB6LWluZGV4OiAyO1xuXG4gIC8qIFN0YXJ0IGhpZGRlbiBiZWxvdyB2aWV3cG9ydCAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIC8qIEFuaW1hdGlvbiB3aXRoIGRlbGF5ZWQgc3RhcnQgKi9cbiAgYW5pbWF0aW9uOiBzbGlkZS1pbi1pZGxlLWRpYWxvZyBib3RoO1xuICBhbmltYXRpb24tdGltZWxpbmU6IHNjcm9sbCgpO1xuICBhbmltYXRpb24tcmFuZ2U6IGNhbGModmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDBweCkpIGNhbGModmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDBweCkgKyBjYWxjKGNsYW1wKDJyZW0sIDV2aCwgM3JlbSkgKiAyKSk7XG5cbiAgLmJ1dHRvbiB7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHJnYmEod2hpdGUsIDAuNSk7XG4gIH1cblxuICBAa2V5ZnJhbWVzIHNsaWRlLWluLWlkbGUtZGlhbG9nIHtcbiAgICB0byB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHJlbSk7XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3QgI2NvbnRhY3QtbW9kYWwge1xuICAgIC0tZGlhbG9nLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvdXI6ICN7JGdyZXkzfTtcbiAgICBmb3JtIC5zdWJtaXQtcm93IHtcbiAgICAgIG1hcmdpbi10b3A6ICRndXR0ZXI7XG4gICAgfVxuICB9XG59XG5cbmJvZHkgPiAuYmFjay10by10b3Age1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogJGd1dHRlcjtcbiAgcmlnaHQ6ICRndXR0ZXI7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2stdG8tdG9wLWJhY2tncm91bmQsICRibHVlMik7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHotaW5kZXg6IDk5OTk7XG4gIG9wYWNpdHk6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uLCBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLCBib3R0b20gJHRyYW5zaXRpb247XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgc3ZnIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHdpZHRoOiA1MCU7XG4gICAgdG9wOiAtNCU7XG4gIH1cbiAgQGluY2x1ZGUgaG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1saWdodCwgJHJlZCk7XG4gIH1cbn1cblxuZm9vdGVyI2Zvb3Rlci5pbi12aWV3IH4gLmJhY2stdG8tdG9wIHtcbiAgYm90dG9tOiAxMjBweDtcbn1cblxubmF2aWdhdGlvbi1iYXI6bm90KC5pbi12aWV3KSB+IC5iYWNrLXRvLXRvcCB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEJyZWFrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYnJlYWtcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBvdXQoJGJyZWFrcG9pbnQpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6I3skYnJlYWtwb2ludCArIDF9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGluKCRicmVha3BvaW50KSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiN7JGJyZWFrcG9pbnR9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGJldHdlZW4oJG1pbiwgJG1heCkge1xuICBAbWVkaWEgKG1pbi13aWR0aDojeyRtaW59KSBhbmQgKG1heC13aWR0aDojeyRtYXh9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEltYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjaW1hZ2Vcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ3Bvc2l0aW9uJztcblxuQG1peGluIHNyY3NldCgkcG9zaXRpb246ZmFsc2UpIHtcblxuICBkaXNwbGF5ICAgICAgICAgICAgIDogYmxvY2s7XG5cdGJhY2tncm91bmQtcG9zaXRpb24gOiB2YXIoLS1wb3NpdGlvbiwgY2VudGVyIDMzJSk7XG5cdGJhY2tncm91bmQtc2l6ZSAgICAgOiBjb3Zlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQgICA6IG5vLXJlcGVhdDtcblx0b3ZlcmZsb3cgICAgICAgICAgICA6IGhpZGRlbjtcblxuXHRAaWYgJHBvc2l0aW9uID09ICdleHBhbmRlZCcgeyBcblx0XHRAaW5jbHVkZSBwb3NpdGlvbi5leHBhbmRlZDtcblx0fSBAZWxzZSBpZiAkcG9zaXRpb24gPT0gJ2Jsb3dvdXQnIHsgXG5cdFx0QGluY2x1ZGUgcG9zaXRpb24uYmxvd291dDtcblx0fSBAZWxzZSB7XG5cdFx0cG9zaXRpb24gOiByZWxhdGl2ZTsgXG5cdH1cblx0XG4gIGltZyB7XG4gICAgZGlzcGxheSAgICAgICAgIDogYmxvY2s7XG4gICAgcG9zaXRpb24gICAgICAgIDogYWJzb2x1dGU7XG4gICAgb2JqZWN0LWZpdCAgICAgIDogY292ZXI7XG4gICAgb2JqZWN0LXBvc2l0aW9uIDogdmFyKC0taW1hZ2UtcG9zaXRpb24sIGNlbnRlciAzMy4zMyUpO1xuXHRcdHdpZHRoICAgICAgICAgICA6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcblx0XHRoZWlnaHQgICAgICAgICAgOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpOyBcblx0XHRtYXgtd2lkdGggICAgICAgOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG5cdFx0bWF4LWhlaWdodCAgICAgIDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcblx0XHR0b3AgICAgICAgICAgICAgOiAwOyBcblx0XHRsZWZ0ICAgICAgICAgICAgOiAwO1xuXHR9XG5cblx0QGNvbnRlbnQ7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBBc3BlY3QgUmF0aW8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYXNwZWN0LXJhdGlvXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlIFwic2FzczpzdHJpbmdcIjtcblxuLy8vIEBleGFtcGxlIEBpbmNsdWRlIGFzcGVjdC1yYXRpbygxNi85KVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvKCRyYXRpbyA6ICcxNi85Jykge1xuXG4gIC0tYXNwZWN0LXJhdGlvOiAje3N0cmluZy51bnF1b3RlKCRyYXRpbyl9O1xuICBhc3BlY3QtcmF0aW86IHZhcigtLWFzcGVjdC1yYXRpbyk7XG5cbiAgQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiAje3N0cmluZy51bnF1b3RlKCRyYXRpbyl9KSB7XG4gICAgYXNwZWN0LXJhdGlvOmluaXRpYWw7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJS8odmFyKC0tYXNwZWN0LXJhdGlvKSkpO1xuICAgIGhlaWdodDogMDtcbiAgICA+ICogeyBwb3NpdGlvbjogYWJzb2x1dGU7IH0gXG4gIH1cbn0iLCJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICdjb2xsZWN0aW9ucy9zdHlsaW5nL2FzcGVjdC1yYXRpbycgYXMgKjtcblxuQG1peGluIGNvbnRhaW5lcigkcmF0aW86JzE2LzknKSB7XG5cdFxuXHRAaW5jbHVkZSBhc3BlY3QtcmF0aW8oJHJhdGlvKTtcblxuXHRkaXNwbGF5ICAgICAgICAgIDogYmxvY2s7XG5cdHBvc2l0aW9uICAgICAgICAgOiByZWxhdGl2ZTtcblx0d2lkdGggICAgICAgICAgICA6IDEwMCU7XG5cdGJhY2tncm91bmQtY29sb3IgOiBibGFjaztcblxuXHRpZnJhbWUsIGNhbnZhcyB7XG5cdFx0cG9zaXRpb24gOiBhYnNvbHV0ZTtcblx0XHRkaXNwbGF5ICA6IGJsb2NrO1xuXHRcdHRvcCAgICAgIDogMDsgXG5cdFx0bGVmdCAgICAgOiAwO1xuXHRcdGhlaWdodCAgIDogMTAwJSAhaW1wb3J0YW50OyBcblx0XHR3aWR0aCAgICA6IDEwMCUgIWltcG9ydGFudDtcblx0fVxufSIsIkB1c2UgJy4uL192YXJpYWJsZXMnIGFzICo7XG5cbkBtaXhpbiBtYXJrKCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Vycy1tYXJrO1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoI3skYm9yZGVyLXJhZGl1c30gLyAyKTtcbiAgcGFkZGluZzowIDVweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb24sIGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb247XG59XG5cbkBtaXhpbiBtYXJrLXJlc2V0KCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbiAgcGFkZGluZzppbml0aWFsO1xuICB0cmFuc2l0aW9uOiBpbml0aWFsO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb2xvdXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLy8gRXhwbGljaXQgQ29sb3VycyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIEV4cGxpY2l0IGNvbG91cnMgYXJlIGEgd2hhdCB0aGV5IGFyZS4gR3JlZW4gaXMgZ3JlZW4sIGJsdWUgaXMgYmx1ZS4uLiBubyBvYnNjdXJpdHkuXG4vLy8gV2Ugc3VmZml4IG51bWJlcnMgdG8gZGVmaW5lIHZhcmlhdGlvbnMgb2YgY29sb3VycyBpbiBubyBwYXJ0aWN1bGFyIG9yZGVyIG9mIHNoYWRlLlxuLy8vIEV4YW1wbGU6IGdyZWVuMSwgZ3JlZW4yLCBncmVlbjMsIGdyZWVuNC4gVGhpcyBpcyBzbyB3ZSBjYW4gaW1taWRpYXRlbHkgc2VlIGhvd1xuLy8vIG1hbnkgb3B0aW9ucyB3ZSBoYXZlIGZvciBhIHNpbmdsZSBjb2xvdXIgYXQgYSBnbGFuY2UuIElmIHlvdSBzZWUgJGdyZWVuNCwgeW91IGtub3cgdGhpc1xuLy8vIHByb2plY3QgaXMgdXNpbmcgZm91ciB2YXJpYXRpb25zIG9mIGdyZWVuLiBUaGlzIGlzIGFsc28gb2Z0ZW4gdXNlZnVsIGJlY2F1c2UgbWFueSBkZXZlbG9wbWVudFxuLy8vIHRvb2xzIHdpbGwgYXV0by1zdWdnZXN0IGNvbG91cnMgd2l0aCBhY3R1YWwgZXhhbXBsZXMgb2YgdGhlIGNvbG91ci5cbi8vLyBUaGUgUGFsbGV0ZXMgbW9kdWxlIChhdCB0aGUgYm90dG9tIG9mIHRoaXMgZmlsZSkgd2lsbCBvdXRwdXQgc2hhZGVkIG5hbWVkIHZhcmlhdGlvbnMsXG4vLy8vIDxjb2xvdXI+LWRhcmsgYW5kIDxjb2xvdXI+LWxpZ2h0LiBJZiB5b3UgbmVlZCBhZGRpdGlvbmFsIHNoYWRlcyBwbGVhc2UgcmVmcmFpbSBmcm9tIGdvaW5nIGRvd25cbi8vLyB0aGUgJ2xpZ2h0ZXInLCAnbGlnaHRlc3QnLCAnZGFya2VyJywgJ2Rhcmtlc3QnIGNvbnZlbnRpb24uIFRoZXNlIGFyZSBub3QgcGFydGljdWFybHkgbGVnaWFibGVcbi8vLyBhbmQgdGhleSBhcmUgbGltaXRlZCBieSBob3cgY3JlYXRpdmUgKGNvbmZ1c2luZykgeW91ciB3b3JkaW5nIGNhbiBiZS5cbi8vLyBJdCBpcyBiZXR0ZXIgdG8gZGVmaW5lIGEgbmV3IGV4cGxjaXQgY29sb3VyIGVudGlyZWx5LlxuLy8vIEBzZWUgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS93aGF0LWRvLXlvdS1uYW1lLWNvbG9yLXZhcmlhYmxlcy9cblxuJGJsdWU6ICMxMzFmNmI7IC8vIFByaW1hcnlcbiRibHVlMjogIzI5MmI2ODsgLy8gTmFrZWQgTGlua1xuJGJsdWUzOiAjM2QzZjdmOyAvLyBMaWdudCBHcmFkaWVudFxuJGJsdWU0OiAjMTAxMjRkOyAvLyBEYXJrIEdyYWRpZW50XG4kYmx1ZTU6ICMwMDk1ZmY7IC8vIE5hdmlnYXRpb24gbGluayBob3ZlclxuLy8gJHJlZCAgICA6ICNFMDNBNDA7IC8vIFNlY29uZGFyeVxuJHJlZDogI2RmMzAzNTsgLy8gU2Vjb25kYXJ5IC0gVGhpcyBwYXNzZXMgdGhlIGNvbnRyYXN0IHJhdGlvIGFjY2Vzc2liaWxpdHkgdGVzdCBpbiBHb29nbGVzIExpZ2h0aG91c2VcbiRncmV5OiAjOTY5Njk1O1xuJGdyZXkyOiAjNmE2YTZhOyAvLyBGb250XG4kZ3JleTM6ICNmNGY0ZjQ7IC8vIExpZ2h0ZXIgR3JleSBCYWNrZ3JvdW5kXG4kZ3JleTQ6ICNkY2RjZGM7XG4kZ3JleTU6ICNiMWIxYjE7IC8vIFNwYWNlcnMgPGhyPlxuJGdyZXk2OiAjMzMzMjM2OyAvLyBOYXZpZ2F0aW9uIGxpbmsgaG92ZXJcbiRncmVlbjogIzUwYmMwODtcbiRncmVlbjI6ICM3NmJiMjg7IC8vIEVTRyBncmVlblxuJHllbGxvdzogI2Y2ZjRkYjsgLy8gRGlzY2xhaW1lciBCYWNrZ3JvdW5kXG4keWVsbG93MjogI2ZjYjAwMjtcbiRvcmFuZ2U6ICNmZjZhMDA7XG4kb3JhbmdlMjogI2RhOGIwZjtcbiRibGFjazogIzFlMWMxYztcblxuJG1hcms6ICRibHVlNTsgLy8gYmFja2dyb3VuZCBjb2xvdXIgZm9yIDxtYXJrPiB0YWdzXG5cbiRwcmltYXJ5OiB2YXIoLS1wcmltYXJ5LCAjeyRibHVlfSk7XG4kc2Vjb25kYXJ5OiB2YXIoLS1zZWNvbmRhcnksICN7JHJlZH0pO1xuXG4vLy8gUGFsZXR0ZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIEJ5IGxvYWRpbmcgY29uZmlndXJhdGlvbnMgaW50byB0aGlzICdwYWxsZXRlJyBtb2R1bGUsIHdlIHdpbGwgYmUgYWJsZVxuLy8vIHRvIGRlY2xhcmUgdmFyaWFudHMgb2YgYSBmZXcgY29tbW9uIGNvbG91cnMuIFlvdSBjYW4gYWxzbyBhZGp1c3QgdGhlIGxpZ2h0bmVzc1xuLy8vIG9yIGRhcmtuZXNzIG9mIGVhY2ggdmFyaWFudCBieSBwYXNzaW5nIGluIHRoZSByZWxldmFudCBwcml2YXRlIHJ1bGVzLlxuLy8vIFBhbGV0dGUgd2lsbCBhbHNvIGV4cG9zZSBwb3B1bGFyIHNvY2lhbCBtZWRpYSBjb2xvdXJzIGFuZCB0aGUgWWVsbG8gYnJhbmQgY29sb3VyLlxuLy8vIEBzZWUgaHR0cHM6Ly9zYXNzLWxhbmcuY29tL2RvY3VtZW50YXRpb24vYXQtcnVsZXMvZm9yd2FyZCNjb25maWd1cmluZy1tb2R1bGVzXG4vLy8gQG91dHB1dCAkZ3JlZW4gOiAjMDI5MjlBOyAkZ3JlZW4tZGFyayA6ICMyNTY1Njk7ICRncmVlbi1saWdodDogIzA0YjljNDtcblxuQGZvcndhcmQgJ2NyZWF0ZS9wYWxldHRlJyB3aXRoIChcbiAgJGJsdWU6ICRibHVlLFxuICAkcmVkOiAkcmVkLFxuICAkZ3JleTogJGdyZXksXG4gICR5ZWxsb3c6ICR5ZWxsb3csXG4gICRvcmFuZ2U6ICRvcmFuZ2UsXG4gICRncmVlbjogJGdyZWVuLFxuICAkYmxhY2s6ICRibGFja1xuKTtcblxuJG1hcDogKFxuICBibHVlOiAkYmx1ZSxcbiAgcmVkOiAkcmVkLFxuICBncmV5OiAkZ3JleTMsXG4gIHllbGxvdzogJHllbGxvdyxcbiAgb3JhbmdlOiAkb3JhbmdlLFxuICBncmVlbjogJGdyZWVuLFxuICBibGFjazogJGJsYWNrLFxuKTtcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCdXR0b25zXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnc3R5bGluZycgYXMgKjtcblxuQG1peGluIGJ1dHRvbigkY29sb3VyOiB2YXIoLS1wcmltYXJ5KSkge1xuICAvLyBTdGF0aWMgU3R5bGluZ1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI3skY29sb3VyfTtcbiAgLS1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1wYWRkaW5nOiA4cHggMjBweDtcbiAgLS1mb250LXNpemU6IDE2cHg7XG4gIC0tYm9yZGVyLXJhZGl1czogNTBweDtcblxuICAvLyBIb3ZlciAvIEFjdGl2ZSBzdHlsaW5nXG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICN7JGNvbG91cn07XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IGluaXRpYWw7XG4gIC0taG92ZXItcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIC0taG92ZXItZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xuICAtLWhvdmVyLWJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuXG4gIC0taWNvbi1zaXplOiAxLjFlbTtcblxuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmcpO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSksXG4gICAgYm9yZGVyIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSk7XG5cbiAgLy8gSWNvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogdmFyKC0taWNvbi1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLWljb24tc2l6ZSk7XG4gICAgb3JkZXI6IDM7XG4gICAgZmlsbDogdmFyKC0tZmlsbCwgY3VycmVudENvbG9yKTtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1pY29uLXNpemUpIC8gMik7XG4gICAgdHJhbnNpdGlvbjogZmlsbCB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UpLCBzdHJva2UgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlKTtcblxuICAgICZbY2xhc3MqPSdhcnJvdyddIHtcbiAgICAgIC0taWNvbi1zaXplOiAwLjllbTtcbiAgICB9XG4gICAgJi5hcnJvdy1sZWZ0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1pY29uLXNpemUpIC8gMik7XG4gICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG5cbiAgPiBzcGFuIHtcbiAgICBvcmRlcjogMjtcbiAgICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG4gIH1cblxuICAvLyBWYXJpYW50IERlY2xhcmF0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAmLnNtYWxsIHtcbiAgICBAaW5jbHVkZSBzbWFsbDtcbiAgfVxuICAmLmxhcmdlIHtcbiAgICBAaW5jbHVkZSBsYXJnZTtcbiAgfVxuICAmLm91dGxpbmUge1xuICAgIEBpbmNsdWRlIG91dGxpbmUtdGhlbWUoJGJsdWUpO1xuICB9XG5cbiAgJi5ibHVlIHtcbiAgICBAaW5jbHVkZSBzb2xpZC10aGVtZSgkYmx1ZSwgd2hpdGUpO1xuICAgICYub3V0bGluZSB7XG4gICAgICBAaW5jbHVkZSBvdXRsaW5lLXRoZW1lKCRibHVlLCAkd2hpdGUpO1xuICAgIH1cbiAgfVxuICAmLnJlZCB7XG4gICAgQGluY2x1ZGUgc29saWQtdGhlbWUoJHJlZCwgd2hpdGUpO1xuICAgICYub3V0bGluZSB7XG4gICAgICBAaW5jbHVkZSBvdXRsaW5lLXRoZW1lKCRyZWQsICR3aGl0ZSk7XG4gICAgfVxuICB9XG4gICYuZ3JlZW4ge1xuICAgIEBpbmNsdWRlIHNvbGlkLXRoZW1lKCRncmVlbjIsIHdoaXRlKTtcbiAgICAmLm91dGxpbmUge1xuICAgICAgQGluY2x1ZGUgb3V0bGluZS10aGVtZSgkZ3JlZW4yLCAkd2hpdGUpO1xuICAgIH1cbiAgfVxuICAmLndoaXRlIHtcbiAgICBAaW5jbHVkZSBzb2xpZC10aGVtZSgkd2hpdGUsICRwcmltYXJ5KTtcbiAgICAmLm91dGxpbmUge1xuICAgICAgQGluY2x1ZGUgb3V0bGluZS10aGVtZSgkd2hpdGUsICRwcmltYXJ5KTtcbiAgICB9XG4gIH1cbiAgJi5kaXNhYmxlZCB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgQGluY2x1ZGUgc29saWQtdGhlbWUoJGdyZXk0KTtcbiAgICAmLm91dGxpbmUge1xuICAgICAgQGluY2x1ZGUgb3V0bGluZS10aGVtZSgkZ3JleTQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvdmVyIFN0YXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIEBpbmNsdWRlIGhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0taG92ZXItZm9udC1jb2xvdXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWhvdmVyLWJvcmRlci1jb2xvdXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWhvdmVyLWJvcmRlci1yYWRpdXMpO1xuICAgIHBhZGRpbmc6IHZhcigtLWhvdmVyLXBhZGRpbmcpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0taG92ZXItZm9udC1zaXplKTtcbiAgfVxufVxuXG4vLy8gTGFyZ2UgQnV0dG9uID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIFRoZXNlIGV4dGVuZCB0aGUgc3R5bGluZyBvZiBtYXJrdXAgZWxlbWVudHMgd2l0aCB0aGUgLmJ1dHR0b24gY2xhc3Ncbi8vLyBAY29udGVudCBpcyBwYXNzZWQgdGhyb3VnaCBpcyBmb3IgdGhlIGhvdmVyIHN0YXRlIG9ubHkuXG4vLy8gQGV4YW1wbGVcbi8vLyAuYnV0dG9uIHtcbi8vLyAgIEBpbmNsdWRlIGJ1dHRvbi1sYXJnZSB7XG4vLy8gICAgIC0tYmFja2dyb3VuZC1jb2xvdXIgOiBncmVlbjtcbi8vLyAgICAgLS1mb250LWNvbG91ciAgICAgOiByZWQ7XG4vLy8gICB9XG4vLy8gfVxuXG5AbWl4aW4gbGFyZ2Uge1xuICAtLXBhZGRpbmc6IDEycHggMjRweDtcbiAgLS1mb250LXNpemU6IDI0cHg7XG4gIEBjb250ZW50O1xufVxuXG4vLy8gU21hbGwgQnV0dG9uID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIFRoZXNlIGV4dGVuZCB0aGUgc3R5bGluZyBvZiBtYXJrdXAgZWxlbWVudHMgd2l0aCB0aGUgLmJ1dHR0b24gY2xhc3Ncbi8vLyBAY29udGVudCBpcyBwYXNzZWQgdGhyb3VnaCBpcyBmb3IgdGhlIGhvdmVyIHN0YXRlIG9ubHkuXG4vLy8gQGV4YW1wbGVcbi8vLyAuYnV0dG9uIHtcbi8vLyAgIEBpbmNsdWRlIGJ1dHRvbi1zbWFsbCB7XG4vLy8gICAgIC0tYmFja2dyb3VuZC1jb2xvdXIgOiBncmVlbjtcbi8vLyAgICAgLS1mb250LWNvbG91ciAgICAgOiByZWQ7XG4vLy8gICB9XG4vLy8gfVxuXG5AbWl4aW4gc21hbGwge1xuICAtLXBhZGRpbmc6IDZweCAxOHB4O1xuICAtLWZvbnQtc2l6ZTogMTJweDtcblxuICBzdmcge1xuICAgIG1hcmdpbi1sZWZ0OiAkZ2FwMDtcbiAgICAmLmFycm93LWxlZnQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2FwMDtcbiAgICB9XG4gIH1cblxuICBAY29udGVudDtcbn1cblxuLy8vIFZhcmllbnQgU3R5bGluZyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQG1peGluIHNvbGlkLXRoZW1lKCRzdGF0aWM6ICRwcmltYXJ5LCAkaG92ZXI6IHdoaXRlKSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICN7JHN0YXRpY307XG4gIC0tZm9udC1jb2xvdXI6ICN7JGhvdmVyfTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogI3skaG92ZXJ9O1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjeyRzdGF0aWN9O1xufVxuXG5AbWl4aW4gb3V0bGluZS10aGVtZSgkc3RhdGljOiAkcHJpbWFyeSwgJGhvdmVyOiB0cmFuc3BhcmVudCkge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogI3skc3RhdGljfTtcbiAgLS1ib3JkZXItY29sb3VyOiAjeyRzdGF0aWN9O1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjeyRzdGF0aWN9O1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAje2lmKCRob3ZlciA9PSB0cmFuc3BhcmVudCwgJHN0YXRpYywgJGhvdmVyKX07XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG59XG5cbi8vLyBCdXR0b24gQ29udGFpbmVyID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBtaXhpbiBjb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvLyBtYXJnaW4tbGVmdDokZ2FwMC07XG4gIC8vIHdpZHRoOmNhbGMoMTAwJSArICN7JGdhcH0pO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGdhcDogJGdhcDA7XG4gIC5idXR0b24ge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuLy8vIEJlc3Bva2UgQnV0dG9ucyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQG1peGluIGJyb2NodXJlIHtcbiAgLS1mb250LWNvbG91cjogI3skYmx1ZX07XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLXBhZGRpbmc6IDVweCAwcHg7XG4gIC0taWNvbi1zaXplOiAzMnB4O1xuICAtLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWJvcmRlci1yYWRpdXM6IDA7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICN7JHJlZH07XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuXG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgc3ZnIHtcbiAgICBtYXJnaW4tcmlnaHQ6ICRnYXAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGZpbGw6ICRyZWQ7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVbml0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptZXRhJztcblxuLy8gVGhpcyB1bml0cyBjcmVhdG9yIHdpbGwgcmVuZGVyIHNpeCBwb3NpdGl2ZSBhbmQgc2l4IG5lZ2F0aXZlIHNhc3MgdmFyaWFibGVzIGZvciBcbi8vIGdhcHMsIHNwYWNlcnMsIGFuZCBndXR0ZXJzIHJlbGF0aXZlIHRvIHRoZSBiYXNldiB2YWx1ZXMgZGVmaW5lZCBiZWxvdy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCYXNlIFZhbHVlcyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vY29kZXBlbi5pby9tYXJrbm90dG9uL3Blbi9FeFBiTkdlXG5cbi8vIFRoZXNlIHRocmVlIHZhbHVlcyB3aWxsIGFjdCBhIGNvbnN0YW50IGJhc2VsaW5lIGZvciBhbGwgZm9sbG93aW5nIHVuaXQgZGVsY2FyYXRpb25zLlxuXG4vLyBHYXBzIG11c3QgdXNlIGFuIGFic29sdXRlIGFuZCBzdGF0aWMgJ3B4JyB1bml0LiBJdCBzaG91bGQgbm90IGJlIHJlbGF0aXZlIHRvIGFueVxuLy8gcGFyZW50IGNvbnRhaW5lciBhbmQgaXMgbm90IGludGVuZGVkIGZvciBmb250IHNpemVzLCBzbyB5b3Ugc2hvdWxkIG5vdCB1c2UgJ3JlbScgb3IgJ2VtJy4gXG4kZ2FwIDogMTZweCAhZGVmYXVsdDtcbiRiYXNlLWdhcCA6ICRnYXA7XG5cbi8vIFNwYWNlcnMgbXVzdCB1c2UgYSAndmgnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IGhlaWdodC13aXNlLlxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zIG9uIGEgY29tcG9uZW50IGxldmVsLlxuJHNwYWNlciA6IDR2aCAhZGVmYXVsdDsgXG4kYmFzZS1zcGFjZXIgOiAkc3BhY2VyOyBcblxuLy8gR3V0dGVycyBtdXN0IHVzZSBhICd2dycgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgd2lkdGgtd2lzZS4gXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb3IgbWFyZ2luIG9uIGEgcGFyZW50IGxldmVsLlxuLy8gQXMgYSBzdWdnZXN0aW9uLCB0aGlzIGd1dHRlciBjb25zdGFudCBzaG91bGQgYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgc3BhY2VyIHZhbHVlLlxuJGd1dHRlciA6IDN2dyAhZGVmYXVsdDtcbiRiYXNlLWd1dHRlciA6ICRndXR0ZXI7IFxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQXNib2x1dGUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBHYXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR2FwcyBhcmUgYW4gYWJzb2x1dGUgdW5pdCAocHgpIGludGVuZGVkIHRvIGJlIHVzZWQgb24gaW5kaXZpZHVhbCBlbGVtZW50cyB3aXRoaW4gYSBjb21wb25lbnRlZC4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHNwYWNpbmcgYW1vbmdzdCBibG9jaywgaW5saW5lLCB0YWJsZSBhbmQgZ3JvdXAgaHRtbCBlbGVtZW50cy5cblxuQGZ1bmN0aW9uIGdhcCgkYW1vdW50IDogMSkge1xuICBAaWYgKCAkYW1vdW50ID09IDEgKSB7IFxuICAgIEByZXR1cm4gdmFyKC0tZ2FwKTsgXG4gIH0gQGVsc2UgeyBcbiAgICBAcmV0dXJuIGNhbGModmFyKC0tZ2FwKSAqICN7JGFtb3VudH0pOyBcbiAgfVxufVxuXG4kZ2FwMCA6IGdhcCgwLjUpOyAkZ2FwMC0gOiBnYXAoLTAuNSk7XG4kZ2FwICA6IGdhcCgxKTsgICAkZ2FwLSAgOiBnYXAoLTEpO1xuJGdhcDIgOiBnYXAoMik7ICAgJGdhcDItIDogZ2FwKC0yKTtcbiRnYXAzIDogZ2FwKDMpOyAgICRnYXAzLSA6IGdhcCgtMyk7XG4kZ2FwNCA6IGdhcCg0KTsgICAkZ2FwNC0gOiBnYXAoLTQpO1xuJGdhcDUgOiBnYXAoNSk7ICAgJGdhcDUtIDogZ2FwKC01KTtcbiRnYXA2IDogZ2FwKDYpOyAgICRnYXA2LSA6IGdhcCgtNik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZWxhdGl2ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBmdW5jdGlvbiBfZHluYW1pYy11bml0KCRjdXN0b20tcHJvcGVydHksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcblxuICAvLyBDYWxjIE1ldGhvZFxuICAkcmVzdWx0IDogY2FsYygoI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0pICsgI3tpZigkbWluID09IDAsIDBweCwgJG1pbil9KTtcbiAgXG4gIC8vIENsYW1wIE1ldGhvZFxuICBAaWYgKCAkdXNlLWNsYW1wICkge1xuICAgIEBpZiAoICRhbW91bnQgPT0gMCApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgje21hdGguZGl2KCRtaW4sIDIpfSwgI3skY3VzdG9tLXByb3BlcnR5fSAqIDAuNSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSBpZiAoICRhbW91bnQgPT0gMSApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSwgI3skbWF4fSk7XG4gICAgfVxuICB9IFxuXG4gIEBpZiAoICR1c2UtbmVnYXRpdmUgKSB7XG4gICAgJHJlc3VsdCA6IGNhbGMoLTEgKiAjeyRyZXN1bHR9KTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcblxufSBcblxuLy8gU3BhY2VycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNwYWNlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgaGVpZ2h0ICh2aCkgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgY29tcG9uZW50ZWQgbGV2ZWwuXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gU3BhY2VycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkc3BhY2VyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdmggc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gc3BhY2VyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLXNwYWNlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kc3BhY2VyMCA6IHZhcigtLXNwYWNlcjApOyAkc3BhY2VyMC0gOiB2YXIoLS1zcGFjZXIwLSk7XG4kc3BhY2VyICA6IHZhcigtLXNwYWNlcjEpOyAkc3BhY2VyLSAgOiB2YXIoLS1zcGFjZXIxLSk7XG4kc3BhY2VyMiA6IHZhcigtLXNwYWNlcjIpOyAkc3BhY2VyMi0gOiB2YXIoLS1zcGFjZXIyLSk7XG4kc3BhY2VyMyA6IHZhcigtLXNwYWNlcjMpOyAkc3BhY2VyMy0gOiB2YXIoLS1zcGFjZXIzLSk7XG4kc3BhY2VyNCA6IHZhcigtLXNwYWNlcjQpOyAkc3BhY2VyNC0gOiB2YXIoLS1zcGFjZXI0LSk7XG4kc3BhY2VyNSA6IHZhcigtLXNwYWNlcjUpOyAkc3BhY2VyNS0gOiB2YXIoLS1zcGFjZXI1LSk7XG4kc3BhY2VyNiA6IHZhcigtLXNwYWNlcjYpOyAkc3BhY2VyNi0gOiB2YXIoLS1zcGFjZXI2LSk7XG5cbi8vIEd1dHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHdXR0ZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IHdpZHRoICh2dykgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgcGFyZW50IGxldmVsO1xuLy8gZm9yIGV4YW1wbGUsIGEgd3JhcHBlciBjb250YWluZXIgb3IgYm9keSB3aXRoIG5lc3RlZCBjb21wb25lbnRzLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgbGVmdCBhbmQgcmlnaHQgc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBHdXR0ZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRndXR0ZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2dyBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBndXR0ZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tZ3V0dGVyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRndXR0ZXIwIDogdmFyKC0tZ3V0dGVyMCk7ICRndXR0ZXIwLSA6IHZhcigtLWd1dHRlcjAtKTtcbiRndXR0ZXIgIDogdmFyKC0tZ3V0dGVyMSk7ICRndXR0ZXItICA6IHZhcigtLWd1dHRlcjEtKTtcbiRndXR0ZXIyIDogdmFyKC0tZ3V0dGVyMik7ICRndXR0ZXIyLSA6IHZhcigtLWd1dHRlcjItKTtcbiRndXR0ZXIzIDogdmFyKC0tZ3V0dGVyMyk7ICRndXR0ZXIzLSA6IHZhcigtLWd1dHRlcjMtKTtcbiRndXR0ZXI0IDogdmFyKC0tZ3V0dGVyNCk7ICRndXR0ZXI0LSA6IHZhcigtLWd1dHRlcjQtKTtcbiRndXR0ZXI1IDogdmFyKC0tZ3V0dGVyNSk7ICRndXR0ZXI1LSA6IHZhcigtLWd1dHRlcjUtKTtcbiRndXR0ZXI2IDogdmFyKC0tZ3V0dGVyNik7ICRndXR0ZXI2LSA6IHZhcigtLWd1dHRlcjYtKTtcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gSG92ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNob3ZlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGhvdmVyKCRzZWxlY3RvciA6IG51bGwpIHtcbiAgQG1lZGlhICggaG92ZXIgOiBob3ZlciApIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkc2VsZWN0b3Ige1xuICAgICYjeyRzZWxlY3Rvcn0geyBcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEN1c3RvbSBQcm9wZXJ0aWVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdfbW9kdWxlcycgYXMgKjtcbkB1c2UgJ3Nhc3M6bWF0aCc7XG5cbjpyb290IHtcblxuICAvLyBDb2xvdXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAtLXByaW1hcnkgICAgICAgICA6ICN7JGJsdWV9OyBcbiAgLS1zZWNvbmRhcnkgICAgICAgOiAjeyRyZWR9OyBcblxuICAvLyBCcmVha3BvaW50cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAtLWJyZWFrcG9pbnQtI3skbmFtZX0gOiAjeyR2YWx1ZX07XG4gIH1cblxuICAvLyBGb250cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgXG4gIC0tZm9udC1jb2xvdXIgICAgICAgIDogI3skZm9udC1jb2xvdXJ9O1xuICAtLWhlYWRpbmctY29sb3VyICAgICA6ICN7dmFyKC0tcHJpbWFyeSwgJGJsdWUpfTtcbiAgLS1zdWItaGVhZGluZy1jb2xvdXIgOiAje3ZhcigtLXNlY29uZGFyeSwgJHJlZCl9O1xuXG4gIC8vIFRyYW5zaXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbiA6ICN7JHRyYW5zaXRpb24tZHVyYXRpb259O1xuICAtLXRyYW5zaXRpb24tZWFzZSAgICAgOiAjeyR0cmFuc2l0aW9uLWVhc2V9O1xuICAtLXRyYW5zaXRpb24tZGVsYXkgICAgOiAjeyR0cmFuc2l0aW9uLWRlbGF5fTtcblxuICAvLyBMYXlvdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAtLWJyZWFkY3J1bWItaGVpZ2h0IDogOTBweDtcbiAgLS1hbmNob3JzLWhlaWdodCA6IDYwcHg7XG4gIC0tYnJlYWRjcnVtYi1hbmQtYW5jaG9ycy1zdGlja3ktdW5kZXJzZXQgOiAtMTVweDtcbiAgLS1tYWluLW1heC13aWR0aCA6IDkwMHB4O1xuICAtLW5hdmlnYXRpb24taGVpZ2h0OiAxNDNweDtcblxuICAtLXNpZGViYXItd2lkdGggOiBjbGFtcCgjeyRzaWRlYmFyLXdpZHRoIC0gbWF0aC5kaXYoJHNpZGViYXItd2lkdGgsIDEwMCkgKiA0MH0sIDMwdncsICN7JHNpZGViYXItd2lkdGh9KTtcbiAgXG4gIEBzdXBwb3J0cyBub3QgKCB3aWR0aDpjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcbiAgICAtLXNpZGViYXItd2lkdGggOiAjeyRzaWRlYmFyLXdpZHRofTtcbiAgICBAaW5jbHVkZSBicmVhay1pbihsYXJnZSkge1xuICAgICAgLS1zaWRlYmFyLXdpZHRoIDogMzAwcHg7XG4gICAgfVxuICB9XG5cbiAgLy8gVW5pdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLS1nYXAgICAgOiAjeyRiYXNlLWdhcH07XG4gIC0tZ3V0dGVyIDogI3skYmFzZS1ndXR0ZXJ9O1xuICAtLXNwYWNlciA6ICN7JGJhc2Utc3BhY2VyfTtcbiBcbiAgLy8vIFNldCB0aGUgZ3V0dGVycyBhbmQgc3BhY2VycyB3aXRoIGNsYW1wIFxuICAvLy8gQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvY2xhbXBcbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCA2IHtcblxuICAgIC0tZ3V0dGVyI3skaX0gIDogI3tndXR0ZXIoJGkpfTsgXG4gICAgLS1ndXR0ZXIjeyRpfS0gOiAje2d1dHRlcigkaSwgJHVzZS1uZWdhdGl2ZSA6IHRydWUpfTtcblxuICAgICRzcGFjZXItZ3Jvd3RoIDogaWYoJGkgPT0gMCwgMSwgJGkgKiAzKTtcbiAgICAtLXNwYWNlciN7JGl9ICA6ICN7c3BhY2VyKCRzcGFjZXItZ3Jvd3RoKX07IFxuICAgIC0tc3BhY2VyI3skaX0tIDogI3tzcGFjZXIoJHNwYWNlci1ncm93dGgsICR1c2UtbmVnYXRpdmUgOiB0cnVlKX07XG4gIH1cbiAgXG4gIC8vLyBTZXRzIHRoZSBndXR0ZXJzIGFuZCBzcGFjZXJzIHVzaW5nIHRoZSBjYWxjIFxuICAvLy8gbWV0aG9kIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgY2xhbXBcbiAgQHN1cHBvcnRzIG5vdCAoIHdpZHRoOmNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggNiB7XG5cbiAgICAgIC0tZ3V0dGVyI3skaX0gIDogI3tndXR0ZXIoJGksICR1c2UtY2xhbXAgOiBmYWxzZSApfTsgXG4gICAgICAtLWd1dHRlciN7JGl9LSA6ICN7Z3V0dGVyKCRpLCAkdXNlLWNsYW1wIDogZmFsc2UsICR1c2UtbmVnYXRpdmUgOiB0cnVlICl9O1xuXG4gICAgICAkc3BhY2VyLWdyb3d0aCA6IGlmKCRpID09IDAsIDIsICRpICogNCk7XG4gICAgICAtLXNwYWNlciN7JGl9ICA6ICN7c3BhY2VyKCRzcGFjZXItZ3Jvd3RoLCAkdXNlLWNsYW1wIDogZmFsc2UgKX07IFxuICAgICAgLS1zcGFjZXIjeyRpfS0gOiAje3NwYWNlcigkc3BhY2VyLWdyb3d0aCwgJHVzZS1jbGFtcCA6IGZhbHNlLCAkdXNlLW5lZ2F0aXZlIDogdHJ1ZSApfTtcbiAgICB9ICAgIFxuICB9XG5cbiAgLy8vIFRoaXMgaXMgdGhlIGNhbGN1bGF0ZWQgd2lkdGggb2YgYSBzaW5nbGUgZ3V0dGVyIHRoYXQgb2NjdXJzIHdoZW4gdGhlIHVzZXJzXG4gIC8vLyB2aWV3cG9ydCBpcyBsYXJnZXIgdGhhbiB0aGUgbGFyZ2VzdCBtZWRpYSBxdWVyeSBicmVha3BvaW50LiBQcmltYXJseSB1c2VkIHRvXG4gIC8vLyBvZmZzZXQgb3ZlcmJsb3duIGNvbnRlbnQgZm9yIHByZXZlbnRpbmcgaG9yaXpvbnRhbCBzY3JvbGxpbmcgb24gdGhlIDxib2R5Pi5cbiAgLy8gLS1jb21wdXRlZC1ndXR0ZXIgOiBjYWxjKCgoMTAwdncgLSAje3ZhcigtLWJyZWFrcG9pbnQtbWF4KX0pIC8gMikgLSAje3ZhcigtLWd1dHRlcjIpfSk7XG4gIC0tY29tcHV0ZWQtZ3V0dGVyIDogY2FsYygoKDEwMHZ3IC0gI3t2YXIoLS1icmVha3BvaW50LW1heCl9KSAvIDIpKTtcblxuXG59IiwiLy8vIEdsb2JhbCB0eXBvZ3JhcGhpYyBzdHlsaW5nIHRoYXQgZWZmZWN0cyBldmVyeXRoaW5nLlxuLy8vIElmIHlvdSB3YW50IHRvIHVwZGF0ZSBzdHlsaW5nIGZvciBjb250ZW50IGJsb2NrIHRleHQgZmllbGRzLCBpbnRyb2R1Y3Rpb24gZmllbGRzLFxuLy8vIG9yIGFueXRoaW5nIGFzc2lnbmVkIGEgLnRleHQgY2xhc3Mgb24gaXQncyBjb250YWluZXIgdGhlbiBlZGl0IHRoaXMgZmlsZTpcbi8vLyBAc2VlIC9zcmMvc2Fzcy9jb21wb25lbnRzL3RleHRcblxuQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2xhdG8nO1xuICBzcmM6IHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1ib2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLWJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnbGF0byc7XG4gIHNyYzogdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1zZW1pYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1zZW1pYm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1zZW1pYm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdsYXRvJztcbiAgc3JjOiB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tcmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1yZWd1bGFyLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ21vbnRzZXJyYXQnO1xuICBzcmM6IHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnbW9udHNlcnJhdCc7XG4gIHNyYzogdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0taXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS1pdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgIHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLWl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdtb250c2VycmF0JztcbiAgc3JjOiB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbmJvZHkge1xuICBAaW5jbHVkZSBmb250LW1vbnRzZXJyYXQoKTtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyLCAkZm9udC1jb2xvdXIpO1xuICBsaW5lLWhlaWdodDogJGZvbnQtbGluZS1oZWlnaHQ7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250c2l6ZSgkZm9udC1zaXplLW1pbiwgJGZvbnQtc2l6ZS1tYXgpO1xufVxuXG5oMSB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDE7XG59XG5oMiB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDI7XG59XG5oMyB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDM7XG59XG5oNCB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDQ7XG59XG5oNSB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDU7XG59XG5oNiB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDY7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIEBpbmNsdWRlIGZvbnQtbGF0byhib2xkKTtcbiAgY29sb3I6IHZhcigtLWhlYWRpbmctY29sb3VyLCB2YXIoLS1mb250LWNvbG91cikpO1xuICB0ZXh0LXdyYXA6IHByZXR0eTtcblxuICAmLnN1Yi1oZWFkaW5nIHtcbiAgICBjb2xvcjogdmFyKC0tc3ViLWhlYWRpbmctY29sb3VyKTtcbiAgICBAaW5jbHVkZSBmb250LWxhdG8oc2VtaS1ib2xkKTtcbiAgfVxuXG4gIHNwYW4sXG4gIHN0cm9uZyxcbiAgcCB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIH1cbn1cblxucSxcbmJsb2NrcXVvdGUge1xuICBxdW90ZXM6ICfigJwnICfigJ0nICfigJgnICfigJknO1xuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IG9wZW4tcXVvdGU7XG4gIH1cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IGNsb3NlLXF1b3RlO1xuICB9XG59XG5cbmEge1xuICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXI7XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gICYuZXh0ZXJuYWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgc3ZnLmV4dGVybmFsLWxpbmsge1xuICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgd2lkdGg6IDAuOGVtO1xuICAgICAgaGVpZ2h0OiAwLjhlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgICB9XG4gIH1cbn1cblxub2wsXG51bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbn1cblxubGkge1xuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDJweDtcbiAgfVxufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogZm9udC1zaXplKDEwKTtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbn1cblxuaHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1oci1jb2xvdXIsICRncmV5NCk7XG4gIG1hcmdpbi10b3A6ICRzcGFjZXIwO1xuICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyMDtcbn1cblxuLm5vdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmNWJmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZlMTNjO1xuICBwYWRkaW5nOiAkZ3V0dGVyO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY29sb3I6ICM5NzgwMDI7XG4gIH1cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnUGxlYXNlIE5vdGUnO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogIzk3ODAwMjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2FwMDtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBGb250XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdjb2xvdXJzJyBhcyAqO1xuXG4kY29sb3VyICAgICAgOiAkZ3JleTI7XG4kc2l6ZSAgICAgICAgOiAxLjVyZW0gIWRlZmF1bHQ7XG4kc2l6ZS1taW4gICAgOiAxLjRyZW0gIWRlZmF1bHQ7IFxuJHNpemUtbWF4ICAgIDogMS42cmVtICFkZWZhdWx0OyBcbiRsaW5lLWhlaWdodCA6IDEuNiAhZGVmYXVsdDsgXG5cbiRzaXplLWgxICAgICA6IDYuMWVtICFkZWZhdWx0O1xuJHNpemUtaDEtbWluIDogNGVtICFkZWZhdWx0O1xuJHNpemUtaDIgICAgIDogMy4yZW0gIWRlZmF1bHQ7XG4kc2l6ZS1oMyAgICAgOiAyLjVlbSAhZGVmYXVsdDtcbiRzaXplLWg0ICAgICA6IDEuN2VtICFkZWZhdWx0O1xuJHNpemUtaDUgICAgIDogMS43ZW0gIWRlZmF1bHQ7XG4kc2l6ZS1oNiAgICAgOiAxLjdlbSAhZGVmYXVsdDtcbiAgXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIExhdG8gRm9udFxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBUaGlzIGZvbnQgaXQgcHJpbWFyaWx5IHVzZWQgZm9yIGhlYWRpbmdzICg8aCo+IHRhZ3MpXG4vLy8gQGV4YW1wbGUgQGluY2x1ZGUgZm9udC1sYXRvKGJvbGQpXG5cbkBtaXhpbiBsYXRvKCR3ZWlnaHQ6cmVndWxhcikge1xuXG4gIGZvbnQtZmFtaWx5OmxhdG8sIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcblxuICBAaWYgKCAkd2VpZ2h0ID09ICdyZWd1bGFyJykge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIH0gQGVsc2UgaWYgKCAkd2VpZ2h0ID09ICdzZW1pLWJvbGQnIG9yICR3ZWlnaHQgPT0gJ3NlbWlib2xkJykge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH0gQGVsc2UgaWYgKCAkd2VpZ2h0ID09ICdib2xkJykge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cblxuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIE1vbnRzZXJyYXQgRm9udFxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBUaGlzIGlzIHRoZSBiYXNlIGZvbnQgdXNlZCBmb3IgYWxsIHN0YW5kYXJkIGNvcHkgdGhyb3VnaG91dCB0aGUgc2l0ZS5cbi8vLyBAZXhhbXBsZSBAaW5jbHVkZSBmb250LW1vbnRzZXJyYXQoKVxuXG5AbWl4aW4gbW9udHNlcnJhdCgkd2VpZ2h0OnJlZ3VsYXIpIHtcblxuICBmb250LWZhbWlseTptb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICBcbiAgQGlmICggJHdlaWdodCA9PSAncmVndWxhcicpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfSBAZWxzZSBpZiAoICR3ZWlnaHQgPT0gJ2l0YWxpYycpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfSBAZWxzZSBpZiAoICR3ZWlnaHQgPT0gJ2JvbGQnKSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cblxuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBSZXNwb25zaXZlIEZvbnRzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNyZXNwb25zaXZlLWZvbnRzaXplXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICcuLi9oZWxwZXJzL2JyZWFrJztcbkB1c2UgXCJzYXNzOm1hcFwiO1xuXG5AbWl4aW4gcmVzcG9uc2l2ZS1mb250c2l6ZSgkbWluLCAkbWF4LCAkc2NhbGVyIDogMS41dncsICRicmVha3BvaW50cyA6IChtaW46OTUwcHgsIG1heDoxNjAwcHgpKSB7XG4gIFxuXHQvLyBSZXNwb25zaXZlIGZvbnRzaXplXG4gIEBzdXBwb3J0cyAoIHdpZHRoOmNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICAgIGZvbnQtc2l6ZTpjbGFtcCgjeyRtaW59LCAjeyRzY2FsZXJ9LCAjeyRtYXh9KTsgICBcblx0fVxuXG5cdC8vIFJlc3BvbnNpdmUgZm9udHNpemUgZmFsbGJhY2sgZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCAnY2xhbXAnXG5cdEBzdXBwb3J0cyBub3QgKHdpZHRoOmNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuXHRcdEBpbmNsdWRlIGJyZWFrLmluKG1hcC5nZXQoJGJyZWFrcG9pbnRzLCAnbWluJykpIHsgZm9udC1zaXplOiRtaW47IH1cblx0XHRAaW5jbHVkZSBicmVhay5vdXQobWFwLmdldCgkYnJlYWtwb2ludHMsICdtYXgnKSkgeyBmb250LXNpemU6JG1heDsgfVxuXHR9XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhlYWRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdzYXNzOnN0cmluZyc7XG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICdzYXNzOm1ldGEnO1xuQHVzZSAnc2FzczptYXRoJztcbkB1c2UgJy4vY29sbGVjdGlvbnMvZm9udCc7XG5AdXNlICcuL21vZHVsZXMvdW5pdCc7XG5cbi8vIERlZmF1bHQgSGVhZGluZyBWYWx1ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoMSA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDMuMHJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuMVxuKSAhZGVmYXVsdDtcblxuJGgyIDogKFxuICAnZm9udC1zaXplJyAgIDogMi41cmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS4zXG4pICFkZWZhdWx0O1xuXG4kaDMgOiAoXG4gICdmb250LXNpemUnICAgOiAyLjJyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRoNCA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDIuMHJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGg1IDogKFxuICAnZm9udC1zaXplJyAgIDogMS44cmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kaDYgOiAoXG4gICdmb250LXNpemUnICAgOiAxLjZyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRiYXNlIDogNjIuNSAhZGVmYXVsdDtcbiRzY2FsZXIgOiAxLjV2dyAhZGVmYXVsdDtcbiRlbmFibGUtY3JvcHBpbmcgOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRmFsbGJhY2sgTGluZS1oZWlnaHRzIHNob3VsZCB0aGV5IG5vdCBoYXZlIGJlZW4gcGFzc2VkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDEsIFwibGluZS1oZWlnaHRcIikgeyAkaDEgOiBtYXAuc2V0KCRoMSwgJ2xpbmUtaGVpZ2h0JywgMS4xKTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDIsIFwibGluZS1oZWlnaHRcIikgeyAkaDIgOiBtYXAuc2V0KCRoMiwgJ2xpbmUtaGVpZ2h0JywgMS4zKTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDMsIFwibGluZS1oZWlnaHRcIikgeyAkaDMgOiBtYXAuc2V0KCRoMywgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDQsIFwibGluZS1oZWlnaHRcIikgeyAkaDQgOiBtYXAuc2V0KCRoNCwgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDUsIFwibGluZS1oZWlnaHRcIikgeyAkaDUgOiBtYXAuc2V0KCRoNSwgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDYsIFwibGluZS1oZWlnaHRcIikgeyAkaDYgOiBtYXAuc2V0KCRoNiwgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuXG4vLyBEZWZpbmUgdGhlIHZhcmlhYmxlcyBzbyB0aGV5IGFyZSBzdGlsbCBhY2Nlc2libGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaDEtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGgxLCAnZm9udC1zaXplJyk7XG4kaDEtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGgxLCAnbGluZS1oZWlnaHQnKTtcbiRoMS1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGgxLCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGgxLCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoMS1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGgxLCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDEsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGgyLWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoMiwgJ2ZvbnQtc2l6ZScpO1xuJGgyLWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoMiwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDItZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoMiwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoMiwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDItc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoMiwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGgyLCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoMy1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDMsICdmb250LXNpemUnKTtcbiRoMy1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDMsICdsaW5lLWhlaWdodCcpO1xuJGgzLWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDMsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDMsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGgzLXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDMsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoMywgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDQtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGg0LCAnZm9udC1zaXplJyk7XG4kaDQtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGg0LCAnbGluZS1oZWlnaHQnKTtcbiRoNC1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGg0LCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGg0LCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoNC1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGg0LCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDQsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGg1LWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoNSwgJ2ZvbnQtc2l6ZScpO1xuJGg1LWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoNSwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDUtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoNSwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoNSwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDUtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoNSwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGg1LCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoNi1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDYsICdmb250LXNpemUnKTtcbiRoNi1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDYsICdsaW5lLWhlaWdodCcpO1xuJGg2LWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDYsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDYsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGg2LXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDYsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoNiwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4vLyBIYW5kbGVzIENyb3BzIHNob3VsZCB0aGV5IG5vdCBoYXZlIGJlZW4gcGFzc2VkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kX2gxLWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGgxLCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoMSwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oMi1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoMiwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDIsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDMtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDMsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGgzLCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2g0LWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGg0LCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoNCwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oNS1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoNSwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDUsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDYtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDYsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGg2LCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG5cbiRfaDEtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDEsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGgxLCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2gyLWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoMiwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oMy1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDMsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDQtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDQsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGg0LCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2g1LWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoNSwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oNi1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDYsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcblxuXG4vLyBNaXhpbnMgZm9yIGVhY2ggaGVhZGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gX3NldC1jcm9wKCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGNyb3ApIHtcblxuICBAaWYgKG1ldGEudHlwZS1vZigkY3JvcCkgPT0gJ21hcCcpIHtcblxuICAgICRmb250LXNpemUgICA6IHVuaXQuc3RyaXAoJGZvbnQtc2l6ZSkgKiAxMDtcbiAgICAkbGluZS1oZWlnaHQgOiB1bml0LnN0cmlwKCRsaW5lLWhlaWdodCk7XG4gICAgJHRvcCAgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGNyb3AsIFwidG9wXCIpLCB1bml0LnN0cmlwKG1hcC5nZXQoJGNyb3AsIFwidG9wXCIpKSwgMCk7XG4gICAgJGJvdHRvbSAgICAgIDogaWYobWFwLmhhcy1rZXkoJGNyb3AsIFwiYm90dG9tXCIpLCB1bml0LnN0cmlwKG1hcC5nZXQoJGNyb3AsIFwiYm90dG9tXCIpKSwgMCk7XG5cbiAgICBAaW5jbHVkZSBmb250LmNyb3AoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkdG9wLCAkYm90dG9tKTtcblxuICB9XG5cbn1cblxuQG1peGluIGgxKCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGgxLWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGgxLWZvbnQtc2l6ZS1taW4gYW5kICRoMS1mb250LXNpemUtbWluIDwgJGgxLWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDEtZm9udC1zaXplLW1pbil9LCAjeyRoMS1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDEtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDEtZm9udC1zaXplLCAkaDEtbGluZS1oZWlnaHQsICRfaDEtY3JvcC10b3AsICRfaDEtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoMS1saW5lLWhlaWdodDsgXG4gICAgfVxuXG4gIH1cblxufVxuXG5AbWl4aW4gaDIoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDItZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDItZm9udC1zaXplLW1pbiBhbmQgJGgyLWZvbnQtc2l6ZS1taW4gPCAkaDItZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoMi1mb250LXNpemUtbWluKX0sICN7JGgyLXNjYWxlcn0sICN7Zm9udC5zaXplKCRoMi1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoMi1mb250LXNpemUsICRoMi1saW5lLWhlaWdodCwgJF9oMi1jcm9wLXRvcCwgJF9oMi1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGgyLWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDMoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDMtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDMtZm9udC1zaXplLW1pbiBhbmQgJGgzLWZvbnQtc2l6ZS1taW4gPCAkaDMtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoMy1mb250LXNpemUtbWluKX0sICN7JGgzLXNjYWxlcn0sICN7Zm9udC5zaXplKCRoMy1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoMy1mb250LXNpemUsICRoMy1saW5lLWhlaWdodCwgJF9oMy1jcm9wLXRvcCwgJF9oMy1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGgzLWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDQoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDQtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDQtZm9udC1zaXplLW1pbiBhbmQgJGg0LWZvbnQtc2l6ZS1taW4gPCAkaDQtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoNC1mb250LXNpemUtbWluKX0sICN7JGg0LXNjYWxlcn0sICN7Zm9udC5zaXplKCRoNC1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoNC1mb250LXNpemUsICRoNC1saW5lLWhlaWdodCwgJF9oNC1jcm9wLXRvcCwgJF9oNC1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGg0LWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDUoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDUtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDUtZm9udC1zaXplLW1pbiBhbmQgJGg1LWZvbnQtc2l6ZS1taW4gPCAkaDUtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoNS1mb250LXNpemUtbWluKX0sICN7JGg1LXNjYWxlcn0sICN7Zm9udC5zaXplKCRoNS1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoNS1mb250LXNpemUsICRoNS1saW5lLWhlaWdodCwgJF9oNS1jcm9wLXRvcCwgJF9oNS1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGg1LWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDYoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDYtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDYtZm9udC1zaXplLW1pbiBhbmQgJGg2LWZvbnQtc2l6ZS1taW4gPCAkaDYtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoNi1mb250LXNpemUtbWluKX0sICN7JGg2LXNjYWxlcn0sICN7Zm9udC5zaXplKCRoNi1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wMigkaDYtZm9udC1zaXplLCAkaDYtbGluZS1oZWlnaHQsICRfaDYtY3JvcC10b3AsICRfaDYtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoNi1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVW5pdHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLyBAc2VlIGh0dHBzOi8vY29kZXBlbi5pby9tYXJrbm90dG9uL3Blbi9FeFBiTkdlXG4vLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWFya25vdHRvbi9kb2dnaXN0eWxlL2Jsb2IvbWFzdGVyL2xpYnJhcnkvc3JjL2NyZWF0ZS9fdW5pdHMuc2Nzc1xuXG4vLy8gVGhpcyB1bml0cyBjcmVhdG9yIHdpbGwgcmVuZGVyIHNpeCBwb3NpdGl2ZSBhbmQgc2l4IG5lZ2F0aXZlIHNhc3MgdmFyaWFibGVzIGZvciBcbi8vLyBnYXBzLCBzcGFjZXJzLCBhbmQgZ3V0dGVycyByZWxhdGl2ZSB0byB0aGUgYmFzZSB2YWx1ZXMgZGVmaW5lZCBiZWxvdy4gXG5cbkBmb3J3YXJkICdjcmVhdGUvdW5pdHMnIHdpdGggKFxuXG4gIC8vLyBHYXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLy8gR2FwcyBhcmUgYW4gYWJzb2x1dGUgdW5pdCAocHgpIGludGVuZGVkIHRvIGJlIHVzZWQgb24gaW5kaXZpZHVhbCBlbGVtZW50cyB3aXRoaW4gYSBjb21wb25lbnRlZC4gXG4gIC8vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHNwYWNpbmcgYW1vbmdzdCBibG9jaywgaW5saW5lLCB0YWJsZSBhbmQgZ3JvdXAgaHRtbCBlbGVtZW50cy5cbiAgLy8vIEdhcHMgbXVzdCB1c2UgYW4gYWJzb2x1dGUgYW5kIHN0YXRpYyAncHgnIHVuaXQuIEl0IHNob3VsZCBub3QgYmUgcmVsYXRpdmUgdG8gYW55XG4gIC8vLyBwYXJlbnQgY29udGFpbmVyIGFuZCBpcyBub3QgaW50ZW5kZWQgZm9yIGZvbnQgc2l6ZXMsIHNvIHlvdSBzaG91bGQgbm90IHVzZSAncmVtJyBvciAnZW0nLiBcbiAgLy8vIEByZXN1bHQgOiAkZ2FwMCwgJGdhcCwgJGdhcDIsICRnYXAzLCAkZ2FwNCwgJGdhcDUgLCAkZ2FwNiwgJGdhcDAtLCAkZ2FwLSwgJGdhcDItLCAkZ2FwMy0sICRnYXA0LSwgJGdhcDUtIGFuZCAkZ2FwNi1cbiAgXG4gICRnYXAgOiAxNnB4LFxuXG4gIC8vIFNwYWNlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFNwYWNlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgaGVpZ2h0ICh2aCkgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgY29tcG9uZW50ZWQgbGV2ZWwuXG4gIC8vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuICAvLy8gU3BhY2VycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkc3BhY2VyICogeCkgKyAkZ2FwYC4gXG4gIC8vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdmggc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuICAvLy8gU3BhY2VycyBtdXN0IHVzZSBhICd2aCcgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgaGVpZ2h0LXdpc2UuXG4gIC8vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMgb24gYSBjb21wb25lbnQgbGV2ZWwuXG4gIC8vLyBAcmVzdWx0IDogJHNwYWNlcjAsICRzcGFjZXIsICRzcGFjZXIsICRzcGFjZXIsICRzcGFjZXI0LCAkc3BhY2VyNSwgJHNwYWNlcjYsICRzcGFjZXIwLSwgJHNwYWNlci0sICRzcGFjZXItLCAkc3BhY2VyLSwgJHNwYWNlcjQtLCAkc3BhY2VyNS0gYW5kICRzcGFjZXI2LVxuICBcbiAgJHNwYWNlciA6IDR2aCwgXG5cbiAgLy8gR3V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gR3V0dGVycyBhcmUgYSByZWxhdGl2ZSB2aWV3cG9ydCB3aWR0aCAodncpIHVuaXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBhIHBhcmVudCBsZXZlbDtcbiAgLy8gZm9yIGV4YW1wbGUsIGEgd3JhcHBlciBjb250YWluZXIgb3IgYm9keSB3aXRoIG5lc3RlZCBjb21wb25lbnRzLiBcbiAgLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCBsZWZ0IGFuZCByaWdodCBzcGFjaW5nIGFtb25nc3QgJ3NlY3Rpb24nIGFuZCAnY3VzdG9tJyBlbGVtZW50cy5cbiAgLy8vIEd1dHRlcnMgd2lsbCBlcXVhdGUgdG8gc29tZXRoaW5nIGxpa2U6IGAoJGd1dHRlciAqIHgpICsgJGdhcGAuIFxuICAvLy8gVGhlICckZ2FwJyBpcyBhZGRlZCBzbyB0aGF0IHZ3IHNwYWNpbmcgd2lsbCBuZXZlciBzY2FsZSB0b28gY2xvc2UgdG8gMHB4LiBcbiAgLy8vIEd1dHRlcnMgbXVzdCB1c2UgYSAndncnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IHdpZHRoLXdpc2UuIFxuICAvLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSBsZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9yIG1hcmdpbiBvbiBhIHBhcmVudCBsZXZlbC5cbiAgLy8vIEFzIGEgc3VnZ2VzdGlvbiwgdGhpcyBndXR0ZXIgY29uc3RhbnQgc2hvdWxkIGJlIGhhbGYgdGhlIHNpemUgb2YgdGhlIHNwYWNlciB2YWx1ZS5cbiAgLy8vIEByZXN1bHQgOiAkZ3V0dGVyMCwgJGd1dHRlciwgJGd1dHRlcjIsICRndXR0ZXIzLCAkZ3V0dGVyNCwgJGd1dHRlcjUsICRndXR0ZXI2LCAkZ3V0dGVyMC0sICRndXR0ZXItLCAkZ3V0dGVyMi0sICRndXR0ZXIzLSwgJGd1dHRlcjQtLCAkZ3V0dGVyNS0gYW5kICRndXR0ZXI2LVxuICBcbiAgJGd1dHRlciA6IDN2dywgXG5cbik7XG5cbiRib3JkZXItcmFkaXVzIDogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiRzaWRlYmFyLXdpZHRoIDogNTAwcHg7IiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBMYXlvdXRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vIExheW91dCBzdHlsaW5nIHNob3VsZCBiZSB1c2VkIHRvIGFkanVzdCBsYXlvdXQgcHJvcGVydGllcyBvbmx5LlxuLy8gV2hlcmUgcG9zc2libGUsIGl0IHNob3VsZCBub3QgYmUgdXNlZCB0byBtYW5hZ2UgdGhlIGFlc3RldGljcyBvZiBhIHBhZ2UuXG4vLyBJbnN0ZWFkIG9ubHkgd2lkdGhzLCBoZWlnaHQsIGRpc3BsYXksIGdyaWQsIHBvc2l0aW9uLCBwYWRkaW5nLCBtYXJnaW5zLCBvcmRlciwgYW5kIGFsaWtlXG4vLyBzaG91bGQgYmUgdGhlIHByb3BlcnRpZXMgZGVmaW5lZCBpbiB0aGVzZSBmaWxlcy4gS2VlcCB0aGUgbGF5b3V0cyBoZXJlIGFuZFxuLy8gY29tcG5lbnQgc3R5bGluZyBpbiB0aGVpciByZXNwZWN0aXZlIGZpbGVzLlxuXG5AbWl4aW4gc2lkZWJhci1ibG93b3V0LW9mZnNldCgpIHtcbiAgLS10cmFuc2xhdGVYOiAwO1xuICB3aWR0aDogY2FsYygxMDB2dyArICN7JGd1dHRlcn0pO1xuICBsZWZ0OiAjeyRndXR0ZXItfTtcbiAgQGluY2x1ZGUgYnJlYWstb3V0KG1heCkge1xuICAgIGxlZnQ6IGNhbGMoKC0xICogdmFyKC0tY29tcHV0ZWQtZ3V0dGVyKSkgLSAjeyRndXR0ZXJ9KTtcbiAgfVxufVxuXG4kY29tcG9uZW50LXRoZW1lczogKFxuICAncmVkJzogJHJlZCxcbiAgJ2JsdWUnOiAkYmx1ZSxcbiAgJ2dyZXknOiAkZ3JleTMsXG4gICd3aGl0ZSc6ICR3aGl0ZSxcbik7XG5cbmJvZHkge1xuICAvLyBHcmlkIFBvc2l0aW9uc1xuICAvLyBJJ20gdXNpbmcgbnVtYmVycyByYXRoZXIgdGhhbiBncmlkIGFzcmVhcyBiZWNhdXNlIHRoZSBwb3NpdGlvbmluZyBkb2Vzbid0XG4gIC8vIG5lZWQgdG8gYmUgYW55IG1vcmUgY29tcGxleCB0aGFuIGEgbnVtYmVyIGJldHdlZW4gMSBhbmQgNCBkZXBlbmRpbmcgb25cbiAgLy8gdGhlIGxheW91dCByZXF1aXJlbWVudHMuIFRoaXMgaXMgZXNzZW50aWFsbHkgZG9uZSB0byBoYW5kbGUgY2lyY29tc3RhbmNlc1xuICAvLyB3aGVyZSBzb21lIHBhZ2VzIGRvbid0IHJlcXVpcmUgYSBicmVhZGNydW1iIGJhciBvciBhbmNob3IgYmFyLlxuXG4gIC0tcm93LW5hdmlnYXRpb246IDE7XG4gIC0tcm93LWJyZWFkY3J1bWJzOiAyO1xuICAtLXJvdy1hbmNob3JzOiAzO1xuICAtLXJvdy1oZWFkZXI6IDQ7XG4gIC0tcm93LW1haW46IDU7XG4gIC0tcm93LWJhY2tncm91bmQ6IDE7XG4gIC0tcm93LXNpZGViYXI6IDQgLyBzcGFuIDM7XG4gIC0tcm93LWZvb3RlcjogMTAwO1xuICAtLXJvd3M6IGF1dG87XG5cbiAgLS1jb2x1bW4tbGVmdDogMjtcbiAgLS1jb2x1bW4tbWFpbjogMiAvIHNwYW4gMjtcbiAgLS1jb2x1bW4tcmlnaHQ6IDQ7XG4gIC0tY29sdW1uLWZ1bGw6IDIgLyAtMjtcbiAgLS1jb2x1bW4tZ3V0dGVyOiBtaW5tYXgoMCwgMWZyKTtcbiAgLS1jb2x1bW4tY29udGVudDogbWlubWF4KDAsIGNhbGMoI3skbWVkaWEtbWF4fSAtICh2YXIoLS1zaWRlYmFyLXdpZHRoKSAqIDIpIC0gI3skZ3V0dGVyNH0pKTtcbiAgLS1jb2x1bW4tc2lkZWJhcjogdmFyKC0tc2lkZWJhci13aWR0aCk7XG4gIC0tY29sdW1uczogdmFyKC0tY29sdW1uLWd1dHRlcikgdmFyKC0tY29sdW1uLXNpZGViYXIpIHZhcigtLWNvbHVtbi1jb250ZW50KSB2YXIoLS1jb2x1bW4tc2lkZWJhcikgdmFyKC0tY29sdW1uLWd1dHRlcik7XG5cbiAgZGlzcGxheTogZ3JpZDtcbiAgbWluLXdpZHRoOiAkbWVkaWEtbWluO1xuICBncmlkLWdhcDogMCAkZ3V0dGVyO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IHZhcigtLXJvd3MpO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWNvbHVtbnMpO1xuXG4gID4gKiB7XG4gICAgZ3JpZC1jb2x1bW46IHZhcigtLWNvbHVtbi1mdWxsKTtcbiAgfVxufVxuXG5uYXZpZ2F0aW9uLWJhciB7XG4gIHotaW5kZXg6IDk5OTtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1uYXZpZ2F0aW9uKTtcbiAgJjpub3QoLmluLXZpZXcpIHtcbiAgICB+ICNicmVhZGNydW1icy1iYXIsXG4gICAgfiAjYW5jaG9ycy1iYXIge1xuICAgICAgLS1hbmNob3JzLWhlaWdodDogNTBweDtcbiAgICAgIC8vIC0tYnJlYWRjcnVtYi1oZWlnaHQ6IDcwcHg7XG4gICAgfVxuICB9XG59XG5cbi8vIEJyZWFkY3J1bWJzIEJhciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiNicmVhZGNydW1icy1iYXIge1xuICB6LWluZGV4OiAyO1xuICBncmlkLXJvdzogdmFyKC0tcm93LWJyZWFkY3J1bWJzKTtcbiAgaGVpZ2h0OiB2YXIoLS1icmVhZGNydW1iLWhlaWdodCk7XG4gICYuc3RpY2t5IHtcbiAgICB0b3A6IHZhcigtLWJyZWFkY3J1bWItYW5kLWFuY2hvcnMtc3RpY2t5LXVuZGVyc2V0KTtcbiAgfVxufVxuXG4vLyBBbmNob3IgQmFyID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4jYW5jaG9ycy1iYXIge1xuICB6LWluZGV4OiAyO1xuICBncmlkLXJvdzogdmFyKC0tcm93LWFuY2hvcnMpO1xuICBoZWlnaHQ6IHZhcigtLWFuY2hvcnMtaGVpZ2h0KTtcbiAgJi5zdGlja3kge1xuICAgIHRvcDogY2FsYyh2YXIoLS1icmVhZGNydW1iLWhlaWdodCkgLSAxcHggKyAodmFyKC0tYnJlYWRjcnVtYi1hbmQtYW5jaG9ycy1zdGlja3ktdW5kZXJzZXQpICogMikpO1xuICAgIC8vIHRvcDpjYWxjKHZhcigtLWJyZWFkY3J1bWItaGVpZ2h0KSAtIDFweCk7XG4gIH1cbn1cblxuLy8gSGVhZGVyIENvbnRlbnQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhlYWRlciB7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctaGVhZGVyKTtcbiAgZ3JpZC1jb2x1bW46IHZhcigtLWNvbHVtbi1tYWluKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1tYWluLW1heC13aWR0aCk7XG59XG5cbiNmb290ZXIge1xuICBncmlkLXJvdzogdmFyKC0tcm93LWZvb3Rlcik7XG59XG5cbi8vIE1haW4gQ29udGVudCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbm1haW4ge1xuICBncmlkLXJvdzogdmFyKC0tcm93LW1haW4pO1xuICBncmlkLWNvbHVtbjogdmFyKC0tY29sdW1uLW1haW4pO1xuICBtYXgtd2lkdGg6IHZhcigtLW1haW4tbWF4LXdpZHRoKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAvLyBGaXJzdCBsZXZlbCBlbGVtZW50cyBmb3IgbWFpbiBjaGlsZGVuIGFuZCBzaWJsaW5zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gdG8gdGhlIG1haW4gZWxlbWVudCAoZXhjbHVkaW5nIHNpZGUtYmFyIGFuZCBmb290ZXIpXG5cbiAgPiAqLFxuICB+IHNlY3Rpb24sXG4gIH4gYXNpZGUsXG4gIH4gZGl2LFxuICB+IHNlcnZpY2UtY2VudHJlLWZpbmRlcixcbiAgfiBtYXJrZXRzLXN1bW1hcnkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNlcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNlcjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gIH1cblxuICB+IGRpdjpoYXMoZGl2I3RydWVuZG9fY29udGFpbmVyKSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIHNlcnZpY2UtY2VudHJlLWZpbmRlciBwaWN0dXJlIHtcbiAgICBAaW5jbHVkZSBzaWRlYmFyLWJsb3dvdXQtb2Zmc2V0KCk7XG4gIH1cbn1cblxuLy8gU2lkZWJhciBDb250ZW50ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuc2lkZS1iYXIge1xuICBncmlkLXJvdzogdmFyKC0tcm93LXNpZGViYXIpO1xuICBncmlkLWNvbHVtbjogdmFyKC0tY29sdW1uLXJpZ2h0KTtcbiAgd2lkdGg6IHZhcigtLXNpZGViYXItd2lkdGgpO1xuICBwYWRkaW5nLXRvcDogJHNwYWNlcjtcbiAgcGFkZGluZy1ib3R0b206ICRzcGFjZXI7XG5cbiAgPiBkaXYge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC1nYXA6ICRndXR0ZXIgJGd1dHRlcjtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCBtaW5tYXgodmFyKC0tc2lkZWJhci13aWR0aCksIDFmcikpO1xuICAgICYuc3RpY2t5IHtcbiAgICAgIHRvcDogY2FsYyh2YXIoLS1icmVhZGNydW1iLWhlaWdodCkgKyB2YXIoLS1hbmNob3JzLWhlaWdodCkgKyAjeyRndXR0ZXJ9KTtcbiAgICB9XG4gICAgPiAqIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gIH1cblxuICBAZWFjaCAkdGhlbWUsICRjb2xvdXIgaW4gJGNvbXBvbmVudC10aGVtZXMge1xuICAgID4gZGl2ID4gKi4jeyR0aGVtZX0ge1xuICAgICAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI3skY29sb3VyfTtcbiAgICAgIEBpZiAoJHRoZW1lID09ICd3aGl0ZScpIHtcbiAgICAgICAgLS1ib3JkZXItY29sb3VyOiAjeyRncmV5M307XG4gICAgICB9XG4gICAgICBAaWYgKCR0aGVtZSA9PSAnZ3JleScpIHtcbiAgICAgICAgLS1ib3JkZXItY29sb3VyOiAjeyRncmV5NH07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmFzaWRlI3N1cHBvcnQtaW5mb3JtYXRpb24gLmdsb3NzYXJ5LXRlcm1zLFxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT0nMSddID4gbmF2IHtcbiAgdG9wOiBjYWxjKHZhcigtLWJyZWFkY3J1bWItaGVpZ2h0KSArIHZhcigtLWFuY2hvcnMtaGVpZ2h0KSArICN7JGd1dHRlcn0pO1xufVxuXG5AaW5jbHVkZSBicmVhay1pbignc21hbGwtbWVkaXVtJykge1xuICBib2R5IHtcbiAgICA+ICoge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC0tY29sdW1uczogdmFyKC0tY29sdW1uLWd1dHRlcikgdmFyKC0tY29sdW1uLWNvbnRlbnQpIHZhcigtLWNvbHVtbi1ndXR0ZXIpO1xuICAgIC0tY29sdW1uLW1haW46IHZhcigtLWNvbHVtbi1mdWxsKTtcbiAgICAtLWNvbHVtbi1sZWZ0OiB2YXIoLS1jb2x1bW4tZnVsbCk7XG4gICAgLS1jb2x1bW4tcmlnaHQ6IHZhcigtLWNvbHVtbi1mdWxsKTtcbiAgICAtLXJvdy1zaWRlYmFyOiBhdXRvO1xuXG4gICAgc2lkZS1iYXIge1xuICAgICAgcGFkZGluZy10b3A6ICRzcGFjZXI7XG4gICAgICA+IGRpdiB7XG4gICAgICAgIGdyaWQtZ2FwOiAkc3BhY2VyICRndXR0ZXI7XG4gICAgICAgICYuc3RpY2t5IHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgdG9wOiBpbml0aWFsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFRoaXMgd2lsbCBmaXggc2lkZWJhciBjb21wb25lbnRzIGZyb20gYmxvd2luZyBvdXQgb2YgdGhlIHZpZXdwb3J0IG9uIGRldmljZXNcbi8vIHdoZXJlIHRoZSBzY3JlZW4gaXMgc21hbGxlciB0aGFuIHRoZSBtaW5pdW0gKDMyMHB4KVxuQGluY2x1ZGUgYnJlYWstaW4oJG1lZGlhLW1pbiArICgkYmFzZS1nYXAgKiAyKSkge1xuICBib2R5IHtcbiAgICAtLXNpZGViYXItd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLy8gQmxvd291dCBCYWNrZ3JvdW5kcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnRoZW1lZCB7XG4gIEBlYWNoICR0aGVtZSwgJGNvbG91ciBpbiAkY29tcG9uZW50LXRoZW1lcyB7XG4gICAgJi4jeyR0aGVtZX0ge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG91cjtcbiAgICAgICYuYmxvd291dCArIC50aGVtZWQuI3skdGhlbWV9IHtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDFweCB2YXIoLS1ib3JkZXItdG9wLWNvbG91cik7XG4gICAgICAgICYubGlnaHQge1xuICAgICAgICAgIC0tYm9yZGVyLXRvcC1jb2xvdXI6ICN7JGdyZXk0fTtcbiAgICAgICAgfVxuICAgICAgICAmLmRhcmsge1xuICAgICAgICAgIC0tYm9yZGVyLXRvcC1jb2xvdXI6ICN7cmdiYSh3aGl0ZSwgMC4yKX07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJjpub3QoLmJsb3dvdXQpIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXI7XG4gICAgcGFkZGluZy1yaWdodDogJGd1dHRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyO1xuICAgIG1hcmdpbi10b3A6ICRzcGFjZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgJi53aGl0ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTM7XG4gICAgICArIC5ibG93b3V0LndoaXRlLFxuICAgICAgKyA6bm90KC50aGVtZWQpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJHNwYWNlci07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5ibG93b3V0IHtcbiAgQGluY2x1ZGUgYmFja2dyb3VuZC1ibG93b3V0IHtcbiAgICBAaW5jbHVkZSBicmVhay1pbigkbWVkaWEtbWluICsgJGJhc2UtZ2FwKSB7XG4gICAgICB0cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgICBsZWZ0OiAkZ2FwLTtcbiAgICAgIHdpZHRoOiAxMDB2dztcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWstaW4oc21hbGwtbWVkaXVtKSB7XG4gICAgICB0cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6ICRndXR0ZXItO1xuICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gIH1cblxuICBAYXQtcm9vdCBib2R5Om5vdChtb2JpbGUpIG1haW4gLmJsb3dvdXQ6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBicmVhay1vdXQoc21hbGwtbWVkaXVtKSB7XG4gICAgICBAaW5jbHVkZSBzaWRlYmFyLWJsb3dvdXQtb2Zmc2V0KCk7XG4gICAgICB3aWR0aDogY2FsYygxMDB2dyArICN7JGd1dHRlcn0pO1xuICAgIH1cbiAgfVxuICBAYXQtcm9vdCBib2R5Lm1vYmlsZSBtYWluIC5ibG93b3V0OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgc2lkZWJhci1ibG93b3V0LW9mZnNldCgpO1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3ICsgI3skZ3V0dGVyfSk7XG4gIH1cbn1cblxuLy8gQmFja2dyb3VuZCBJbWFnZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuYmFja2dyb3VuZC1pbWFnZSxcbmJhY2tncm91bmQtdmlkZW8ge1xuICB6LWluZGV4OiAtMTtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1iYWNrZ3JvdW5kKTtcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgJi5iZWhpbmQtaGVhZGVyIHtcbiAgICAtLXJvdy1iYWNrZ3JvdW5kOiA0O1xuICB9XG59XG5cbmltZ1tkYXRhLXNyY10sXG52aWRlb1tkYXRhLXNyY10ge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbjtcbiAgb3BhY2l0eTogMDtcblxuICAmLmxvYWRlZCB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4vLyBTcGVjaWFsIFJ1bGVzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uY2VudGVyLWFsbCB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctYmxvY2s6ICRzcGFjZXIyO1xuICBnYXA6ICRzcGFjZXIgIWltcG9ydGFudDtcbiAgPiAudGV4dCA6aXMoaDEsIGgyLCBoMywgaDQsIGg1LCBoNikge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHNwYW4ge1xuICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeSk7XG4gICAgfVxuICB9XG4gIGFydGljbGUtbGlzdCB7XG4gICAgbWF4LXdpZHRoOiAxMTAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC0tYXJ0aWNsZS1taW4td2lkdGg6IDQyMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gQWRkcyBhIHRvcCBib3JkZXIgKHdpdGhvdXQgc2hpZnRpbmcgZWxlbWVudHMgYXJvdW5kIGJ5IDFweCkgdG8gbm9uZSB0aGVtZWQgc2libGluZ3Mgb2YgdGhlIG1haW4gZWxlbWVudFxubWFpbiB+ICo6bm90KC50aGVtZWQpICsgOm5vdCgudGhlbWVkKTpub3QoI2Zvb3Rlcik6bm90KHNpZGUtYmFyKSB7XG4gIGJveC1zaGFkb3c6IDBweCAtMXB4IHZhcigtLWJvcmRlci10b3AtY29sb3VyLCAjeyRncmV5NH0pO1xufVxuLy8gbWFpbiA+ICoudGhlbWVkICsgOm5vdCgudGhlbWVkKSB7IGJveC1zaGFkb3c6IGluaXRpYWw7IH1cbm1haW4gPiAqLnRoZW1lZC5jb250ZW50LWJsb2NrIHtcbiAgYm94LXNoYWRvdzogaW5pdGlhbDtcbn1cbm1haW4gPiAqLnRoZW1lZCArIDpub3QoLnRoZW1lZCk6bm90KCNmb290ZXIpIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgYm94LXNoYWRvdzogaW5pdGlhbDtcbn1cbm1haW4gfiAqLnRoZW1lZCArIDpub3QoLnRoZW1lZCk6bm90KCNmb290ZXIpLFxuYm9keS5iYWNrZ3JvdW5kLXBvc2l0aW9uZWQtYmVoaW5kLWhlYWRlciBtYWluID4gKjpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IGluaXRpYWw7XG59XG5cbi8vIEFkZHMgYSBib3JkZXIgb24gdGhlIGZpcnN0IGNoaWxkIGlmIGl0J3Mgbm90IHRoZW1lZCBvciBpcyB3aGl0ZVxubWFpbiA+ICo6Zmlyc3QtY2hpbGQ6bm90KC50aGVtZWQpLFxubWFpbiA+ICo6Zmlyc3QtY2hpbGQud2hpdGUge1xuICBib3gtc2hhZG93OiAwcHggLTFweCB2YXIoLS1ib3JkZXItdG9wLWNvbG91ciwgI3skZ3JleTR9KTtcbn1cblxuLy8gbWFpbiB+IHNlY3Rpb24sIG1haW4gfiBhc2lkZSwgbWFpbiB+IGRpdiwgbWFpbiB+IGxvZ28tc2Nyb2xsZXIgeyBncmlkLXJvdzogbm9uZTsgfVxuLy8gbWFpbiB+IDpub3Qoc2lkZS1iYXIpOm5vdChiYWNrZ3JvdW5kLWltYWdlKTpub3QoI2Zvb3RlcikgeyBncmlkLXJvdzogbm9uZTsgfVxuXG4vLyBSZW1vdmVzIG1hcmdpbiBvbiBub25lIHRoZW1lZCBzaWJsaW5ncyBvZiBhbmQgaW4gdGhlIG1haW4gZWxlbWVudCB0aGF0IGFsc28gYXJlIG5vdCBibG93bm91dFxubWFpbiB+ICo6bm90KC50aGVtZWQpICsgLnRoZW1lZDpub3QoLmJsb3dvdXQpLFxubWFpbiA+ICo6bm90KC50aGVtZWQpICsgLnRoZW1lZDpub3QoLmJsb3dvdXQpIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLy8gQWRkZHMgYSBsYXJnZXIgc3BhY2VyIHRvIHRoZSBsYXN0IGl0ZW0gaW4gdGhlIG1haW4gZWxlbWVudCB0aGF0IGFyZSB0aGVtZWQgYnV0IG5vdCBibG93biBvdXRcbi5oZWFkZXIgfiBtYWluID4gLnRoZW1lZDpub3QoLmJsb3dvdXQpOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogJHNwYWNlcjtcbn1cbm1haW4gPiAudGhlbWVkOm5vdCguYmxvd291dCk6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206ICRzcGFjZXI7XG59XG5cbi8vIEFkZHMgYSBsYXJnZXIgc3BhY2VyIHRvIHRoZW1lZCBub24gYmxvd25vdXQgZWxlbWVudHNcbm1haW4gPiAudGhlbWVkOm5vdCguYmxvd291dCkgKyAuYmxvd291dCB7XG4gIG1hcmdpbi10b3A6ICRzcGFjZXI7XG59XG5cbi5oZWFkZXIgfiBtYWluID4gLnRoZW1lZDpub3QoLmJsb3dvdXQpIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxubWFpbiB+IGRpdjpoYXMoI0Nvb2tpZWJvdFdpZGdldCkge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbkBpbmNsdWRlIGNvbXBvbmVudC1kb2VzbnQtZXhpc3RzKCdzaWRlLWJhcicpIHtcbiAgLS1tYWluLW1heC13aWR0aDogYXV0bztcbiAgLS1jb2x1bW4tbWFpbjogdmFyKC0tY29sdW1uLWZ1bGwpO1xufVxuXG5AaW5jbHVkZSBjb21wb25lbnQtZG9lc250LWV4aXN0cygnYnJlYWRjcnVtYnMtYmFyJykge1xuICAtLXJvdy1uYXZpZ2F0aW9uOiAxO1xuICAtLXJvdy1hbmNob3JzOiAyO1xuICAtLXJvdy1oZWFkZXI6IDM7XG4gIC0tcm93LW1haW46IDQ7XG5cbiAgYmFja2dyb3VuZC1pbWFnZS5mdWxsLFxuICBiYWNrZ3JvdW5kLXZpZGVvLmZ1bGwge1xuICAgIC0tcm93LWJhY2tncm91bmQ6IDEgLyBzcGFuIDQ7XG4gIH1cbiAgYmFja2dyb3VuZC1pbWFnZS5iZWhpbmQtaGVhZGVyLFxuICBiYWNrZ3JvdW5kLXZpZGVvLmZ1bGwge1xuICAgIC0tcm93LWJhY2tncm91bmQ6IDM7XG4gIH1cblxuICAjYW5jaG9ycy1iYXIuc3RpY2t5IHtcbiAgICB0b3A6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBicmVhay1vdXQoJ3NtYWxsLW1lZGl1bScpIHtcbiAgICAtLXJvdy1zaWRlYmFyOiAzIC8gc3BhbiAzO1xuICAgIHNpZGUtYmFyIGRpdi5zdGlja3ksXG4gICAgYXNpZGUjc3VwcG9ydC1pbmZvcm1hdGlvbiAuZ2xvc3NhcnktdGVybXMsXG4gICAgdGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT0nMSddID4gbmF2IHtcbiAgICAgIHRvcDogY2FsYyh2YXIoLS1hbmNob3JzLWhlaWdodCkgKyAjeyRndXR0ZXJ9KTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgY29tcG9uZW50LWRvZXNudC1leGlzdHMoJ2FuY2hvcnMtYmFyJykge1xuICAtLXJvdy1uYXZpZ2F0aW9uOiAxO1xuICAtLXJvdy1icmVhZGNydW1iczogMjtcbiAgLS1yb3ctaGVhZGVyOiAzO1xuICAtLXJvdy1tYWluOiA0O1xuXG4gIGJhY2tncm91bmQtaW1hZ2UuZnVsbCxcbiAgYmFja2dyb3VuZC12aWRlby5mdWxsIHtcbiAgICAtLXJvdy1iYWNrZ3JvdW5kOiAxIC8gc3BhbiA0O1xuICB9XG4gIGJhY2tncm91bmQtaW1hZ2UuYmVoaW5kLWhlYWRlcixcbiAgYmFja2dyb3VuZC12aWRlby5iZWhpbmQtaGVhZGVyIHtcbiAgICAtLXJvdy1iYWNrZ3JvdW5kOiAzO1xuICB9XG5cbiAgI2JyZWFkY3J1bWJzLWJhci5zdGlja3kge1xuICAgIHRvcDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrLW91dCgnc21hbGwtbWVkaXVtJykge1xuICAgIC0tcm93LXNpZGViYXI6IDMgLyBzcGFuIDM7XG4gICAgc2lkZS1iYXIgZGl2LnN0aWNreSxcbiAgICBhc2lkZSNzdXBwb3J0LWluZm9ybWF0aW9uIC5nbG9zc2FyeS10ZXJtcyxcbiAgICB0YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPScxJ10gPiBuYXYge1xuICAgICAgdG9wOiBjYWxjKHZhcigtLWFuY2hvcnMtaGVpZ2h0KSArICN7JGd1dHRlcn0pO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBjb21wb25lbnQtZG9lc250LWV4aXN0cygnYnJlYWRjcnVtYnMtYmFyJywgJ2FuY2hvcnMtYmFyJykge1xuICAtLXJvdy1uYXZpZ2F0aW9uOiAxO1xuICAtLXJvdy1oZWFkZXI6IDI7XG4gIC0tcm93LW1haW46IDM7XG4gIC0tcm93LWJhY2tncm91bmQ6IDE7XG5cbiAgYmFja2dyb3VuZC1pbWFnZS5mdWxsLFxuICBiYWNrZ3JvdW5kLXZpZGVvLmZ1bGwge1xuICAgIC0tcm93LWJhY2tncm91bmQ6IDEgLyBzcGFuIDU7XG4gIH1cbiAgYmFja2dyb3VuZC1pbWFnZS5iZWhpbmQtaGVhZGVyLFxuICBiYWNrZ3JvdW5kLXZpZGVvLmJlaGluZC1oZWFkZXIge1xuICAgIC0tcm93LWJhY2tncm91bmQ6IDI7XG4gIH1cblxuICBAaW5jbHVkZSBicmVhay1vdXQoJ3NtYWxsLW1lZGl1bScpIHtcbiAgICBzaWRlLWJhciBkaXYuc3RpY2t5LFxuICAgIGFzaWRlI3N1cHBvcnQtaW5mb3JtYXRpb24gLmdsb3NzYXJ5LXRlcm1zLFxuICAgIHRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9JzEnXSA+IG5hdiB7XG4gICAgICB0b3A6ICRndXR0ZXI7XG4gICAgfVxuICAgIC0tcm93LXNpZGViYXI6IDIgLyBzcGFuIDM7XG4gIH1cbn1cblxuYm9keS5ydWxlLWxhc3QtbWFpbi1zZWN0aW9uLWlzLXRoZW1lZCB7XG4gIEBpbmNsdWRlIGJyZWFrLWluKCdzbWFsbC1tZWRpdW0nKSB7XG4gICAgc2lkZS1iYXIge1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuICB9XG59XG5cbi8vIEZhdXggTGF5b3V0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5sYXlvdXQge1xuICAmLWNvbnRlbnQtcmlnaHQtc2lkZWJhcixcbiAgJi1jb250ZW50LWxlZnQtc2lkZWJhciB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWdhcDogJGd1dHRlcjtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAubGVmdCxcbiAgICAucmlnaHQge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAubGF5b3V0IHtcbiAgICAgICYtY29udGVudC1yaWdodC1zaWRlYmFyLFxuICAgICAgJi1jb250ZW50LWxlZnQtc2lkZWJhciB7XG4gICAgICAgIC0tY29sdW1uLWNvbnRlbnQ6IG1pbm1heCgwLCBjYWxjKCN7JG1lZGlhLW1heH0gLSAodmFyKC0tc2lkZWJhci13aWR0aCkgKiAyKSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZmF1eC1sYXlvdXQtZ3JpZCgkc2VsZWN0b3I6ICdib2R5ID4gLmxheW91dCcsICRicmVha3BvaW50OiAnc21hbGwtbWVkaXVtJykge1xuICBAaW5jbHVkZSBicmVhay1vdXQoJGJyZWFrcG9pbnQpIHtcbiAgICAjeyRzZWxlY3Rvcn0ge1xuICAgICAgLy8gQ29udGVudCBvbiB0aGUgcmlnaHQsIHNpZGViYXIgb24gdGhlIGxlZnRcbiAgICAgICYtY29udGVudC1sZWZ0LXNpZGViYXIge1xuICAgICAgICAubGVmdCB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIH1cbiAgICAgICAgLnJpZ2h0IHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIDQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIENvbnRlbnQgb24gdGhlIGxlZnQsIHNpZGViYXIgb24gdGhlIHJpZ2h0XG4gICAgICAmLWNvbnRlbnQtcmlnaHQtc2lkZWJhciB7XG4gICAgICAgIC5sZWZ0IHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIDM7XG4gICAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1tYWluLW1heC13aWR0aCk7XG4gICAgICAgIH1cbiAgICAgICAgLnJpZ2h0IHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMztcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXI7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogJGd1dHRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi1jb250ZW50LXJpZ2h0LXNpZGViYXIsXG4gICAgICAmLWNvbnRlbnQtbGVmdC1zaWRlYmFyIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1jb2x1bW4tc2lkZWJhcikgdmFyKC0tY29sdW1uLWNvbnRlbnQpIHZhcigtLWNvbHVtbi1zaWRlYmFyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZmF1eC1sYXlvdXQtZ3JpZCgpO1xuXG4vLyBUaGlzIGhhbmRsZXMgd2hlbiB0aGVyZSBpcyBub3Qgc2lkZWJhciBidXQgdGhlcmUgaXMgYSBjb250ZW50IGJsb2NrIGNvbXBvbmVudFxuLy8gdGhhdCB3b3VsZCBub3JtYWxseSBiZSBmdWxsIHdpZHRoLiBUaGlzIGtlZXBzIHRoZSBsYXlvdXQgc3R5bGluZyBjb25zaXN0ZW50XG4vLyBhY2Nyb3NzIGZ1bGwgd2lkdGggY29tcG9uZW50cywgY29udGVudCBibG9jayBjb21wb25lbnRzLiBhbmQgc2lkZWJhciBjb21wb25lbnRzLlxuQGluY2x1ZGUgY29tcG9uZW50LWRvZXNudC1leGlzdHMoJ3NpZGUtYmFyJykge1xuICBAaW5jbHVkZSBmYXV4LWxheW91dC1ncmlkKCdtYWluIC5sYXlvdXQnLCAnbWVkaXVtJyk7XG59XG5cbi8vIExpdHRsZSBMYXlvdXQgZmllbGQgY29sdW1uIGNvbnRyb2xzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5jb250ZW50LWJsb2NrIHtcbiAgPiAqIHtcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWstb3V0KDcwMCkge1xuICAgIC0tY29sdW1uLWNvdW50OiA2O1xuXG4gICAgLy8gVGhlIGZpcnN0IG51bWJlciBpbiB0aGUgLmNvbC1YLVggY2xhc3MgbmFtZSByZWZlcmVzIHRvIHRoZSBjb2x1bW4gc3RhcnRpbmcgcG9pbnQsXG4gICAgLy8gVGhlIHNlY29uZCBudW1iZXIgaXMgaG93IG1hbnkgY29sdW1ucyBpdCBzcGFucyBmb3IuXG4gICAgLy8gWW91IG1heSBiZSB3b25kZXJpbmcgd2h5IEkgZGlkbid0IGp1c3Qgc3RpY2sgd2l0aCB0aGUgb25lLWxpbmVyIHVzaW5nIGN1c3RvbSBwcm9wZXJ0aWVzLlxuICAgIC8vIFRoYXQgbWV0aG9kIG9mIGNvbHVtbiBncmlkcyBpcyB0b28gc3RyaWN0IGFuZCB3b3VsZCBuZXZlciByZWxpYWJsZSBicmVha2Rvd25cbiAgICAvLyBuYXRpdmVseSBiZWNhdXNlIHRoZSBjb250ZW50IHdvdWxkIGFsd2F5cyBiZWNvbWUgb3ZlcmJsb3duLlxuICAgIC8vIFdlIGhhZCB0byBnbyB0aGUgbWFudWFsIHdheSBzbyB0aGF0IHdlIGNhbiBhZGRyZXNzIHNwZWNpYWwgc2l0dWF0aW9ucyBhcyBzcGVpY2ZpYyBicmVhayBwb2ludHMuXG5cbiAgICAvLyBPbmUgQ29sdW1uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC5jb2wtMS0xIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAxO1xuICAgIH1cbiAgICAuY29sLTEtMiB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMjtcbiAgICB9XG4gICAgLmNvbC0xLTMge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDM7XG4gICAgfVxuICAgIC5jb2wtMS00IHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiA0O1xuICAgIH1cbiAgICAuY29sLTEtNSB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gNTtcbiAgICB9XG4gICAgLmNvbC0xLTYge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDY7XG4gICAgfVxuXG4gICAgLy8gVHdvIENvbHVtbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAuY29sLTItMSB7XG4gICAgICBncmlkLWNvbHVtbjogMiAvIHNwYW4gMTtcbiAgICB9XG4gICAgLmNvbC0yLTIge1xuICAgICAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDI7XG4gICAgfVxuICAgIC5jb2wtMi0zIHtcbiAgICAgIGdyaWQtY29sdW1uOiAyIC8gc3BhbiAzO1xuICAgIH1cbiAgICAuY29sLTItNCB7XG4gICAgICBncmlkLWNvbHVtbjogMiAvIHNwYW4gNDtcbiAgICB9XG4gICAgLmNvbC0yLTUge1xuICAgICAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDU7XG4gICAgfVxuXG4gICAgLy8gVGhyZWUgQ29sdW1ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAuY29sLTMtMSB7XG4gICAgICBncmlkLWNvbHVtbjogMyAvIHNwYW4gMTtcbiAgICB9XG4gICAgLmNvbC0zLTIge1xuICAgICAgZ3JpZC1jb2x1bW46IDMgLyBzcGFuIDI7XG4gICAgfVxuICAgIC5jb2wtMy0zIHtcbiAgICAgIGdyaWQtY29sdW1uOiAzIC8gc3BhbiAzO1xuICAgIH1cbiAgICAuY29sLTMtNCB7XG4gICAgICBncmlkLWNvbHVtbjogMyAvIHNwYW4gNDtcbiAgICB9XG5cbiAgICAvLyBGb3VyIENvbHVtbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC5jb2wtNC0xIHtcbiAgICAgIGdyaWQtY29sdW1uOiA0IC8gc3BhbiAxO1xuICAgIH1cbiAgICAuY29sLTQtMiB7XG4gICAgICBncmlkLWNvbHVtbjogNCAvIHNwYW4gMjtcbiAgICB9XG4gICAgLmNvbC00LTMge1xuICAgICAgZ3JpZC1jb2x1bW46IDQgLyBzcGFuIDM7XG4gICAgfVxuXG4gICAgLy8gRml2ZSBDb2x1bW5zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAuY29sLTUtMSB7XG4gICAgICBncmlkLWNvbHVtbjogNSAvIHNwYW4gMjtcbiAgICB9XG4gICAgLmNvbC01LTIge1xuICAgICAgZ3JpZC1jb2x1bW46IDUgLyBzcGFuIDI7XG4gICAgfVxuXG4gICAgLy8gU2l4IENvbHVtbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAuY29sLTYtMSB7XG4gICAgICBncmlkLWNvbHVtbjogNiAvIHNwYW4gMTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVhay1iZXR3ZWVuKDcwMCwgbGFyZ2UpIHtcbiAgICAtLWNvbHVtbi1jb3VudDogNDtcblxuICAgIC8vIFNwZWNpYWwgUnVsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLmNvbC0xLTMge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDI7XG4gICAgfVxuICAgIC5jb2wtMS00IHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAzO1xuICAgIH1cbiAgICAuY29sLTEtNSB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMztcbiAgICB9XG4gICAgLmNvbC00LTMge1xuICAgICAgZ3JpZC1jb2x1bW46IDMgLyAtMTtcbiAgICB9XG5cbiAgICAvLyBCcmVha2Rvd24gUnVsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC5jb2wtMS02IHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgfVxuICAgIC5jb2wtMi0zLFxuICAgIC5jb2wtMi00LFxuICAgIC5jb2wtMi01IHtcbiAgICAgIGdyaWQtY29sdW1uOiAyIC8gLTE7XG4gICAgfVxuICAgIC5jb2wtMy0yLFxuICAgIC5jb2wtMy0zLFxuICAgIC5jb2wtMy00IHtcbiAgICAgIGdyaWQtY29sdW1uOiAzIC8gLTE7XG4gICAgfVxuICAgIC5jb2wtNC0xLFxuICAgIC5jb2wtNC0yLFxuICAgIC5jb2wtNS0xLFxuICAgIC5jb2wtNi0xIHtcbiAgICAgIGdyaWQtY29sdW1uOiA0IC8gLTE7XG4gICAgfVxuICAgIC5jb2wtNS0yIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxLyAtMTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVhay1iZXR3ZWVuKG1pbiwgNjk5KSB7XG4gICAgLS1jb2x1bW4tY291bnQ6IDI7XG5cbiAgICAuY29sLTEtMSxcbiAgICAuY29sLTMtMSxcbiAgICAuY29sLTUtMSB7XG4gICAgICBncmlkLWNvbHVtbjogMTtcbiAgICB9XG4gICAgLmNvbC0yLTEsXG4gICAgLmNvbC00LTEsXG4gICAgLmNvbC02LTEge1xuICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWstaW4oNTAwKSB7XG4gICAgICAuY29sLTEtMSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICB9XG4gICAgICAuY29sLTEtNSArIC5jb2wtNi0xIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWstb3V0KDUwMCkge1xuICAgICAgLmNvbC0yLTUge1xuICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgIH1cbiAgICAgIC5jb2wtMS01IHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEZXYgU3R5bGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBuYXZpZ2F0aW9uLWJhciwgaGVhZGVyLCBtYWluLCBtYWluID4gKiwgc2lkZS1iYXIsICNmb290ZXIsIGFzaWRlIHtcbi8vICAgcG9zaXRpb246cmVsYXRpdmU7XG4vLyB9XG5cbi8vIG5hdmlnYXRpb24tYmFyIHtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKCRyZWQsIDAuNSk7XG4vLyAgIGJvcmRlci1jb2xvcjokcmVkO1xuLy8gfVxuXG4vLyAuaGVhZGVyIHtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKCRvcmFuZ2UsIDAuNSk7XG4vLyAgIGJvcmRlci1jb2xvcjokb3JhbmdlO1xuLy8gfVxuXG4vLyAjYnJlYWRjcnVtYnMtYmFyIHtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKCRibHVlLCAwLjUpO1xuLy8gICBib3JkZXItY29sb3I6JGJsdWU7XG4vLyB9XG5cbi8vICNhbmNob3JzLWJhciB7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6cmdiYSgkcHVycGxlLCAwLjUpO1xuLy8gICBib3JkZXItY29sb3I6JHB1cnBsZTtcbi8vIH1cblxuLy8gbWFpbiB7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6cmdiYSgkZ3JlZW4sIDAuNSk7XG4vLyAgIGJvcmRlci1jb2xvcjokZ3JlZW47XG4vLyB9XG5cbi8vIHNpZGUtYmFyIHtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKCRwdXJwbGUsIDAuNSk7XG4vLyAgIGJvcmRlci1jb2xvcjokcHVycGxlO1xuLy8gfVxuXG4vLyAjZm9vdGVyIHtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKCRicm93biwgMC41KTtcbi8vICAgYm9yZGVyLWNvbG9yOiRicm93bjtcbi8vIH1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gQnJlYWtwb2ludHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNicmVha3BvaW50c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczptZXRhJztcbkB1c2UgJ3Nhc3M6c3RyaW5nJztcbkB1c2UgJ3Nhc3M6bWF0aCc7XG5AdXNlICcuLi9oZWxwZXJzL2JyZWFrJztcblxuLy8vIFdoZW4gT05MWSB1c2luZyB0aGUgZm9sbG93aW5nIHByZWRlZmluZSBicmVha3BvaW50IG5hbWVzIHlvdSBjYW4gdXNlIHRoaXMgY3JlYXRlIGZpbGUgbGlrZSB0aGlzOlxuLy8vIEBleGFtcGxlIFxuLy8vIEBmb3J3YXJkICdjcmVhdGUvYnJlYWtwb2ludHMnIHdpdGggKFxuLy8vICAgJG1pbiAgICAgICAgICA6IDMyMCxcbi8vLyAgICRzbWFsbCAgICAgICAgOiA0ODAsXG4vLy8gICAkc21hbGwtbWVkaXVtIDogNzIwLFxuLy8vICAgJG1lZGl1bSAgICAgICA6IDk1MCxcbi8vLyAgICRsYXJnZSAgICAgICAgOiAxMTIwLFxuLy8vICAgJG1heCAgICAgICAgICA6IDE2ODBcbi8vLyApO1xuXG4kbWluICAgICAgICAgIDogbnVsbCAhZGVmYXVsdDsgLy8gMzIwcHhcbiRtaW4tc21hbGwgICAgOiBudWxsICFkZWZhdWx0OyBcbiRzbWFsbCAgICAgICAgOiBudWxsICFkZWZhdWx0OyAvLyA0ODBweFxuJHNtYWxsLW1lZGl1bSA6IG51bGwgIWRlZmF1bHQ7IC8vIDcyMHB4XG4kbWVkaXVtICAgICAgIDogbnVsbCAhZGVmYXVsdDsgLy8gOTUwcHhcbiRtZWRpdW0tbGFyZ2UgOiBudWxsICFkZWZhdWx0OyBcbiRsYXJnZSAgICAgICAgOiBudWxsICFkZWZhdWx0OyAvLyAxMTIwcHhcbiRsYXJnZS1tYXggICAgOiBudWxsICFkZWZhdWx0OyBcbiRtYXggICAgICAgICAgOiBudWxsICFkZWZhdWx0OyAvLyAxNjgwcFxuXG4vLy8gV2hlbiB1c2luZyBhbnkgbnVtYmVyIG9mIGJyZWFrcG9pbnRzIHdpdGggYW55IG5hbWUgeW91IGNhbiB1c2UgdGhpcyBjcmVhdGUgZmlsZSBsaWtlIHRoaXM6XG4vLy8gQGV4YW1wbGUgXG4vLy8gQGZvcndhcmQgJ2NyZWF0ZS9icmVha3BvaW50cycgd2l0aCAoXG4vLy8gICAkYnJlYWtwb2ludHMgOiAoXG4vLy8gICAgICdtaW4nICAgICAgICAgIDogMzIwLFxuLy8vICAgICAnc21hbGwnICAgICAgICA6IDQ4MCxcbi8vLyAgICAgJ3NtYWxsLW1lZGl1bScgOiA3MjAsXG4vLy8gICAgICduYXYnICAgICAgICAgIDogNjY2LCA8LS0gd29uJ3QgYmUgZXhwb3NlZCBiZWN1YXNlIGl0J3Mgbm90IGEgcHJlZGVmaW5lZCBuYW1lICgkbWVkaWEtbmF2IHdpbGwgZXJyb3IpXG4vLy8gICAgICdtZWRpdW0nICAgICAgIDogOTUwLFxuLy8vICAgICAnbGFyZ2UnICAgICAgICA6IDExMjAsXG4vLy8gICAgICdtYXgnICAgICAgICAgIDogMTY4MFxuLy8vICAgKVxuLy8vICk7XG5cbiRicmVha3BvaW50cyA6IChcbiAgJ21pbicgICAgICAgICAgOiAkbWluLFxuICAnbWluLXNtYWxsJyAgICA6ICRtaW4tc21hbGwsXG4gICdzbWFsbCcgICAgICAgIDogJHNtYWxsLFxuICAnc21hbGwtbWVkaXVtJyA6ICRzbWFsbC1tZWRpdW0sXG4gICdtZWRpdW0nICAgICAgIDogJG1lZGl1bSxcbiAgJ21lZGl1bS1sYXJnZScgOiAkbWVkaXVtLWxhcmdlLFxuICAnbGFyZ2UnICAgICAgICA6ICRsYXJnZSxcbiAgJ2xhcmdlLW1heCcgICAgOiAkbGFyZ2UtbWF4LFxuICAnbWF4JyAgICAgICAgICA6ICRtYXhcbikgIWRlZmF1bHQ7XG5cbi8vLyBQcml2YXRlIGFkZC11bml0IGZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gQHNlZSBodHRwczovL3Nhc3MtbGFuZy5jb20vZG9jdW1lbnRhdGlvbi9vcGVyYXRvcnMvbnVtZXJpY1xuXG5AZnVuY3Rpb24gX2FkZC11bml0KCR2YWx1ZSkge1xuICBAaWYgKG1ldGEudHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIGFuZCBtYXRoLmlzLXVuaXRsZXNzKCR2YWx1ZSkpIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAqIDFweDtcbiAgfVxuICBAcmV0dXJuICR2YWx1ZTtcbn0gXG5cbi8vLyBVcGRhdGUgYWxsIHRoZSBwcmVkZWZpbmVkIGJyZWFrcG9pbnRzIGZyb20gdGhlICRicmVha3BvaW50cyBtYXAgLS0tLS0tLS0tLS0tLVxuLy8vIFdlIGhhdmUgdG8gZG8gaXQgdGhpcyB3YXkgYmVjYXVzZSB3ZSBjYW4ndCBkeW5hbWljYWxseSBkZWZpbmUgdmFyaWFibGVzXG4vLy8gbmFtZXMuIFRoaXMgaXMgd2h5IHdlIGhhdmUgdGhlIHByZWRlZmluZWQgbmFtZXMuIFxuXG5AaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCBcIm1pblwiKSB7IFxuICAkbWluIDogX2FkZC11bml0KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcIm1pblwiKSk7IFxuICBAaWYgbWV0YS50eXBlLW9mKG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcIm1pblwiKSkgPT0gJ251bGwnICB7XG4gICAgJGJyZWFrcG9pbnRzIDogbWFwLnJlbW92ZSgkYnJlYWtwb2ludHMsIFwibWluXCIpOyBcbiAgfVxufVxuXG5AaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCBcIm1pbi1zbWFsbFwiKSB7IFxuICAkbWluLXNtYWxsIDogX2FkZC11bml0KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcIm1pbi1zbWFsbFwiKSk7IFxuICBAaWYgbWV0YS50eXBlLW9mKG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcIm1pbi1zbWFsbFwiKSkgPT0gJ251bGwnICB7XG4gICAgJGJyZWFrcG9pbnRzIDogbWFwLnJlbW92ZSgkYnJlYWtwb2ludHMsIFwibWluLXNtYWxsXCIpOyBcbiAgfVxufVxuXG5AaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCBcInNtYWxsXCIpIHsgXG4gICRzbWFsbCA6IF9hZGQtdW5pdChtYXAtZ2V0KCRicmVha3BvaW50cywgXCJzbWFsbFwiKSk7IFxuICBAaWYgbWV0YS50eXBlLW9mKG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcInNtYWxsXCIpKSA9PSAnbnVsbCcgIHtcbiAgICAkYnJlYWtwb2ludHMgOiBtYXAucmVtb3ZlKCRicmVha3BvaW50cywgXCJzbWFsbFwiKTsgXG4gIH1cbn1cblxuQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgXCJzbWFsbC1tZWRpdW1cIikgeyBcbiAgJHNtYWxsLW1lZGl1bSA6IF9hZGQtdW5pdChtYXAtZ2V0KCRicmVha3BvaW50cywgXCJzbWFsbC1tZWRpdW1cIikpOyBcbiAgQGlmIG1ldGEudHlwZS1vZihtYXAtZ2V0KCRicmVha3BvaW50cywgXCJzbWFsbC1tZWRpdW1cIikpID09ICdudWxsJyAge1xuICAgICRicmVha3BvaW50cyA6IG1hcC5yZW1vdmUoJGJyZWFrcG9pbnRzLCBcInNtYWxsLW1lZGl1bVwiKTsgXG4gIH1cbn1cblxuQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgXCJtZWRpdW1cIikgeyBcbiAgJG1lZGl1bSA6IF9hZGQtdW5pdChtYXAtZ2V0KCRicmVha3BvaW50cywgXCJtZWRpdW1cIikpOyBcbiAgQGlmIG1ldGEudHlwZS1vZihtYXAtZ2V0KCRicmVha3BvaW50cywgXCJtZWRpdW1cIikpID09ICdudWxsJyAge1xuICAgICRicmVha3BvaW50cyA6IG1hcC5yZW1vdmUoJGJyZWFrcG9pbnRzLCBcIm1lZGl1bVwiKTsgXG4gIH1cbn1cblxuQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgXCJtZWRpdW0tbGFyZ2VcIikgeyBcbiAgJG1lZGl1bS1sYXJnZSA6IF9hZGQtdW5pdChtYXAtZ2V0KCRicmVha3BvaW50cywgXCJtZWRpdW0tbGFyZ2VcIikpOyBcbiAgQGlmIG1ldGEudHlwZS1vZihtYXAtZ2V0KCRicmVha3BvaW50cywgXCJtZWRpdW0tbGFyZ2VcIikpID09ICdudWxsJyAge1xuICAgICRicmVha3BvaW50cyA6IG1hcC5yZW1vdmUoJGJyZWFrcG9pbnRzLCBcIm1lZGl1bS1sYXJnZVwiKTsgXG4gIH1cbn1cblxuQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgXCJsYXJnZVwiKSB7IFxuICAkbGFyZ2UgOiBfYWRkLXVuaXQobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibGFyZ2VcIikpOyBcbiAgQGlmIG1ldGEudHlwZS1vZihtYXAtZ2V0KCRicmVha3BvaW50cywgXCJsYXJnZVwiKSkgPT0gJ251bGwnICB7XG4gICAgJGJyZWFrcG9pbnRzIDogbWFwLnJlbW92ZSgkYnJlYWtwb2ludHMsIFwibGFyZ2VcIik7IFxuICB9XG59XG5cbkBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsIFwibGFyZ2UtbWF4XCIpIHsgXG4gICRsYXJnZS1tYXggOiBfYWRkLXVuaXQobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibGFyZ2UtbWF4XCIpKTsgXG4gIEBpZiBtZXRhLnR5cGUtb2YobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibGFyZ2UtbWF4XCIpKSA9PSAnbnVsbCcgIHtcbiAgICAkYnJlYWtwb2ludHMgOiBtYXAucmVtb3ZlKCRicmVha3BvaW50cywgXCJsYXJnZS1tYXhcIik7IFxuICB9XG59XG5cbkBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsIFwibWF4XCIpIHsgXG4gICRtYXggOiBfYWRkLXVuaXQobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibWF4XCIpKTsgXG4gIEBpZiBtZXRhLnR5cGUtb2YobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibWF4XCIpKSA9PSAnbnVsbCcgIHtcbiAgICAkYnJlYWtwb2ludHMgOiBtYXAucmVtb3ZlKCRicmVha3BvaW50cywgXCJtYXhcIik7IFxuICB9XG59XG5cbi8vIE1ha2Ugc3VyZSBhbGwgdGhlIHZhbHVlcyBpbiB0aGUgJGJyZWFrcG9pbnRzIG1hcCBoYXZlIHVuaXRzXG5cbkBlYWNoICRrZXksICR2YWx1ZSBpbiAkYnJlYWtwb2ludHMge1xuICAkYnJlYWtwb2ludHMgOiBtYXAuc2V0KCRicmVha3BvaW50cywgJGtleSwgX2FkZC11bml0KCR2YWx1ZSkpOyBcbn1cblxuLy8vIEJyZWFrcG9pbnQgZnVuY3Rpb25cbi8vLyBBY2NlcHRzIGEgc3RyaW5nIHRvIHB1bGwgZnJvbSB0aGUgJGJyZWFrcG9pbnRzIG1hcCBpZiBpdCBleGlzdHNcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbHVlKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJHZhbHVlKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSBhbmQgbWV0YS50eXBlLW9mKG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpICE9IG51bGwpIHtcbiAgICAgICR2YWx1ZSA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHdhcm4gJ1wiJyArICR2YWx1ZSArICdcIiBicmVha3BvaW50IGhhcyBub3QgYmVlbiBkZWZpbmVkLiBDaGVjayB0aGUgcnVsZXMgd2hlcmV2ZXIgeW91IGFyZSByZWdpc3RlcmluZyB5b3VyIFwiY3JlYXRlL2JyZWFrcG9pbnRzXCIgaGVscGVyJztcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfYWRkLXVuaXQoJHZhbHVlKTtcbn1cblxuLy8vIEJyZWFrIG1peGluc1xuLy8vIFJlZGVmaW5lIHRoZSBicmVhayBtaXhpbnMgd2l0aCBvbmVzIHRoYXQgdXNlIHRoZSBicmVha3BvaW50cyBmdW5jdGlvbiBmb3IgdmFsaWRhdGlvblxuXG5AbWl4aW4gb3V0KCRicmVha3BvaW50KSB7XG4gIEBpbmNsdWRlIGJyZWFrLm91dChicmVha3BvaW50KCRicmVha3BvaW50KSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBpbigkYnJlYWtwb2ludCkge1xuICBAaW5jbHVkZSBicmVhay5pbihicmVha3BvaW50KCRicmVha3BvaW50KSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBiZXR3ZWVuKCRtaW4sICRtYXgpIHtcbiAgQGluY2x1ZGUgYnJlYWsuYmV0d2VlbihicmVha3BvaW50KCRtaW4pLCBicmVha3BvaW50KCRtYXgpKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEJhY2tncm91bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2JhY2tncm91bmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ3Bvc2l0aW9uJztcblxuQG1peGluIGJsb3dvdXQoJHBzdWRvIDogYmVmb3JlKSB7XG4gICY6I3skcHN1ZG99IHtcbiAgICBjb250ZW50OlwiXCI7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjppbmhlcml0OyBcblx0XHR6LWluZGV4Oi0xOyBcbiAgICBAaW5jbHVkZSBwb3NpdGlvbi5ibG93b3V0OyBcbiAgICBAY29udGVudDtcbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gUG9zaXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNwb3NpdGlvblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSAnLi4vaGVscGVycy9icmVhayc7XG5cbkBtaXhpbiBleHBhbmRlZCB7XG5cdHBvc2l0aW9uOmFic29sdXRlOyBcblx0dG9wOjA7IFxuXHRsZWZ0OjA7IFxuXHR3aWR0aDoxMDAlO1xuXHRoZWlnaHQ6MTAwJTsgXG59XG5cbkBtaXhpbiBjZW50cmUge1xuICBwb3NpdGlvbjphYnNvbHV0ZTsgXG5cdHRvcDo1MCU7IFxuXHRsZWZ0OjUwJTtcbiAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgXG59XG5cbkBtaXhpbiBibG93b3V0KCRob3Jpem9udGFsIDogdHJ1ZSwgJHZlcnRpY2FsIDogZmFsc2UpIHtcbiAgXG4gIHBvc2l0aW9uOmFic29sdXRlO1xuXG4gIEBpZiAkaG9yaXpvbnRhbCBhbmQgJHZlcnRpY2FsIHtcbiAgICB0b3AgICAgICAgOiA1MCU7IFxuICAgIGxlZnQgICAgICA6IDUwJTsgXG4gICAgd2lkdGggICAgIDogMTAwdnc7XG4gICAgaGVpZ2h0ICAgIDogMTAwdmg7IFxuICAgIHRyYW5zZm9ybSA6IHRyYW5zbGF0ZSh2YXIoLS10cmFuc2xhdGVYLCAtNTAlKSwgdmFyKC0tdHJhbnNsYXRlWSwgLTUwJSkpO1xuICB9IEBlbHNlIGlmICRob3Jpem9udGFsICB7XG4gICAgdG9wICAgICAgIDogMDsgXG4gICAgbGVmdCAgICAgIDogNTAlOyBcbiAgICB3aWR0aCAgICAgOiAxMDB2dztcbiAgICBoZWlnaHQgICAgOiAxMDAlOyBcbiAgICB0cmFuc2Zvcm0gOiB0cmFuc2xhdGVYKHZhcigtLXRyYW5zbGF0ZVgsIC01MCUpKTtcbiAgfSBAZWxzZSBpZiAkdmVydGljYWwgIHtcbiAgICB0b3AgICAgICAgOiA1MCU7IFxuICAgIGxlZnQgICAgICA6IDA7IFxuICAgIHdpZHRoICAgICA6IDEwMCU7XG4gICAgaGVpZ2h0ICAgIDogMTAwdmg7IFxuICAgIHRyYW5zZm9ybSA6IHRyYW5zbGF0ZVkodmFyKC0tdHJhbnNsYXRlWSwgLTUwJSkpO1xuICB9XG5cbn0iLCJAdXNlIFwic2FzczpsaXN0XCI7XG5cbi8vLyBAZXhhbXBsZSBAaW5jbHVkZSBjb21wb25lbnQtZXhpc3RzKCdiYWNrZ3JvdW5kLWltYWdlJykgeyBvcGFjaXR5OjAuNTsgfVxuLy8vIFBhc3MgaW4gbXVsdHVpcGxlIGNvbXBlbmVudCBuYW1lcyBpZiB5b3Ugd2FudCB0byBjaGVjayB0aGV5IGFsbCBleGlzdFxuXG5AbWl4aW4gZXhpc3RzKCRuYW1lcy4uLikge1xuXG4gICRzZWxlY3RvciA6ICdib2R5JztcbiAgJHBhcmVudCA6aWYobGlzdC5udGgobGlzdC5udGgoJiwgMSksIDEpID09ICc6cm9vdCcsICcnLCAmKTtcblxuICBAZWFjaCAkbmFtZSBpbiAkbmFtZXMge1xuICAgICRzZWxlY3RvciA6ICRzZWxlY3RvciArICdbZGF0YS1jb21wb25lbnRzKj1cIiN7JG5hbWV9XCJdJztcbiAgfVxuXG4gIEBhdC1yb290ICN7JHNlbGVjdG9yfSAjeyRwYXJlbnR9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gQGV4YW1wbGUgQGluY2x1ZGUgY29tcG9uZW50LWRvZXNudC1leGlzdHMoJ2JhY2tncm91bmQtaW1hZ2UnKSB7IG9wYWNpdHk6MC41OyB9XG4vLy8gUGFzcyBpbiBtdWx0dWlwbGUgY29tcGVuZW50IG5hbWVzIGlmIHlvdSB3YW50IHRvIGNoZWNrIG5vbmUgZXhpc3RcblxuQG1peGluIGRvZXNudC1leGlzdHMoJG5hbWVzLi4uKSB7XG5cbiAgJHNlbGVjdG9yIDogJ2JvZHknO1xuICAkcGFyZW50IDppZihsaXN0Lm50aChsaXN0Lm50aCgmLCAxKSwgMSkgPT0gJzpyb290JywgJycsICYpO1xuICBcbiAgQGVhY2ggJG5hbWUgaW4gJG5hbWVzIHtcbiAgICAkc2VsZWN0b3IgOiAkc2VsZWN0b3IgKyAnOm5vdChbZGF0YS1jb21wb25lbnRzKj1cIiN7JG5hbWV9XCJdKSc7XG4gIH1cblxuICBAYXQtcm9vdCAjeyRzZWxlY3Rvcn0gI3skcGFyZW50fSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5uYXZpZ2F0aW9uLWJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogY2FsYygjeyRzcGFjZXIwfSArICN7JGdhcH0pIDA7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAvLyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0MmRlZywgJGJsdWUzLCAkYmx1ZTQpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTQ7XG4gIHotaW5kZXg6IDU7XG4gIGdhcDogJGd1dHRlcjtcbiAgaGVpZ2h0OiBtaW4tY29udGVudDtcblxuICAtLXRvcC1sZXZlbC1saW5rLWd1dHRlcnM6ICN7JGdhcH07XG4gIC0tdG9wLWxldmVsLWxpbmstY29sb3VyOiB3aGl0ZTtcbiAgLS1tYXJrZXItbGluZS10aGlja25lc3M6IDNweDtcbiAgLS1zcGFjZXItbGluZS10aGlja25lc3M6IDFweDtcblxuICAvLyBAYXQtcm9vdCBib2R5Om5vdChbc3R5bGUqPVwiLS1sb2dvLXRhZ2xpbmUtaGVpZ2h0XCJdKSB7IC0tbG9nby10YWdsaW5lLWhlaWdodCA6IDEwcHg7IH1cblxuICBAaW5jbHVkZSBicmVhay1pbihzbWFsbC1tZWRpdW0pIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgQGluY2x1ZGUgYmFja2dyb3VuZC1ibG93b3V0IHtcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICB9XG5cbiAgPiAqOm5vdCguaW1hZ2UpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gIEBpbmNsdWRlIGNvbXBvbmVudC1leGlzdHMoJ2JhY2tncm91bmQtaW1hZ2UnKSB7XG4gICAgJi5oaWRlLWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgICAgIGJhY2tncm91bmQ6IGluaXRpYWw7XG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAaW5jbHVkZSBjb21wb25lbnQtZXhpc3RzKCdiYWNrZ3JvdW5kLXZpZGVvJykge1xuICAgICYuaGlkZS1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gICAgICBiYWNrZ3JvdW5kOiBpbml0aWFsO1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmludmVydCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgICBiYWNrZ3JvdW5kOiBpbml0aWFsO1xuICAgIC0tdG9wLWxldmVsLWxpbmstY29sb3VyOiAjeyRibHVlfTtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgYS5sb2dvIHtcbiAgICAgIGltZyB7XG4gICAgICAgICZbc3JjKj0ndGFnbGluZS5zdmcnXSB7XG4gICAgICAgICAgZmlsdGVyOiBpbnZlcnQoMC45KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExvZ28gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIGEubG9nbyB7XG4gICAgbWF4LXdpZHRoOiAzMjBweDtcbiAgICBtYXgtd2lkdGg6IDI4MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgYXNwZWN0LXJhdGlvOiAzNzEgLyA5NztcbiAgICAmOmhhcyhzdmcubm8tdGFnbGluZXMpIHtcbiAgICAgIGFzcGVjdC1yYXRpbzogaW5pdGlhbDtcbiAgICB9XG4gIH1cblxuICBAYXQtcm9vdCA6aGFzKGhlYWRlci5kYXJrKSAmOm5vdCguaW52ZXJ0KSB7XG4gICAgYS5sb2dvIHtcbiAgICAgIC0tbG9nby10ZXh0LWNvbG91cjogd2hpdGU7XG4gICAgfVxuICB9XG5cbiAgJjpub3QoLmludmVydCkge1xuICAgIC0tbG9nby10ZXh0LWNvbG91cjogd2hpdGU7XG4gIH1cblxuICAvLyBOYXZpZ2F0aW9uID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBuYXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBnYXA6IDhweDtcblxuICAgIC8vIERldmlkaW5nIFNwYWNlciBMaW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBXZSBuZWVkIHRvIGhhbmRsZSBub25lIHRvcC1sZXZlbC1saW5rIGl0ZW1zIGluIGEgc3BlY2lhbCB3YXkuXG4gICAgLy8gSWYgeW91IHNob3VsZCBlbmQgdXAgYWRkaW5nIG1vcmUgYnV0dG9ucyBzaW1pbGFyIHRvIHRoZSBcInNlYXJjaFwiIGluIHRoaXNcbiAgICAvLyBhcmVhLCB5b3Ugd2lsbCBuZWVkIGFtZW5kIHRoZSA6bnRoLWxhc3QtY2hpbGQgaW5kZXhcblxuICAgIG1haW4tbWVudSA+IHVsID4gbGkudG9wLWxldmVsLWxpbms6bm90KDpudGgtbGFzdC1jaGlsZCgyKSk6bm90KDpudGgtbGFzdC1jaGlsZCgzKSk6bm90KDpsYXN0LW9mLXR5cGUpOjpiZWZvcmUsXG4gICAgc2Vjb25kYXJ5LW1lbnUgPiB1bCA+IGxpOm5vdCg6bGFzdC1vZi10eXBlKTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgd2lkdGg6IHZhcigtLXNwYWNlci1saW5lLXRoaWNrbmVzcyk7XG4gICAgICBoZWlnaHQ6IDQwJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiBjYWxjKC0xICogKHZhcigtLXNwYWNlci1saW5lLXRoaWNrbmVzcykgLyAyKSk7XG4gICAgICB0b3A6IDUwJSAtIDIwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNwYWNlci1saW5lLWNvbG91ciwgJHJlZCk7XG4gICAgfVxuXG4gICAgcGVyc29uYWxpc2UtZXhwZXJpZW5jZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5wZXJzb25hbGlzZWQge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6ICRnYXA7XG5cbiAgICAgIC8vIFBlcnNvbmFsaXNlZCBFeHBlcmllbmNlIEJhclxuICAgICAgcGVyc29uYWxpc2UtZXhwZXJpZW5jZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcblxuICAgICAgICBhLmJ1dHRvbi5wZXJzb25hbGlzZWQge1xuICAgICAgICAgIC0tZm9udC1zaXplOiAwLjhlbTtcbiAgICAgICAgICAtLXBhZGRpbmc6IDRweCAxMHB4O1xuXG4gICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk0MHB4KSB7XG4gICAgICAgICAgICAtLWZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIC0tcGFkZGluZzogOHB4IDIwcHg7XG4gICAgICAgICAgICAtLWljb24tc2l6ZTogMjBweDtcbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzZweDtcbiAgICAgICAgICAgIC0taWNvbi1zaXplOiAxLjFlbTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmICsgc2Vjb25kYXJ5LW1lbnUge1xuICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0NDBweCkge1xuICAgICAgICB0b3A6IHVuc2V0O1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgLmJ1dHRvbixcbiAgICAgICAgcGVyc29uYWxpc2UtZXhwZXJpZW5jZSBhLmJ1dHRvbi5wZXJzb25hbGlzZWQge1xuICAgICAgICAgIC0tcGFkZGluZzogOHB4O1xuICAgICAgICAgIC0taWNvbi1zaXplOiAwLjhlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIG1haW4tbWVudSA+IHVsID4gbGkudG9wLWxldmVsLWxpbmsgKyAuc2VhcmNoIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMnB4O1xuICAgIH1cblxuICAgIC8vIEdlbmVyaWMgTGluayBTdHlsaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC5saW5rIHtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjRlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjVlbTtcbiAgICAgICAgZmlsbDogJHdoaXRlO1xuICAgICAgICAmOm5vdCguYXJyb3ctcmlnaHQpOm5vdCguYXJyb3ctbGVmdCkge1xuICAgICAgICAgIGhlaWdodDogMC44ZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYub3ZlcnZpZXcge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmxpbmsgc3ZnLFxuICAgIC5idXR0b24gc3ZnIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC8vIE1haW4gTWVudSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIG1haW4tbWVudSB7XG4gICAgICAtLWZvbnQtc2l6ZTogMC45NWVtO1xuICAgICAgb3JkZXI6IDI7XG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIC50b3AtbGV2ZWwtbGlua3Mge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBsaSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICYudG9wLWxldmVsLWxpbmsge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tdG9wLWxldmVsLWxpbmstY29sb3VyKTtcbiAgICAgICAgICAgICAgcGFkZGluZzogJGdhcDAgdmFyKC0tdG9wLWxldmVsLWxpbmstZ3V0dGVycyk7XG4gICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGhlaWdodDogM3B4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAodmFyKC0tdG9wLWxldmVsLWxpbmstZ3V0dGVycykgKiAyKSk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdG9wLWxldmVsLWxpbmstY29sb3VyLCAkcmVkKTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IHZhcigtLXRvcC1sZXZlbC1saW5rLWd1dHRlcnMpO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAmLmFjdGl2ZTo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAmLmN1cnJlbnQ6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmW2RhdGEtbmF2PSdtZW51J10ge1xuICAgICAgICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICZbZGF0YS1uYXY9J3N1Ym1lbnUnXSB7XG4gICAgICAgICAgICAgIG9yZGVyOiAyO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBTZWFyY2ggQnV0dG9uXG4gICAgICAgICAgJi5zZWFyY2gge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRnYXAwO1xuICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJi5zZWFyY2gsXG4gICAgICAgICAgJi5tZW51IHtcbiAgICAgICAgICAgIG9yZGVyOiAzO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmNhcnQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLXRvcC1sZXZlbC1saW5rLWd1dHRlcnMpIC8gMik7XG4gICAgICAgICAgICBsZWZ0OiAtMnB4O1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBhdC1yb290IGxpLmNhcnQge1xuICAgICAgICAgICAgICBhW2RhdGEtdG90YWxdIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtdG90YWwpO1xuICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyY2g7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAuNGVtO1xuICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyY2g7XG4gICAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDAuMjtcbiAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRyZWQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGE6bm90KFtkYXRhLXRvdGFsXSkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJHJlZDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA1NTBweCkge1xuICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDIwcHg7XG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5sb2FkaW5nIHtcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBAaW5jbHVkZSBsb2FkZXIoJGNvbG91cjogd2hpdGUpO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCkge1xuICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBsb2FkZXItYW5pbWF0aW9uIHtcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2Vjb25kYXJ5IE1lbnUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgc2Vjb25kYXJ5LW1lbnUge1xuICAgICAgLS1mb250LXNpemU6IDAuOGVtO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIG9yZGVyOiAxO1xuICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgICB6LWluZGV4OiA2O1xuICAgICAgPiB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcmlnaHQ6ICRnYXAtO1xuICAgICAgICBsaSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgYSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXRvcC1sZXZlbC1saW5rLWNvbG91cik7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZ2FwMCAkZ2FwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgICAgICAgY29sb3I6ICRibHVlNTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLnN1Yi1tZW51IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogNTAlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiBjYWxjKDEwMCUgKyAjeyRnYXAyfSk7XG4gICAgICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsICRnYXAwLSk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbiwgdHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSh3aGl0ZSwgMC4xKTtcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDEpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJGdhcDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkZ2FwMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgcGFkZGluZzogY2FsYygjeyRnYXAwfSAvIDIpICRnYXA7XG4gICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICYuYXNzZXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjRlbSAwIDA7XG4gICAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC40ZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE92ZXJ2aWV3IDxsaT4gbGluayBlbGVtZW50XG4gICAgICAgICAgICAmW2RhdGEtbGV2ZWw9JzEnXSBsaTpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgb3JkZXI6IDEwMDtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnJvd3Nlci13aXRob3V0LWZlYXR1cmUoJ3RvdWNoJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgY29sb3I6ICRibHVlNTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5zdWItbWVudSB7XG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgMCk7XG4gICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpsYXN0LW9mLXR5cGUgLnN1Yi1tZW51IHtcbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKDEwMCUgKyAjeyRnYXB9KSAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRyaWFuZ2xlIC8gUG9pbnRlclxuICAgICAgICAvLyBXZSByZW5kZXIgdGhpcyBvbiB0aGUgPGxpPiByYXRoZXIgdGhhbiB0aGUgZHJvcGRvd24tZ3JvdXAgZWxlbWVudCBiZWNhdXNlXG4gICAgICAgIC8vIHdlIHdhbnQgdGhpcyB0byBiZSBjZW50cmVkIHRvIHRoZSBidXR0b24uIFRoZXJlIGFyZSBjYXNlcyB3aGVyZSB0aGVcbiAgICAgICAgLy8gbGFzdCA8bGk+IHdpbGwgYmUgYWxpZ25lZCB0byB0aGUgcmlnaHQgb2YgdGhlIHZpZXdwb3J0LCB0aGF0IHdheVxuICAgICAgICAvLyB0aGVzZSBjYW4ndCBldmVyIGJlIHB1c2hlZCBvdXQgb2YgdmlldyBzaG91bGQgdGhlIHVzZXJzIHNjcmVlbiBzdGFydHNcbiAgICAgICAgLy8gdG8gYmVjb21lIHJlc3BvbnNpdmUgYmVsb3cgdGhlIG1heCB2aWV3IHdpZHRoLlxuICAgICAgICA+IGxpLmhhcy1jaGlsZHJlbiB7XG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIGNhbGMoLTUwJSArICN7JGdhcDAtfSkpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKHdoaXRlLCAwLjEpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCAxMDAlIDAlLCA1MCUgNTAlLCAwIDEwMCUpO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24sIHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSBTdHlsaW5nID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgQGluY2x1ZGUgYnJlYWstaW4oMTQwMCkge1xuICAgIC0tdG9wLWxldmVsLWxpbmstZ3V0dGVyczogI3skZ2FwfTtcbiAgICBuYXYgbWFpbi1tZW51ID4gdWwgbGkuc2VhcmNoIHNwYW4ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVhay1pbig5ODApIHtcbiAgICBuYXYgbWFpbi1tZW51IHtcbiAgICAgIC0tZm9udC1zaXplOiAwLjllbTtcbiAgICB9XG4gIH1cblxuICAvLyBNb2JpbGUgU3R5bGluZyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBsaS5tZW51IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzKTtcbiAgfVxuXG4gIGJ1dHRvbi5tZW51IHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG5cbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgbGluZSB7XG4gICAgICAgIHN0cm9rZS13aWR0aDogM3B4O1xuICAgICAgICBzdHJva2U6IHZhcigtLXRvcC1sZXZlbC1saW5rLWNvbG91cik7XG4gICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxNSUgMzAlO1xuICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzICRlYXNlLWluLW91dC1xdWludDtcbiAgICAgICAgfVxuICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbjtcbiAgICAgICAgfVxuICAgICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMTUlIDcwJTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyAkZWFzZS1pbi1vdXQtcXVpbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5hY3RpdmUge1xuICAgICAgc3ZnIHtcbiAgICAgICAgbGluZSB7XG4gICAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290IGJvZHkubW9iaWxlICYge1xuICAgIHBhZGRpbmc6ICRndXR0ZXIgMDtcbiAgICBsaS5tZW51IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5ODBweCkgYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICYuc2VhcmNoIHtcbiAgICAgICAgICAtLWZvbnQtc2l6ZTogMC44ZW07XG4gICAgICAgICAgLS1wYWRkaW5nOiA0cHggMTBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGkubWVudSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJ1dHRvbi5tZW51IHtcbiAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBhLmxvZ28ge1xuICAgICAgbWF4LXdpZHRoOiBpbml0aWFsO1xuICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgbWluLXdpZHRoOiBpbml0aWFsO1xuICAgIH1cbiAgICBuYXYge1xuICAgICAgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGluayxcbiAgICAgIHNlY29uZGFyeS1tZW51IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAgIG1haW4tbWVudSA+IHVsIGxpLnNlYXJjaCBzcGFuLFxuICAgICAgbWFpbi1tZW51ID4gdWwgbGlbZGF0YS1uYXY9J3N1Ym1lbnUnXSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBicmVhay1pbig5ODApIHtcbiAgICAgIG5hdiBtYWluLW1lbnUgPiB1bCBsaS5zZWFyY2ggc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29sb3VyIFBhbGV0dGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgXCIuL21vZHVsZXMvY29sb3VyXCI7XG5cbi8vIEFkanVzdCB0aGVzZSB0byBhbWVuZCB0aGUgbGlnaHRuZXNzIG9yIGRhcmtuZXNzIGFtb3VudHMgZm9yIHRoZSBjb2xvdXJzIGxzaXRlZCBiZWxvdy4uIFxuXG4kX2xpZ2h0bmVzcyA6IDE1JSAhZGVmYXVsdDtcbiRfZGFya25lc3MgIDogMjAlICFkZWZhdWx0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ29tbW9uIENvbG91cnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRyZWQgICAgICAgICAgOiAjOTcwODBFICFkZWZhdWx0O1xuJHJlZC1saWdodCAgICA6IGNvbG91ci5saWdodGVuKCRyZWQsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRyZWQtZGFyayAgICAgOiBjb2xvdXIuZGFya2VuKCRyZWQsICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kb3JhbmdlICAgICAgIDogI0RBNEIwRiAhZGVmYXVsdDtcbiRvcmFuZ2UtbGlnaHQgOiBjb2xvdXIubGlnaHRlbigkb3JhbmdlLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kb3JhbmdlLWRhcmsgIDogY29sb3VyLmRhcmtlbigkb3JhbmdlLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHllbGxvdyAgICAgICA6ICNFOUIxMDQgIWRlZmF1bHQ7XG4keWVsbG93LWxpZ2h0IDogY29sb3VyLmxpZ2h0ZW4oJHllbGxvdywgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHllbGxvdy1kYXJrICA6IGNvbG91ci5kYXJrZW4oJHllbGxvdywgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRncmVlbiAgICAgICAgOiAjNDg4QzEzICFkZWZhdWx0O1xuJGdyZWVuLWxpZ2h0ICA6IGNvbG91ci5saWdodGVuKCRncmVlbiwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJGdyZWVuLWRhcmsgICA6IGNvbG91ci5kYXJrZW4oJGdyZWVuLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJGJsdWUgICAgICAgICA6ICMxQjU1QzAgIWRlZmF1bHQ7XG4kYmx1ZS1saWdodCAgIDogY29sb3VyLmxpZ2h0ZW4oJGJsdWUsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRibHVlLWRhcmsgICAgOiBjb2xvdXIuZGFya2VuKCRibHVlLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHBpbmsgICAgICAgICA6ICNFMDVENkIgIWRlZmF1bHQ7XG4kcGluay1saWdodCAgIDogY29sb3VyLmxpZ2h0ZW4oJHBpbmssICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRwaW5rLWRhcmsgICAgOiBjb2xvdXIuZGFya2VuKCRwaW5rLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHB1cnBsZSAgICAgICA6ICM2MTNENUEgIWRlZmF1bHQ7XG4kcHVycGxlLWxpZ2h0IDogY29sb3VyLmxpZ2h0ZW4oJHB1cnBsZSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHB1cnBsZS1kYXJrICA6IGNvbG91ci5kYXJrZW4oJHB1cnBsZSwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRncmV5ICAgICAgICAgOiAjNzg3ODc4ICFkZWZhdWx0O1xuJGdyZXktbGlnaHQgICA6IGNvbG91ci5saWdodGVuKCRncmV5LCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kZ3JleS1kYXJrICAgIDogY29sb3VyLmRhcmtlbigkZ3JleSwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRicm93biAgICAgICAgOiAjNzc0RjM4ICFkZWZhdWx0O1xuJGJyb3duLWxpZ2h0ICA6IGNvbG91ci5saWdodGVuKCRicm93biwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJGJyb3duLWRhcmsgICA6IGNvbG91ci5kYXJrZW4oJGJyb3duLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHdoaXRlICAgICAgICA6ICNGRkZGRkYgIWRlZmF1bHQgO1xuJHdoaXRlLWRhcmsgICA6IGNvbG91ci5saWdodGVuKCR3aGl0ZSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuXG4kYmxhY2sgICAgICAgIDogIzAwMDAwMCAhZGVmYXVsdCA7XG4kYmxhY2stbGlnaHQgIDogY29sb3VyLmRhcmtlbigkYmxhY2ssICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU29jaWFsIE1lZGlhIENvbG91cnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vd3d3LmxvY2tlZG93bnNlby5jb20vc29jaWFsLW1lZGlhLWNvbG9ycy9cblxuJGZhY2Vib29rOiAgICAjMTg3N2YyICFkZWZhdWx0O1xuJHR3aXR0ZXI6ICAgICAjMWRhMWYyICFkZWZhdWx0O1xuJGdvb2dsZTogICAgICAjNDI4NWY0ICFkZWZhdWx0O1xuJHlvdXR1YmU6ICAgICAjZmYwMDAwICFkZWZhdWx0O1xuJGxpbmtlZGluOiAgICAjMDA3YmI1ICFkZWZhdWx0O1xuJGluc3RhZ3JhbTogICAjYzMyYWEzICFkZWZhdWx0O1xuJHBpbnRlcmVzdDogICAjYmQwODFjICFkZWZhdWx0O1xuJGRhaWx5bW90aW9uOiAjMDA2NkRDICFkZWZhdWx0O1xuJHNuYXBjaGF0OiAgICAjZmZmYzAwICFkZWZhdWx0O1xuJGZsaWNrcjogICAgICAjZjQwMDgzICFkZWZhdWx0O1xuJHZpbWVvOiAgICAgICAjMWFiN2VhICFkZWZhdWx0O1xuJHRodW1ibGVyOiAgICAjMzU0NjVkICFkZWZhdWx0O1xuJHJlZGRpdDogICAgICAjZmY0NTAwICFkZWZhdWx0O1xuJHdoYXRzYXBwOiAgICAjMjVkMzY2ICFkZWZhdWx0O1xuJHNreXBlOiAgICAgICAjMDBhZmYwICFkZWZhdWx0O1xuJGRpc2NvcmQ6ICAgICAjNzI4OWRhICFkZWZhdWx0O1xuXG4kc29jaWFsLW1lZGlhIDogKFxuICBmYWNlYm9vazogICAgICRmYWNlYm9vayxcbiAgdHdpdHRlcjogICAgICAkdHdpdHRlcixcbiAgZ29vZ2xlOiAgICAgICAkZ29vZ2xlLFxuICB5b3V0dWJlOiAgICAgICR5b3V0dWJlLFxuICBsaW5rZWRpbjogICAgICRsaW5rZWRpbixcbiAgaW5zdGFncmFtOiAgICAkaW5zdGFncmFtLFxuICBwaW50ZXJlc3Q6ICAgICRwaW50ZXJlc3QsXG4gIGRhaWx5bW90aW9uOiAgJGRhaWx5bW90aW9uLFxuICBzbmFwY2hhdDogICAgICRzbmFwY2hhdCxcbiAgZmxpY2tyOiAgICAgICAkZmxpY2tyLFxuICB2aW1lbzogICAgICAgICR2aW1lbyxcbiAgdGh1bWJsZXI6ICAgICAkdGh1bWJsZXIsXG4gIHJlZGRpdDogICAgICAgJHJlZGRpdCxcbiAgd2hhdHNhcHA6ICAgICAkd2hhdHNhcHAsXG4gIHNreXBlOiAgICAgICAgJHNreXBlLFxuICBkaXNjb3JkOiAgICAgICRkaXNjb3JkXG4pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gT3RoZXIgQ29sb3Vyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHllbGxvOiAjRkZDQjA4ICFkZWZhdWx0O1xuXG4vLy8gSGFuZGxlcyB0aGUgY3Vyc29yIHNlbGVjdGlvbiBjb2xvdXJcbi8vLyBAc2VlIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vYWxtYW5hYy9zZWxlY3RvcnMvcy9zZWxlY3Rpb24vXG5cbiRoaWdobGlnaHQ6ICNCMkQzRkEgIWRlZmF1bHQ7IFxuIiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcbkB1c2UgJ21vZHVsZXMvY29sb3VyL2VuY29kZScgYXMgY29sb3VyO1xuXG5cbkBtaXhpbiBsb2FkZXIoJHNpemUgOiAxMnB4LCAkY29sb3VyIDogJGdyZXkpIHtcbiAgLS1zaXplIDogI3skc2l6ZX07IFxuICBjb250ZW50OlwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOmNhbGMoNTAlIC0gKHZhcigtLXNpemUpIC8gMikpOyBcbiAgbGVmdDpjYWxjKDUwJSAtICh2YXIoLS1zaXplKSAvIDIpKTsgXG4gIG9wYWNpdHk6IDA7XG4gIHdpZHRoOnZhcigtLXNpemUpOyBcbiAgaGVpZ2h0OnZhcigtLXNpemUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjoycHggc29saWQgdmFyKC0tbG9hZGVyLWNvbG91ciwgJGNvbG91cik7XG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYW5pbWF0aW9uLW5hbWU6IGxvYWRlci1yb3RhdGU7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41cztcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyAkZWFzZS1pbi1vdXQ7XG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG4gIEBrZXlmcmFtZXMgbG9hZGVyLXJvdGF0ZSB7XG4gICAgZnJvbSB7dHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuICAgIHRvIHt0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICB9XG4gIEBjb250ZW50O1xufVxuXG5AbWl4aW4gbG9hZGVyLWFuaW1hdGlvbiB7IFxuICBvcGFjaXR5OjE7IFxuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZztcbiAgQGNvbnRlbnQ7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBCcm93c2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNicm93c2VyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gX2Jyb3dzZXIoJG5hbWUsICR2ZXJzaW9uOmZhbHNlKSB7XG4gIEBhdC1yb290IDpyb290IHtcbiAgICAmW2RhdGEtYnJvd3Nlcio9XCIjeyRuYW1lfVwiXSB7XG4gICAgICBAaWYgJHZlcnNpb24ge1xuICAgICAgICAmW2RhdGEtYnJvd3Nlcio9XCIjeyR2ZXJzaW9ufVwiXSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZlYXR1cmUoJG5hbWUpIHtcbiAgQGF0LXJvb3QgOnJvb3RbZGF0YS1icm93c2VyLWZlYXR1cmUqPVwiI3skbmFtZX1cIl0gJiB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIHdpdGhvdXQtZmVhdHVyZSgkbmFtZSkge1xuICBAYXQtcm9vdCA6cm9vdDpub3QoW2RhdGEtYnJvd3Nlci1mZWF0dXJlKj1cIiN7JG5hbWV9XCJdKSAmIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gZmlyZWZveCgkdmVyc2lvbjpmYWxzZSkge1xuICBAaW5jbHVkZSBfYnJvd3NlcignZmlyZWZveCcsICR2ZXJzaW9uKSB7IEBjb250ZW50OyB9O1xufVxuXG5AbWl4aW4gaWUoJHZlcnNpb246ZmFsc2UpIHtcbiAgQGluY2x1ZGUgX2Jyb3dzZXIoJ2llJywgJHZlcnNpb24pIHsgQGNvbnRlbnQ7IH07XG59XG5cbkBtaXhpbiBjaHJvbWUoJHZlcnNpb246ZmFsc2UpIHtcbiAgQGluY2x1ZGUgX2Jyb3dzZXIoJ2Nocm9tZScsICR2ZXJzaW9uKSB7IEBjb250ZW50OyB9O1xufVxuXG5AbWl4aW4gZWRnZSgkdmVyc2lvbjpmYWxzZSkge1xuICBAaW5jbHVkZSBfYnJvd3NlcignZWRnZScsICR2ZXJzaW9uKSB7IEBjb250ZW50OyB9O1xufVxuXG5AbWl4aW4gb3BlcmEoJHZlcnNpb246ZmFsc2UpIHtcbiAgQGluY2x1ZGUgX2Jyb3dzZXIoJ29wZXJhJywgJHZlcnNpb24pIHsgQGNvbnRlbnQ7IH07XG59XG5cbkBtaXhpbiBzYWZhcmkoJHZlcnNpb246ZmFsc2UpIHtcbiAgQGluY2x1ZGUgX2Jyb3dzZXIoJ3NhZmFyaScsICR2ZXJzaW9uKSB7IEBjb250ZW50OyB9O1xufVxuXG4iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuLy8gRHJvcGRvd24gTWVudSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmRyb3Bkb3duLW1lbnUge1xuICAtLW1pbi1oZWlnaHQ6IDQzMHB4O1xuICAtLW1heC1oZWlnaHQ6IDYwMHB4O1xuICAtLWRyb3Bkb3duLWdyb3VwLW5hdi13aWR0aDogMjcwcHg7XG4gIC0tZHJvcGRvd24taW1hZ2Utd2lkdGg6IDMwMHB4O1xuICAtLWRyb3Bkb3duLWltYWdlLWhlaWdodDogODBweDtcbiAgLS1kcm9wZG93bi1vcGVuLW9mZnNldDogNnB4O1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgLSB2YXIoLS1tYXJrZXItbGluZS10aGlja25lc3MpIC0gMXB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCByZ2JhKGJsYWNrLCAwLjIpO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWRyb3Bkb3duLWdyb3VwLW5hdi13aWR0aCkgMWZyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzICRlYXNlLWluLW91dCwgbWFyZ2luLXRvcCAwLjNzICRlYXNlLWluLW91dC1zaW5lO1xuICBmb250LXNpemU6IDE2cHg7XG5cbiAgQGF0LXJvb3QgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudS5hY3RpdmUge1xuICAgIC50b3AtbGV2ZWwtbGlua3MgLnRvcC1sZXZlbC1saW5rIC5saW5rLmN1cnJlbnQ6OmFmdGVyIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIGRyb3Bkb3duLW1lbnUge1xuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZHJvcGRvd24tb3Blbi1vZmZzZXQpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1tYXJrZXItbGluZS10aGlja25lc3MpKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDBweDtcbiAgICB6LWluZGV4OiA1O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICB9XG5cbiAgQGF0LXJvb3QgYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgJiB7XG4gICAgLS1kcm9wZG93bi1vcGVuLW9mZnNldDogI3skZ2FwfTtcbiAgICB3aWR0aDogdmFyKC0tZHJvcGRvd24tZ3JvdXAtbmF2LXdpZHRoKSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiAwO1xuICAgIEBpbmNsdWRlIGJyZWFrLWluKHNtYWxsKSB7XG4gICAgICAtLWRyb3Bkb3duLWdyb3VwLW5hdi13aWR0aDogY2FsYygxMDB2dyAtICN7JGd1dHRlcjN9KSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIEBhdC1yb290IGJvZHk6OmFmdGVyIHtcbiAgLy8gICBjb250ZW50OlwiXCI7XG4gIC8vICAgb3BhY2l0eTowO1xuICAvLyAgIHBvaW50ZXItZXZlbnRzOiBub25lOztcbiAgLy8gICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgLy8gICBpbnNldDowO1xuICAvLyAgIHRvcDp2YXIoLS1uYXZpZ2F0aW9uLWhlaWdodCwgMCk7XG4gIC8vICAgd2lkdGg6MTAwdnc7XG4gIC8vICAgaGVpZ2h0OiAxMDB2aDtcbiAgLy8gICBwb3NpdGlvbjogZml4ZWQ7XG4gIC8vICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkd2hpdGUsIDAuOTApO1xuICAvLyB9XG4gIC8vIEBhdC1yb290IGJvZHkubW9iaWxlLm1lbnUtdmlzaWJsZSB7XG4gIC8vICAgQGluY2x1ZGUgYnJlYWstaW4oc21hbGwpIHtcbiAgLy8gICAgICY6OmFmdGVyIHtcbiAgLy8gICAgICAgb3BhY2l0eToxO1xuICAvLyAgICAgfVxuICAvLyAgIH1cbiAgLy8gfVxufVxuXG4vLyBEcm9wZG93biBHcm91cHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZHJvcGRvd24tZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGdyaWQtY29sdW1uOiAxO1xuICBncmlkLXJvdzogMTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAvLyBvdmVyZmxvdy15OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBvcGFjaXR5OiAwO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgJGVhc2UtaW4tb3V0LCB0cmFuc2Zvcm0gMC4zcyAkZWFzZS1pbi1vdXQ7XG4gIC8vIHRyYW5zaXRpb24tZGVsYXk6IDAuM3MsIDAuM3M7XG5cbiAgJG1heC1kZXB0aDogNDtcbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkbWF4LWRlcHRoIHtcbiAgICAmW2RhdGEtbGV2ZWw9JyN7JGl9J10ge1xuICAgICAgei1pbmRleDogKCRtYXgtZGVwdGggLSAkaSkgKyAxO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHNjcm9sbC1zdHlsaW5nIHtcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5saW5rIHtcbiAgICAtLWZvbnQtc2l6ZTogMC45ZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgcGFkZGluZzogNHB4ICRnYXAyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uLCBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICYuY3VycmVudCB7XG4gICAgICBjb2xvcjogJHJlZDtcbiAgICB9XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICAvLyBUaGlzIHdpbGwgZ2l2ZSBsaW5rcyB3aXRoIGNoaWxkcmVuIGEgYW5nbGVkIHNoYXBlIHRvIGFjdCBhcyBhIGhpdCBoZWxwZXIuXG4gICAgICAvLyBJdCBwcmV2ZW50IHVzZXJzIGZyb20gaGF2aW5nIHRvIG1vdmUgdGhlIG1vdXNlIGRpcmVjdGx5IHRvIHRoZSByaWdodCBiZWZvcmVcbiAgICAgIC8vIGJlaW5nIGFibGUgdG8gbW92ZSB1cCB0aGUgbmV3IHN1YiBtZW51LiBTZXQgYSB0ZW1wb3JhcnkgYmFja2dyb3VuZC1jb2xvciB0byBzZWUgaXQgaW4gYWN0aW9uXG4gICAgICBAaW5jbHVkZSBicm93c2VyLXdpdGhvdXQtZmVhdHVyZSgndG91Y2gnKSB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgIGxlZnQ6IGNhbGMoMTAwJSAtIDUwcHgpO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBUaGlzIGFkanVzdCB0aGUgaGl0IGhlbHBlciBvbiB0aGUgbGFzdCBsaW5rIHRvIGFjb2lkIHVud2FudGVkIHNjcm9sbGVyc1xuICAgICAgQGF0LXJvb3QgOm5vdChbZGF0YS1icm93c2VyLWZlYXR1cmUqPSd0b3VjaCddKSBkcm9wZG93bi1ncm91cCAubGFzdCAubGluay5hY3RpdmU6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKSByb3RhdGUoMGRlZykgc2tldygtNDVkZWcsIDApO1xuICAgICAgfVxuICAgIH1cbiAgICAmLmhhcy1jaGlsZHJlbiB7XG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tbGVmdDogJGdhcDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgaG92ZXIoKSB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSBuZWVkIHRvIGhhbmRsZSB0aGUgdG9wIGFuZCBib3R0b20gcGFkZGluZyBzbGlnaHRseVxuICAvLyBkaWZmZXJlbnRseSBiZWNhdXNlIGdyaWRkZWQgbGlzdHMgaGF2ZSBzb21lIGlzc3VlcyB3aXRoIHRoZSBib3R0b21cbiAgLy8gcGFkZGluZyB3aGVuIG92ZXJmbG93IHNjcm9sbCBpcyBhY3RpdmVcbiAgdWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuXG4gICAgbGkge1xuICAgICAgJi5maXJzdCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkZ2FwO1xuICAgICAgfVxuICAgICAgJi5sYXN0IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRnYXA7XG4gICAgICB9XG4gICAgICAmLm92ZXJ2aWV3IHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGdhcDtcbiAgICAgICAgJiB+IC5maXJzdCB7XG4gICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmxpbmsge1xuICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBAaW5jbHVkZSBob3ZlcignLmFjdGl2ZScpIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJvd3Nlci13aXRob3V0LWZlYXR1cmUoJ3RvdWNoJykge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuYmFjayB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkZ2FwO1xuICAgICAgICBAaW5jbHVkZSBicm93c2VyLXdpdGhvdXQtZmVhdHVyZSgndG91Y2gnKSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAubGluayB7XG4gICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC40ZW07XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtbGV2ZWw9JzEnXSB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgbGkuYmFjayB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1sZXZlbD0nMiddIHtcbiAgICB3aWR0aDogOTUlO1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUlKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JleTM7XG4gIH1cblxuICAmW2RhdGEtbGV2ZWw9JzMnXSB7XG4gICAgd2lkdGg6IGNhbGMoOTUlICsgMnB4KTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGxlZnQ6IGNhbGMoMTk1JSAtIDFweCk7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUlKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuM3MsIDAuM3M7XG4gIH1cblxuICAmLmFsbG93LXNjcm9sbCB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxuXG4gICYuYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgJltkYXRhLWxldmVsPScyJ10sXG4gICAgJltkYXRhLWxldmVsPSczJ10ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbiAgICB9XG4gIH1cblxuICAmOm5vdCguYWN0aXZlKSB7XG4gICAgJltkYXRhLWxldmVsPScxJ10sXG4gICAgJltkYXRhLWxldmVsPScyJ10sXG4gICAgJltkYXRhLWxldmVsPSczJ10ge1xuICAgICAgbGVmdDogMCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290IGJvZHk6bm90KC5tb2JpbGUpIG5hdmlnYXRpb24tYmFyICY6bm90KFtkYXRhLWxldmVsPScxJ10pIHtcbiAgICAubGluayB7XG4gICAgICAvLyAtLWZvbnQtc2l6ZTowLjhlbTtcbiAgICAgIHBhZGRpbmctdG9wOiA2cHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290IGJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyICYge1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzICRib3JkZXItcmFkaXVzIDAgMCAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICB3aWR0aDogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXMsIDAuNXM7XG4gICAgdHJhbnNmb3JtOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgLy8gcGFkZGluZy1ib3R0b20gOiB2YXIoLS1kcm9wZG93bi1pbWFnZS1oZWlnaHQpO1xuICAgICRtYXgtZGVwdGg6IDQ7XG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkbWF4LWRlcHRoIHtcbiAgICAgICZbZGF0YS1sZXZlbD0nI3skaX0nXSB7XG4gICAgICAgIHotaW5kZXg6ICRpICsgMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubGluayB7XG4gICAgICAtLWZvbnQtc2l6ZTogMWVtO1xuICAgICAgcGFkZGluZy10b3A6ICRnYXAwO1xuICAgICAgcGFkZGluZy1ib3R0b206ICRnYXAwO1xuICAgIH1cbiAgICB1bCB7XG4gICAgICBsaSB7XG4gICAgICAgICYub3ZlcnZpZXcsXG4gICAgICAgICYuYmFjayB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBEcm9wZG93biBJbWFnZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZHJvcGRvd24taW1hZ2Uge1xuICBAaW5jbHVkZSBpbWFnZS1zcmNzZXQoKTtcbiAgLy8gaGVpZ2h0OmluaGVyaXQ7XG4gIGhlaWdodDogMTAwJTtcbiAgZ3JpZC1jb2x1bW46IDI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRncmV5MztcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGp1c3RpZnktaXRlbXM6IGZsZXgtZW5kO1xuXG4gIC5pbWFnZSB7XG4gICAgLy8gaGVpZ2h0OnZhcigtLW1heC1oZWlnaHQpO1xuICAgIHdpZHRoOiBjbGFtcCh2YXIoLS1kcm9wZG93bi1pbWFnZS13aWR0aCkgLyAyLCAzMHZ3LCB2YXIoLS1kcm9wZG93bi1pbWFnZS13aWR0aCkpO1xuICAgIGdyaWQtcm93OiAxO1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyAkZWFzZS1pbi1vdXQ7XG4gICAgb3BhY2l0eTogMDtcbiAgICAmLmFjdGl2ZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgIGltZyB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3QgYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgJiB7XG4gICAgLy8gZGlzcGxheTpub25lO1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICAgIC8vIGdyaWQtcm93OjE7XG4gICAgei1pbmRleDogMTA7XG4gICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgaGVpZ2h0OiB2YXIoLS1kcm9wZG93bi1pbWFnZS1oZWlnaHQpO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbml0aWFsO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIC8vIG1hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLWRyb3Bkb3duLWltYWdlLWhlaWdodCkpO1xuICAgIC5pbWFnZSB7XG4gICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgJy4uL192YXJpYWJsZXMnIGFzICo7XG5cbkBtaXhpbiBzdHlsaW5nKCkge1xuXG4gIC8vIHRoZSBzY3JvbGxiYXIuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDowLjllbTtcbiAgICBoZWlnaHQ6MC45ZW07XG4gIH1cblxuICAvLyB0aGUgYnV0dG9ucyBvbiB0aGUgc2Nyb2xsYmFyIChhcnJvd3MgcG9pbnRpbmcgdXB3YXJkcyBhbmQgZG93bndhcmRzKS5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uIHtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIHRoZSBkcmFnZ2FibGUgc2Nyb2xsaW5nIGhhbmRsZS5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmV5O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYm9yZGVyOiA0cHggc29saWQgcmdiYSgwLCAwLCAwLCAwKTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIH1cblxuICAvLyB0aGUgdHJhY2sgKHByb2dyZXNzIGJhcikgb2YgdGhlIHNjcm9sbGJhci5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLy8gdGhlIHRyYWNrIChwcm9ncmVzcyBiYXIpIE5PVCBjb3ZlcmVkIGJ5IHRoZSBoYW5kbGUuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLXBpZWNlIHtcblxuICB9XG5cbiAgLy8gdGhlIGJvdHRvbSBjb3JuZXIgb2YgdGhlIHNjcm9sbGJhciwgd2hlcmUgYm90aCBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBzY3JvbGxiYXJzIG1lZXQuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvLyB0aGUgZHJhZ2dhYmxlIHJlc2l6aW5nIGhhbmRsZSB0aGF0IGFwcGVhcnMgYXQgdGhlIGJvdHRvbSBjb3JuZXIgb2Ygc29tZSBlbGVtZW50cy5cbiAgJjo6LXdlYmtpdC1yZXNpemVyIHtcblxuICB9XG5cbiAgQGNvbnRlbnQ7XG5cbn0iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuXG5cbi5oZWFkZXIge1xuXG4gIHBhZGRpbmctdG9wOiRzcGFjZXI7XG4gIHBhZGRpbmctYm90dG9tOiRzcGFjZXI7XG5cbiAgPiBoMSBzdXAge1xuICAgIGZvbnQtc2l6ZTowLjZlbTtcbiAgfVxuXG4gID4gaDEgc3BhbntcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6Zm9udC1zaXplKDYpO1xuICAgIGNvbG9yOiAkZ3JleTtcbiAgfVxuXG4gID4gaDEgKyAqLCA+IGgyICsgKiB7XG4gICAgbWFyZ2luLXRvcDokZ3V0dGVyO1xuICB9XG5cbiAgPiBoMSArIGgyIHsgbWFyZ2luLXRvcDokZ3V0dGVyMDsgfVxuXG4gID4gaDIge1xuICAgIGNvbG9yOnZhcigtLXN1Yi1oZWFkaW5nLWNvbG91cik7IFxuICAgIEBpbmNsdWRlIGZvbnQtbGF0byhzZW1pLWJvbGQpO1xuICAgIGEgeyBcbiAgICAgIC0tZm9udC1jb2xvdXIgOiB2YXIoLS1zdWItaGVhZGluZy1jb2xvdXIpOyBcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgQGluY2x1ZGUgaG92ZXIgeyAtLWZvbnQtY29sb3VyIDogI3skcHJpbWFyeX07IH1cbiAgICB9XG4gIH1cblxuICB0aW1lIHtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBtYXJnaW46JGd1dHRlciAwOyBcbiAgICBwYWRkaW5nOjRweCA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjokZ3JleTM7XG4gICAgYm9yZGVyOjFweCBzb2xpZCAkZ3JleTQ7ICBcbiAgICBmb250LXNpemU6Zm9udC1zaXplKDEyKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItbGVmdDo0cHggc29saWQgdmFyKC0tdGFnLWNvbG91ciwgJHJlZCk7XG4gIH1cblxuICBidXR0b24tY29udGFpbmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiRnYXAtOyBcbiAgICBtYXJnaW4tdG9wOiRzcGFjZXIwO1xuICAgIEBpbmNsdWRlIGJyZWFrLWluKHNtYWxsKSB7XG4gICAgICAuYnV0dG9uIHNwYW4ge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5vdGljZS1tZXNzYWdlcyB7IG1hcmdpbi10b3A6JHNwYWNlcjA7IH1cblxuICAmLmRhcmsge1xuICAgIC0taGVhZGluZy1jb2xvdXI6d2hpdGU7XG4gICAgLS1zdWItaGVhZGluZy1jb2xvdXI6d2hpdGU7XG4gICAgLmJ1dHRvbi5icm9jaHVyZSB7XG4gICAgICAtLWZvbnQtY29sb3VyOndoaXRlO1xuICAgICAgc3ZnIHsgZmlsbDogd2hpdGU7IH1cbiAgICB9XG4gIH1cblxuICAmLm5vLWRldmlkZXItbGluZSB7XG4gICAgfiBtYWluIHtcbiAgICAgIC0tYm9yZGVyLXRvcC1jb2xvdXIgOiAje3JnYmEod2hpdGUsIDAuMil9O1xuICAgICAgPiAuY29udGVudC1ibG9jazpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgcGFkZGluZy10b3A6MDsgXG4gICAgICAgIGJveC1zaGFkb3c6IGluaXRpYWw7XG4gICAgICB9XG4gICAgfSAgICBcbiAgfVxuXG59IiwiQHVzZSAnc2FzczptYXRoJztcblxuQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbmZvb3RlciNmb290ZXIge1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcblxuICBmb250LXNpemU6IGZvbnQtc2l6ZSgxNCk7XG4gIHBhZGRpbmctdG9wOiAkc3BhY2VyO1xuICBwYWRkaW5nLWJvdHRvbTogJHNwYWNlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnk7XG4gIGdyaWQtZ2FwOiAkZ3V0dGVyO1xuICBkaXNwbGF5OiBncmlkO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAzMDBweDtcblxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gICAgQGluY2x1ZGUgaG92ZXIoJy5jdXJyZW50Jykge1xuICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1saWdodCwgJHJlZC1saWdodCk7XG4gICAgfVxuICAgICYuY3VycmVudCB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuYmFjay10by10b3Age1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBtYXJnaW46ICRnYXAtIGF1dG8gJGdhcCBhdXRvO1xuICAgIEBpbmNsdWRlIGJyZWFrLW91dChzbWFsbCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAudGFnLWxpbmUtc2lnbi1vZmYge1xuICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyMDtcbiAgICBAaW5jbHVkZSBoZWFkaW5nLWgyO1xuICAgIHRhZy1saW5lIHtcbiAgICAgIHNwYW4ge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnRzaXplKDEycHgsIDAuNGVtKTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrLWluKDkwMCkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrLWluKDYwMCkge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgZ2FwOiAkZ2FwMDtcbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICA+IG5hdiB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZ3JpZC1nYXA6ICRndXR0ZXI7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICB1bCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpICsgbGkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2FwMDtcbiAgICAgIH1cbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMzNweCwgMWZyKSk7XG4gICAgICAgIGdyaWQtZ2FwOiAwICRnYXA7XG4gICAgICAgIGxpOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBIZWFkaW5nIHN0eWxpbmdcblxuICAuaGVhZGluZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbiAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBAaW5jbHVkZSBoZWFkaW5nLWg0O1xuICAgIEBpbmNsdWRlIGZvbnQtY3JvcC1yZW1vdmU7XG4gICAgYSB7XG4gICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICB9XG4gIH1cblxuICBjb21wYW55LWRldGFpbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVubTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBncmlkLWdhcDogJGdhcDAgJGdhcDtcblxuICAgIHNtYWxsLFxuICAgIC5zbWFsbCB7XG4gICAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxMCk7XG4gICAgICBjb2xvcjogcmdiYSh3aGl0ZSwgMC43KTtcbiAgICAgIGJyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYmFzZSB7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNlcjtcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgIGEubG9nbyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMjQwcHg7XG4gICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWstb3V0KHNtYWxsLW1lZGl1bSkge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgJGJhci1oZWlnaHQ6IDNweDtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb290ZXItYnItY29sb3VyLCAkcmVkKTtcbiAgICAgICAgICBoZWlnaHQ6ICRiYXItaGVpZ2h0O1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBib3R0b206IG1hdGguZGl2KC0kYmFyLWhlaWdodCwgMik7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGEueWVsbG8ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogY2FsYygxMDAlICsgI3skZ2FwfSk7XG4gICAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxNCk7XG4gICAgICByaWdodDogMDtcbiAgICAgIGNvbG9yOiByZ2JhKHdoaXRlLCAwLjUpO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb247XG4gICAgICBzcGFuIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbjtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBjb2xvcjogJHllbGxvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgYWRtaW4tbGlua3Mge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogY2FsYygxMDAlICsgI3skZ2FwfSk7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2FwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhhcyguY2VwLWxvZ28pIHtcbiAgICAgIC0tbG9nby1zcGFjZXI6IDIwMHB4O1xuXG4gICAgICAuY2VwLWxvZ28ge1xuICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxKSBpbnZlcnQoMSk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVhay1vdXQoc21hbGwtbWVkaXVtKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tbG9nby1zcGFjZXIpO1xuICAgICAgICAuY2VwLWxvZ28ge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSArICN7JGdhcDJ9KTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgcmlnaHQ6IGNhbGModmFyKC0tbG9nby1zcGFjZXIpICogLTEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVhay1pbihzbWFsbC1tZWRpdW0pIHtcbiAgICAgICAgLmNlcC1sb2dvIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ3V0dGVyMjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrLWluKDE0MDApIHtcbiAgICA+IG5hdiB7XG4gICAgICB1bDpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBhbnktZGV0YWlscyBzbWFsbCBiciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC8vIGNvbXBhbnktZGV0YWlscywgPiBuYXYgdWwge1xuICAgIC8vIFx0cGFkZGluZzokZ2FwMjtcbiAgICAvLyBcdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIC8vIFx0YmFja2dyb3VuZC1jb2xvcjpyZ2JhKCRibHVlLWRhcmssIDAuNSk7XG4gICAgLy8gfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWstaW4oc21hbGwtbWVkaXVtKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgPiAqIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICA+IG5hdiB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgdWwge1xuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB1bnNldDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuYmFzZSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGEubG9nbyB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgICB3aWR0aDogMTYwcHg7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzb2NpYWwtbWVkaWEge1xuICAgICAgICBtYXJnaW4tdG9wOiAkc3BhY2VyMC07XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjZXIwO1xuICAgICAgfVxuICAgICAgYWRtaW4tbGlua3Mge1xuICAgICAgICBvcmRlcjogMztcbiAgICAgICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgICAgIG1hcmdpbi10b3A6ICRnYXA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5jbC1jb25zZW50LXNldHRpbmdzIHtcbiAgbGVmdDogdW5zZXQgIWltcG9ydGFudDtcbiAgcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBib3gtc2hhZG93OiB1bnNldCAhaW1wb3J0YW50O1xuICBib3R0b206IGNhbGModmFyKC0tZ3V0dGVyMykgKiAyLjc1KSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwO1xuICBAaW5jbHVkZSBicmVhay1pbihzbWFsbC1tZWRpdW0pIHtcbiAgICBib3R0b206IHZhcigtLWd1dHRlcjUpICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gQ3JvcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjY3JvcFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSAnc2FzczptYXRoJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJy4vbW9kdWxlcy91bml0JztcblxuXG4vLy8gQHNlZSBodHRwOi8vdGV4dC1jcm9wLmVpZ2h0c2hhcGVzLmNvbS8/dHlwZWZhY2Utc2VsZWN0aW9uPWdvb2dsZS1mb250JnR5cGVmYWNlPUxhdG8mY3VzdG9tLXR5cGVmYWNlLW5hbWU9SGVsdmV0aWNhJmN1c3RvbS10eXBlZmFjZS11cmw9JmN1c3RvbS10eXBlZmFjZS13ZWlnaHQ9NDAwJmN1c3RvbS10eXBlZmFjZS1zdHlsZT1ub3JtYWwmd2VpZ2h0LWFuZC1zdHlsZT0xMDAmc2l6ZT0zNiZsaW5lLWhlaWdodD0xLjImdG9wLWNyb3A9OSZib3R0b20tY3JvcD04XG5cbkBmdW5jdGlvbiBvZmZzZXQoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkY3JvcCkge1xuICAkY3JvcCAgICAgICAgOiB1bml0LnN0cmlwKCRjcm9wKTtcbiAgJGZvbnQtc2l6ZSAgIDogdW5pdC5zdHJpcCgkZm9udC1zaXplKSAqIDEwO1xuICAkbGluZS1oZWlnaHQgOiB1bml0LnN0cmlwKCRsaW5lLWhlaWdodCk7XG4gIEByZXR1cm4gbWF0aC5kaXYobWF0aC5yb3VuZChtYXRoLmRpdihtYXRoLm1heCgoJGNyb3AgKyAoJGxpbmUtaGVpZ2h0KSAqICgkZm9udC1zaXplIC8gMikpLCAwKSwgJGZvbnQtc2l6ZSkgKiAxMDApLCAxMDApO1xufVxuXG5AbWl4aW4gY3JvcDIoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkY3JvcC10b3AsICRjcm9wLWJvdHRvbSApIHtcbiAgXG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG5cbiAgQGlmICRjcm9wLXRvcCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIG1hcmdpbi10b3A6IC0gI3tvZmZzZXQoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkY3JvcC10b3ApfWVtO1xuXG4gICAgfVxuICB9XG5cbiAgQGlmICRjcm9wLWJvdHRvbSB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLSAje29mZnNldCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICRjcm9wLWJvdHRvbSl9ZW07XG4gICAgfVxuICB9XG5cbn1cblxuQG1peGluIGNyb3AoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkY3JvcC10b3AsICRjcm9wLWJvdHRvbSApIHtcblxuICAkY3JvcC10b3AgICAgOiB1bml0LnN0cmlwKCRjcm9wLXRvcCk7XG4gICRjcm9wLWJvdHRvbSA6IHVuaXQuc3RyaXAoJGNyb3AtYm90dG9tKTtcbiAgJGZvbnQtc2l6ZSAgIDogdW5pdC5zdHJpcCgkZm9udC1zaXplKSAqIDEwO1xuICAkbGluZS1oZWlnaHQgOiB1bml0LnN0cmlwKCRsaW5lLWhlaWdodCk7XG5cbiAgJGNyb3AtbGluZS1oZWlnaHQ6IDEuMjtcblxuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuXG5cbiAgQGlmICRjcm9wLXRvcCB7XG4gICAgJG1hcmdpbi10b3A6IG1hdGguZGl2KG1hdGgucm91bmQobWF0aC5kaXYobWF0aC5tYXgoKCRjcm9wLXRvcCArICgkbGluZS1oZWlnaHQgLSAkY3JvcC1saW5lLWhlaWdodCkgKiAoJGZvbnQtc2l6ZSAvIDIpKSwgMCksICRmb250LXNpemUpICogMTAwKSwgMTAwKTtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgbWFyZ2luLXRvcDogLSAjeyRtYXJnaW4tdG9wfWVtO1xuXG4gICAgfVxuICB9XG5cbiAgQGlmICRjcm9wLWJvdHRvbSB7XG4gICAgJG1hcmdpbi1ib3R0b206IG1hdGguZGl2KG1hdGgucm91bmQobWF0aC5kaXYobWF0aC5tYXgoKCRjcm9wLWJvdHRvbSArICgkbGluZS1oZWlnaHQgLSAkY3JvcC1saW5lLWhlaWdodCkgKiAoJGZvbnQtc2l6ZSAvIDIpKSwgMCksICRmb250LXNpemUpICogMTAwKSwgMTAwKTtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtICN7JG1hcmdpbi1ib3R0b219ZW07XG4gICAgfVxuICB9XG5cbn1cblxuXG5AbWl4aW4gY3JvcDMoJGNyb3AtZm9udC1zaXplOiA1MSwgJGNyb3AtbGluZS1oZWlnaHQ6IDEuMiwgJHRvcC1jcm9wOiAxMywgJGJvdHRvbS1jcm9wOiAxMSkge1xuICAvLyBDb25maWd1cmVkIGluIFN0ZXAgMVxuICAkbGluZS1oZWlnaHQ6IDEuMztcbiAgJGNyb3AtZm9udC1zaXplICAgOiB1bml0LnN0cmlwKCRjcm9wLWZvbnQtc2l6ZSkgKiAxMDtcblxuXG4gIC8vIEFwcGx5IHZhbHVlcyB0byBjYWxjdWxhdGUgZW0tYmFzZWQgbWFyZ2lucyB0aGF0IHdvcmsgd2l0aCBhbnkgZm9udCBzaXplXG4gICRkeW5hbWljLXRvcC1jcm9wOiBtYXRoLmRpdihtYXgoKCR0b3AtY3JvcCArICgkbGluZS1oZWlnaHQgLSAkY3JvcC1saW5lLWhlaWdodCkgKiAoJGNyb3AtZm9udC1zaXplIC8gMikpLCAwKSwgJGNyb3AtZm9udC1zaXplKTtcbiAgJGR5bmFtaWMtYm90dG9tLWNyb3A6IG1hdGguZGl2KG1heCgoJGJvdHRvbS1jcm9wICsgKCRsaW5lLWhlaWdodCAtICRjcm9wLWxpbmUtaGVpZ2h0KSAqICgkY3JvcC1mb250LXNpemUgLyAyKSksIDApLCAkY3JvcC1mb250LXNpemUpO1xuXG4gIC8vIE1peGluIG91dHB1dFxuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHdpZHRoOiAwO1xuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0jeyRkeW5hbWljLXRvcC1jcm9wfStlbTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICAgIG1hcmdpbi10b3A6IC0jeyRkeW5hbWljLWJvdHRvbS1jcm9wfStlbTtcbiAgfVxufVxuXG5AbWl4aW4gcmVtb3ZlIHtcbiAgJjo6YmVmb3JlLCAmOjphZnRlciB7IGRpc3BsYXk6bm9uZTsgfVxufSIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5ib2R5ID4gYmFja2dyb3VuZC1pbWFnZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBAaW5jbHVkZSBpbWFnZS1zcmNzZXQoKTtcblxuICAtLWJhY2tncm91bmQtdGhlbWUtb25lIDogI3skYmx1ZX07XG4gIC0tYmFja2dyb3VuZC10aGVtZS10d28gOiAjeyRibHVlMn07XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6XCJcIjtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTsgXG4gICAgdG9wOjA7IFxuICAgIGxlZnQ6MDsgXG4gICAgd2lkdGg6MTAwJTtcbiAgICBoZWlnaHQ6MTAwJTsgXG4gICAgb3BhY2l0eTowLjc7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdmFyKC0tYmFja2dyb3VuZC10aGVtZS1vbmUpLCB2YXIoLS1iYWNrZ3JvdW5kLXRoZW1lLXR3bykpO1xuICB9XG5cbiAgJi5ub25lIHtcbiAgICAmOjphZnRlciB7IGNvbnRlbnQ6aW5pdGlhbDsgfVxuICB9XG5cbiAgJi5yZWQge1xuICAgIC0tYmFja2dyb3VuZC10aGVtZS1vbmUgOiAjeyRyZWR9O1xuICAgIC0tYmFja2dyb3VuZC10aGVtZS10d28gOiAjeyRyZWR9O1xuICB9XG5cbiAgJi5ibGFjayB7XG4gICAgLS1iYWNrZ3JvdW5kLXRoZW1lLW9uZSA6ICN7JGJsYWNrfTtcbiAgICAtLWJhY2tncm91bmQtdGhlbWUtdHdvIDogI3skYmxhY2t9O1xuICB9XG5cbiAgJi50aWxlIHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogYXV0bztcbiAgICBpbWcgeyBkaXNwbGF5Om5vbmU7IH1cbiAgfVxuXG4gICY6bm90KC50aWxlKSB7XG4gICAgbWF4LWhlaWdodDogMTAwdmg7XG4gIH1cblxuICAmLmJlaGluZC1oZWFkZXIge1xuICAgIC8vIGZpbHRlcjogZ3JheXNjYWxlKDIwJSk7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgb3BhY2l0eToxO1xuICAgICAgYmFja2dyb3VuZDogcmdiYShibGFjaywgMC41KTtcbiAgICAgIC8vIGJhY2tncm91bmQ6IGluaXRpYWw7O1xuICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgICAgbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBibGFjayAyMCUsdHJhbnNwYXJlbnQgMTAwJSk7XG4gICAgfVxuICB9XG4gXG59XG5cbmJvZHkubW9iaWxlID4gYmFja2dyb3VuZC1pbWFnZSwgYm9keS5tb2JpbGUgPiBiYWNrZ3JvdW5kLXZpZGVvIHtcbiAgbWF4LWhlaWdodDogaW5pdGlhbDtcbn0iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuYm9keSA+IGJhY2tncm91bmQtdmlkZW8ge1xuXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBAaW5jbHVkZSBpbWFnZS1zcmNzZXQoKTtcblx0XG4gIHZpZGVvIHtcbiAgICBkaXNwbGF5ICAgICAgICAgOiBibG9jaztcbiAgICBwb3NpdGlvbiAgICAgICAgOiBhYnNvbHV0ZTtcbiAgICBvYmplY3QtZml0ICAgICAgOiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb24gOiB2YXIoLS1pbWFnZS1wb3NpdGlvbiwgY2VudGVyIDMzLjMzJSk7XG5cdFx0d2lkdGggICAgICAgICAgIDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2Utd2lkdGgtc2l6ZSwgMTAwJSkpO1xuXHRcdGhlaWdodCAgICAgICAgICA6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7IFxuXHRcdG1heC13aWR0aCAgICAgICA6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcblx0XHRtYXgtaGVpZ2h0ICAgICAgOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpO1xuXHRcdHRvcCAgICAgICAgICAgICA6IDA7IFxuXHRcdGxlZnQgICAgICAgICAgICA6IDA7XG5cdH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDpcIlwiO1xuICAgIHBvc2l0aW9uOmFic29sdXRlOyBcbiAgICB0b3A6MDsgXG4gICAgbGVmdDowOyBcbiAgICB3aWR0aDoxMDAlO1xuICAgIGhlaWdodDoxMDAlOyBcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB2YXIoLS1iYWNrZ3JvdW5kLXRoZW1lLW9uZSwgdHJhbnNwYXJlbnQpLCB2YXIoLS1iYWNrZ3JvdW5kLXRoZW1lLXR3bywgYmxhY2spKTtcbiAgfVxuXG59IiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbiNicmVhZGNydW1icy1iYXIge1xuXG4gIGJhY2tncm91bmQtY29sb3I6JHByaW1hcnk7XG4gIGRpc3BsYXk6ZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0ICR0cmFuc2l0aW9uLCB0b3AgJHRyYW5zaXRpb247XG5cbiAgdWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyBcbiAgICBsZWZ0OiRnYXAtO1xuICAgIHdpZHRoOiAxMDAlOztcbiAgICBsaSB7XG4gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgICAgKyBsaSB7IG1hcmdpbi1sZWZ0OiRnYXAtOyB9XG4gICAgfVxuICB9XG5cbiAgLmxpbmsge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6MTAwJTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OmJvbGQ7IFxuICAgIGZvbnQtc2l6ZSA6IGZvbnQtc2l6ZSgxOCk7XG4gICAgcGFkZGluZzokZ2FwOyBcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6d2hpdGU7IFxuICAgIHN2ZyB7XG4gICAgICBjb2xvcjpyZ2JhKHdoaXRlLCAwLjgpOyBcbiAgICAgIHdpZHRoOjAuN2VtO1xuICAgICAgaGVpZ2h0OjAuN2VtO1xuICAgICAgbWFyZ2luLWxlZnQ6JGdhcDtcbiAgICB9XG4gICAgQGluY2x1ZGUgaG92ZXIoJy5jdXJyZW50Jykge1xuICAgICAgY29sb3I6JHNlY29uZGFyeTtcbiAgICB9XG4gICAgJi5jdXJyZW50OjphZnRlciB7XG4gICAgICBjb250ZW50OlwiXCI7XG4gICAgICBib3R0b206MDtcbiAgICAgIGxlZnQ6MDsgXG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDo0cHg7IFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gIH1cblxuICAvLyBhIHtcbiAgLy8gICBncmlkLXJvdzoxOyBcbiAgLy8gICBmb250LXNpemUgOiBmb250LXNpemUoMjIpO1xuICAvLyAgIGZvbnQtd2VpZ2h0OmJvbGQ7IFxuICAvLyAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC8vICAgZGlzcGxheTpibG9jazsgXG4gIC8vICAgLS1mb250LWNvbG91ciA6IHdoaXRlOyBcbiAgLy8gICBAaW5jbHVkZSBob3ZlciB7XG4gIC8vICAgICBjb2xvcjokc2Vjb25kYXJ5O1xuICAvLyAgIH1cbiAgLy8gfVxuXG5cbiAgLy8gQGluY2x1ZGUgY29tcG9uZW50LWRvZXNudC1leGlzdHMoJ2JhY2tncm91bmQtaW1hZ2UnKSB7XG5cdFx0Ly8gJjo6YmVmb3JlIHsgYm9yZGVyLXRvcDoxcHggc29saWQgcmdiYSh3aGl0ZSwgMC4yKTsgfVxuXHQvLyB9XG5cbn1cblxuYm9keS5tb2JpbGUgPiAjYnJlYWRjcnVtYnMtYmFyIHtcbiAgbWF4LWhlaWdodDogaW5pdGlhbDtcbiAgXG4gIC8vLyBJZiB5b3Ugd2FudCB0aGlzIGJhY2sgaW4sIHlvdSdsbCBoYXZlIHRvIGVkaXQgdGhlIHRvZ2dsZSBsb2dpYyBpbiB0aGUgaXNNb2JpbGVCcmVha1BvaW50IG1ldGhvZCBoZXJlOiBcbiAgLy8vICBAc2VlIHNyYy9zY3JpcHRzL2NvbXBvbmVudHMvc2VjdGlvbnMvbmF2aWdhdGlvbi1iYXIuanNcbiAgZGlzcGxheTpub25lOyBcbn1cblxuIiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbiNhbmNob3JzLWJhciB7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjokZ3JleTM7XG4gIHRyYW5zaXRpb246IGhlaWdodCAkdHJhbnNpdGlvbiwgdG9wICR0cmFuc2l0aW9uO1xuICBkaXNwbGF5OmZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1heC13aWR0aDogMTAwdnc7XG5cbiAgLmNvbnRhaW5lciB7XG4gICAgZGlzcGxheTpmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6aGlkZGVuOyBcbiAgICBoZWlnaHQ6MTAwJTsgXG4gIH1cblxuICBAaW5jbHVkZSBicm93c2VyLXdpdGhvdXQtZmVhdHVyZSgndG91Y2gnKSB7IFxuICAgIEBpbmNsdWRlIGJyZWFrLWluKG1heCkge1xuICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgbWFyZ2luLWxlZnQ6JGd1dHRlcjItO1xuICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6JGd1dHRlcjtcbiAgICAgICAgcGFkZGluZy1yaWdodDokZ3V0dGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyb3dzZXItZmVhdHVyZSgndG91Y2gnKSB7IFxuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAjeyRndXR0ZXIyfSArICN7JGdhcDB9KTtcbiAgICBtYXJnaW4tbGVmdDokZ3V0dGVyLTtcbiAgICAmOjpiZWZvcmUgeyBjb250ZW50OmluaXRpYWw7IH1cbiAgICAuY29udGFpbmVyIHtcbiAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICBwYWRkaW5nLWxlZnQ6JGd1dHRlcjtcbiAgICAgIHBhZGRpbmctcmlnaHQ6JGd1dHRlcjtcbiAgICB9XG4gIH1cblxuICAmOjpiZWZvcmUgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAkZ3JleTQ7IH1cblxuICBhIHtcbiAgICBncmlkLXJvdzoxOyBcbiAgICBmb250LXNpemUgOiBmb250LXNpemUoMTQpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6Ym9sZDsgXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBkaXNwbGF5OmZsZXg7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjsgXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjb2xvcjokYmx1ZTsgXG4gICAgKyBhIHsgbWFyZ2luLWxlZnQ6JGd1dHRlcjsgfVxuICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgIGNvbG9yOiRzZWNvbmRhcnk7XG4gICAgfVxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6XCJcIjtcbiAgICAgIGJvdHRvbTowO1xuICAgICAgbGVmdDowOyBcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OjRweDsgXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdHJhbnNmb3JtOnNjYWxlWSgwKTtcbiAgICAgIHRyYW5zaXRpb246dHJhbnNmb3JtICR0cmFuc2l0aW9uLWR1cmF0aW9uICR0cmFuc2l0aW9uLWVhc2UgMC4ycztcbiAgICB9XG5cbiAgICAmLmN1cnJlbnQge1xuICAgICAgY29sb3I6JHNlY29uZGFyeTtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOnNjYWxlWSgxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFNpZGViYXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5zaWRlLWJhciB7XG4gID4gZGl2IHtcbiAgICA+ICoge1xuICAgICAgJjpub3QoLndoaXRlKSB7XG4gICAgICAgIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICAgICAgICAtLWhlYWRpbmctY29sb3VyOiB3aGl0ZTtcbiAgICAgIH1cbiAgICAgIC0tYmFja2dyb3VuZC1jb2xvdXI6ICN7JHByaW1hcnl9O1xuXG4gICAgICBvcmRlcjogMztcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgcGFkZGluZzogJGd1dHRlcjI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCByZ2JhKHdoaXRlLCAwLjIpKTtcbiAgICB9XG5cbiAgICBzZXJ2aWNlLWNlbnRyZS1maW5kZXIge1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICAgIHNlcnZpY2UtY2VudHJlLWZpbmRlciB+ICNncmFkZXMtc2lkZWJhci1saXN0IHtcbiAgICAgIG9yZGVyOiAyO1xuICAgIH1cblxuICAgIC5oZWFkaW5nIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRndXR0ZXIwO1xuICAgICAgQGluY2x1ZGUgaGVhZGluZy1oMygpO1xuICAgIH1cblxuICAgID4gZGl2LnNpZGViYXItbG9nb3Mge1xuICAgICAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiAycmVtO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIH1cbiAgICAgIHN2ZyB7XG4gICAgICAgIG1heC13aWR0aDogMTUwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNwb3dkZXItdHVicyxcbiAgI2dyZWVuZXItZnV0dXJlLFxuICAjbGliZXJ0eS1wb3dkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGgzIHtcbiAgICAgIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gICAgZGl2IHtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICAgIC5iYWNrZ3JvdW5kIHtcbiAgICAgIG9wYWNpdHk6IDAuMjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgb2JqZWN0LXBvc2l0aW9uOiAxMDAlIDAlO1xuICAgIH1cbiAgICAuaW1hZ2Uge1xuICAgICAgaW1nIHtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjbGliZXJ0eS1wb3dkZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmV5NDtcbiAgICAuaW1hZ2Uge1xuICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGdhcDI7XG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjcG93ZGVyLXR1YnMge1xuICAgIGJhY2tncm91bmQ6ICRncmV5NjtcbiAgICBoMyB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMjI1cHg7XG4gICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICBzcGFuIHtcbiAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIC5iYWNrZ3JvdW5kIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIC5pbWFnZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgaGVpZ2h0OiAyNTBweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWstbWVkaXVtKSB7XG4gICAgICBoMyB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzMDBweDtcbiAgICAgIH1cbiAgICAgIC5pbWFnZSB7XG4gICAgICAgIGhlaWdodDogMzUwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2dyZWVuZXItZnV0dXJlIHtcbiAgICAtLWdyZWVuZXItZ3JlZW46ICM0ZWNiM2Q7XG4gICAgaDMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGdhcDI7XG4gICAgICBzcGFuIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWdyZWVuZXItZ3JlZW4pO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaW1hZ2Uge1xuICAgICAgaGVpZ2h0OiA5MHB4O1xuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbiAgICAgIGxpIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRnYXAyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRnYXA7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbmVyLWdyZWVuKTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDRweDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgICB3aWR0aDogNnB4O1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogN3B4O1xuICAgICAgICAgIHRvcDogNnB4O1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrLW1lZGl1bSkge1xuICAgICAgdWwge1xuICAgICAgICBjb2x1bW4tY291bnQ6IDI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5zaWRlYmFyLWJsb2NrXFw6bG9jYWwtY3RhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY3Njc2NztcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMXJlbSBib3R0b207XG4gIGJhY2tncm91bmQtc2l6ZTogYXV0byAyMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1ndXR0ZXIwKTtcbiAgcCB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIHRleHQtd3JhcDogcHJldHR5O1xuICB9XG4gIEBtZWRpYSAod2lkdGggPiAxNDAwcHgpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvdXBsb2Fkcy9pbWFnZXMvMjBtcGgtc2lnbi5wbmcnKTtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMTYwcHg7XG4gIH1cbn1cblxuLnNpZGViYXItYmxvY2tcXDppc28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzRiZjAzO1xuICBib3JkZXI6IGluaXRpYWw7XG4gIHBhZGRpbmc6IDA7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gU29jaWFsIE1lZGlhXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdfbW9kdWxlcycgYXMgKjtcblxuc29jaWFsLW1lZGlhIHtcbiAgXG4gIC0taWNvbi1jb2xvdXIgOiAjeyR3aGl0ZX07XG4gIC0taWNvbi1zaXplICAgOiAyMHB4OyBcblxuICBkaXNwbGF5OmZsZXg7IFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIGEge1xuXG4gICAgbWFyZ2luLWxlZnQ6JGdhcDsgXG4gICAgZGlzcGxheTpmbGV4ICFpbXBvcnRhbnQ7IFxuXG4gICAgc3ZnIHtcbiAgICAgIHdpZHRoICA6IHZhcigtLWljb24tc2l6ZSk7XG4gICAgICBoZWlnaHQgOiB2YXIoLS1pY29uLXNpemUpO1xuICAgICAgZmlsbCAgIDogdmFyKC0taWNvbi1jb2xvdXIpO1xuICAgICAgdHJhbnNpdGlvbiA6ICR0cmFuc2l0aW9uOyBcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICBAZWFjaCAkbmFtZSwgJGNvbG91ciBpbiAkY29sb3Vycy1zb2NpYWwtbWVkaWEge1xuICAgICAgICAmLiN7JG5hbWV9IHsgLS1pY29uLWNvbG91ciA6ICN7JGNvbG91cn07IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzcGFuIHsgZGlzcGxheTpub25lOyB9XG5cbiAgfVxuXG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVHJhbnNpdGlvbnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgXCJoZWxwZXJzL2Vhc2VcIjtcblxuJGR1cmF0aW9uIDogMC4ycztcbiRlYXNlICAgICA6IGVhc2UuJGluLW91dDtcbiRkZWxheSAgICA6IG51bGw7XG5cbiR0cmFuc2l0aW9uIDogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgJGR1cmF0aW9uKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsICRlYXNlKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCAkZGVsYXkpOyIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5AdXNlICdzYXNzOmxpc3QnO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuXG4kcGFyZW50U2VsZWN0b3I6ICcuYXJ0aWNsZSc7XG5cbi8vIEBpbmNsdWRlIGNvbnRhaW5zKCd0aXRsZScsICdzdWJoZWFkaW5nJywgJ25vdDppbnRyb2R1Y3Rpb24nKSB7IC4uLiB9XG5cbkBtaXhpbiBjb250YWlucygkbmFtZXMuLi4pIHtcbiAgJHBhcmVudDogaWYobGlzdC5udGgobGlzdC5udGgoJiwgMSksIDEpID09ICc6cm9vdCcsICcnLCAmKTtcblxuICAkc2VsZWN0b3I6ICcnO1xuXG4gIEBpZiAodHlwZS1vZigkcGFyZW50KSA9PSAnbGlzdCcpIHtcbiAgICBAZWFjaCAkc2VnbWVudCBpbiBsaXN0Lm50aCgkcGFyZW50LCAxKSB7XG4gICAgICBAaWYgKCRzZWdtZW50ICE9ICRwYXJlbnRTZWxlY3Rvcikge1xuICAgICAgICAkc2VsZWN0b3I6ICRzZWxlY3RvciArICcgJyArICRzZWdtZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICRhdHRyaWJ1dGVzOiAnJztcblxuICBAZWFjaCAkbmFtZSBpbiAkbmFtZXMge1xuICAgIEBpZiAoc3RyaW5nLmluZGV4KCRuYW1lLCAnbm90OicpKSB7XG4gICAgICAkbmFtZTogc3RyaW5nLnNsaWNlKCRuYW1lLCA1KTtcbiAgICAgICRhdHRyaWJ1dGVzOiAkYXR0cmlidXRlcyArICc6bm90KFtkYXRhLWNvbnRhaW5zKj1cIiN7JG5hbWV9XCJdKSc7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkYXR0cmlidXRlczogJGF0dHJpYnV0ZXMgKyAnW2RhdGEtY29udGFpbnMqPVwiI3skbmFtZX1cIl0nO1xuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290ICN7JHBhcmVudFNlbGVjdG9yfSN7JGF0dHJpYnV0ZXN9ICN7JHNlbGVjdG9yfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuI3skcGFyZW50U2VsZWN0b3J9IHtcbiAgZGlzcGxheTogZmxleDtcblxuICAuY29udGFpbmVyIHtcbiAgICAvLyBkaXNwbGF5OmdyaWQ7XG4gICAgLy8gZ3JpZC1hdXRvLWNvbHVtbnM6IDFmcjtcbiAgICAvLyBncmlkLWdhcDokZ2FwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiAkZ3V0dGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmV5MztcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICA+ICoge1xuICAgICAgb3JkZXI6IDI7XG4gICAgICAvLyBtYXJnaW4tYm90dG9tOiAkZ2FwO1xuICAgIH1cblxuICAgIC5oZWFkaW5nIHtcbiAgICAgIEBpbmNsdWRlIGhlYWRpbmctaDM7XG4gICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb247XG4gICAgfVxuXG4gICAgLnN1YmhlYWRpbmcge1xuICAgICAgQGluY2x1ZGUgaGVhZGluZy1oNDtcbiAgICAgIC8vIGNvbG9yOiRzZWNvbmRhcnk7XG4gICAgICBjb2xvcjogdmFyKC0tYXJ0aWNsZS1zdWJoZWFkaW5nLWZvbnQtY29sb3VyLCAkZm9udC1jb2xvdXIpO1xuXG4gICAgICBtYXgtd2lkdGg6IDc1Y2g7XG5cbiAgICAgIC8vIFRoaXMgbmVlZHMgcmV2aWV3aW5nLiBJdCB3b24ndCB3b3JrIG9uIGFsbCB2YXJpYXRpb25zIG9mIHRoZSBhcnRpY2xlc1xuICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICAgICsgLnRpbWVzdGFtcCB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRnYXA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmludHJvZHVjdGlvbiB7XG4gICAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxNCk7XG4gICAgICBtYXgtd2lkdGg6IDc1Y2g7XG4gICAgfVxuXG4gICAgLmJ1dHRvbiB7XG4gICAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICB9XG5cbiAgICB0aW1lIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZm9udC1zaXplOiBmb250LXNpemUoMTQpO1xuICAgIH1cblxuICAgIC5hdXRob3Ige1xuICAgICAgLS1waG90by1zaXplOiA0MHB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIC5uYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgZm9udC1zaXplOiBmb250LXNpemUoMTQpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgZW0ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDEyKTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgfVxuICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1waG90by1zaXplKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIH1cbiAgICAgIC50aW1lc3RhbXAge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxNCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgICAgICAmLFxuICAgICAgICB+IC5uYW1lIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiBjYWxjKHZhcigtLXBob3RvLXNpemUpIC8gMik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5pbWFnZSB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1waG90by1zaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1waG90by1zaXplKTtcbiAgICAgICAgdG9wOiBjYWxjKDUwJSAtIHZhcigtLXBob3RvLXNpemUpIC8gMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTQ7XG4gICAgICAgIH4gKiB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLXBob3RvLXNpemUpICsgI3skZ2FwfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IC5pbWFnZSB7XG4gICAgICBvcmRlcjogMTtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRndXR0ZXI7XG4gICAgICBoZWlnaHQ6IHZhcigtLWltYWdlLWhlaWdodCwgMTgwcHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArICN7JGd1dHRlcjN9KTtcbiAgICAgIGxlZnQ6ICRndXR0ZXItO1xuICAgICAgbWFyZ2luLXRvcDogJGd1dHRlci07XG4gICAgfVxuICB9XG4gICYuYmctIHtcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG91ciBpbiAkY29sb3VyLW1hcCB7XG4gICAgICAmI3snJyArICRuYW1lfSAuY29udGFpbmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG91cjtcbiAgICAgICAgQGlmICgkbmFtZSA9PSByZWQgb3IgJG5hbWUgPT0gb3JhbmdlIG9yICRuYW1lID09IGdyZWVuIG9yICRuYW1lID09IGJsdWUpIHtcbiAgICAgICAgICAtLWFydGljbGUtc3ViaGVhZGluZy1mb250LWNvbG91cjogI3skd2hpdGV9O1xuICAgICAgICAgIC0taGVhZGluZy1jb2xvdXI6ICN7JHdoaXRlfTtcbiAgICAgICAgICAudGV4dCB7XG4gICAgICAgICAgICBjb2xvcjogI3skd2hpdGV9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgKCRuYW1lID09IGdyZXkpIHtcbiAgICAgICAgICAtLWhlYWRpbmctY29sb3VyOiB2YXIoLS1zZWNvbmRhcnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICZwcmltYXJ5IC5jb250YWluZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XG4gICAgICAtLWFydGljbGUtc3ViaGVhZGluZy1mb250LWNvbG91cjogI3skd2hpdGV9O1xuICAgICAgLS1oZWFkaW5nLWNvbG91cjogI3skd2hpdGV9O1xuICAgIH1cbiAgICAmc2Vjb25kYXJ5IC5jb250YWluZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5KTtcbiAgICAgIC0tYXJ0aWNsZS1zdWJoZWFkaW5nLWZvbnQtY29sb3VyOiAjeyR3aGl0ZX07XG4gICAgICAtLWhlYWRpbmctY29sb3VyOiAjeyR3aGl0ZX07XG4gICAgfVxuICAgIEBhdC1yb290IC5jb250ZW50LWJsb2NrLmJsYWNrIGFydGljbGUtbGlzdCB7XG4gICAgICAuYXJ0aWNsZSAuY29udGFpbmVyIHtcbiAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICAgICAgICAgIC0tYmFja2dyb3VuZC1jb2xvdXI6ICN7JGJsYWNrfTtcbiAgICAgICAgICAtLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIC0taG92ZXItZm9udC1jb2xvdXI6ICN7JGJsYWNrfTtcbiAgICAgICAgICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbiAgICAgICAgICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpoYXMoZGl2LmNvbnRhaW5lciBidXR0b24tY29udGFpbmVyIC5idXR0b246b25seS1jaGlsZCkge1xuICAgIGRpdi5jb250YWluZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5O1xuICAgICAgfVxuICAgIH1cbiAgICBidXR0b24tY29udGFpbmVyIHtcbiAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgLmJ1dHRvbjpvbmx5LWNoaWxkIHtcbiAgICAgICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGluc2V0OiAwO1xuICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhLmNvbnRhaW5lciB7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICR0cmFuc2l0aW9uO1xuICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnk7XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogJGd1dHRlcjtcbiAgICAuYnV0dG9uIHtcbiAgICAgIGZvbnQtc2l6ZTogc21hbGw7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgY29udGFpbnMoJ3RpdGxlJywgJ3RpbWVzdGFtcCcsICdhdXRob3InLCAnYnV0dG9uJywgJ2ltYWdlJywgJ25vdDpzdWJoZWFkaW5nJywgJ25vdDppbnRyb2R1Y3Rpb24nKSB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICAudGltZXN0YW1wIHtcbiAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgY29udGFpbnMoJ3RpdGxlJywgJ2ltYWdlJywgJ25vdDp0aW1lc3RhbXAnLCAnbm90OmF1dGhvcicsICdub3Q6YnV0dG9uJywgJ25vdDpzdWJoZWFkaW5nJywgJ25vdDppbnRyb2R1Y3Rpb24nKSB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICAuaGVhZGluZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmctaDM7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICB9XG4gICAgICA+IC5pbWFnZSB7XG4gICAgICAgIC0taW1hZ2UtaGVpZ2h0OiAxMzBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBjb250YWlucygnc2VydmljZUNlbnRyZXMnKSB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICBkaXYge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xuICAgICAgfVxuICAgICAgaDQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubGF5b3V0IHtcbiAgICAmLXRleHQtaW1hZ2Utc2lkZS1ieS1zaWRlIHtcbiAgICAgICY6bm90KFtjbGFzcz0nYmctJ10pIHtcbiAgICAgICAgLmNvbnRhaW5lcixcbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG50YWctbGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6ICRnYXA7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDVweDtcbiAgQGluY2x1ZGUgaGVhZGluZy1oMztcbiAgc3BhbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMC41ZW07XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGdyaWQtcm93OiAxO1xuICAgIGxpbmUtaGVpZ2h0OiAyO1xuICB9XG4gIHN2ZyB7XG4gICAgY29sb3I6IHZhcigtLXRhZ2xpbmUtaWNvbi1jb2xvdXIsICRyZWQpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG4gIH1cbiAgLy8gQGluY2x1ZGUgYnJlYWstaW4oNDAwKSB7XG4gIC8vICAgZ2FwOiAkZ2FwMDtcbiAgLy8gICB3aWR0aDogMTAwJTtcbiAgLy8gICBtYXJnaW46ICRzcGFjZXIwIDA7XG4gIC8vICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLy8gICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgLy8gICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cbiAgLy8gICBzcGFuIHtcbiAgLy8gICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIC8vICAgfVxuICAvLyAgIHN2ZyB7XG4gIC8vICAgICBtYXJnaW4tcmlnaHQ6ICRnYXAwO1xuICAvLyAgIH1cbiAgLy8gfVxufVxuIiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbnNpZGUtYmFyIGZvcm0ge1xuICAuZnJlZWZvcm0tZm9ybS1zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAzMHB4KTtcbiAgICBwYWRkaW5nOiAkZ2FwMCAkZ2FwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIG1hcmdpbjogMCAtMTVweCAkZ2FwO1xuICB9XG4gIC5zdWJtaXQtcm93IHtcbiAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICB9XG59XG5cbmZvcm0ge1xuICBAaW5jbHVkZSBmb3JtLXNlbGVjdCgpO1xuICBAaW5jbHVkZSBmb3JtLWlucHV0KCk7XG4gIEBpbmNsdWRlIGZvcm0tdGV4dGFyZWEoKTtcblxuICBpbnB1dDotd2Via2l0LWF1dG9maWxsLFxuICBpbnB1dDotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICBpbnB1dDotd2Via2l0LWF1dG9maWxsOmZvY3VzLFxuICB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsLFxuICB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmZvY3VzIHtcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdmFyKC0tZm9udC1jb2xvdXIsIGluaGVyaXQpO1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDBweCAxMDAwcHggdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIsIHdoaXRlKSBpbnNldDtcbiAgfVxuXG4gICZbZGF0YS1mcmVlZm9ybV0ge1xuICAgIGxhYmVsICsgZGl2IHtcbiAgICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDEyKTtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRnYXAwO1xuICAgIH1cbiAgICAuZnJlZWZvcm0tcm93IHtcbiAgICAgICsgLmZyZWVmb3JtLXJvdyA+IGRpdiB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRnYXA7XG4gICAgICB9XG4gICAgfVxuICAgIC5mcmVlZm9ybS1jb2x1bW4ge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAuaW5wdXQtZ3JvdXAtb25lLWxpbmUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1jaGVja2JveCgpO1xuICAgIH1cbiAgfVxufVxuXG5zaWRlLWJhciBmb3JtIHtcbiAgbGFiZWwge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB+IGRpdiB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuICB9XG59XG5cbmZvcm0jbG9naW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICA+IGxhYmVsIH4gbGFiZWwge1xuICAgIG1hcmdpbi10b3A6ICRnYXA7XG4gIH1cbiAgZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDEyKTtcbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICB9XG59XG5cbmZvcm0jcmVzZXQtcGFzc3dvcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogJGd1dHRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICB9XG59XG5cbnJlcXVpcmVkLW5vdGljZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNXB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm90aWNlLWNvbG91ciwgJGdyZWVuKTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDZweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkdHJhbnNpdGlvbjtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDZweDtcbiAgc3BhbiB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxMik7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IGNhbGMoMTAwJSArICN7JGdhcDB9KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDRweCAkZ2FwMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMHB4LCAtNTAlKTtcbiAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgfVxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgc3BhbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC01MCUpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbn1cblxuZm9ybVtkYXRhLWhhbmRsZT0nY29udGFjdFVzJ10sXG5mb3JtW2RhdGEtaGFuZGxlPSdwb3dkZXJDb250YWN0J10ge1xuICAuZnJlZWZvcm0tZm9ybS1zdWNjZXNzLFxuICAuZnJlZWZvcm0tZm9ybS1lcnJvcnMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAkZ2FwMCAkZ2FwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIG1hcmdpbi1ib3R0b206ICRndXR0ZXI7XG4gIH1cbiAgLmZyZWVmb3JtLWZvcm0tZXJyb3JzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICB9XG5cbiAgLmZvcm0tZmllbGRzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtZ2FwOiAkZ3V0dGVyICRndXR0ZXI7XG5cbiAgICBAaW5jbHVkZSBicmVhay1vdXQoNjAwKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgzNDBweCwgMWZyKSk7XG5cbiAgICAgIC5mcmVlZm9ybS1yb3cge1xuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZmlyc3QtbmFtZSxcbiAgICAgICAgJi5sYXN0LW5hbWUsXG4gICAgICAgICYuZW1haWwsXG4gICAgICAgICYuY29tcGFueS1uYW1lLFxuICAgICAgICAmLmNvbnRhY3Qtbm8sXG4gICAgICAgICYueS1ycWcxODFrLWQge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICB9XG4gICAgICAgICYuZGV0YWlsc29mZW5xdWlyeSB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgICAgZ3JpZC1yb3c6IDIgLyBzcGFuIDU7XG4gICAgICAgIH1cbiAgICAgICAgJi5zdWJtaXQtcm93IHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBidXR0b25bdHlwZT0nc3VibWl0J10ge1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHN2Zy5lbWFpbCB7XG4gICAgICAgIHdpZHRoOiAxZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC41ZW07XG4gICAgICAgIGhlaWdodDogMWVtO1xuICAgICAgICBmaWxsOiAkcmVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5mcmVlZm9ybS1yb3cge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMjtcblxuICAgICAgJi5kZXRhaWxzb2ZlbnF1aXJ5IHtcbiAgICAgICAgLmZyZWVmb3JtLWluc3RydWN0aW9ucyB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICB0ZXh0YXJlYSB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIC5mcmVlZm9ybS1jb2x1bW4ge1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmZyZWVmb3JtLWNvbHVtbiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBsYWJlbDpub3QoLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwpIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuc2VydmljZS1jZW50cmUtY29udGFjdCxcbiAgICAgICYubGVhZC1zdGF0dXMsXG4gICAgICAmLmludGVybmFsLW5vdGVzLFxuICAgICAgJi5vcmRlci12YWx1ZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGFiZWwuZnJlZWZvcm0taW5wdXQtb25seS1sYWJlbCB7XG4gICAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxNCk7XG4gICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgIGlucHV0IHtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2FwMDtcbiAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3QsXG4gICAgdGV4dGFyZWEsXG4gICAgaW5wdXQ6bm90KFt0eXBlPSdzdWJtaXQnXSkge1xuICAgICAgLS1ib3JkZXItY29sb3VyOiBub25lO1xuICAgICAgLS1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gICAgfVxuICB9XG5cbiAgLmZyZWVmb3JtLWVycm9ycyB7XG4gICAgY29sb3I6ICRyZWQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiBmb250LXNpemUoMTApO1xuICAgIHBhZGRpbmc6IDJweCAkZ2FwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoMTAwJSAtIDRweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNnB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA2cHg7XG4gIH1cblxuICBidXR0b25bdHlwZT0nc3VibWl0J10ge1xuICAgIEBpbmNsdWRlIGJyZWFrLWluKDQwMCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmZyZWVmb3JtLWlucHV0W3JlcXVpcmVkXTpub3QoOnZhbGlkKSB+IHJlcXVpcmVkLW5vdGljZSB7XG4gICAgLS1ub3RpY2UtY29sb3VyOiAjeyRyZWR9O1xuICB9XG5cbiAgJjpub3QoOnZhbGlkKSB7XG4gICAgYnV0dG9uW3R5cGU9J3N1Ym1pdCddIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLW91dGxpbmUtdGhlbWUoJGdyZXkpO1xuICAgIH1cbiAgfVxuXG4gIC5zZXJ2aWNlLWNlbnRyZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbmZvcm1bZGF0YS1oYW5kbGU9J2NvbnRhY3RVcyddIHtcbiAgLmZvcm0tZmllbGRzIHtcbiAgICBAaW5jbHVkZSBicmVhay1vdXQoNjAwKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgzNDBweCwgMWZyKSk7XG5cbiAgICAgIC5mcmVlZm9ybS1yb3cge1xuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZmlyc3QtbmFtZSxcbiAgICAgICAgJi5sYXN0LW5hbWUsXG4gICAgICAgICYuZW1haWwsXG4gICAgICAgICYuY29tcGFueS1uYW1lLFxuICAgICAgICAmLmNvbnRhY3Qtbm8sXG4gICAgICAgICYueS1ycWcxODFrLWQsXG4gICAgICAgICYucHJvZHVjdCB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAyO1xuICAgICAgICB9XG4gICAgICAgICYuZGV0YWlsc29mZW5xdWlyeSB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyAtMTtcbiAgICAgICAgICBncmlkLXJvdzogMiAvIHNwYW4gNjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5ib2R5I2VkaXQge1xuICBmb3JtIHtcbiAgICB0ZXh0YXJlYSxcbiAgICBzZWxlY3QsXG4gICAgaW5wdXQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gICAgfVxuICAgIC5zdWJtaXQtcm93IHtcbiAgICAgIG9yZGVyOiAyMDtcbiAgICB9XG5cbiAgICAuZnJlZWZvcm0tcm93IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5maXJzdC1uYW1lLFxuICAgIC5sYXN0LW5hbWUsXG4gICAgLmVtYWlsLFxuICAgIC5wcm9kdWN0LFxuICAgIC5kZXRhaWxzb2ZlbnF1aXJ5LFxuICAgIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0LFxuICAgIC5sZWFkLXN0YXR1cyxcbiAgICAuaW50ZXJuYWwtbm90ZXMsXG4gICAgLm9yZGVyLXZhbHVlLFxuICAgIC5zdWJtaXQtcm93IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgLmZyZWVmb3JtLWNvbHVtbiB7XG4gICAgICAgIHNlbGVjdCxcbiAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5kZXRhaWxzb2ZlbnF1aXJ5IHtcbiAgICAgIGdyaWQtcm93OiAxIC8gc3BhbiA2O1xuICAgIH1cblxuICAgIC5maXJzdC1uYW1lLFxuICAgIC5sYXN0LW5hbWUsXG4gICAgLmVtYWlsLFxuICAgIC5wcm9kdWN0LFxuICAgIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0IHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgc2VsZWN0LFxuICAgICAgdGV4dGFyZWEsXG4gICAgICBpbnB1dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRldGFpbHNvZmVucXVpcnkge1xuICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VydmljZS1jZW50cmUtY29udGFjdCxcbiAgICAubGVhZC1zdGF0dXMsXG4gICAgLmludGVybmFsLW5vdGVzLFxuICAgIC5vcmRlci12YWx1ZSB7XG4gICAgICAuZnJlZWZvcm0tY29sdW1uIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnbW9kdWxlcy9jb2xvdXIvZW5jb2RlJyBhcyBjb2xvdXI7XG5AdXNlIFwiZm9udFwiO1xuXG5AbWl4aW4gX2Jhc2Utc3R5bGluZyB7XG4gIFxuICAtLWZvbnQtY29sb3VyIDogI3skZm9udC1jb2xvdXJ9O1xuICAtLWJhY2tncm91bmQtY29sb3VyIDogI3skd2hpdGV9O1xuICAtLWJvcmRlci1yYWRpdXMgOiAjeyRib3JkZXItcmFkaXVzfTtcbiAgLS1ib3JkZXItY29sb3VyIDogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtLWJvcmRlciA6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgLS1wYWRkaW5nIDogI3skZ2FwfSAjeyRnYXB9O1xuXG4gIGJvcmRlci1yYWRpdXM6JGJvcmRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXI6dmFyKC0tYm9yZGVyKTsgXG4gIHBhZGRpbmc6dmFyKC0tcGFkZGluZyk7IFxuICBmb250LXNpemU6Zm9udC5zaXplKDE0KTsgXG4gIGNvbG9yOnZhciggLS1mb250LWNvbG91cik7XG5cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uO1xuICB9XG4gICY6Zm9jdXMge1xuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOnRyYW5zcGFyZW50O1xuICAgIH1cbiAgICBvdXRsaW5lLWNvbG9yIDogJGJsdWU7IFxuICB9XG4gICYuYXV0b2NvbXBsZXRlOm5vdChbdmFsdWU9XCJcIl0pOmZvY3VzIHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICB9XG59XG5cbkBtaXhpbiBhbGwtaW5wdXRzKCkge1xuICBpbnB1dFt0eXBlPVwidGV4dFwiXSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLCBzZWxlY3QsIHRleHRhcmVhIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gaW5wdXQoJHR5cGU6bnVsbCkge1xuXG4gICRzZWxlY3RvciA6ICdpbnB1dDpub3QoW3R5cGU9XCJjaGVja2JveFwiXSk6bm90KFt0eXBlPVwicmFkaW9cIl0pJztcblxuICBAaWYgdHlwZS1vZigkdHlwZSkgIT0gJ251bGwnIHtcbiAgICAkc2VsZWN0b3IgOiAnaW5wdXRbdHlwZT1cIiN7JHR5cGV9XCJdJztcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgIF9iYXNlLXN0eWxpbmc7IFxuICAgIEBjb250ZW50O1xuICB9XG5cbn1cblxuQG1peGluIHNlbGVjdCgkc3Ryb2tlIDogJGJsYWNrKSB7XG5cbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSAgX2Jhc2Utc3R5bGluZzsgXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyBcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpjYWxjKDEwMCUgLSAjeyRnYXB9KSBjZW50ZXI7IFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTcuNCcgaGVpZ2h0PScxMC4xJyUzRSUzQ3BhdGggZD0nTTE2LjcuN2wtOCA4LTgtOCcgZmlsbD0nbm9uZScgc3Ryb2tlPSdcIitjb2xvdXIuZW5jb2RlKCRzdHJva2UpK1wiJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1taXRlcmxpbWl0PScxMCcvJTNFJTNDL3N2ZyUzRVwiKTsgICAgXG4gICAgQGNvbnRlbnQ7XG4gIH1cblxufVxuXG5AbWl4aW4gY2hlY2tib3goKSB7XG5cbn1cblxuQG1peGluIHRleHRhcmVhKCkge1xuXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSAgX2Jhc2Utc3R5bGluZzsgXG4gICAgQGNvbnRlbnQ7XG4gIH1cblxufSIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5tb2RhbC13cmFwcGVyIHtcblxuICAtLXdyYXBwZXItYmFja2dyb3VuZC1jb2xvdXIgOiAje3JnYmEoJHdoaXRlLCAwLjk1KX07XG4gIC0tY29udGFpbmVyLWJhY2tncm91bmQtY29sb3VyIDogd2hpdGU7XG5cbiAgLS1taW4td2lkdGg6MzAwcHg7XG4gIC0tbWF4LXdpZHRoOiN7JGJyZWFrLW1lZGl1bX07XG4gIC0td2lkdGg6Y2xhbXAodmFyKC0tbWluLXdpZHRoKSwgOTB2dywgZml0LWNvbnRlbnQpO1xuXG4gIC0tbWluLWhlaWdodDo2MDBweDtcbiAgLS1tYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSAjeyRndXR0ZXIyfSk7XG4gIFxuICAtLWhlaWdodDpjbGFtcCh2YXIoLS1taW4taGVpZ2h0KSwgOTB2dywgZml0LWNvbnRlbnQpO1xuXG4gIEBzdXBwb3J0cyAoIC0tdjotd2Via2l0LWZpbGwtYXZhaWxhYmxlICkge1xuICAgIC0tbWF4LWhlaWdodDotd2Via2l0LWZpbGwtYXZhaWxhYmxlO1xuICB9XG5cbiAgLS1jbG9zZS1idXR0b24tc2l6ZSA6IDMwcHg7IFxuICAtLW5hdi1idXR0b24tc2l6ZSA6IDQwcHg7IFxuXG4gIHBvc2l0aW9uOmZpeGVkO1xuICBpbnNldDowO1xuICBoZWlnaHQ6MTAwJTsgXG4gIHdpZHRoOjEwMCU7IFxuICBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdyYXBwZXItYmFja2dyb3VuZC1jb2xvdXIpO1xuICB6LWluZGV4OjEwO1xuICBkaXNwbGF5OmZsZXg7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzICRlYXNlLWluLW91dDtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcblxuICAmLmxvYWRpbmcgeyBcbiAgICBvcGFjaXR5OjA7IFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyAkZWFzZS1pbi1vdXQgMC4zcztcbiAgICBtb2RhbC1jb250YWluZXIge1xuICAgICAgb3BhY2l0eTowOyBcbiAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVZKDJ2aCk7IFxuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzICRlYXNlLWluLW91dCwgdHJhbnNmb3JtIDAuM3MgJGVhc2UtaW4tcXVhcnQ7XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uLmNsb3NlIHtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICB0b3A6JGd1dHRlcjsgXG4gICAgcmlnaHQ6JGd1dHRlcjsgXG4gICAgd2lkdGg6dmFyKC0tY2xvc2UtYnV0dG9uLXNpemUpOyBcbiAgICBoZWlnaHQ6dmFyKC0tY2xvc2UtYnV0dG9uLXNpemUpOyBcbiAgICBzdmcgeyBcbiAgICAgIGJvcmRlcjoycHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LCAjeyRyZWR9KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGNpcmNsZSwgcGF0aCB7IHRyYW5zaXRpb246MC4zcyAkZWFzZS1pbi1vdXQ7IH1cbiAgICAgIC0tZmlsbDp2YXIoLS1zZWNvbmRhcnksICN7JHJlZH0pO1xuICAgIH1cbiAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICBzdmcgeyBcbiAgICAgICAgLS1maWxsOndoaXRlO1xuICAgICAgICAtLXN0cm9rZTp2YXIoLS1zZWNvbmRhcnksICN7JHJlZH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGJ1dHRvbi5uYXZpZ2F0aW9uIHtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICB3aWR0aDp2YXIoLS1uYXYtYnV0dG9uLXNpemUpOyBcbiAgICBoZWlnaHQ6dmFyKC0tbmF2LWJ1dHRvbi1zaXplKTsgXG4gICAgdG9wOmNhbGMoNTAlIC0gKHZhcigtLW5hdi1idXR0b24tc2l6ZSkgLyAyKSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zZWNvbmRhcnksICN7JHJlZH0pO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6MnB4IHNvbGlkIHZhcigtLXNlY29uZGFyeSwgI3skcmVkfSk7XG4gICAgY29sb3I6d2hpdGU7IFxuICAgIGRpc3BsYXk6ZmxleDtcbiAgICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOmNvbG9yICR0cmFuc2l0aW9uLCBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLCB0cmFuc2Zvcm0gMC4ycyAkZWFzZS1vdXQtYmFjaztcbiAgICAmLnByZXZpb3VzIHsgbGVmdCA6ICRndXR0ZXI7IH1cbiAgICAmLm5leHQgeyByaWdodCA6ICRndXR0ZXI7IH1cbiAgICBzdmcgeyBcbiAgICAgIHdpZHRoOjUwJTtcbiAgICAgIGhlaWdodDo1MCU7IFxuICAgIH1cbiAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgICBjb2xvcjp2YXIoLS1zZWNvbmRhcnksICN7JHJlZH0pO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgfVxuICB9XG59XG5cbm1vZGFsLWNvbnRhaW5lciB7XG5cbiAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyAkZWFzZS1pbi1vdXQgMC4zcywgdHJhbnNmb3JtIDAuNXMgJGVhc2Utb3V0LXF1YXJ0IDAuM3M7XG4gIHdpZHRoOnZhcigtLXdpZHRoKTtcbiAgaGVpZ2h0OnZhcigtLWhlaWdodCk7XG4gIG1heC1oZWlnaHQ6dmFyKC0tbWF4LWhlaWdodCk7XG4gIG1heC13aWR0aDp2YXIoLS1tYXgtd2lkdGgpO1xuICBib3JkZXI6MXB4IHNvbGlkICRncmV5NDsgXG4gIGJvcmRlci1yYWRpdXM6JGJvcmRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6dmFyKC0tY29udGFpbmVyLWJhY2tncm91bmQtY29sb3VyKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW46JGd1dHRlcjtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcblxuICBAc3VwcG9ydHMgbm90ICggd2lkdGg6Y2xhbXAoMXB4LCA1dncsIDEwcHgpKSB7XG5cbiAgICAtLXdpZHRoIDogNjB2dztcbiAgICBtYXgtd2lkdGg6dmFyKC0tbWF4LXdpZHRoKTtcbiAgICBtaW4td2lkdGg6dmFyKC0tbWluLXdpZHRoKTtcblxuICAgIC0taGVpZ2h0IDogODB2dztcbiAgICBtYXgtaGVpZ2h0OnZhcigtLW1heC1oZWlnaHQpO1xuICAgIG1pbi1oZWlnaHQ6dmFyKC0tbWluLWhlaWdodCk7XG4gIH1cblxuICAmOmVtcHR5IHtcbiAgICB3aWR0aDpjYWxjKHZhcigtLW1heC13aWR0aCkgLyAyKTtcbiAgICBoZWlnaHQ6Y2FsYyh2YXIoLS1tYXgtaGVpZ2h0KSAvIDIpO1xuICAgICY6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgbG9hZGVyKDIwcHgpO1xuICAgICAgQGluY2x1ZGUgbG9hZGVyLWFuaW1hdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gID4gYnV0dG9uLmNsb3NlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3JkZXI6LTE7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgdG9wOmluaXRpYWw7XG4gICAgcmlnaHQ6aW5pdGlhbDtcbiAgICBtYXJnaW4tdG9wOmNhbGMoKC0xICogdmFyKC0tY2xvc2UtYnV0dG9uLXNpemUpKSAvIDIpO1xuICAgIG1hcmdpbi1ib3R0b206Y2FsYygoLTEgKiB2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSkpIC8gMik7XG4gICAgbWFyZ2luLXJpZ2h0OmNhbGMoKC0xICogdmFyKC0tY2xvc2UtYnV0dG9uLXNpemUpKSAvIDIpO1xuICB9XG5cbn1cblxubW9kYWwtY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICB3aWR0aDppbmhlcml0O1xuICBoZWlnaHQ6aW5oZXJpdDtcbiAgbWF4LWhlaWdodDppbmhlcml0O1xuICBtYXgtd2lkdGg6aW5oZXJpdDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBwYWRkaW5nOiRndXR0ZXI7XG4gID4gKiB7IG1heC13aWR0aDoxMDAlOyB9XG59XG5cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPVwiaW1hZ2VcIl0gLmltYWdlIHsgXG4gIG1heC1oZWlnaHQ6Y2FsYyh2YXIoLS1tYXgtaGVpZ2h0KSAtICN7JGd1dHRlcjZ9KTtcbiAgYm9yZGVyOm5vbmU7XG4gIGltZyB7XG4gICAgbWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gI3skZ3V0dGVyM30gLSAjeyRndXR0ZXI0fSk7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjphdXRvO1xuICB9XG59XG5cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPVwiZGVmYXVsdFwiXSB7XG4gIG1vZGFsLWNvbnRlbnQgPiBpbWcge1xuICAgICZbc3JjKj1cIi5zdmdcIl0geyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgfVxuICB9XG59XG5cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPVwidmlkZW9cIl0ge1xuICAtLXdyYXBwZXItYmFja2dyb3VuZC1jb2xvdXIgOiAje3JnYmEoYmxhY2ssIDAuOTUpfTtcbiAgbW9kYWwtY29udGFpbmVyIHsgXG4gICAgQGluY2x1ZGUgdmlkZW8tY29udGFpbmVyKCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcbiAgICBwYWRkaW5nOiRnYXA7IFxuICAgIG1vZGFsLWNvbnRlbnQge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgfVxuICB9XG59XG5cbi5vcGVuLWluLW1vZGFsIHtcbiAgY3Vyc29yOnBvaW50ZXI7XG4gIHRyYW5zaXRpb246b3BhY2l0eSAkdHJhbnNpdGlvbjtcbiAgJjphZnRlciB7IEBpbmNsdWRlIGxvYWRlcigyMHB4LCB3aGl0ZSk7IH1cbiAgJi5sb2FkaW5nIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAmOmFmdGVyIHsgQGluY2x1ZGUgbG9hZGVyLWFuaW1hdGlvbigpOyB9XG4gIH1cbn1cblxuaW1nLm9wZW4taW4tbW9kYWwsIC5vcGVuLWluLW1vZGFsIGltZyB7IFxuICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcbiAgLWtodG1sLXVzZXItZHJhZzogbm9uZTtcbiAgLW1vei11c2VyLWRyYWc6IG5vbmU7XG4gIC1vLXVzZXItZHJhZzogbm9uZTtcbiAgdXNlci1kcmFnOiBub25lO1xufVxuIiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbjpyb290IHtcbiAgLS1kaWFsb2ctdHJhbnNsYXRlLW9mZnNldDogMXJlbTtcbiAgLS1kaWFsb2ctdHJhbnNsYXRlLWVudGVyOiAwIHZhcigtLWRpYWxvZy10cmFuc2xhdGUtb2Zmc2V0KTtcbiAgLS1kaWFsb2ctdHJhbnNsYXRlLWxlYXZlOiAwIGNhbGMoLTEgKiB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLW9mZnNldCkpO1xuICAtLWRpYWxvZy10cmFuc2xhdGUtZHVyYXRpb246IDAuNHM7XG4gIC0tZGlhbG9nLWdhcDogI3skZ3V0dGVyMn07XG4gIC0tZGlhbG9nLWNvbnRlbnQtbWF4LXdpZHRoOiAxMDgwcHg7XG4gIC0tZGlhbG9nLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAtLWRpYWxvZy1iYWNrZHJvcC1jb2xvdXI6IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cblxuZGlhbG9nLm1vZGFsIHtcbiAgYm9yZGVyOiBub25lO1xuICBvdmVyZmxvdzogaW5pdGlhbDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNsYXRlOiB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLWVudGVyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG92ZXJsYXksIGRpc3BsYXksIHRyYW5zbGF0ZSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tZGlhbG9nLXRyYW5zbGF0ZS1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbi1iZWhhdmlvcjogYWxsb3ctZGlzY3JldGU7XG4gIG1hcmdpbjogMDtcbiAgei1pbmRleDogOTk5O1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMGR2aDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuXG4gICosXG4gICo6OmJlZm9yZSxcbiAgKjo6YWZ0ZXIsXG4gICYge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAmOjpiYWNrZHJvcCB7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3ZlcmxheSwgZGlzcGxheSwgb3BhY2l0eTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLWR1cmF0aW9uKTtcbiAgICB0cmFuc2l0aW9uLWJlaGF2aW9yOiBhbGxvdy1kaXNjcmV0ZTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMnB4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kaWFsb2ctYmFja2Ryb3AtY29sb3VyKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgLmRpYWxvZ1xcOmNvbnRlbnRzIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBkaXJlY3Rpb246IGx0cjtcbiAgICBib3JkZXItcmFkaXVzOiAwLjZlbTtcbiAgICBtYXgtaGVpZ2h0OiAxMDBkdmg7XG4gICAgcGFkZGluZzogdmFyKC0tZGlhbG9nLWdhcCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGlhbG9nLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvdXIpO1xuICAgIHdpZHRoOiBtaW4oMTAwJSwgdmFyKC0tZGlhbG9nLWNvbnRlbnQtbWF4LXdpZHRoKSk7XG4gICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgfVxuXG4gICZbb3Blbl0ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNsYXRlOiAwIDA7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIEBzdGFydGluZy1zdHlsZSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNsYXRlOiB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLWxlYXZlKTtcbiAgICB9XG5cbiAgICAmOjpiYWNrZHJvcCB7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICBAc3RhcnRpbmctc3R5bGUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGJ1dHRvbi5kaWFsb2dcXDpjbG9zZSB7XG4gICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiBjYWxjKDAuNSAqIHZhcigtLWRpYWxvZy1nYXApKTtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIH1cblxuICA6cm9vdDpoYXMoJltvcGVuXSkgW2RhdGEtbW9kYWxdIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxufVxuIiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbi8vIEB1c2UgJ2N1c3RvbS9leHBlcnRzLWluLXlvdXItYnVzaW5lc3MnO1xuXG4uY29udGVudC1ibG9jayB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiAkZ3V0dGVyO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb2x1bW4tY291bnQpLCAxZnIpO1xuXG4gICY6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmLmJsb3dvdXQudGhlbWVkIH4gJjpub3QoLmJsb3dvdXQpLnRoZW1lZCB7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNlcjA7XG4gIH1cbiAgJjpub3QoLmJsb3dvdXQpLnRoZW1lZCB7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgJjpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNlcjA7XG4gICAgfVxuICB9XG5cbiAgKyAuY29udGVudC1ibG9jayB7XG4gICAgYm94LXNoYWRvdzogMHB4IC0xcHggdmFyKC0tYm9yZGVyLXRvcC1jb2xvdXIsICN7JGdyZXk0fSk7XG4gIH1cblxuICA6aXMoaDIsIGgzLCBoNCwgaDUsIGg2KSB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbiAgfVxuXG4gICYuZ3JleSB7XG4gICAgYmFja2dyb3VuZDogJGdyZXkzO1xuICB9XG4gICYucmVkIHtcbiAgICBiYWNrZ3JvdW5kOiAkcmVkO1xuICB9XG4gICYuYmx1ZSB7XG4gICAgYmFja2dyb3VuZDogJGJsdWU7XG4gIH1cbiAgJi5ibGFjayB7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrO1xuICAgIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gICAgLS1oZWFkaW5nLWNvbG91cjogd2hpdGU7XG4gICAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gIH1cblxuICAmLnNpZGUtYnktc2lkZS1jb21wb25lbnRzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMHB4LCAxZnIpKTtcbiAgICBnYXA6IDA7XG4gICAgPiAqIHtcbiAgICAgIGdyaWQtY29sdW1uOiBhdXRvO1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgICAmLmNvbnRhaW5lci1pbmxpbmUge1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiAkc3BhY2VyO1xuICAgICAgfVxuICAgICAgJi5lY29wb3N0ZS1iYW5uZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogJHNwYWNlcjtcbiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAYXQtcm9vdCBtYWluOmhhcyg+IC5jb250ZW50LWJsb2NrLnNpZGUtYnktc2lkZS1jb21wb25lbnRzKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAuc2lkZS1ieS1zaWRlLWNvbXBvbmVudHMge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gICAgQG1lZGlhICh3aWR0aCA8IDkwMHB4KSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG4udGV4dCB7XG5cbiAgYSB7XG4gICAgLS1mb250LWNvbG91ciA6ICN7JHByaW1hcnl9OyBcbiAgICBAaW5jbHVkZSBob3ZlciB7IC0tZm9udC1jb2xvdXIgOiAjeyRzZWNvbmRhcnl9OyB9XG4gICAgYS5idXR0b24geyB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDt9XG4gIH1cblxuICB1bCB7IEBpbmNsdWRlIGxpc3QtdWwgfVxuICBvbCB7IEBpbmNsdWRlIGxpc3Qtb2wgfVxuXG4gIHA6ZW1wdHksIHAgPiBiciB7IGRpc3BsYXk6bm9uZTsgfVxuXG4gID4gKiB7XG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHsgbWFyZ2luLWJvdHRvbTokZ2FwOyB9XG4gICAgLy8gJjpmaXJzdC1jaGlsZCB7XG4gICAgLy8gICB+IGgyLCB+IGgzLCB+IGg0LCB+IGg1LCB+IGg2IHtcbiAgICAvLyAgICAgbWFyZ2luLXRvcDokc3BhY2VyMDsgXG4gICAgLy8gICB9XG4gICAgLy8gfVxuICAgIHVsLCBvbCB7IG1hcmdpbi10b3A6JGdhcDsgfVxuICB9XG5cbiAgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICBtYXJnaW4tYm90dG9tOiRnYXA7IFxuICB9XG5cbiAgLmhlYWRpbmctaDMgeyBjb2xvcjokc2Vjb25kYXJ5OyB9XG4gIFtzdHlsZSo9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIl0ge1xuICAgIHdpZHRoOjEwMCU7IFxuICAgIG1heC13aWR0aDo4MDBweDsgXG4gICAgbWFyZ2luLWxlZnQ6YXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6YXV0bztcbiAgfVxuXG4gIC5xdW90ZXMge1xuICAgIGJvcmRlci1sZWZ0OjVweCBzb2xpZCAkZ3JleTQ7IFxuICAgIHBhZGRpbmctbGVmdDokZ2FwOyBcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICBmaWd1cmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQtY29sb3I6d2hpdGU7XG4gICAgcGFkZGluZzokZ2FwOyBcbiAgICBpbWcgeyBcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICBociB7IG1hcmdpbi10b3A6JHNwYWNlcjAgIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbTokc3BhY2VyMCAhaW1wb3J0YW50OyB9XG5cbiAgLm5vdGUge1xuICAgIG1hcmdpbjokZ2FwMiAwOyBcbiAgfVxuXG59XG5cbi8vIERhcmsgVGhlbWUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5kYXJrIHtcblxuICAudGV4dCB7XG5cbiAgICBjb2xvcjp3aGl0ZTsgXG4gICAgLS1oZWFkaW5nLWNvbG91cjp3aGl0ZTsgXG5cbiAgICBhIHsgXG4gICAgICAmLmJ1dHRvbiB7IC0tZm9udC1jb2xvdXIgOiB3aGl0ZTsgfVxuICAgICAgJjpub3QoLmJ1dHRvbikgeyBcbiAgICAgICAgLS1mb250LWNvbG91ciA6ICN7cmdiYSh3aGl0ZSwgMC43KX07IFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBcbiAgICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OjJweDsgXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyIHsgLS1mb250LWNvbG91ciA6IHdoaXRlOyB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLS1oci1jb2xvdXIgOiAje3JnYmEod2hpdGUsIDAuMyl9OyBcbiAgLS1saXN0LXN0eWxlLWNvbG91ciA6IHdoaXRlOyBcblxuICAmLnJlZCB7XG4gICAgLnRleHQgdWwgeyBAaW5jbHVkZSBsaXN0LXN0eWxlKCR3aGl0ZSwgJHJlZCkgfVxuICB9XG5cbiAgJi5ibHVlIHtcbiAgICAudGV4dCB1bCB7IEBpbmNsdWRlIGxpc3Qtc3R5bGUoJHdoaXRlLCAkYmx1ZSkgfVxuICB9XG5cbn1cblxuLmNvbnRhaW5zLXN2Z3N7XG5cbiAgLnRleHR7XG4gICAgZmlndXJle1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwKTtcbiAgICAgIGltZ3tcbiAgICAgICAgaGVpZ2h0OiAxMjBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnY29sbGVjdGlvbnMvZm9udC9jcm9wJyBhcyBmb250O1xuQHVzZSAnbW9kdWxlcy9jb2xvdXIvZW5jb2RlJyBhcyBjb2xvdXI7XG5cbkBtaXhpbiBzdHlsZSgkZmlsbCwgJHN0cm9rZTogd2hpdGUsICRpbXA6IGZhbHNlKSB7XG4gID4gbGk6OmJlZm9yZSB7XG4gICAgQGlmICgkaW1wKSB7XG4gICAgICBjb250ZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyUzRSUzQ2NpcmNsZSBmaWxsPSdcIiArIGNvbG91ci5lbmNvZGUoXG4gICAgICAgICAgJGZpbGxcbiAgICAgICAgKSArIFwiJyBjeD0nOCcgY3k9JzgnIHI9JzgnLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgc3Ryb2tlPSdcIiArIGNvbG91ci5lbmNvZGUoXG4gICAgICAgICAgJHN0cm9rZVxuICAgICAgICApICsgXCInIHN0cm9rZS13aWR0aD0nMS40JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgZD0nTTMuNSA4LjRsMi43IDIuNyA2LjMtNi4zJy8lM0UlM0Mvc3ZnJTNFXCIpICFpbXBvcnRhbnQ7XG4gICAgfSBAZWxzZSB7XG4gICAgICBjb250ZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyUzRSUzQ2NpcmNsZSBmaWxsPSdcIiArIGNvbG91ci5lbmNvZGUoXG4gICAgICAgICAgJGZpbGxcbiAgICAgICAgKSArIFwiJyBjeD0nOCcgY3k9JzgnIHI9JzgnLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgc3Ryb2tlPSdcIiArIGNvbG91ci5lbmNvZGUoXG4gICAgICAgICAgJHN0cm9rZVxuICAgICAgICApICsgXCInIHN0cm9rZS13aWR0aD0nMS40JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgZD0nTTMuNSA4LjRsMi43IDIuNyA2LjMtNi4zJy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBVbm9yZGVyZCBMaXN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gdWwoJGxpc3Qtc3R5bGUtY29sb3VyOiAkcmVkLCAkbGlzdC1zdHlsZS1hY2NlbnQtY29sb3VyOiB3aGl0ZSkge1xuICBAaW5jbHVkZSBzdHlsZSgkbGlzdC1zdHlsZS1jb2xvdXIsICRsaXN0LXN0eWxlLWFjY2VudC1jb2xvdXIpO1xuXG4gID4gbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tbGlzdC1zdHlsZS1zaXplLCAxZW0pICogMS44KTtcblxuICAgICYgKyBsaSB7XG4gICAgICBtYXJnaW4tdG9wOiB2YXIoLS1saW5lLXN0eWxlLXNwYWNpbmcsICN7JGdhcH0pO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0b3A6IDAuMWVtO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiB2YXIoLS1saXN0LXN0eWxlLXNpemUsIDFlbSk7XG4gICAgICBoZWlnaHQ6IHZhcigtLWxpc3Qtc3R5bGUtc2l6ZSwgMWVtKTtcbiAgICB9XG4gIH1cblxuICBAY29udGVudDtcbn1cblxuLy8gT3JkZXJlZCBMaXN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIG9sKCkge1xuICBjb3VudGVyLXJlc2V0OiBjb3VudGVyO1xuXG4gID4gbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDIycHg7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWxpc3Qtc3R5bGUtb2Zmc2V0LCAwKTtcblxuICAgICYgKyBsaSB7XG4gICAgICBtYXJnaW4tdG9wOiAkZ2FwMDtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogY291bnRlcihjb3VudGVyKSAnLic7XG4gICAgICBjb3VudGVyLWluY3JlbWVudDogY291bnRlcjtcbiAgICAgIGNvbG9yOiB2YXIoLS1saXN0LXN0eWxlLWNvbG91ciwgdmFyKC0tcHJpbWFyeSkpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgICB9XG4gIH1cblxuICBAY29udGVudDtcbn1cbiIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG50YWJsZS1jb250YWluZXIge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDokZ2FwOyBcbiAgLy8gd2lkdGg6IGZpdC1jb250ZW50O1xuXG4gID4gZGl2IHtcbiAgICAvLyBAYXQtcm9vdCB0YWJiZWQtY29udGVudCAmIHsgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLW5hdmlnYXRpb24taGVpZ2h0LCAyMDBweCkpOyB9XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgZGlzcGxheTpncmlkOyAgICAgXG4gICAgJjpub3QoOmhvdmVyKSB7c2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7IH1cblxuICAgIEBpbmNsdWRlIHNjcm9sbC1zdHlsaW5nXG4gIH1cbiAgaDMgeyBtYXJnaW4tYm90dG9tOjAgIWltcG9ydGFudDsgfVxuXG4gIHRhYmxlLnRhYmxlIHtcbiAgICB3aWR0aDphdXRvOyBcbiAgICBncmlkLXJvdzogMTtcbiAgICBncmlkLWNvbHVtbjogMTtcblxuICAgICYuZmFrZSB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IFxuICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0teCkpO1xuICAgICAgd2lkdGg6Y2FsYygxMDAlIC0gdmFyKC0teCkpO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gICAgICB0Ym9keSB0ciB7IFxuICAgICAgICBcbiAgICAgICAgdGQgeyBiYWNrZ3JvdW5kOndoaXRlOyBib3JkZXItcmlnaHQ6MXB4ICRncmV5NCBkYXNoZWQ7IH1cbiAgICAgICAgJjpudGgtb2YtdHlwZShvZGQpIHRkIHsgYmFja2dyb3VuZCA6ICRncmV5MzsgfVxuICAgICAgfVxuICAgICAgdGhlYWQgdHIgdGg6Zmlyc3Qtb2YtdHlwZSB7IGJvcmRlci1yaWdodDoxcHggcmdiYSh3aGl0ZSwgMC4xKSBkYXNoZWQ7IH1cbiAgICAgIHRoZWFkIHRyIHRoOm5vdCg6Zmlyc3Qtb2YtdHlwZSksIHRib2R5IHRyIHRkOm5vdCg6Zmlyc3Qtb2YtdHlwZSkgeyB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICB9XG4gIH1cbiAgQHN1cHBvcnRzICh3cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyKSB7XG4gICAgJi5lbmFibGUtdmVydGljYWwtaGVhZGluZ3MgdGFibGUudGFibGUgdGhlYWQgdHIgdGg6bm90KDpmaXJzdC1vZi10eXBlKSBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7XG4gICAgICBtYXgtd2lkdGg6NTBweDsgXG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgfVxuICB9XG5cbiAgJGJ1dHRvbi1zaXplIDogNDBweDsgXG5cbiAgbmF2IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBncmlkLXJvdzoxOyBcbiAgICBncmlkLWNvbHVtbjoyOyBcbiAgICBkaXNwbGF5Om5vbmU7XG4gICAgYnV0dG9uLm5hdmlnYXRpb24ge1xuICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgICArIGJ1dHRvbiB7IG1hcmdpbi1sZWZ0OiRnYXAwOyB9XG4gICAgfVxuICAgICsgZGl2IHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAyO1xuICAgIH1cbiAgfVxuXG4gICYuc2Nyb2xsZWQtcmlnaHQgYnV0dG9uLm5leHQsICYuc2Nyb2xsZWQtbGVmdCBidXR0b24ucHJldmlvdXMgeyBcbiAgICBwb2ludGVyLWV2ZW50czpub25lO1xuICB9XG5cbiAgJi5lbmFibGUtc2Nyb2xsLWJ1dHRvbnMgbmF2IHsgXG4gICAgZGlzcGxheTpmbGV4O1xuICB9XG5cbiAgYnV0dG9uLm5hdmlnYXRpb24ge1xuICAgIC0tYnV0dG9uLXNpemUgOiAjeyRidXR0b24tc2l6ZX07IFxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjoxcHggc29saWQgJGdyZXk0O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB6LWluZGV4OjE7XG4gICAgd2lkdGg6IHZhcigtLWJ1dHRvbi1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLWJ1dHRvbi1zaXplKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTpmbGV4O1xuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGxhY2UtY29udGVudDogY2VudGVyOyBcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgY29sb3I6JGdyZXkyO1xuICAgIHRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAkdHJhbnNpdGlvbiwgY29sb3IgJHRyYW5zaXRpb24sIG9wYWNpdHkgJHRyYW5zaXRpb24sIHRyYW5zZm9ybSAwLjNzICRlYXNlLW91dC1iYWNrO1xuICAgICYucHJldmlvdXMgc3ZnIHsgbWFyZ2luLWxlZnQ6LTJweDsgfVxuICAgICYubmV4dCBzdmcgeyBtYXJnaW4tbGVmdDoycHg7IH1cbiAgICBzdmcge1xuICAgICAgd2lkdGg6Y2FsYyh2YXIoLS1idXR0b24tc2l6ZSkgLyAyLjUpO1xuICAgICAgaGVpZ2h0OmNhbGModmFyKC0tYnV0dG9uLXNpemUpIC8gMi41KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjokYmx1ZTtcbiAgICAgIGNvbG9yOndoaXRlOyBcbiAgICAgIG9wYWNpdHk6MSAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxuXG59XG5cbnRhYmxlLnRhYmxlIHtcblxuICB3aWR0aDoxMDAlOyBcbiAgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgXG4gIGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgdGhlYWQge1xuICAgIHRyIHtcbiAgICAgIHRoIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjokcHJpbWFyeTtcbiAgICAgICAgcGFkZGluZzokZ2FwO1xuICAgICAgICBjb2xvcjp3aGl0ZTsgXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cbiAgfVxuXG4gIHRib2R5IHtcbiAgICB0ciB7ICAgICBcbiAgICAgIHRkIHtcbiAgICAgICAgcGFkZGluZzokZ2FwMCAkZ2FwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7IG1pbi13aWR0aDoyMDBweDt9XG4gICAgICAgIHN0cm9uZyB7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiRncmV5MjsgfVxuICAgICAgICBhIHsgXG4gICAgICAgICAgY29sb3I6JGJsdWU7IFxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyBcbiAgICAgICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjokcmVkOyBcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc3ZnIHsgXG4gICAgICAgICAgLS1maWxsIDogI3skcHJpbWFyeX07XG4gICAgICAgICAgJi5jcm9zcyB7IC0tZmlsbCA6ICN7JHJlZH07IH1cbiAgICAgICAgICAmLnRpY2sgeyAtLWZpbGwgOiAjeyRncmVlbn07IH1cbiAgICAgICAgICB3aWR0aDoxZW07IGhlaWdodDoxZW07IFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdHIgeyBcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAmOm5vdCg6bGFzdC1vZi10eXBlKSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICRncmV5NDsgfVxuICAgIC8vICY6bnRoLW9mLXR5cGUob2RkKTpiZWZvcmUge1xuICAgIC8vICAgY29udGVudDpcIlwiO1xuICAgIC8vICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vICAgbGVmdDowOyByaWdodDowOyBcbiAgICAvLyAgIGhlaWdodDoxMDAlOyBcbiAgICAvLyAgIHdpZHRoOjEwMCU7IFxuICAgIC8vICAgYmFja2dyb3VuZC1jb2xvcjokZ3JleTM7IFxuICAgIC8vIH1cbiAgICAmOm50aC1vZi10eXBlKG9kZCkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjokZ3JleTM7IFxuICAgIH1cbiAgfVxuXG5cbiAgJi5hbHRlcm5hdGluZy1yb3ctY29sb3VycyB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoYmxhY2ssIDAuMSk7IH1cbiAgJi5sYXN0LWNvbHVtbi1pcy1ncmVlbiB0Ym9keSB0ciB0ZDpsYXN0LW9mLXR5cGUgeyBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTsgXG4gICAgY29sb3I6d2hpdGU7IFxuICB9XG4gIC8vICYubGFzdC1jb2x1bW4taXMtZ3JlZW4gdGhlYWQgdHIgdGg6bGFzdC1vZi10eXBlIHsgXG4gIC8vIH1cbiAgLy8gJi5hbHRlcm5hdGluZy1yb3ctY29sb3Vycy5sYXN0LWNvbHVtbi1pcy1ncmVlbiB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB0ZDpsYXN0LW9mLXR5cGUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGdyZWVuMywgMyk7IH1cblxufVxuXG4uZGFyayB0YWJsZS1jb250YWluZXIsIC5kYXJrLmNvbnRlbnQtYmxvY2sgLnRhYi1jb250ZW50IHtcbiAgPiBoMyB7IGNvbG9yOndoaXRlOyB9XG4gID4gZGl2IHsgYm9yZGVyLXJhZGl1czogaW5pdGlhbDsgfVxuICB0YWJsZS50YWJsZSB7XG4gICAgY29sb3I6d2hpdGU7IFxuICAgIGJhY2tncm91bmQtY29sb3I6aW5pdGlhbDtcbiAgICB0ciB0aCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEod2hpdGUsIDAuMTUpO1xuICAgIH1cbiAgICB0ciB7XG4gICAgICBib3JkZXI6bm9uZSAhaW1wb3J0YW50O1xuICAgICAgJjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKHdoaXRlLCAwLjE1KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJAdXNlIFwic2FzczptYXRoXCI7XG5cbkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5maWd1cmUuaW1hZ2Uuc3RhdGljIHtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6d2hpdGU7ICBcbiAgYm9yZGVyOjFweCBzb2xpZCAkZ3JleTM7XG4gIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gIGltZyB7IFxuICAgIC0taW1hZ2UtaGVpZ2h0LXNpemUgOiBhdXRvOyBcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTsgXG4gIH1cbiAgZmlnY2FwdGlvbiB7XG4gICAgZm9udC1zaXplOmZvbnQtc2l6ZSgxMik7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIHBhZGRpbmc6JGdhcDAgJGdhcDtcbiAgfVxuICAmLm5vLWNhcHRpb24ge1xuICAgIGJvcmRlcjpub25lOyBcbiAgfVxuICAmLmNyb3AtaW1hZ2Uge1xuICAgIGZpZ2NhcHRpb24ge1xuICAgICAgYm90dG9tOjA7IFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDowOyBcbiAgICAgIHdpZHRoOjEwMCU7IFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgfVxuICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpbztcbiAgICAtLWFzcGVjdC1yYXRpbyA6IGluaGVyaXQ7IFxuICAgIGltZyB7IC0taW1hZ2UtaGVpZ2h0LXNpemUgOiAxMDAlOyB9XG4gIH1cbn1cblxuLmltYWdlLmxvYWQtaW4tdmlldyBpbWcge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgJGVhc2UtaW4tb3V0O1xuICAmOm5vdChbc3JjXSkgeyBvcGFjaXR5OjA7IH1cbn1cblxuaW1hZ2VzLWNvbnRhaW5lciB7XG4gIHdpZHRoOjEwMCU7IFxuICBkaXNwbGF5OmdyaWQ7IFxuICBncmlkLWdhcDokZ3V0dGVyMDsgXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KGNhbGModmFyKC0tbWFpbi1tYXgtd2lkdGgpIC8gKHZhcigtLWltYWdlcy1wZXItcm93KSArIDEpKSwgMWZyKSk7XG4gICYuY3JvcC1pbWFnZXMge1xuICAgIC5pbWFnZSB7IFxuICAgICAgQGluY2x1ZGUgYXNwZWN0LXJhdGlvKCc0LzMnKTtcbiAgICAgIC0tYXNwZWN0LXJhdGlvIDogaW5oZXJpdDsgXG4gICAgICBpbWcge1xuICAgICAgICAtLWltYWdlLWhlaWdodC1zaXplIDogMTAwJTtcbiAgICAgICAgQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiAxLzEpIHsgcG9zaXRpb246YWJzb2x1dGU7IH1cbiAgICAgIH1cbiAgICAgIGZpZ2NhcHRpb24ge1xuICAgICAgICBib3R0b206MDsgXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDowOyBcbiAgICAgICAgd2lkdGg6MTAwJTsgXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5AbWl4aW4gYWNjb3JkaW9uKCkge1xuXG4gICYuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcge1xuXG4gICAgZ3JpZC1nYXA6JGdhcCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6Z3JpZDtcblxuICAgID4gbmF2IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgZGV0YWlscyB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgJltoaWRkZW5dIHsgZGlzcGxheTpibG9jazsgfVxuICAgICAgc3VtbWFyeSB7XG4gICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgIH1cbiAgICAgIC50YWItY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6JHNwYWNlcjAgJGd1dHRlciAhaW1wb3J0YW50OyBcbiAgICAgICAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgJGdyZXk0O1xuICAgICAgICBib3JkZXItbGVmdDoxcHggc29saWQgJGdyZXk0O1xuICAgICAgICBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICRncmV5NDtcbiAgICAgICAgb3ZlcmZsb3c6aGlkZGVuOyBcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgXG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgID4gKiB7XG4gICAgICAgICAgdHJhbnNpdGlvbjpvcGFjaXR5ICR0cmFuc2l0aW9uO1xuICAgICAgICAgIG9wYWNpdHk6MDsgXG4gICAgICAgIH1cbiAgICAgICAgZmlndXJlLmltYWdlIHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmW29wZW5dIHtcbiAgICAgICAgc3VtbWFyeSB7XG4gICAgICAgICAgLS1iYWNrZ3JvdW5kLWNvbG91cjojeyRibHVlLWRhcmt9O1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnRhYi1jb250ZW50ID4gKiB7XG4gICAgICAgICAgLy8gLS10cmFuc2l0aW9uLWRlbGF5IDogMXM7IFxuICAgICAgICAgIG9wYWNpdHk6MTsgXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudGFiYmVkLWNvbnRlbnQge1xuXG4gIGRpc3BsYXk6ZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7IC8vIFRISVMgTUlHSFQgQlJFQUsgVEhJTkdTLiBORUVEUyBDSEVDS0lORyFcblxuICA+IG5hdiB7XG4gICAgYnV0dG9uIHtcbiAgICAgIHRyYW5zaXRpb246JHRyYW5zaXRpb247XG4gICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHsgcG9pbnRlci1ldmVudHM6IG5vbmU7fVxuICAgICAgc3ZnIHsgd2lkdGg6MTBweDsgaGVpZ2h0OjEwcHg7IH1cblxuICAgIH1cbiAgfVxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5Om5vbmU7IFxuXG4gICAgJjo6bWFya2VyIHsgZGlzcGxheTpub25lOyB9XG4gICAgLS1mb250LWNvbG91ciA6ICN7d2hpdGV9O1xuICAgIC0tYmFja2dyb3VuZC1jb2xvdXIgOiAjeyRwcmltYXJ5fTtcblxuICAgICYsIC5oZWFkaW5nIHtcbiAgICAgIGNvbG9yOnZhcigtLWZvbnQtY29sb3VyKTtcbiAgICAgIEBpbmNsdWRlIGZvbnQtbGF0byhib2xkKTtcbiAgICAgIEBpbmNsdWRlIGhlYWRpbmctaDQoKTtcbiAgICB9XG5cbiAgICAuaGVhZGluZyB7IG1hcmdpbi1ib3R0b206MDsgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG5cbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZy10b3A6JGdhcDsgXG4gICAgcGFkZGluZy1ib3R0b206JGdhcDsgICBcbiAgICBwYWRkaW5nLWxlZnQ6JGd1dHRlcjsgXG4gICAgcGFkZGluZy1yaWdodDokZ3V0dGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzOyAgXG4gICAgYWxpZ24taXRlbXM6Y2VudGVyO1xuICAgIHRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAkdHJhbnNpdGlvbiwgYm9yZGVyLXJhZGl1cyAkdHJhbnNpdGlvbjtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgIHN2ZyB7XG4gICAgICBoZWlnaHQ6OHB4OyBcbiAgICAgIHRyYW5zaXRpb246dHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6JGd1dHRlcjtcbiAgICAgIHRvcDpjYWxjKDUwJSAtIDRweCk7XG4gICAgfVxuXG4gIH1cblxuICBzdW1tYXJ5OmhvdmVyLCBkZXRhaWxzW29wZW5dIHN1bW1hcnk6aG92ZXIge1xuICAgIC0tYmFja2dyb3VuZC1jb2xvdXI6I3skYmx1ZS1saWdodH07XG4gIH1cblxuICAudGFiLWNvbnRlbnQge1xuICAgIC8vIGRpc3BsYXk6bm9uZTsgXG4gICAgZ3JpZC1nYXA6JHNwYWNlcjAgMDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlOyBcbiAgICBncmlkLWF1dG8tcm93czogbWluLWNvbnRlbnQ7XG4gICAgJjpub3QoW2hpZGRlbl0pIHtcbiAgICAgIGRpc3BsYXk6Z3JpZDtcbiAgICB9XG4gICAgLmhlYWRpbmctaDQgeyBAaW5jbHVkZSBoZWFkaW5nLWgzKCk7IGNvbG9yOiRyZWQ7IH1cbiAgICAuaGVhZGluZy1oNSB7IEBpbmNsdWRlIGhlYWRpbmctaDQoKTsgfVxuICAgIC50YWJsZS1jb250YWluZXJ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAmLmhhbHZlc3tcbiAgICAgICAgbWF4LXdpZHRoOiA0MCU7XG4gICAgICAgIG1hcmdpbjogMCA1JSAwIDA7XG4gICAgICAgICY6bnRoLW9mLXR5cGUoMm4pe1xuICAgICAgICAgIG1hcmdpbjogMCAwIDAgNSU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYudGhpcmRze1xuICAgICAgICBtYXgtd2lkdGg6IDMwJTtcbiAgICAgICAgJjpudGgtb2YtdHlwZSgzbiAtIDEpe1xuICAgICAgICAgIG1hcmdpbjogMCA1JTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRhYmxlLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6MTAwJTtcbiAgfVxuXG4gICY6bm90KFtkYXRhLXN0eWxlPVwiM1wiXSkuaW4tdmlldyA+IG5hdiBidXR0b25bYXJpYS1zZWxlY3RlZD1cInRydWVcIl0ge1xuICAgIGNvbG9yOiRzZWNvbmRhcnk7XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogOTgwcHgpIGFuZCAobWF4LXdpZHRoOiAxMzAwcHgpLCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAgICY6bm90KC5tYXJrZXRzKSB7XG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24oKVxuICAgIH1cbiAgfVxuICAmW2RhdGEtc3R5bGU9XCI0XCJdIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24oKVxuICB9XG4gIEBpbmNsdWRlIGJyZWFrLWluKDEwMDBweCkge1xuICAgICYubWFya2V0cyB7IEBpbmNsdWRlIGFjY29yZGlvbigpIH1cbiAgfVxuXG59XG5cbi8vIFRhYiBTdHlsZSBPbmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBMZWZ0IGhhbmQgc2lkZWJhciB3aXRoIHZlcnRpY2FsbHkgYWxpZ25lZCBidXR0b25zIGFuZCB0aGUgY29udGVudCBvbiB0aGUgcmlnaHRcbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIxXCJdIHtcbiAgLS1zaWRlLW5hdi13aWR0aCA6IDIwMHB4O1xuICBkaXNwbGF5OmdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0tc2lkZS1uYXYtd2lkdGgpIDFmcjtcbiAgZ3JpZC1nYXA6JGd1dHRlcjtcbiAgPiBuYXYge1xuICAgIGRpc3BsYXk6ZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICB0b3A6Y2FsYyh2YXIoLS1icmVhZGNydW1iLWhlaWdodCkgKyB2YXIoLS1hbmNob3JzLWhlaWdodCkgLSAjeyRndXR0ZXJ9KTtcblxuICAgIGJ1dHRvbiB7XG4gICAgICBwYWRkaW5nOiRnYXAgMDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIHN2ZyB7IG1hcmdpbi1sZWZ0OiRnYXA7IH1cbiAgICAgICsgYnV0dG9uIHsgXG4gICAgICAgIGJvcmRlci10b3A6MXB4IHNvbGlkICRncmV5NDsgXG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuLy8gVGFiIFN0eWxlIFR3byAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFN0eWxpc2VkIGFuZCBjZW50cmVkIHRhYnMgb24gdGhlIHRvcCB3aXRoIHRoZSBjb250ZW50IHVuZGVybmVhdGhcbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIyXCJdIHtcbiAgPiBuYXYge1xuICAgIGRpc3BsYXk6ZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBidXR0b24ge1xuICAgICAgcGFkZGluZzokZ2FwMiAkZ3V0dGVyMjsgXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3JkZXI6MXB4IHNvbGlkICRncmV5NDtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgIG1hcmdpbi1sZWZ0OiRnYXAwOyBcbiAgICAgIG1hcmdpbi1yaWdodDokZ2FwMDsgXG4gICAgICBmb250LXNpemU6Zm9udC1zaXplKDE0KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgY29sb3I6JHByaW1hcnk7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbiwgYmFja2dyb3VuZC1jb2xvciAkdHJhbnNpdGlvbiwgYm9yZGVyLWNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgc3ZnIHsgZGlzcGxheTpub25lOyB9XG4gICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgIGNvbG9yOiRzZWNvbmRhcnk7XG4gICAgICB9XG4gICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZXkzO1xuICAgICAgICBib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC50YWItY29udGVudCB7IFxuICAgIHBhZGRpbmc6JHNwYWNlciAkZ3V0dGVyO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgkZ3JleTMsIHdoaXRlKTtcbiAgfVxuICAmLmludmlldyBuYXYgYnV0dG9uW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JleTM7XG4gICAgY29sb3I6JHNlY29uZGFyeTtcbiAgfVxuICAmOm5vdCguYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcpW2RhdGEtY291bnQ9XCIyXCJdIHtcbiAgICBAaW5jbHVkZSBicmVhay1pbignc21hbGwnKSB7XG4gICAgICBbcm9sZT1cInRhYlwiXSB7IHdpZHRoOjUwJTsgcGFkZGluZzokZ2FwOyB9XG4gICAgfVxuICB9XG59XG5cbi8vIFRhYiBTdHlsZSBUaHJlZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBpbGwtbGlrZSBidXR0b25zIGJhciBhdCB0aGUgdG9wIHdpdGggdGhlIGNvbnRlbnQgdW5kZXJuZWF0aFxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjNcIl0ge1xuICA+IG5hdiB7XG4gICAgZGlzcGxheTpmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206JGdhcDsgXG4gICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICBib3JkZXI6MXB4IHNvbGlkICRncmV5NDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJ1dHRvbiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3JkZXI6bm9uZSAhaW1wb3J0YW50OyBcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXNpemU6Zm9udC1zaXplKDE0KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICB6LWluZGV4OjE7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbiwgYmFja2dyb3VuZC1jb2xvciAkdHJhbnNpdGlvbjtcbiAgICAgIHN2ZyB7IGRpc3BsYXk6bm9uZTsgfVxuICAgICAgcGFkZGluZzokZ2FwICRndXR0ZXI7IFxuICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgIGNvbG9yOndoaXRlOyBcbiAgICAgIH1cblxuICAgICAgJjpub3QoW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdKSB7XG4gICAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgICBjb2xvcjokcmVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICY6bm90KC5oYXMtbWFya2VyKSBidXR0b25bYXJpYS1zZWxlY3RlZD1cInRydWVcIl0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjokYmx1ZTsgXG4gICAgfVxuICAgIG1hcmsge1xuICAgICAgQGluY2x1ZGUgbWFyay1yZXNldCgpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOjA7IGxlZnQ6MDsgXG4gICAgICBoZWlnaHQ6MTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uO1xuICAgICAgJi5hY3RpdmUgeyBcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnRhYi1jb250ZW50IHsgXG4gICAgcGFkZGluZzokZ3V0dGVyIDA7XG4gIH0gXG59IiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbi5leHBlcnRzLWluLXlvdXItYnVzaW5lc3Mge1xuICAtLXNlY29uZGFyeTogI3skcmVkfTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG4gIEBhdC1yb290IHNpZGUtYmFyICYge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIC5jb250YWluZXItaW5saW5lIHtcbiAgICAgIHBhZGRpbmc6ICRndXR0ZXIyICFpbXBvcnRhbnQ7XG4gICAgICA+IC50ZXh0IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi50aGVtZWQgLmNvbnRhaW5lci1pbmxpbmUge1xuICAgIHBhZGRpbmc6ICRndXR0ZXIgJGd1dHRlciAkZ3V0dGVyICRndXR0ZXIyO1xuICB9XG4gIC50ZXh0IHtcbiAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAkZ3V0dGVyO1xuICAgIHVsIHtcbiAgICAgIEBpbmNsdWRlIGxpc3Qtc3R5bGUoJHJlZCwgd2hpdGUsIHRydWUpO1xuICAgIH1cbiAgICA+IGgyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRndXR0ZXI7XG4gICAgfVxuICB9XG4gIGJ1dHRvbi1jb250YWluZXIge1xuICAgIGdhcDogJGdhcDtcbiAgICAuYnV0dG9uIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cblxuICBmaWd1cmUuaW1hZ2Uuc3RhdGljIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBncmlkLWNvbHVtbjogMjtcbiAgICBncmlkLXJvdzogMSAvIHNwYW4gMjtcbiAgICBtYXgtd2lkdGg6IDI2MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYWxpZ24tc2VsZjogZW5kO1xuICAgIGp1c3RpZnktc2VsZjogZmxleC1lbmQ7XG4gIH1cbiAgLmNvbnRhaW5lci1pbmxpbmUge1xuICAgIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogJGd1dHRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICA+ICo6bm90KGZpZ3VyZSkge1xuICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgfVxuICAgIEBjb250YWluZXIgKHdpZHRoIDwgNTAwcHgpIHtcbiAgICAgIGZpZ3VyZS5pbWFnZS5zdGF0aWMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG9wYWNpdHk6IDAuMTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0= */