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

header .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;
}
header .button.brochure svg {
  margin-right: calc(var(--gap) * 0.5);
  margin-left: 0;
  fill: #df3035;
}

.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.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(--scrollbar-width, 0px));
  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: calc(100vw - var(--scrollbar-width, 0px));
  }
}
@media (max-width: 980px) {
  .blowout:before {
    transform: initial;
    left: 0;
    margin-left: var(--gutter1-);
    width: calc(100vw - var(--srollbar-width, 0px));
  }
}
@media (min-width: 981px) {
  body:not(mobile) main .blowout:before {
    --translateX: 0;
    width: calc(100vw + var(--scrollbar-width, 0px));
    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(--scrollbar-width, 0px));
  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);
}

.content-block[style*=background-color],
.content-block[style*=background-color] + :not(.themed):not(#footer) {
  box-shadow: initial !important;
}

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%;
  gap: 1.5rem;
}
.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, );
  margin-bottom: 0;
}
.article .container .subheading {
  font-size: 1.0625em;
  line-height: 1.6;
  color: var(--article-subheading-font-colour, #6a6a6a);
  max-width: 75ch;
  margin-bottom: 0;
}
.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:has(.author) .author {
  margin-top: auto;
  border-top: var(--gutter0) solid transparent;
}
.article .container:has(.author) .button {
  margin-top: initial;
}
.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));
  inset-inline-start: var(--gutter1-);
  margin-top: var(--gutter1-);
}
.article [href^="tel:"] {
  white-space: nowrap;
}
.article.bg-blue:not(.centre-stacked) .container {
  background-color: #131f6b;
  --article-subheading-font-colour: #FFFFFF;
  --heading-colour: #FFFFFF;
}
.article.bg-blue:not(.centre-stacked) .container .text,
.article.bg-blue:not(.centre-stacked) .container .name {
  color: #FFFFFF;
}
.article.bg-red:not(.centre-stacked) .container {
  background-color: #df3035;
  --article-subheading-font-colour: #FFFFFF;
  --heading-colour: #FFFFFF;
}
.article.bg-red:not(.centre-stacked) .container .text,
.article.bg-red:not(.centre-stacked) .container .name {
  color: #FFFFFF;
}
.article.bg-grey:not(.centre-stacked) .container {
  background-color: #f4f4f4;
  --heading-colour: var(--secondary);
}
.article.bg-yellow:not(.centre-stacked) .container {
  background-color: #f6f4db;
}
.article.bg-orange:not(.centre-stacked) .container {
  background-color: #ff6a00;
  --article-subheading-font-colour: #FFFFFF;
  --heading-colour: #FFFFFF;
}
.article.bg-orange:not(.centre-stacked) .container .text,
.article.bg-orange:not(.centre-stacked) .container .name {
  color: #FFFFFF;
}
.article.bg-green:not(.centre-stacked) .container {
  background-color: #50bc08;
  --article-subheading-font-colour: #FFFFFF;
  --heading-colour: #FFFFFF;
}
.article.bg-green:not(.centre-stacked) .container .text,
.article.bg-green:not(.centre-stacked) .container .name {
  color: #FFFFFF;
}
.article.bg-black:not(.centre-stacked) .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;
  --article-subheading-font-colour: #FFFFFF;
}
.content-block.black article-list .article .container .button {
  --font-colour: white;
  --background-colour: var(--secondary, #df3035);
  --border-colour: transparent;
  --hover-font-colour: #1e1c1c;
  --hover-background-colour: white;
  --hover-border-colour: transparent;
}
.content-block.black article-list.columns-2 {
  justify-self: center;
}
@media (min-width: 1001px) {
  .content-block.black article-list.columns-2 {
    max-width: 1000px;
  }
}

.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;
  text-align: center;
}
.article.uncropped-image .image {
  background-color: white;
}
.article.uncropped-image .image img {
  -o-object-fit: contain;
     object-fit: contain;
  padding: var(--gutter0);
  -o-object-position: center center;
     object-position: center center;
}
article-list:has(.image-text-side-by-side) {
  grid-template-columns: 1fr !important;
  display: flex;
  flex-direction: column;
}

.article.dir-rtl {
  direction: rtl;
}
.article.dir-rtl .content > * {
  direction: ltr;
}
.article:not([class*=bg-]) {
  --divider-line-colour: #f4f4f4;
}
.article.image-text-side-by-side .container {
  flex-direction: row;
  padding: 0;
}
.article.image-text-side-by-side .container .content {
  padding: var(--gutter1);
  padding-inline-start: 0;
}
.article.image-text-side-by-side .container .image {
  height: 100%;
  max-width: 33%;
  min-width: 120px;
  margin: 0;
  background-color: white;
  border-inline-end: 1px solid var(--divider-line-colour, #dcdcdc);
}
.article.image-text-side-by-side .container .image img {
  padding: var(--gutter1);
  -o-object-fit: contain;
     object-fit: contain;
  margin: 0;
  -o-object-position: center center;
     object-position: center center;
}
.article.centre-stacked .container {
  background-color: transparent;
  justify-content: flex-start;
  align-content: center;
  align-items: center;
  text-align: center;
  border: none;
}
.article.centre-stacked .container .content {
  display: contents;
}
.article.centre-stacked .container .text * {
  text-wrap: balance;
}
.article.centre-stacked .image {
  max-width: 240px;
  left: 0;
  margin: 0;
  order: -1;
  min-height: 120px;
  max-height: 140px;
}
.article.centre-stacked .image img {
  -o-object-fit: contain;
     object-fit: contain;
  margin: 0;
  -o-object-position: center center;
     object-position: center center;
}
.article.centre-stacked button-container {
  justify-content: center;
  margin-top: auto;
  padding-top: var(--gutter0);
}
@media (min-width: 1301px) {
  .article + .centre-stacked::before {
    content: "";
    height: 80%;
    left: 0;
    top: 50%;
    width: 1px;
    opacity: 0.2;
    transform: translateY(20%);
    border-left: 1px solid white;
  }
}
.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.thin {
  padding-top: var(--gutter2);
  padding-bottom: var(--gutter2);
}
.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.horizontal-blocks {
  box-shadow: initial !important;
  display: flex;
  align-items: center;
  padding-block: var(--spacer0);
}
.content-block.horizontal-blocks:has(.text + button-container) {
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--gutter1) var(--gutter0);
}
.content-block.horizontal-blocks:has(.text + button-container) .text {
  text-align: center;
  text-wrap: balance;
}
.content-block.horizontal-blocks:has(.text + button-container) button-container .button {
  font-size: small;
}
.content-block.horizontal-blocks:has(.text + button-container) .text,
.content-block.horizontal-blocks:has(.text + button-container) button-container {
  display: contents;
}
.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, 1fr);
  gap: 0;
  box-shadow: none !important;
}
.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;
  margin-bottom: var(--gutter2-);
}
.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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bEJrOUJSO0FBQ0Y7QUdqcENFO0Vld01BO0lBQ0UscUJBQUE7RWxCNDhCRjtBQUNGO0FrQnI4Qkk7RUFDRSxtQkF4TWE7QWxCK29DbkI7QWtCdDhCTTtFQUNFLDRDQUFBO0FsQnc4QlI7QWtCdjhCUTtFQUNFLDRCQUFBO0FsQnk4QlY7QWtCdjhCUTtFQUNFLDZDQUFBO0FsQnk4QlY7QWtCajlCSTtFQUNFLG1CQXhNYTtBbEIycENuQjtBa0JsOUJNO0VBQ0UsNENBQUE7QWxCbzlCUjtBa0JuOUJRO0VBQ0UsNEJBQUE7QWxCcTlCVjtBa0JuOUJRO0VBQ0UsNkNBQUE7QWxCcTlCVjtBa0I3OUJJO0VBQ0UsbUJBeE1hO0FsQnVxQ25CO0FrQjk5Qk07RUFDRSw0Q0FBQTtBbEJnK0JSO0FrQi85QlE7RUFDRSw0QkFBQTtBbEJpK0JWO0FrQi85QlE7RUFDRSw2Q0FBQTtBbEJpK0JWO0FrQnorQkk7RUFDRSxtQkF4TWE7QWxCbXJDbkI7QWtCMStCTTtFQUNFLDRDQUFBO0FsQjQrQlI7QWtCMytCUTtFQUNFLDRCQUFBO0FsQjYrQlY7QWtCMytCUTtFQUNFLDZDQUFBO0FsQjYrQlY7QWtCeCtCRTtFQUNFLDRCUnRHTztFUXVHUCw2QlJ2R087RVF3R1AsNkJSbklPO0VRb0lQLDBCUnBJTztFUXFJUCx3Q0QvTGE7QWpCeXFDakI7QWtCeitCSTtFQUNFLHlCQUFBO0FsQjIrQk47QWtCMStCTTs7RUFFRSwyQlIxSStCO0FWc25DdkM7O0FvQnh0Q0U7RUFDRSxXQUFBO0VBQ0YseUJBQUE7RUFDQSxXQUFBO0VDYUEsa0JBQUE7RUFTRSxNQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0VBQ0EsOENBQUE7RUhtT0EsbUJBQUE7QWxCcStCSjtBR2p1Q0U7RWlCSkE7SUZxUEksa0JBQUE7SUFDQSwyQlIxTXFCO0lRMk1yQixnREFBQTtFbEJvL0JKO0FBQ0Y7QUd4dUNFO0VpQkpBO0lGMFBJLGtCQUFBO0lBQ0EsT0FBQTtJQUNBLDRCUi9IaUM7SVFnSWpDLCtDQUFBO0VsQnMvQko7QUFDRjtBR3R2Q0U7RWVxUVM7SUE3UFQsZUFBQTtJQUNBLGdEQUFBO0lBQ0EscUJBQUE7SUE4UEksbUNBQUE7RWxCcS9CSjtBQUNGO0FHOXZDRTtFZXFRUztJQXpQUCwwREFBQTtFbEJzdkNGO0FBQ0Y7O0FrQngvQlc7RUFuUVQsZUFBQTtFQUNBLGdEQUFBO0VBQ0EscUJBQUE7RUFtUUUsbUNBQUE7QWxCNi9CSjtBRzF3Q0U7RWUyUVM7SUEvUFAsMERBQUE7RWxCa3dDRjtBQUNGOztBa0I1L0JBOztFQUVFLFdBQUE7RUFDQSwrQkFBQTtFQUNBLGlCQUFBO0FsQisvQkY7QWtCOS9CRTs7RUFDRSxtQkFBQTtBbEJpZ0NKOztBa0I3L0JBOztFQUVFLGdDQUFBO0VBQ0EsVUFBQTtBbEJnZ0NGO0FrQjkvQkU7O0VBQ0UsVUFBQTtBbEJpZ0NKOztBa0IzL0JBO0VBQ0UsdUJBQUE7RUFDQSxxQkFBQTtFQUNBLDZCUnZNUztFUXdNVCw4QkFBQTtBbEI4L0JGO0FrQjcvQkU7RUFDRSxnQkFBQTtFQUNBLGtCQUFBO0FsQisvQko7QWtCOS9CSTtFQUNFLHVCQUFBO0FsQmdnQ047QWtCNy9CRTtFQUNFLGlCQUFBO0VBQ0EsV0FBQTtFQUNBLHFCQUFBO0VBQ0EsdUJBQUE7RUFDQSxxQ0FBQTtBbEIrL0JKOztBa0IxL0JBO0VBQ0Usc0RBQUE7QWxCNi9CRjs7QWtCMS9CQTtFQUNFLG1CQUFBO0FsQjYvQkY7O0FrQjMvQkE7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7QWxCOC9CRjs7QWtCNS9CQTs7RUFFRSxtQkFBQTtBbEIrL0JGOztBa0IzL0JBOztFQUVFLHNEQUFBO0FsQjgvQkY7O0FrQjMvQkE7O0VBRUUsOEJBQUE7QWxCOC9CRjs7QWtCeC9CQTs7RUFFRSxhQUFBO0FsQjIvQkY7O0FrQnYvQkE7RUFDRSwwQlJoUVM7QVYwdkNYOztBa0J4L0JBO0VBQ0UsNkJSblFTO0FWOHZDWDs7QWtCdi9CQTtFQUNFLDBCUnhRUztBVmt3Q1g7O0FrQnYvQkE7RUFDRSxhQUFBO0FsQjAvQkY7O0FrQnYvQkE7RUFDRSxjQUFBO0VBQ0EsaUJBQUE7QWxCMC9CRjs7QXNCcjFDVztFSitWVCxzQkFBQTtFQUNBLGlDQUFBO0FsQjAvQkY7O0FzQjExQ1c7RUpvV1QsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxhQUFBO0FsQjAvQkY7QWtCeC9CRTs7RUFFRSw0QkFBQTtBbEIwL0JKO0FrQngvQkU7O0VBRUUsbUJBQUE7QWxCMC9CSjtBa0J2L0JFO0VBQ0UsTUFBQTtBbEJ5L0JKO0FHdDRDRTtFbUIwQlM7SUp1WFAseUJBQUE7RWxCeS9CRjtFa0J4L0JFOzs7SUFHRSxpREFBQTtFbEIwL0JKO0FBQ0Y7O0FzQnQzQ1c7RUppWVQsbUJBQUE7RUFDQSxvQkFBQTtFQUNBLGVBQUE7RUFDQSxhQUFBO0FsQnkvQkY7QWtCdi9CRTs7RUFFRSw0QkFBQTtBbEJ5L0JKO0FrQnYvQkU7O0VBRUUsbUJBQUE7QWxCeS9CSjtBa0J0L0JFO0VBQ0UsTUFBQTtBbEJ3L0JKO0FHbDZDRTtFbUIwQlM7SUpvWlAseUJBQUE7RWxCdy9CRjtFa0J2L0JFOzs7SUFHRSxpREFBQTtFbEJ5L0JKO0FBQ0Y7O0FzQmw1Q1c7RUo4WlQsbUJBQUE7RUFDQSxlQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0FsQncvQkY7QWtCdC9CRTs7RUFFRSw0QkFBQTtBbEJ3L0JKO0FrQnQvQkU7O0VBRUUsbUJBQUE7QWxCdy9CSjtBRzM3Q0U7RW1CMEJTO0lKa2JQLHlCQUFBO0VsQm0vQkY7RWtCeC9CRTs7O0lBR0UsbUJSM1VLO0VWcTBDVDtBQUNGOztBRy83Q0U7RWU0Y0U7SUFDRSxjQUFBO0VsQnUvQko7QUFDRjs7QWtCaC9CRTtFQUVFLGFBQUE7RUFDQSx3QlIvVk87RVFnV1AsMEJBQUE7QWxCay9CSjtBa0JqL0JJOzs7RUFFRSxpQkFBQTtFQUNBLGVBQUE7QWxCby9CTjtBa0JoL0JNO0VBRUUsc0VBQUE7QWxCaS9CUjs7QUcxOUNFO0Vlb2ZNO0lBQ0UsY0FBQTtFbEIwK0JSO0VrQngrQk07SUFDRSxnQkFBQTtFbEIwK0JSO0VrQnIrQk07SUFDRSxnQkFBQTtJQUNBLGdDQUFBO0VsQnUrQlI7RWtCcitCTTtJQUNFLGNBQUE7SUFDQSw0QlJwWUM7SVFxWUQsNkJScllDO0VWNDJDVDtFa0JwK0JJO0lBRUUsd0ZBQUE7RWxCcStCTjtBQUNGO0FHLytDRTtFZW9mTTtJQUNFLGNBQUE7RWxCOC9CUjtFa0I1L0JNO0lBQ0UsZ0JBQUE7RWxCOC9CUjtFa0J6L0JNO0lBQ0UsZ0JBQUE7SUFDQSxnQ0FBQTtFbEIyL0JSO0VrQnovQk07SUFDRSxjQUFBO0lBQ0EsNEJScFlDO0lRcVlELDZCUnJZQztFVmc0Q1Q7RWtCeC9CSTtJQUVFLHdGQUFBO0VsQnkvQk47QUFDRjs7QWtCeCtCRTtFQUNFLGlCQUFBO0FsQjIrQko7QUd2Z0RFO0VlMGhCRjtJQU1JLGlCQUFBO0VsQjIrQkY7RWtCaitCRTtJQUNFLHFCQUFBO0VsQm0rQko7RWtCaitCRTtJQUNFLHFCQUFBO0VsQm0rQko7RWtCaitCRTtJQUNFLHFCQUFBO0VsQm0rQko7RWtCaitCRTtJQUNFLHFCQUFBO0VsQm0rQko7RWtCaitCRTtJQUNFLHFCQUFBO0VsQm0rQko7RWtCaitCRTtJQUNFLHFCQUFBO0VsQm0rQko7RWtCLzlCRTtJQUNFLHFCQUFBO0VsQmkrQko7RWtCLzlCRTtJQUNFLHFCQUFBO0VsQmkrQko7RWtCLzlCRTtJQUNFLHFCQUFBO0VsQmkrQko7RWtCLzlCRTtJQUNFLHFCQUFBO0VsQmkrQko7RWtCLzlCRTtJQUNFLHFCQUFBO0VsQmkrQko7RWtCNzlCRTtJQUNFLHFCQUFBO0VsQis5Qko7RWtCNzlCRTtJQUNFLHFCQUFBO0VsQis5Qko7RWtCNzlCRTtJQUNFLHFCQUFBO0VsQis5Qko7RWtCNzlCRTtJQUNFLHFCQUFBO0VsQis5Qko7RWtCMzlCRTtJQUNFLHFCQUFBO0VsQjY5Qko7RWtCMzlCRTtJQUNFLHFCQUFBO0VsQjY5Qko7RWtCMzlCRTtJQUNFLHFCQUFBO0VsQjY5Qko7RWtCejlCRTtJQUNFLHFCQUFBO0VsQjI5Qko7RWtCejlCRTtJQUNFLHFCQUFBO0VsQjI5Qko7RWtCdjlCRTtJQUNFLHFCQUFBO0VsQnk5Qko7QUFDRjtBRy9qREU7RWU4Z0JGO0lB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a0JBQUE7RUFDQSx5QkFBQTtBbkQwNEtGO0FtRHg0S1c7RUFDUCx3QkFBQTtFQUNBLDJCQUFBO0VBQ0EscUJBQUE7QW5EMDRLSjtBbUR6NEtJO0VBQ0Usa0NBQUE7QW5EMjRLTjtBbUQxNEtNO0VBQ0UsY0FBQTtBbkQ0NEtSOztBbUR2NEtFO0VBQ0Usb0VBQUE7QW5EMDRLSjtBbUR4NEtFO0VBQ0UsbUN6QzZHTztBVjZ4S1g7QStDNTVLRTtFQUVJLHNVQUFBO0EvQzY1S047QW1EejRLSTtFQUNFLDZCekN3R0s7QVZteUtYO0FtRHg0S0U7RUFDRSxlekNtQkk7QVZ1M0tSO0FtRHo0S0k7RUFDRSxTQUFBO0FuRDI0S047QW1EdjRLRTtFQUNFLDZCQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxzQkFBQTtFQUNBLDhCekN1Rm1DO0FWa3pLdkM7QW1EdjRLRTtFQUNFLGtCQUFBO0VBQ0EsYUFBQTtFQUNBLG1CekNpRk87RXlDaEZQLFlBQUE7RUFDQSxtQkFBQTtBbkR5NEtKO0FtRHg0S0k7RUFDRSxjQUFBO0FuRDA0S047QW1EeDRLSTtFQUNFO0lBQ0Usa0JBQUE7SUFDQSxZQUFBO0lBQ0EsV0FBQTtFbkQwNEtOO0FBQ0YiLCJmaWxlIjoiZ2xvYmFsLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbmh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCxcbmJsb2NrcXVvdGUsIHByZSwgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLCBkZWwsIGRmbiwgZW0sXG5pbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLCBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLCBiLCB1LCBpLFxuY2VudGVyLCBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLCBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCwgdGFibGUsXG5jYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLCBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLFxuZW1iZWQsIGZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksXG5zZWN0aW9uLCBzdW1tYXJ5LCB0aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG46cm9vdCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbn1cblxuKiwgKjphZnRlciwgKjpiZWZvcmUge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuKjpmb2N1cywgKjphZnRlcjpmb2N1cywgKjpiZWZvcmU6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuXG5odG1sIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDYyLjUlO1xuICBibG9jay1zaXplOiAxMDAlO1xuICBpbmxpbmUtc2l6ZTogMTAwJTtcbn1cblxuYm9keSB7XG4gIG1pbi1ibG9jay1zaXplOiAxMDAlO1xuICBtaW4taW5saW5lLXNpemU6IDEwMCU7XG59XG5cbmh0bWwsIGJvZHkge1xuICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG5wOmVtcHR5LCBwcmU6ZW1wdHksIGJsb2NrcXVvdGU6ZW1wdHksIG9sOmVtcHR5LCB1bDplbXB0eSwgbGk6ZW1wdHksIGxlZ2VuZDplbXB0eSwgZmlnY2FwdGlvbjplbXB0eSwgYm9keTplbXB0eSwgYXJ0aWNsZTplbXB0eSwgbmF2OmVtcHR5LCBhc2lkZTplbXB0eSwgc2VjdGlvbjplbXB0eSwgaGVhZGVyOmVtcHR5LCBmb290ZXI6ZW1wdHksIGFkZHJlc3M6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgbWFpbiwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbnN2Zywgc3ltYm9sIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciwgc3VtbWFyeTo6bWFya2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmJvZHkge1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmFkZHJlc3Mge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAtd2Via2l0LW1hcmdpbi1iZWZvcmU6IDBlbTtcbiAgLXdlYmtpdC1tYXJnaW4tYWZ0ZXI6IDBlbTtcbiAgLXdlYmtpdC1tYXJnaW4tc3RhcnQ6IDBweDtcbiAgLXdlYmtpdC1tYXJnaW4tZW5kOiAwcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbmhyIHtcbiAgYm9yZGVyOiBub25lO1xuICBoZWlnaHQ6IDFweDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5ibG9ja3F1b3RlLCBxIHtcbiAgcXVvdGVzOiBub25lO1xufVxuYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIsIHE6YmVmb3JlLCBxOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgY29udGVudDogbm9uZTtcbn1cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiBibGFjaztcbiAgcGFkZGluZzogMTZweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA5OTk5O1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG5idXR0b24ge1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbn1cblxuYnV0dG9uLCBpbnB1dCwgb3B0Z3JvdXAsIHNlbGVjdCwgdGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgbWFyZ2luOiAwO1xufVxuXG5idXR0b24sIGlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbmJ1dHRvbiwgc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbmJ1dHRvbixcblt0eXBlPWJ1dHRvbl0sXG5bdHlwZT1yZXNldF0sXG5bdHlwZT1zdWJtaXRdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5idXR0b246Zm9jdXMsXG5bdHlwZT1idXR0b25dOmZvY3VzLFxuW3R5cGU9cmVzZXRdOmZvY3VzLFxuW3R5cGU9c3VibWl0XTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPWJ1dHRvbl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1yZXNldF06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1zdWJtaXRdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1idXR0b25dOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9cmVzZXRdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9c3VibWl0XTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuW3R5cGU9Y2hlY2tib3hdLFxuW3R5cGU9cmFkaW9dIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbn1cblxuW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPXNlYXJjaF0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5cblt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgZm9udDogaW5oZXJpdDtcbn1cblxuW2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG5lbSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG59XG5cbmIsIHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5jb2RlLCBrYmQsIHNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG5zdWIsIHN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnRleHRhcmVhIHtcbiAgcmVzaXplOiBub25lO1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxucHJlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiBibGFjaztcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgcGFkZGluZzogMTZweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA5OTk7XG59XG5cbmJvZHkuZGV2bW9kZSBpbWc6bm90KFthbHRdKSB7XG4gIGJvcmRlcjogMnB4IHJlZCBkYXNoZWQ7XG59XG5cbmJvZHkge1xuICB3aWR0aDogMTAwdnc7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMzIxcHgpIHtcbiAgYm9keSB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICB9XG59XG5cbjp3aGVyZSgqKSB7XG4gIHNjcm9sbC1tYXJnaW4tdG9wOiB2YXIoLS1uYXZpZ2F0aW9uLWhlaWdodCwgMnJlbSk7XG59XG5cbi5hc3luYy1oaWRlIHtcbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xufVxuXG5tYWluOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuZmlndXJlLmltYWdlLFxucGljdHVyZS5pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB2YXIoLS1wb3NpdGlvbiwgY2VudGVyIDMzJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbmZpZ3VyZS5pbWFnZSBpbWcsXG5waWN0dXJlLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IHZhcigtLWltYWdlLXBvc2l0aW9uLCBjZW50ZXIgMzMuMzMlKTtcbiAgd2lkdGg6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcbiAgaGVpZ2h0OiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpO1xuICBtYXgtd2lkdGg6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcbiAgbWF4LWhlaWdodDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuXG52aWRlby1jb250YWluZXIge1xuICAtLWFzcGVjdC1yYXRpbzogMTYvOTtcbiAgYXNwZWN0LXJhdGlvOiB2YXIoLS1hc3BlY3QtcmF0aW8pO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG5Ac3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86IDE2LzkpIHtcbiAgdmlkZW8tY29udGFpbmVyIHtcbiAgICBhc3BlY3QtcmF0aW86IGluaXRpYWw7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJSAvICh2YXIoLS1hc3BlY3QtcmF0aW8pKSk7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG4gIHZpZGVvLWNvbnRhaW5lciA+ICoge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxufVxudmlkZW8tY29udGFpbmVyIGlmcmFtZSwgdmlkZW8tY29udGFpbmVyIGNhbnZhcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbio6aGFzKD4gLmNvbnRhaW5lci1pbmxpbmUpIHtcbiAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xufVxuXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTVmZjtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCkgLyAyKTtcbiAgcGFkZGluZzogMCA1cHg7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuXG5kZXRhaWxzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuc3VtbWFyeSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cbnN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIsIHN1bW1hcnk6Om1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmhlYWRlciAuYnV0dG9uLmJyb2NodXJlIHtcbiAgLS1mb250LWNvbG91cjogIzEzMWY2YjtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0tcGFkZGluZzogNXB4IDBweDtcbiAgLS1pY29uLXNpemU6IDMycHg7XG4gIC0tYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0tYm9yZGVyLXJhZGl1czogMDtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogI2RmMzAzNTtcbiAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbmhlYWRlciAuYnV0dG9uLmJyb2NodXJlIHN2ZyB7XG4gIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGZpbGw6ICNkZjMwMzU7XG59XG5cbi5idXR0b24ge1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tcHJpbWFyeSk7XG4gIC0tYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0tcGFkZGluZzogOHB4IDIwcHg7XG4gIC0tZm9udC1zaXplOiAxNnB4O1xuICAtLWJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6IHZhcigtLXByaW1hcnkpO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiBpbml0aWFsO1xuICAtLWhvdmVyLXBhZGRpbmc6IHZhcigtLXBhZGRpbmcpO1xuICAtLWhvdmVyLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKTtcbiAgLS1ob3Zlci1ib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgLS1pY29uLXNpemU6IDEuMWVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBwYWRkaW5nOiB2YXIoLS1wYWRkaW5nKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UpLCBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UpLCBib3JkZXIgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlKTtcbn1cbi5idXR0b24gc3ZnIHtcbiAgd2lkdGg6IHZhcigtLWljb24tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0taWNvbi1zaXplKTtcbiAgb3JkZXI6IDM7XG4gIGZpbGw6IHZhcigtLWZpbGwsIGN1cnJlbnRDb2xvcik7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWljb24tc2l6ZSkgLyAyKTtcbiAgdHJhbnNpdGlvbjogZmlsbCB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UpLCBzdHJva2UgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlKTtcbn1cbi5idXR0b24gc3ZnW2NsYXNzKj1hcnJvd10ge1xuICAtLWljb24tc2l6ZTogMC45ZW07XG59XG4uYnV0dG9uIHN2Zy5hcnJvdy1sZWZ0IHtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWljb24tc2l6ZSkgLyAyKTtcbiAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgb3JkZXI6IDE7XG59XG4uYnV0dG9uID4gc3BhbiB7XG4gIG9yZGVyOiAyO1xuICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG59XG4uYnV0dG9uLnNtYWxsIHtcbiAgLS1wYWRkaW5nOiA2cHggMThweDtcbiAgLS1mb250LXNpemU6IDEycHg7XG59XG4uYnV0dG9uLnNtYWxsIHN2ZyB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxuLmJ1dHRvbi5zbWFsbCBzdmcuYXJyb3ctbGVmdCB7XG4gIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbi5idXR0b24ubGFyZ2Uge1xuICAtLXBhZGRpbmc6IDEycHggMjRweDtcbiAgLS1mb250LXNpemU6IDI0cHg7XG59XG4uYnV0dG9uLm91dGxpbmUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogIzEzMWY2YjtcbiAgLS1ib3JkZXItY29sb3VyOiAjMTMxZjZiO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjMTMxZjZiO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjMTMxZjZiO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuLmJ1dHRvbi5ibHVlIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogIzEzMWY2YjtcbiAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjMTMxZjZiO1xufVxuLmJ1dHRvbi5ibHVlLm91dGxpbmUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogIzEzMWY2YjtcbiAgLS1ib3JkZXItY29sb3VyOiAjMTMxZjZiO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjMTMxZjZiO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuLmJ1dHRvbi5yZWQge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjZGYzMDM1O1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICNkZjMwMzU7XG59XG4uYnV0dG9uLnJlZC5vdXRsaW5lIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0tZm9udC1jb2xvdXI6ICNkZjMwMzU7XG4gIC0tYm9yZGVyLWNvbG91cjogI2RmMzAzNTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogI2RmMzAzNTtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogI0ZGRkZGRjtcbiAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbn1cbi5idXR0b24uZ3JlZW4ge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjNzZiYjI4O1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICM3NmJiMjg7XG59XG4uYnV0dG9uLmdyZWVuLm91dGxpbmUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogIzc2YmIyODtcbiAgLS1ib3JkZXItY29sb3VyOiAjNzZiYjI4O1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjNzZiYjI4O1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuLmJ1dHRvbi53aGl0ZSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0tZm9udC1jb2xvdXI6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogI0ZGRkZGRjtcbn1cbi5idXR0b24ud2hpdGUub3V0bGluZSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWJvcmRlci1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuLmJ1dHRvbi5kaXNhYmxlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjZGNkY2RjO1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICNkY2RjZGM7XG59XG4uYnV0dG9uLmRpc2FibGVkLm91dGxpbmUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogI2RjZGNkYztcbiAgLS1ib3JkZXItY29sb3VyOiAjZGNkY2RjO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjZGNkY2RjO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjZGNkY2RjO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgLmJ1dHRvbjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLWhvdmVyLWZvbnQtY29sb3VyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cik7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ob3Zlci1ib3JkZXItY29sb3VyKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ob3Zlci1ib3JkZXItcmFkaXVzKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1ob3Zlci1wYWRkaW5nKTtcbiAgICBmb250LXNpemU6IHZhcigtLWhvdmVyLWZvbnQtc2l6ZSk7XG4gIH1cbn1cbi5idXR0b24ucmVkIHN2Zy50aWNrLCAuYnV0dG9uLnJlZCBzdmcuZG93bmxvYWQge1xuICAtLXN0cm9rZTogI2RmMzAzNTtcbn1cbi5idXR0b24uYmx1ZSBzdmcudGljaywgLmJ1dHRvbi5ibHVlIHN2Zy5kb3dubG9hZCB7XG4gIC0tc3Ryb2tlOiAjMTMxZjZiO1xufVxuLmJ1dHRvbi5vdXRsaW5lIHN2Zy50aWNrLCAuYnV0dG9uLm91dGxpbmUgc3ZnLmRvd25sb2FkIHtcbiAgLS1zdHJva2U6ICNGRkZGRkY7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAuYnV0dG9uOmhvdmVyLnJlZCBzdmcudGljayxcbiAgLmJ1dHRvbjpob3Zlci5yZWQgc3ZnLmRvd25sb2FkIHtcbiAgICAtLXN0cm9rZTogI0ZGRkZGRjtcbiAgfVxuICAuYnV0dG9uOmhvdmVyLnJlZC5vdXRsaW5lIHN2Zy50aWNrLCAuYnV0dG9uOmhvdmVyLnJlZC5vdXRsaW5lIHN2Zy5kb3dubG9hZCB7XG4gICAgLS1zdHJva2U6ICNkZjMwMzU7XG4gIH1cbiAgLmJ1dHRvbjpob3Zlci5ibHVlIHN2Zy50aWNrLFxuICAuYnV0dG9uOmhvdmVyLmJsdWUgc3ZnLmRvd25sb2FkIHtcbiAgICAtLXN0cm9rZTogI0ZGRkZGRjtcbiAgfVxuICAuYnV0dG9uOmhvdmVyLmJsdWUub3V0bGluZSBzdmcudGljaywgLmJ1dHRvbjpob3Zlci5ibHVlLm91dGxpbmUgc3ZnLmRvd25sb2FkIHtcbiAgICAtLXN0cm9rZTogIzEzMWY2YjtcbiAgfVxuICAuYnV0dG9uOmhvdmVyLndoaXRlIHN2Zy50aWNrLCAuYnV0dG9uOmhvdmVyLndoaXRlIHN2Zy5kb3dubG9hZCB7XG4gICAgLS1zdHJva2U6ICMxMzFmNmI7XG4gIH1cbn1cblxuYnV0dG9uLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZ2FwOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxuYnV0dG9uLWNvbnRhaW5lciAuYnV0dG9uIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnN0aWNreSB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMHB4O1xufVxuXG5pbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sIGlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiwgaW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbiwgaW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICBkaXNwbGF5OiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbiNob2xkaW5nLXBhZ2UgaGVhZGVyIHN2ZyB7XG4gIG1heC13aWR0aDogNDAwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgI2hvbGRpbmctcGFnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBhZGRpbmc6IHZhcigtLWd1dHRlcjEpO1xuICB9XG59XG5cbmJvZHkjZXJyb3ItNDA0IGhlYWRlciBoMiB7XG4gIG1heC13aWR0aDogOTAwcHg7XG59XG5ib2R5I2Vycm9yLTQwNCBzZWFyY2gtYmFyIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2VyMCk7XG59XG5ib2R5I2Vycm9yLTQwNCBzZWFyY2gtYmFyIGlucHV0W3R5cGU9c2VhcmNoXSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMxMzFmNmI7XG59XG5cbmJvZHkgPiAuaWRsZS1kaWFsb2cge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBib3gtc2hhZG93OiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm90dG9tOiB2YXIoLS1ndXR0ZXIxLSk7XG4gIHotaW5kZXg6IDI7XG4gIC8qIFN0YXJ0IGhpZGRlbiBiZWxvdyB2aWV3cG9ydCAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIC8qIEFuaW1hdGlvbiB3aXRoIGRlbGF5ZWQgc3RhcnQgKi9cbiAgYW5pbWF0aW9uOiBzbGlkZS1pbi1pZGxlLWRpYWxvZyBib3RoO1xuICBhbmltYXRpb24tdGltZWxpbmU6IHNjcm9sbCgpO1xuICBhbmltYXRpb24tcmFuZ2U6IGNhbGModmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDBweCkpIGNhbGModmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDBweCkgKyBjbGFtcCgycmVtLCA1dmgsIDNyZW0pICogMik7XG59XG5ib2R5ID4gLmlkbGUtZGlhbG9nIC5idXR0b24ge1xuICBvdXRsaW5lOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuQGtleWZyYW1lcyBzbGlkZS1pbi1pZGxlLWRpYWxvZyB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHJlbSk7XG4gIH1cbn1cbiNjb250YWN0LW1vZGFsIHtcbiAgLS1kaWFsb2ctY29udGVudC1iYWNrZ3JvdW5kLWNvbG91cjogI2Y0ZjRmNDtcbn1cbiNjb250YWN0LW1vZGFsIGZvcm0gLnN1Ym1pdC1yb3cge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1ndXR0ZXIxKTtcbn1cblxuYm9keSA+IC5iYWNrLXRvLXRvcCB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiB2YXIoLS1ndXR0ZXIxKTtcbiAgcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrLXRvLXRvcC1iYWNrZ3JvdW5kLCAjMjkyYjY4KTtcbiAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgei1pbmRleDogOTk5OTtcbiAgb3BhY2l0eTogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIGJvdHRvbSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xufVxuYm9keSA+IC5iYWNrLXRvLXRvcCBzdmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgd2lkdGg6IDUwJTtcbiAgdG9wOiAtNCU7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBib2R5ID4gLmJhY2stdG8tdG9wOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktbGlnaHQsICNkZjMwMzUpO1xuICB9XG59XG5cbmZvb3RlciNmb290ZXIuaW4tdmlldyB+IC5iYWNrLXRvLXRvcCB7XG4gIGJvdHRvbTogMTIwcHg7XG59XG5cbm5hdmlnYXRpb24tYmFyOm5vdCguaW4tdmlldykgfiAuYmFjay10by10b3Age1xuICBvcGFjaXR5OiAxO1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG46cm9vdCB7XG4gIC0tcHJpbWFyeTogIzEzMWY2YjtcbiAgLS1zZWNvbmRhcnk6ICNkZjMwMzU7XG4gIC0tYnJlYWtwb2ludC1taW46IDMyMHB4O1xuICAtLWJyZWFrcG9pbnQtc21hbGw6IDQ4MHB4O1xuICAtLWJyZWFrcG9pbnQtc21hbGwtbWVkaXVtOiA5ODBweDtcbiAgLS1icmVha3BvaW50LW1lZGl1bTogMTEyMHB4O1xuICAtLWJyZWFrcG9pbnQtbGFyZ2U6IDE0MDBweDtcbiAgLS1icmVha3BvaW50LW1heDogMTY4MHB4O1xuICAtLWZvbnQtY29sb3VyOiAjNmE2YTZhO1xuICAtLWhlYWRpbmctY29sb3VyOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgLS1zdWItaGVhZGluZy1jb2xvdXI6IHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbiAgLS10cmFuc2l0aW9uLWVhc2U6IGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTtcbiAgLS10cmFuc2l0aW9uLWRlbGF5OiA7XG4gIC0tYnJlYWRjcnVtYi1oZWlnaHQ6IDkwcHg7XG4gIC0tYW5jaG9ycy1oZWlnaHQ6IDYwcHg7XG4gIC0tYnJlYWRjcnVtYi1hbmQtYW5jaG9ycy1zdGlja3ktdW5kZXJzZXQ6IC0xNXB4O1xuICAtLW1haW4tbWF4LXdpZHRoOiA5MDBweDtcbiAgLS1uYXZpZ2F0aW9uLWhlaWdodDogMTQzcHg7XG4gIC0tc2lkZWJhci13aWR0aDogY2xhbXAoMzAwcHgsIDMwdncsIDUwMHB4KTtcbiAgLS1nYXA6IDE2cHg7XG4gIC0tZ3V0dGVyOiAzdnc7XG4gIC0tc3BhY2VyOiA0dmg7XG4gIC0tZ3V0dGVyMDogY2xhbXAoOHB4LCB2YXIoLS1ndXR0ZXIpICogMC41LCAxMnB4KTtcbiAgLS1ndXR0ZXIwLTogY2FsYygtMSAqIGNsYW1wKDhweCwgdmFyKC0tZ3V0dGVyKSAqIDAuNSwgMTJweCkpO1xuICAtLXNwYWNlcjA6IGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlciksIDMycHgpO1xuICAtLXNwYWNlcjAtOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSwgMzJweCkpO1xuICAtLWd1dHRlcjE6IGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlciksIDMycHgpO1xuICAtLWd1dHRlcjEtOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tZ3V0dGVyKSwgMzJweCkpO1xuICAtLXNwYWNlcjE6IGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiAzLCA2NHB4KTtcbiAgLS1zcGFjZXIxLTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiAzLCA2NHB4KSk7XG4gIC0tZ3V0dGVyMjogY2xhbXAoMTZweCwgdmFyKC0tZ3V0dGVyKSAqIDIsIDQ4cHgpO1xuICAtLWd1dHRlcjItOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tZ3V0dGVyKSAqIDIsIDQ4cHgpKTtcbiAgLS1zcGFjZXIyOiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogNiwgMTEycHgpO1xuICAtLXNwYWNlcjItOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDYsIDExMnB4KSk7XG4gIC0tZ3V0dGVyMzogY2xhbXAoMTZweCwgdmFyKC0tZ3V0dGVyKSAqIDMsIDY0cHgpO1xuICAtLWd1dHRlcjMtOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tZ3V0dGVyKSAqIDMsIDY0cHgpKTtcbiAgLS1zcGFjZXIzOiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogOSwgMTYwcHgpO1xuICAtLXNwYWNlcjMtOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDksIDE2MHB4KSk7XG4gIC0tZ3V0dGVyNDogY2xhbXAoMTZweCwgdmFyKC0tZ3V0dGVyKSAqIDQsIDgwcHgpO1xuICAtLWd1dHRlcjQtOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tZ3V0dGVyKSAqIDQsIDgwcHgpKTtcbiAgLS1zcGFjZXI0OiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogMTIsIDIwOHB4KTtcbiAgLS1zcGFjZXI0LTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiAxMiwgMjA4cHgpKTtcbiAgLS1ndXR0ZXI1OiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpICogNSwgOTZweCk7XG4gIC0tZ3V0dGVyNS06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpICogNSwgOTZweCkpO1xuICAtLXNwYWNlcjU6IGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiAxNSwgMjU2cHgpO1xuICAtLXNwYWNlcjUtOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDE1LCAyNTZweCkpO1xuICAtLWd1dHRlcjY6IGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiA2LCAxMTJweCk7XG4gIC0tZ3V0dGVyNi06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpICogNiwgMTEycHgpKTtcbiAgLS1zcGFjZXI2OiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogMTgsIDMwNHB4KTtcbiAgLS1zcGFjZXI2LTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiAxOCwgMzA0cHgpKTtcbiAgLS1jb21wdXRlZC1ndXR0ZXI6IGNhbGMoKCgxMDB2dyAtIHZhcigtLWJyZWFrcG9pbnQtbWF4KSkgLyAyKSk7XG59XG5Ac3VwcG9ydHMgbm90ICh3aWR0aDogY2xhbXAoMXB4LCA1dncsIDEwcHgpKSB7XG4gIDpyb290IHtcbiAgICAtLXNpZGViYXItd2lkdGg6IDUwMHB4O1xuICB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxNDAwcHgpIHtcbiAgICA6cm9vdCB7XG4gICAgICAtLXNpZGViYXItd2lkdGg6IDMwMHB4O1xuICAgIH1cbiAgfVxufVxuQHN1cHBvcnRzIG5vdCAod2lkdGg6IGNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICA6cm9vdCB7XG4gICAgLS1ndXR0ZXIwOiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogMC41KSArIDhweCk7XG4gICAgLS1ndXR0ZXIwLTogY2FsYygtMSAqIGNhbGMoKHZhcigtLWd1dHRlcikgKiAwLjUpICsgOHB4KSk7XG4gICAgLS1zcGFjZXIwOiBjYWxjKCh2YXIoLS1zcGFjZXIpICogMikgKyAxNnB4KTtcbiAgICAtLXNwYWNlcjAtOiBjYWxjKC0xICogY2FsYygodmFyKC0tc3BhY2VyKSAqIDIpICsgMTZweCkpO1xuICAgIC0tZ3V0dGVyMTogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDEpICsgMTZweCk7XG4gICAgLS1ndXR0ZXIxLTogY2FsYygtMSAqIGNhbGMoKHZhcigtLWd1dHRlcikgKiAxKSArIDE2cHgpKTtcbiAgICAtLXNwYWNlcjE6IGNhbGMoKHZhcigtLXNwYWNlcikgKiA0KSArIDE2cHgpO1xuICAgIC0tc3BhY2VyMS06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1zcGFjZXIpICogNCkgKyAxNnB4KSk7XG4gICAgLS1ndXR0ZXIyOiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogMikgKyAxNnB4KTtcbiAgICAtLWd1dHRlcjItOiBjYWxjKC0xICogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDIpICsgMTZweCkpO1xuICAgIC0tc3BhY2VyMjogY2FsYygodmFyKC0tc3BhY2VyKSAqIDgpICsgMTZweCk7XG4gICAgLS1zcGFjZXIyLTogY2FsYygtMSAqIGNhbGMoKHZhcigtLXNwYWNlcikgKiA4KSArIDE2cHgpKTtcbiAgICAtLWd1dHRlcjM6IGNhbGMoKHZhcigtLWd1dHRlcikgKiAzKSArIDE2cHgpO1xuICAgIC0tZ3V0dGVyMy06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogMykgKyAxNnB4KSk7XG4gICAgLS1zcGFjZXIzOiBjYWxjKCh2YXIoLS1zcGFjZXIpICogMTIpICsgMTZweCk7XG4gICAgLS1zcGFjZXIzLTogY2FsYygtMSAqIGNhbGMoKHZhcigtLXNwYWNlcikgKiAxMikgKyAxNnB4KSk7XG4gICAgLS1ndXR0ZXI0OiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogNCkgKyAxNnB4KTtcbiAgICAtLWd1dHRlcjQtOiBjYWxjKC0xICogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDQpICsgMTZweCkpO1xuICAgIC0tc3BhY2VyNDogY2FsYygodmFyKC0tc3BhY2VyKSAqIDE2KSArIDE2cHgpO1xuICAgIC0tc3BhY2VyNC06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1zcGFjZXIpICogMTYpICsgMTZweCkpO1xuICAgIC0tZ3V0dGVyNTogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDUpICsgMTZweCk7XG4gICAgLS1ndXR0ZXI1LTogY2FsYygtMSAqIGNhbGMoKHZhcigtLWd1dHRlcikgKiA1KSArIDE2cHgpKTtcbiAgICAtLXNwYWNlcjU6IGNhbGMoKHZhcigtLXNwYWNlcikgKiAyMCkgKyAxNnB4KTtcbiAgICAtLXNwYWNlcjUtOiBjYWxjKC0xICogY2FsYygodmFyKC0tc3BhY2VyKSAqIDIwKSArIDE2cHgpKTtcbiAgICAtLWd1dHRlcjY6IGNhbGMoKHZhcigtLWd1dHRlcikgKiA2KSArIDE2cHgpO1xuICAgIC0tZ3V0dGVyNi06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogNikgKyAxNnB4KSk7XG4gICAgLS1zcGFjZXI2OiBjYWxjKCh2YXIoLS1zcGFjZXIpICogMjQpICsgMTZweCk7XG4gICAgLS1zcGFjZXI2LTogY2FsYygtMSAqIGNhbGMoKHZhcigtLXNwYWNlcikgKiAyNCkgKyAxNnB4KSk7XG4gIH1cbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcImxhdG9cIjtcbiAgc3JjOiB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1ib2xkLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1ib2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tYm9sZC5vdGZcIikgZm9ybWF0KFwib3BlbnR5cGVcIik7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcImxhdG9cIjtcbiAgc3JjOiB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1zZW1pYm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tc2VtaWJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1zZW1pYm9sZC5vdGZcIikgZm9ybWF0KFwib3BlbnR5cGVcIik7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcImxhdG9cIjtcbiAgc3JjOiB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1yZWd1bGFyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1yZWd1bGFyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tcmVndWxhci5vdGZcIikgZm9ybWF0KFwib3BlbnR5cGVcIik7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIm1vbnRzZXJyYXRcIjtcbiAgc3JjOiB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0ud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS5vdGZcIikgZm9ybWF0KFwib3BlbnR5cGVcIik7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIm1vbnRzZXJyYXRcIjtcbiAgc3JjOiB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0taXRhbGljLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0taXRhbGljLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLWl0YWxpYy5vdGZcIikgZm9ybWF0KFwib3BlbnR5cGVcIik7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIm1vbnRzZXJyYXRcIjtcbiAgc3JjOiB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1zZW1pYm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtc2VtaWJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1zZW1pYm9sZC5vdGZcIikgZm9ybWF0KFwib3BlbnR5cGVcIik7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBtb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91ciwgIzZhNmE2YSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xufVxuQHN1cHBvcnRzICh3aWR0aDogY2xhbXAoMXB4LCA1dncsIDEwcHgpKSB7XG4gIGJvZHkge1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS40cmVtLCAxLjV2dywgMS42cmVtKTtcbiAgfVxufVxuQHN1cHBvcnRzIG5vdCAod2lkdGg6IGNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICBAbWVkaWEgKG1heC13aWR0aDogOTUwcHgpIHtcbiAgICBib2R5IHtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTYwMXB4KSB7XG4gICAgYm9keSB7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICB9XG4gIH1cbn1cblxuaDEge1xuICBmb250LXNpemU6IDMuODEyNWVtO1xuICBmb250LXNpemU6IGNsYW1wKDIuNWVtLCA1dncsIDMuODEyNWVtKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuaDIge1xuICBmb250LXNpemU6IDJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cblxuaDMge1xuICBmb250LXNpemU6IDEuNTYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogMS4wNjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbmg1IHtcbiAgZm9udC1zaXplOiAxLjA2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuaDYge1xuICBmb250LXNpemU6IDEuMDYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBmb250LWZhbWlseTogbGF0bywgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBjb2xvcjogdmFyKC0taGVhZGluZy1jb2xvdXIsIHZhcigtLWZvbnQtY29sb3VyKSk7XG4gIHRleHQtd3JhcDogcHJldHR5O1xufVxuaDEuc3ViLWhlYWRpbmcsXG5oMi5zdWItaGVhZGluZyxcbmgzLnN1Yi1oZWFkaW5nLFxuaDQuc3ViLWhlYWRpbmcsXG5oNS5zdWItaGVhZGluZyxcbmg2LnN1Yi1oZWFkaW5nIHtcbiAgY29sb3I6IHZhcigtLXN1Yi1oZWFkaW5nLWNvbG91cik7XG4gIGZvbnQtZmFtaWx5OiBsYXRvLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5oMSBzcGFuLFxuaDEgc3Ryb25nLFxuaDEgcCxcbmgyIHNwYW4sXG5oMiBzdHJvbmcsXG5oMiBwLFxuaDMgc3BhbixcbmgzIHN0cm9uZyxcbmgzIHAsXG5oNCBzcGFuLFxuaDQgc3Ryb25nLFxuaDQgcCxcbmg1IHNwYW4sXG5oNSBzdHJvbmcsXG5oNSBwLFxuaDYgc3Bhbixcbmg2IHN0cm9uZyxcbmg2IHAge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xufVxuXG5xLFxuYmxvY2txdW90ZSB7XG4gIHF1b3RlczogXCLigJxcIiBcIuKAnVwiIFwi4oCYXCIgXCLigJlcIjtcbn1cbnE6OmJlZm9yZSxcbmJsb2NrcXVvdGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IG9wZW4tcXVvdGU7XG59XG5xOjphZnRlcixcbmJsb2NrcXVvdGU6OmFmdGVyIHtcbiAgY29udGVudDogY2xvc2UtcXVvdGU7XG59XG5cbmEge1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXI7XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG59XG5hLmV4dGVybmFsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5hLmV4dGVybmFsIHN2Zy5leHRlcm5hbC1saW5rIHtcbiAgb3BhY2l0eTogMC42O1xuICB3aWR0aDogMC44ZW07XG4gIGhlaWdodDogMC44ZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbn1cblxub2wsXG51bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbn1cblxubGkgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDJweDtcbn1cblxuc21hbGwge1xuICBmb250LXNpemU6IDAuNjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjg7XG59XG5cbmhyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taHItY29sb3VyLCAjZGNkY2RjKTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlcjApO1xufVxuXG4ubm90ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY1YmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmUxM2M7XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcjEpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xufVxuLm5vdGUgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBjb2xvcjogIzk3ODAwMjtcbn1cbi5ub3RlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlBsZWFzZSBOb3RlXCI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICM5NzgwMDI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxuXG5ib2R5IHtcbiAgLS1yb3ctbmF2aWdhdGlvbjogMTtcbiAgLS1yb3ctYnJlYWRjcnVtYnM6IDI7XG4gIC0tcm93LWFuY2hvcnM6IDM7XG4gIC0tcm93LWhlYWRlcjogNDtcbiAgLS1yb3ctbWFpbjogNTtcbiAgLS1yb3ctYmFja2dyb3VuZDogMTtcbiAgLS1yb3ctc2lkZWJhcjogNCAvIHNwYW4gMztcbiAgLS1yb3ctZm9vdGVyOiAxMDA7XG4gIC0tcm93czogYXV0bztcbiAgLS1jb2x1bW4tbGVmdDogMjtcbiAgLS1jb2x1bW4tbWFpbjogMiAvIHNwYW4gMjtcbiAgLS1jb2x1bW4tcmlnaHQ6IDQ7XG4gIC0tY29sdW1uLWZ1bGw6IDIgLyAtMjtcbiAgLS1jb2x1bW4tZ3V0dGVyOiBtaW5tYXgoMCwgMWZyKTtcbiAgLS1jb2x1bW4tY29udGVudDogbWlubWF4KDAsIGNhbGMoMTY4MHB4IC0gKHZhcigtLXNpZGViYXItd2lkdGgpICogMikgLSB2YXIoLS1ndXR0ZXI0KSkpO1xuICAtLWNvbHVtbi1zaWRlYmFyOiB2YXIoLS1zaWRlYmFyLXdpZHRoKTtcbiAgLS1jb2x1bW5zOiB2YXIoLS1jb2x1bW4tZ3V0dGVyKSB2YXIoLS1jb2x1bW4tc2lkZWJhcikgdmFyKC0tY29sdW1uLWNvbnRlbnQpIHZhcigtLWNvbHVtbi1zaWRlYmFyKSB2YXIoLS1jb2x1bW4tZ3V0dGVyKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgbWluLXdpZHRoOiAzMjBweDtcbiAgZ3JpZC1nYXA6IDAgdmFyKC0tZ3V0dGVyMSk7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogdmFyKC0tcm93cyk7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0tY29sdW1ucyk7XG59XG5ib2R5ID4gKiB7XG4gIGdyaWQtY29sdW1uOiB2YXIoLS1jb2x1bW4tZnVsbCk7XG59XG5cbm5hdmlnYXRpb24tYmFyIHtcbiAgei1pbmRleDogOTk5O1xuICBncmlkLXJvdzogdmFyKC0tcm93LW5hdmlnYXRpb24pO1xufVxubmF2aWdhdGlvbi1iYXI6bm90KC5pbi12aWV3KSB+ICNicmVhZGNydW1icy1iYXIsXG5uYXZpZ2F0aW9uLWJhcjpub3QoLmluLXZpZXcpIH4gI2FuY2hvcnMtYmFyIHtcbiAgLS1hbmNob3JzLWhlaWdodDogNTBweDtcbn1cblxuI2JyZWFkY3J1bWJzLWJhciB7XG4gIHotaW5kZXg6IDI7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctYnJlYWRjcnVtYnMpO1xuICBoZWlnaHQ6IHZhcigtLWJyZWFkY3J1bWItaGVpZ2h0KTtcbn1cbiNicmVhZGNydW1icy1iYXIuc3RpY2t5IHtcbiAgdG9wOiB2YXIoLS1icmVhZGNydW1iLWFuZC1hbmNob3JzLXN0aWNreS11bmRlcnNldCk7XG59XG5cbiNhbmNob3JzLWJhciB7XG4gIHotaW5kZXg6IDI7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctYW5jaG9ycyk7XG4gIGhlaWdodDogdmFyKC0tYW5jaG9ycy1oZWlnaHQpO1xufVxuI2FuY2hvcnMtYmFyLnN0aWNreSB7XG4gIHRvcDogY2FsYyh2YXIoLS1icmVhZGNydW1iLWhlaWdodCkgLSAxcHggKyB2YXIoLS1icmVhZGNydW1iLWFuZC1hbmNob3JzLXN0aWNreS11bmRlcnNldCkgKiAyKTtcbn1cblxuLmhlYWRlciB7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctaGVhZGVyKTtcbiAgZ3JpZC1jb2x1bW46IHZhcigtLWNvbHVtbi1tYWluKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1tYWluLW1heC13aWR0aCk7XG59XG5cbiNmb290ZXIge1xuICBncmlkLXJvdzogdmFyKC0tcm93LWZvb3Rlcik7XG59XG5cbm1haW4ge1xuICBncmlkLXJvdzogdmFyKC0tcm93LW1haW4pO1xuICBncmlkLWNvbHVtbjogdmFyKC0tY29sdW1uLW1haW4pO1xuICBtYXgtd2lkdGg6IHZhcigtLW1haW4tbWF4LXdpZHRoKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbm1haW4gPiAqLFxubWFpbiB+IHNlY3Rpb24sXG5tYWluIH4gYXNpZGUsXG5tYWluIH4gZGl2LFxubWFpbiB+IHNlcnZpY2UtY2VudHJlLWZpbmRlcixcbm1haW4gfiBtYXJrZXRzLXN1bW1hcnkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjZXIxKTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNlcjEpO1xuICBmbGV4LWdyb3c6IDE7XG59XG5tYWluIH4gZGl2OmhhcyhkaXYjdHJ1ZW5kb19jb250YWluZXIpIHtcbiAgcGFkZGluZzogMDtcbn1cbm1haW4gc2VydmljZS1jZW50cmUtZmluZGVyIHBpY3R1cmUge1xuICAtLXRyYW5zbGF0ZVg6IDA7XG4gIHdpZHRoOiBjYWxjKDEwMHZ3ICsgdmFyKC0tc2Nyb2xsYmFyLXdpZHRoLCAwcHgpKTtcbiAgbGVmdDogdmFyKC0tZ3V0dGVyMS0pO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDE2ODFweCkge1xuICBtYWluIHNlcnZpY2UtY2VudHJlLWZpbmRlciBwaWN0dXJlIHtcbiAgICBsZWZ0OiBjYWxjKCgtMSAqIHZhcigtLWNvbXB1dGVkLWd1dHRlcikpIC0gdmFyKC0tZ3V0dGVyMSkpO1xuICB9XG59XG5cbnNpZGUtYmFyIHtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1zaWRlYmFyKTtcbiAgZ3JpZC1jb2x1bW46IHZhcigtLWNvbHVtbi1yaWdodCk7XG4gIHdpZHRoOiB2YXIoLS1zaWRlYmFyLXdpZHRoKTtcbiAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlcjEpO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2VyMSk7XG59XG5zaWRlLWJhciA+IGRpdiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiB2YXIoLS1ndXR0ZXIxKSB2YXIoLS1ndXR0ZXIxKTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgbWlubWF4KHZhcigtLXNpZGViYXItd2lkdGgpLCAxZnIpKTtcbn1cbnNpZGUtYmFyID4gZGl2LnN0aWNreSB7XG4gIHRvcDogY2FsYyh2YXIoLS1icmVhZGNydW1iLWhlaWdodCkgKyB2YXIoLS1hbmNob3JzLWhlaWdodCkgKyB2YXIoLS1ndXR0ZXIxKSk7XG59XG5zaWRlLWJhciA+IGRpdiA+ICoge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5zaWRlLWJhciA+IGRpdiA+ICoucmVkIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI2RmMzAzNTtcbn1cbnNpZGUtYmFyID4gZGl2ID4gKi5ibHVlIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogIzEzMWY2Yjtcbn1cbnNpZGUtYmFyID4gZGl2ID4gKi5ncmV5IHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI2Y0ZjRmNDtcbiAgLS1ib3JkZXItY29sb3VyOiAjZGNkY2RjO1xufVxuc2lkZS1iYXIgPiBkaXYgPiAqLndoaXRlIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI0ZGRkZGRjtcbiAgLS1ib3JkZXItY29sb3VyOiAjZjRmNGY0O1xufVxuXG5hc2lkZSNzdXBwb3J0LWluZm9ybWF0aW9uIC5nbG9zc2FyeS10ZXJtcyxcbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIxXCJdID4gbmF2IHtcbiAgdG9wOiBjYWxjKHZhcigtLWJyZWFkY3J1bWItaGVpZ2h0KSArIHZhcigtLWFuY2hvcnMtaGVpZ2h0KSArIHZhcigtLWd1dHRlcjEpKTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gIGJvZHkge1xuICAgIC0tY29sdW1uczogdmFyKC0tY29sdW1uLWd1dHRlcikgdmFyKC0tY29sdW1uLWNvbnRlbnQpIHZhcigtLWNvbHVtbi1ndXR0ZXIpO1xuICAgIC0tY29sdW1uLW1haW46IHZhcigtLWNvbHVtbi1mdWxsKTtcbiAgICAtLWNvbHVtbi1sZWZ0OiB2YXIoLS1jb2x1bW4tZnVsbCk7XG4gICAgLS1jb2x1bW4tcmlnaHQ6IHZhcigtLWNvbHVtbi1mdWxsKTtcbiAgICAtLXJvdy1zaWRlYmFyOiBhdXRvO1xuICB9XG4gIGJvZHkgPiAqIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICBib2R5IHNpZGUtYmFyIHtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2VyMSk7XG4gIH1cbiAgYm9keSBzaWRlLWJhciA+IGRpdiB7XG4gICAgZ3JpZC1nYXA6IHZhcigtLXNwYWNlcjEpIHZhcigtLWd1dHRlcjEpO1xuICB9XG4gIGJvZHkgc2lkZS1iYXIgPiBkaXYuc3RpY2t5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiBpbml0aWFsO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMzUycHgpIHtcbiAgYm9keSB7XG4gICAgLS1zaWRlYmFyLXdpZHRoOiAxMDAlO1xuICB9XG59XG4udGhlbWVkLnJlZCB7XG4gIGJhY2tncm91bmQ6ICNkZjMwMzU7XG59XG4udGhlbWVkLnJlZC5ibG93b3V0ICsgLnRoZW1lZC5yZWQge1xuICBib3gtc2hhZG93OiAwcHggMXB4IHZhcigtLWJvcmRlci10b3AtY29sb3VyKTtcbn1cbi50aGVtZWQucmVkLmJsb3dvdXQgKyAudGhlbWVkLnJlZC5saWdodCB7XG4gIC0tYm9yZGVyLXRvcC1jb2xvdXI6ICNkY2RjZGM7XG59XG4udGhlbWVkLnJlZC5ibG93b3V0ICsgLnRoZW1lZC5yZWQuZGFyayB7XG4gIC0tYm9yZGVyLXRvcC1jb2xvdXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi50aGVtZWQuYmx1ZSB7XG4gIGJhY2tncm91bmQ6ICMxMzFmNmI7XG59XG4udGhlbWVkLmJsdWUuYmxvd291dCArIC50aGVtZWQuYmx1ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggdmFyKC0tYm9yZGVyLXRvcC1jb2xvdXIpO1xufVxuLnRoZW1lZC5ibHVlLmJsb3dvdXQgKyAudGhlbWVkLmJsdWUubGlnaHQge1xuICAtLWJvcmRlci10b3AtY29sb3VyOiAjZGNkY2RjO1xufVxuLnRoZW1lZC5ibHVlLmJsb3dvdXQgKyAudGhlbWVkLmJsdWUuZGFyayB7XG4gIC0tYm9yZGVyLXRvcC1jb2xvdXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi50aGVtZWQuZ3JleSB7XG4gIGJhY2tncm91bmQ6ICNmNGY0ZjQ7XG59XG4udGhlbWVkLmdyZXkuYmxvd291dCArIC50aGVtZWQuZ3JleSB7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggdmFyKC0tYm9yZGVyLXRvcC1jb2xvdXIpO1xufVxuLnRoZW1lZC5ncmV5LmJsb3dvdXQgKyAudGhlbWVkLmdyZXkubGlnaHQge1xuICAtLWJvcmRlci10b3AtY29sb3VyOiAjZGNkY2RjO1xufVxuLnRoZW1lZC5ncmV5LmJsb3dvdXQgKyAudGhlbWVkLmdyZXkuZGFyayB7XG4gIC0tYm9yZGVyLXRvcC1jb2xvdXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi50aGVtZWQud2hpdGUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xufVxuLnRoZW1lZC53aGl0ZS5ibG93b3V0ICsgLnRoZW1lZC53aGl0ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggdmFyKC0tYm9yZGVyLXRvcC1jb2xvdXIpO1xufVxuLnRoZW1lZC53aGl0ZS5ibG93b3V0ICsgLnRoZW1lZC53aGl0ZS5saWdodCB7XG4gIC0tYm9yZGVyLXRvcC1jb2xvdXI6ICNkY2RjZGM7XG59XG4udGhlbWVkLndoaXRlLmJsb3dvdXQgKyAudGhlbWVkLndoaXRlLmRhcmsge1xuICAtLWJvcmRlci10b3AtY29sb3VyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG59XG4udGhlbWVkOm5vdCguYmxvd291dCkge1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLWd1dHRlcjEpO1xuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2VyMSk7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjEpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xufVxuLnRoZW1lZDpub3QoLmJsb3dvdXQpLndoaXRlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2Y0ZjRmNDtcbn1cbi50aGVtZWQ6bm90KC5ibG93b3V0KS53aGl0ZSArIC5ibG93b3V0LndoaXRlLFxuLnRoZW1lZDpub3QoLmJsb3dvdXQpLndoaXRlICsgOm5vdCgudGhlbWVkKSB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjEtKTtcbn1cblxuLmJsb3dvdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgei1pbmRleDogLTE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgodmFyKC0tdHJhbnNsYXRlWCwgLTUwJSkpO1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDMzNnB4KSB7XG4gIC5ibG93b3V0OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgIGxlZnQ6IGNhbGModmFyKC0tZ2FwKSAqIC0xKTtcbiAgICB3aWR0aDogY2FsYygxMDB2dyAtIHZhcigtLXNjcm9sbGJhci13aWR0aCwgMHB4KSk7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkge1xuICAuYmxvd291dDpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogaW5pdGlhbDtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1ndXR0ZXIxLSk7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSB2YXIoLS1zcm9sbGJhci13aWR0aCwgMHB4KSk7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkge1xuICBib2R5Om5vdChtb2JpbGUpIG1haW4gLmJsb3dvdXQ6YmVmb3JlIHtcbiAgICAtLXRyYW5zbGF0ZVg6IDA7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgKyB2YXIoLS1zY3JvbGxiYXItd2lkdGgsIDBweCkpO1xuICAgIGxlZnQ6IHZhcigtLWd1dHRlcjEtKTtcbiAgICB3aWR0aDogY2FsYygxMDB2dyArIHZhcigtLWd1dHRlcjEpKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSBhbmQgKG1pbi13aWR0aDogMTY4MXB4KSB7XG4gIGJvZHk6bm90KG1vYmlsZSkgbWFpbiAuYmxvd291dDpiZWZvcmUge1xuICAgIGxlZnQ6IGNhbGMoKC0xICogdmFyKC0tY29tcHV0ZWQtZ3V0dGVyKSkgLSB2YXIoLS1ndXR0ZXIxKSk7XG4gIH1cbn1cblxuYm9keS5tb2JpbGUgbWFpbiAuYmxvd291dDpiZWZvcmUge1xuICAtLXRyYW5zbGF0ZVg6IDA7XG4gIHdpZHRoOiBjYWxjKDEwMHZ3ICsgdmFyKC0tc2Nyb2xsYmFyLXdpZHRoLCAwcHgpKTtcbiAgbGVmdDogdmFyKC0tZ3V0dGVyMS0pO1xuICB3aWR0aDogY2FsYygxMDB2dyArIHZhcigtLWd1dHRlcjEpKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxNjgxcHgpIHtcbiAgYm9keS5tb2JpbGUgbWFpbiAuYmxvd291dDpiZWZvcmUge1xuICAgIGxlZnQ6IGNhbGMoKC0xICogdmFyKC0tY29tcHV0ZWQtZ3V0dGVyKSkgLSB2YXIoLS1ndXR0ZXIxKSk7XG4gIH1cbn1cblxuYmFja2dyb3VuZC1pbWFnZSxcbmJhY2tncm91bmQtdmlkZW8ge1xuICB6LWluZGV4OiAtMTtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1iYWNrZ3JvdW5kKTtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG59XG5iYWNrZ3JvdW5kLWltYWdlLmJlaGluZC1oZWFkZXIsXG5iYWNrZ3JvdW5kLXZpZGVvLmJlaGluZC1oZWFkZXIge1xuICAtLXJvdy1iYWNrZ3JvdW5kOiA0O1xufVxuXG5pbWdbZGF0YS1zcmNdLFxudmlkZW9bZGF0YS1zcmNdIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW47XG4gIG9wYWNpdHk6IDA7XG59XG5pbWdbZGF0YS1zcmNdLmxvYWRlZCxcbnZpZGVvW2RhdGEtc3JjXS5sb2FkZWQge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY2VudGVyLWFsbCB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNwYWNlcjIpO1xuICBnYXA6IHZhcigtLXNwYWNlcjEpICFpbXBvcnRhbnQ7XG59XG4uY2VudGVyLWFsbCA+IC50ZXh0IDppcyhoMSwgaDIsIGgzLCBoNCwgaDUsIGg2KSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jZW50ZXItYWxsID4gLnRleHQgOmlzKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpIHNwYW4ge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5KTtcbn1cbi5jZW50ZXItYWxsIGFydGljbGUtbGlzdCB7XG4gIG1heC13aWR0aDogMTEwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgLS1hcnRpY2xlLW1pbi13aWR0aDogNDIwcHggIWltcG9ydGFudDtcbn1cblxubWFpbiB+ICo6bm90KC50aGVtZWQpICsgOm5vdCgudGhlbWVkKTpub3QoI2Zvb3Rlcik6bm90KHNpZGUtYmFyKSB7XG4gIGJveC1zaGFkb3c6IDBweCAtMXB4IHZhcigtLWJvcmRlci10b3AtY29sb3VyLCAjZGNkY2RjKTtcbn1cblxubWFpbiA+ICoudGhlbWVkLmNvbnRlbnQtYmxvY2sge1xuICBib3gtc2hhZG93OiBpbml0aWFsO1xufVxuXG5tYWluID4gKi50aGVtZWQgKyA6bm90KC50aGVtZWQpOm5vdCgjZm9vdGVyKSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGJveC1zaGFkb3c6IGluaXRpYWw7XG59XG5cbm1haW4gfiAqLnRoZW1lZCArIDpub3QoLnRoZW1lZCk6bm90KCNmb290ZXIpLFxuYm9keS5iYWNrZ3JvdW5kLXBvc2l0aW9uZWQtYmVoaW5kLWhlYWRlciBtYWluID4gKjpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IGluaXRpYWw7XG59XG5cbm1haW4gPiAqOmZpcnN0LWNoaWxkOm5vdCgudGhlbWVkKSxcbm1haW4gPiAqOmZpcnN0LWNoaWxkLndoaXRlIHtcbiAgYm94LXNoYWRvdzogMHB4IC0xcHggdmFyKC0tYm9yZGVyLXRvcC1jb2xvdXIsICNkY2RjZGMpO1xufVxuXG4uY29udGVudC1ibG9ja1tzdHlsZSo9YmFja2dyb3VuZC1jb2xvcl0sXG4uY29udGVudC1ibG9ja1tzdHlsZSo9YmFja2dyb3VuZC1jb2xvcl0gKyA6bm90KC50aGVtZWQpOm5vdCgjZm9vdGVyKSB7XG4gIGJveC1zaGFkb3c6IGluaXRpYWwgIWltcG9ydGFudDtcbn1cblxubWFpbiB+ICo6bm90KC50aGVtZWQpICsgLnRoZW1lZDpub3QoLmJsb3dvdXQpLFxubWFpbiA+ICo6bm90KC50aGVtZWQpICsgLnRoZW1lZDpub3QoLmJsb3dvdXQpIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmhlYWRlciB+IG1haW4gPiAudGhlbWVkOm5vdCguYmxvd291dCk6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXIxKTtcbn1cblxubWFpbiA+IC50aGVtZWQ6bm90KC5ibG93b3V0KTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2VyMSk7XG59XG5cbm1haW4gPiAudGhlbWVkOm5vdCguYmxvd291dCkgKyAuYmxvd291dCB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjEpO1xufVxuXG4uaGVhZGVyIH4gbWFpbiA+IC50aGVtZWQ6bm90KC5ibG93b3V0KSB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbm1haW4gfiBkaXY6aGFzKCNDb29raWVib3RXaWRnZXQpIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1zaWRlLWJhcl0pIHtcbiAgLS1tYWluLW1heC13aWR0aDogYXV0bztcbiAgLS1jb2x1bW4tbWFpbjogdmFyKC0tY29sdW1uLWZ1bGwpO1xufVxuXG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKSB7XG4gIC0tcm93LW5hdmlnYXRpb246IDE7XG4gIC0tcm93LWFuY2hvcnM6IDI7XG4gIC0tcm93LWhlYWRlcjogMztcbiAgLS1yb3ctbWFpbjogNDtcbn1cbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pIGJhY2tncm91bmQtaW1hZ2UuZnVsbCxcbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pIGJhY2tncm91bmQtdmlkZW8uZnVsbCB7XG4gIC0tcm93LWJhY2tncm91bmQ6IDEgLyBzcGFuIDQ7XG59XG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKSBiYWNrZ3JvdW5kLWltYWdlLmJlaGluZC1oZWFkZXIsXG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKSBiYWNrZ3JvdW5kLXZpZGVvLmZ1bGwge1xuICAtLXJvdy1iYWNrZ3JvdW5kOiAzO1xufVxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSkgI2FuY2hvcnMtYmFyLnN0aWNreSB7XG4gIHRvcDogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkge1xuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKSB7XG4gICAgLS1yb3ctc2lkZWJhcjogMyAvIHNwYW4gMztcbiAgfVxuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKSBzaWRlLWJhciBkaXYuc3RpY2t5LFxuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKSBhc2lkZSNzdXBwb3J0LWluZm9ybWF0aW9uIC5nbG9zc2FyeS10ZXJtcyxcbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSkgdGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjFcIl0gPiBuYXYge1xuICAgIHRvcDogY2FsYyh2YXIoLS1hbmNob3JzLWhlaWdodCkgKyB2YXIoLS1ndXR0ZXIxKSk7XG4gIH1cbn1cblxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSB7XG4gIC0tcm93LW5hdmlnYXRpb246IDE7XG4gIC0tcm93LWJyZWFkY3J1bWJzOiAyO1xuICAtLXJvdy1oZWFkZXI6IDM7XG4gIC0tcm93LW1haW46IDQ7XG59XG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIGJhY2tncm91bmQtaW1hZ2UuZnVsbCxcbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgYmFja2dyb3VuZC12aWRlby5mdWxsIHtcbiAgLS1yb3ctYmFja2dyb3VuZDogMSAvIHNwYW4gNDtcbn1cbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgYmFja2dyb3VuZC1pbWFnZS5iZWhpbmQtaGVhZGVyLFxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSBiYWNrZ3JvdW5kLXZpZGVvLmJlaGluZC1oZWFkZXIge1xuICAtLXJvdy1iYWNrZ3JvdW5kOiAzO1xufVxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSAjYnJlYWRjcnVtYnMtYmFyLnN0aWNreSB7XG4gIHRvcDogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkge1xuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIHtcbiAgICAtLXJvdy1zaWRlYmFyOiAzIC8gc3BhbiAzO1xuICB9XG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgc2lkZS1iYXIgZGl2LnN0aWNreSxcbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSBhc2lkZSNzdXBwb3J0LWluZm9ybWF0aW9uIC5nbG9zc2FyeS10ZXJtcyxcbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSB0YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMVwiXSA+IG5hdiB7XG4gICAgdG9wOiBjYWxjKHZhcigtLWFuY2hvcnMtaGVpZ2h0KSArIHZhcigtLWd1dHRlcjEpKTtcbiAgfVxufVxuXG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSB7XG4gIC0tcm93LW5hdmlnYXRpb246IDE7XG4gIC0tcm93LWhlYWRlcjogMjtcbiAgLS1yb3ctbWFpbjogMztcbiAgLS1yb3ctYmFja2dyb3VuZDogMTtcbn1cbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pOm5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIGJhY2tncm91bmQtaW1hZ2UuZnVsbCxcbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pOm5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIGJhY2tncm91bmQtdmlkZW8uZnVsbCB7XG4gIC0tcm93LWJhY2tncm91bmQ6IDEgLyBzcGFuIDU7XG59XG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSBiYWNrZ3JvdW5kLWltYWdlLmJlaGluZC1oZWFkZXIsXG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSBiYWNrZ3JvdW5kLXZpZGVvLmJlaGluZC1oZWFkZXIge1xuICAtLXJvdy1iYWNrZ3JvdW5kOiAyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSB7XG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pOm5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIHtcbiAgICAtLXJvdy1zaWRlYmFyOiAyIC8gc3BhbiAzO1xuICB9XG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pOm5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIHNpZGUtYmFyIGRpdi5zdGlja3ksXG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pOm5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIGFzaWRlI3N1cHBvcnQtaW5mb3JtYXRpb24gLmdsb3NzYXJ5LXRlcm1zLFxuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSB0YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMVwiXSA+IG5hdiB7XG4gICAgdG9wOiB2YXIoLS1ndXR0ZXIxKTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgYm9keS5ydWxlLWxhc3QtbWFpbi1zZWN0aW9uLWlzLXRoZW1lZCBzaWRlLWJhciB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cbn1cblxuLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIsIC5sYXlvdXQtY29udGVudC1sZWZ0LXNpZGViYXIge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMSk7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xufVxuLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIgLmxlZnQsXG4ubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciAucmlnaHQsIC5sYXlvdXQtY29udGVudC1sZWZ0LXNpZGViYXIgLmxlZnQsXG4ubGF5b3V0LWNvbnRlbnQtbGVmdC1zaWRlYmFyIC5yaWdodCB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4ubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciAubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciwgLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIgLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciwgLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciAubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciwgLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciAubGF5b3V0LWNvbnRlbnQtbGVmdC1zaWRlYmFyIHtcbiAgLS1jb2x1bW4tY29udGVudDogbWlubWF4KDAsIGNhbGMoMTY4MHB4IC0gKHZhcigtLXNpZGViYXItd2lkdGgpICogMikpKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSB7XG4gIGJvZHkgPiAubGF5b3V0LWNvbnRlbnQtbGVmdC1zaWRlYmFyIC5sZWZ0IHtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgfVxuICBib2R5ID4gLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciAucmlnaHQge1xuICAgIGdyaWQtY29sdW1uOiAyLzQ7XG4gIH1cbiAgYm9keSA+IC5sYXlvdXQtY29udGVudC1yaWdodC1zaWRlYmFyIC5sZWZ0IHtcbiAgICBncmlkLWNvbHVtbjogMS8zO1xuICAgIG1heC13aWR0aDogdmFyKC0tbWFpbi1tYXgtd2lkdGgpO1xuICB9XG4gIGJvZHkgPiAubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciAucmlnaHQge1xuICAgIGdyaWQtY29sdW1uOiAzO1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ3V0dGVyMSk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tZ3V0dGVyMSk7XG4gIH1cbiAgYm9keSA+IC5sYXlvdXQtY29udGVudC1yaWdodC1zaWRlYmFyLCBib2R5ID4gLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1jb2x1bW4tc2lkZWJhcikgdmFyKC0tY29sdW1uLWNvbnRlbnQpIHZhcigtLWNvbHVtbi1zaWRlYmFyKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMjFweCkge1xuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1zaWRlLWJhcl0pIG1haW4gLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciAubGVmdCB7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gIH1cbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9c2lkZS1iYXJdKSBtYWluIC5sYXlvdXQtY29udGVudC1sZWZ0LXNpZGViYXIgLnJpZ2h0IHtcbiAgICBncmlkLWNvbHVtbjogMi80O1xuICB9XG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPXNpZGUtYmFyXSkgbWFpbiAubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciAubGVmdCB7XG4gICAgZ3JpZC1jb2x1bW46IDEvMztcbiAgICBtYXgtd2lkdGg6IHZhcigtLW1haW4tbWF4LXdpZHRoKTtcbiAgfVxuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1zaWRlLWJhcl0pIG1haW4gLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIgLnJpZ2h0IHtcbiAgICBncmlkLWNvbHVtbjogMztcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWd1dHRlcjEpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xuICB9XG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPXNpZGUtYmFyXSkgbWFpbiAubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciwgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9c2lkZS1iYXJdKSBtYWluIC5sYXlvdXQtY29udGVudC1sZWZ0LXNpZGViYXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0tY29sdW1uLXNpZGViYXIpIHZhcigtLWNvbHVtbi1jb250ZW50KSB2YXIoLS1jb2x1bW4tc2lkZWJhcik7XG4gIH1cbn1cblxuLmNvbnRlbnQtYmxvY2sgPiAqIHtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzAxcHgpIHtcbiAgLmNvbnRlbnQtYmxvY2sge1xuICAgIC0tY29sdW1uLWNvdW50OiA2O1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS0xIHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDE7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTIge1xuICAgIGdyaWQtY29sdW1uOiAxL3NwYW4gMjtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtMyB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiAzO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS00IHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDQ7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTUge1xuICAgIGdyaWQtY29sdW1uOiAxL3NwYW4gNTtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtNiB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiA2O1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMi0xIHtcbiAgICBncmlkLWNvbHVtbjogMi9zcGFuIDE7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0yLTIge1xuICAgIGdyaWQtY29sdW1uOiAyL3NwYW4gMjtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTItMyB7XG4gICAgZ3JpZC1jb2x1bW46IDIvc3BhbiAzO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMi00IHtcbiAgICBncmlkLWNvbHVtbjogMi9zcGFuIDQ7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0yLTUge1xuICAgIGdyaWQtY29sdW1uOiAyL3NwYW4gNTtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTMtMSB7XG4gICAgZ3JpZC1jb2x1bW46IDMvc3BhbiAxO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMy0yIHtcbiAgICBncmlkLWNvbHVtbjogMy9zcGFuIDI7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0zLTMge1xuICAgIGdyaWQtY29sdW1uOiAzL3NwYW4gMztcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTMtNCB7XG4gICAgZ3JpZC1jb2x1bW46IDMvc3BhbiA0O1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNC0xIHtcbiAgICBncmlkLWNvbHVtbjogNC9zcGFuIDE7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC00LTIge1xuICAgIGdyaWQtY29sdW1uOiA0L3NwYW4gMjtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTQtMyB7XG4gICAgZ3JpZC1jb2x1bW46IDQvc3BhbiAzO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNS0xIHtcbiAgICBncmlkLWNvbHVtbjogNS9zcGFuIDI7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC01LTIge1xuICAgIGdyaWQtY29sdW1uOiA1L3NwYW4gMjtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTYtMSB7XG4gICAgZ3JpZC1jb2x1bW46IDYvc3BhbiAxO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzAwcHgpIGFuZCAobWF4LXdpZHRoOiAxNDAwcHgpIHtcbiAgLmNvbnRlbnQtYmxvY2sge1xuICAgIC0tY29sdW1uLWNvdW50OiA0O1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS0zIHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDI7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTQge1xuICAgIGdyaWQtY29sdW1uOiAxL3NwYW4gMztcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtNSB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiAzO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNC0zIHtcbiAgICBncmlkLWNvbHVtbjogMy8tMTtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtNiB7XG4gICAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0yLTMsXG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMi00LFxuICAuY29udGVudC1ibG9jayAuY29sLTItNSB7XG4gICAgZ3JpZC1jb2x1bW46IDIvLTE7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0zLTIsXG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMy0zLFxuICAuY29udGVudC1ibG9jayAuY29sLTMtNCB7XG4gICAgZ3JpZC1jb2x1bW46IDMvLTE7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC00LTEsXG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNC0yLFxuICAuY29udGVudC1ibG9jayAuY29sLTUtMSxcbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC02LTEge1xuICAgIGdyaWQtY29sdW1uOiA0Ly0xO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNS0yIHtcbiAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNjk5cHgpIHtcbiAgLmNvbnRlbnQtYmxvY2sge1xuICAgIC0tY29sdW1uLWNvdW50OiAyO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS0xLFxuICAuY29udGVudC1ibG9jayAuY29sLTMtMSxcbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC01LTEge1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMi0xLFxuICAuY29udGVudC1ibG9jayAuY29sLTQtMSxcbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC02LTEge1xuICAgIGdyaWQtY29sdW1uOiAyO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMzIwcHgpIGFuZCAobWF4LXdpZHRoOiA2OTlweCkgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS0xIHtcbiAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtNSArIC5jb2wtNi0xIHtcbiAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNjk5cHgpIGFuZCAobWluLXdpZHRoOiA1MDFweCkge1xuICAuY29udGVudC1ibG9jayAuY29sLTItNSB7XG4gICAgZ3JpZC1jb2x1bW46IDI7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTUge1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICB9XG59XG5cbm5hdmlnYXRpb24tYmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLXNwYWNlcjApICsgdmFyKC0tZ2FwKSkgMDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMDEyNGQ7XG4gIHotaW5kZXg6IDU7XG4gIGdhcDogdmFyKC0tZ3V0dGVyMSk7XG4gIGhlaWdodDogbWluLWNvbnRlbnQ7XG4gIC0tdG9wLWxldmVsLWxpbmstZ3V0dGVyczogdmFyKC0tZ2FwKTtcbiAgLS10b3AtbGV2ZWwtbGluay1jb2xvdXI6IHdoaXRlO1xuICAtLW1hcmtlci1saW5lLXRoaWNrbmVzczogM3B4O1xuICAtLXNwYWNlci1saW5lLXRoaWNrbmVzczogMXB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gIG5hdmlnYXRpb24tYmFyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG59XG5uYXZpZ2F0aW9uLWJhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICB6LWluZGV4OiAtMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCh2YXIoLS10cmFuc2xhdGVYLCAtNTAlKSk7XG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XG59XG5uYXZpZ2F0aW9uLWJhciA+ICo6bm90KC5pbWFnZSkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG5ib2R5W2RhdGEtY29tcG9uZW50cyo9YmFja2dyb3VuZC1pbWFnZV0gbmF2aWdhdGlvbi1iYXIuaGlkZS1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgYmFja2dyb3VuZDogaW5pdGlhbDtcbn1cbmJvZHlbZGF0YS1jb21wb25lbnRzKj1iYWNrZ3JvdW5kLWltYWdlXSBuYXZpZ2F0aW9uLWJhci5oaWRlLWJhY2tncm91bmQ6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmJvZHlbZGF0YS1jb21wb25lbnRzKj1iYWNrZ3JvdW5kLXZpZGVvXSBuYXZpZ2F0aW9uLWJhci5oaWRlLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICBiYWNrZ3JvdW5kOiBpbml0aWFsO1xufVxuYm9keVtkYXRhLWNvbXBvbmVudHMqPWJhY2tncm91bmQtdmlkZW9dIG5hdmlnYXRpb24tYmFyLmhpZGUtYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxubmF2aWdhdGlvbi1iYXIuaW52ZXJ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgYmFja2dyb3VuZDogaW5pdGlhbDtcbiAgLS10b3AtbGV2ZWwtbGluay1jb2xvdXI6ICMxMzFmNmI7XG59XG5uYXZpZ2F0aW9uLWJhci5pbnZlcnQ6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5uYXZpZ2F0aW9uLWJhci5pbnZlcnQgYS5sb2dvIGltZ1tzcmMqPVwidGFnbGluZS5zdmdcIl0ge1xuICBmaWx0ZXI6IGludmVydCgwLjkpO1xufVxubmF2aWdhdGlvbi1iYXIgYS5sb2dvIHtcbiAgbWF4LXdpZHRoOiAzMjBweDtcbiAgbWF4LXdpZHRoOiAyODBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIGFzcGVjdC1yYXRpbzogMzcxLzk3O1xufVxubmF2aWdhdGlvbi1iYXIgYS5sb2dvOmhhcyhzdmcubm8tdGFnbGluZXMpIHtcbiAgYXNwZWN0LXJhdGlvOiBpbml0aWFsO1xufVxuOmhhcyhoZWFkZXIuZGFyaykgbmF2aWdhdGlvbi1iYXI6bm90KC5pbnZlcnQpIGEubG9nbyB7XG4gIC0tbG9nby10ZXh0LWNvbG91cjogd2hpdGU7XG59XG5cbm5hdmlnYXRpb24tYmFyOm5vdCguaW52ZXJ0KSB7XG4gIC0tbG9nby10ZXh0LWNvbG91cjogd2hpdGU7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGdhcDogOHB4O1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSA+IHVsID4gbGkudG9wLWxldmVsLWxpbms6bm90KDpudGgtbGFzdC1jaGlsZCgyKSk6bm90KDpudGgtbGFzdC1jaGlsZCgzKSk6bm90KDpsYXN0LW9mLXR5cGUpOjpiZWZvcmUsXG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCA+IGxpOm5vdCg6bGFzdC1vZi10eXBlKTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IHZhcigtLXNwYWNlci1saW5lLXRoaWNrbmVzcyk7XG4gIGhlaWdodDogNDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiBjYWxjKC0xICogdmFyKC0tc3BhY2VyLWxpbmUtdGhpY2tuZXNzKSAvIDIpO1xuICB0b3A6IDMwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3BhY2VyLWxpbmUtY29sb3VyLCAjZGYzMDM1KTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBwZXJzb25hbGlzZS1leHBlcmllbmNlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiAucGVyc29uYWxpc2VkIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWdhcCk7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCBwZXJzb25hbGlzZS1leHBlcmllbmNlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IC5wZXJzb25hbGlzZWQgcGVyc29uYWxpc2UtZXhwZXJpZW5jZSBhLmJ1dHRvbi5wZXJzb25hbGlzZWQge1xuICAtLWZvbnQtc2l6ZTogMC44ZW07XG4gIC0tcGFkZGluZzogNHB4IDEwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTQwcHgpIHtcbiAgbmF2aWdhdGlvbi1iYXIgbmF2IC5wZXJzb25hbGlzZWQgcGVyc29uYWxpc2UtZXhwZXJpZW5jZSBhLmJ1dHRvbi5wZXJzb25hbGlzZWQge1xuICAgIC0tZm9udC1zaXplOiAxNnB4O1xuICAgIC0tcGFkZGluZzogOHB4IDIwcHg7XG4gICAgLS1pY29uLXNpemU6IDIwcHg7XG4gIH1cbiAgbmF2aWdhdGlvbi1iYXIgbmF2IC5wZXJzb25hbGlzZWQgcGVyc29uYWxpc2UtZXhwZXJpZW5jZSBhLmJ1dHRvbi5wZXJzb25hbGlzZWQgcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBuYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCBwZXJzb25hbGlzZS1leHBlcmllbmNlIGEuYnV0dG9uLnBlcnNvbmFsaXNlZCBzdmcge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgbmF2aWdhdGlvbi1iYXIgbmF2IC5wZXJzb25hbGlzZWQgcGVyc29uYWxpc2UtZXhwZXJpZW5jZSBhLmJ1dHRvbi5wZXJzb25hbGlzZWQge1xuICAgIG1heC1oZWlnaHQ6IDM2cHg7XG4gICAgLS1pY29uLXNpemU6IDEuMWVtO1xuICB9XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCBwZXJzb25hbGlzZS1leHBlcmllbmNlICsgc2Vjb25kYXJ5LW1lbnUge1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDQwcHgpIHtcbiAgbmF2aWdhdGlvbi1iYXIgbmF2IC5wZXJzb25hbGlzZWQge1xuICAgIHRvcDogdW5zZXQ7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbiAgbmF2aWdhdGlvbi1iYXIgbmF2IC5wZXJzb25hbGlzZWQgLmJ1dHRvbixcbiAgbmF2aWdhdGlvbi1iYXIgbmF2IC5wZXJzb25hbGlzZWQgcGVyc29uYWxpc2UtZXhwZXJpZW5jZSBhLmJ1dHRvbi5wZXJzb25hbGlzZWQge1xuICAgIC0tcGFkZGluZzogOHB4O1xuICAgIC0taWNvbi1zaXplOiAwLjhlbTtcbiAgfVxufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSA+IHVsID4gbGkudG9wLWxldmVsLWxpbmsgKyAuc2VhcmNoIHtcbiAgbWFyZ2luLWxlZnQ6IC0ycHg7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgLmxpbmsge1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiAubGluayBzdmcge1xuICBtYXJnaW4tbGVmdDogMC40ZW07XG4gIGhlaWdodDogMC41ZW07XG4gIGZpbGw6ICNGRkZGRkY7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgLmxpbmsgc3ZnOm5vdCguYXJyb3ctcmlnaHQpOm5vdCguYXJyb3ctbGVmdCkge1xuICBoZWlnaHQ6IDAuOGVtO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IC5saW5rLm92ZXJ2aWV3IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgLmxpbmsgc3ZnLFxubmF2aWdhdGlvbi1iYXIgbmF2IC5idXR0b24gc3ZnIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IHtcbiAgLS1mb250LXNpemU6IDAuOTVlbTtcbiAgb3JkZXI6IDI7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLnRvcC1sZXZlbC1saW5rIGEge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLXRvcC1sZXZlbC1saW5rLWNvbG91cik7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgdmFyKC0tdG9wLWxldmVsLWxpbmstZ3V0dGVycyk7XG4gIGhlaWdodDogMTAwJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS50b3AtbGV2ZWwtbGluayBhOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGhlaWdodDogM3B4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tdG9wLWxldmVsLWxpbmstZ3V0dGVycykgKiAyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdG9wLWxldmVsLWxpbmstY29sb3VyLCAjZGYzMDM1KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IHZhcigtLXRvcC1sZXZlbC1saW5rLWd1dHRlcnMpO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLnRvcC1sZXZlbC1saW5rIGEuYWN0aXZlOjphZnRlciB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS50b3AtbGV2ZWwtbGluayBhLmN1cnJlbnQ6OmFmdGVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS50b3AtbGV2ZWwtbGlua1tkYXRhLW5hdj1tZW51XSB7XG4gIG9yZGVyOiAxO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLnRvcC1sZXZlbC1saW5rW2RhdGEtbmF2PXN1Ym1lbnVdIHtcbiAgb3JkZXI6IDI7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkuc2VhcmNoIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS5zZWFyY2ggYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS5zZWFyY2ggc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkuc2VhcmNoIHNwYW4ge1xuICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLnNlYXJjaCwgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLm1lbnUge1xuICBvcmRlcjogMztcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS5jYXJ0IHtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLXRvcC1sZXZlbC1saW5rLWd1dHRlcnMpIC8gMik7XG4gIGxlZnQ6IC0ycHg7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkuY2FydCBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiA4cHggMTBweDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS5jYXJ0IGEgc3BhbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkuY2FydCBzdmcge1xuICBvcmRlcjogMTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5saS5jYXJ0IGFbZGF0YS10b3RhbF06OmFmdGVyIHtcbiAgY29udGVudDogYXR0cihkYXRhLXRvdGFsKTtcbiAgbWluLXdpZHRoOiAyY2g7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgcGFkZGluZzogMCAwLjRlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBoZWlnaHQ6IDJjaDtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGYzMDM1O1xuICBjb2xvcjogd2hpdGU7XG4gIGxpbmUtaGVpZ2h0OiAwLjI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBvcmRlcjogMjtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIGxpLmNhcnQgYVtkYXRhLXRvdGFsXTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzEzMWY2YjtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgfVxuICBsaS5jYXJ0IGFbZGF0YS10b3RhbF06aG92ZXI6OmFmdGVyIHtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgfVxuICBsaS5jYXJ0IGFbZGF0YS10b3RhbF06aG92ZXIgc3ZnIHtcbiAgICBmaWxsOiAjZGYzMDM1O1xuICB9XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBsaS5jYXJ0IGE6bm90KFtkYXRhLXRvdGFsXSk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG4gIH1cbiAgbGkuY2FydCBhOm5vdChbZGF0YS10b3RhbF0pOmhvdmVyOjphZnRlciB7XG4gICAgY29sb3I6ICNGRkZGRkY7XG4gIH1cbiAgbGkuY2FydCBhOm5vdChbZGF0YS10b3RhbF0pOmhvdmVyIHN2ZyB7XG4gICAgZmlsbDogI2RmMzAzNTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTUwcHgpIHtcbiAgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLmNhcnQgc3ZnIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIG5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS5jYXJ0IGEge1xuICAgIHBhZGRpbmc6IDhweCAyMHB4O1xuICB9XG4gIG5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS5jYXJ0IGEgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUubG9hZGluZzo6YmVmb3JlIHtcbiAgLS1zaXplOiAxMnB4O1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYyg1MCUgLSB2YXIoLS1zaXplKSAvIDIpO1xuICBsZWZ0OiBjYWxjKDUwJSAtIHZhcigtLXNpemUpIC8gMik7XG4gIG9wYWNpdHk6IDA7XG4gIHdpZHRoOiB2YXIoLS1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1zaXplKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1sb2FkZXItY29sb3VyLCB3aGl0ZSk7XG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYW5pbWF0aW9uLW5hbWU6IGxvYWRlci1yb3RhdGU7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41cztcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSk7XG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG59XG5Aa2V5ZnJhbWVzIGxvYWRlci1yb3RhdGUge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudS5sb2FkaW5nOmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gIH1cbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSB7XG4gIC0tZm9udC1zaXplOiAwLjhlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgb3JkZXI6IDE7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICB6LWluZGV4OiA2O1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHJpZ2h0OiBjYWxjKHZhcigtLWdhcCkgKiAtMSk7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIGEge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tdG9wLWxldmVsLWxpbmstY29sb3VyKTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1nYXApICogMC41KSB2YXIoLS1nYXApO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIG5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjMDA5NWZmO1xuICB9XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaSAuc3ViLW1lbnUge1xuICBkaXNwbGF5OiBncmlkO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNTAlO1xuICBtaW4td2lkdGg6IGNhbGMoMTAwJSArIGNhbGModmFyKC0tZ2FwKSAqIDIpKTtcbiAgd2lkdGg6IDIwMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIGNhbGModmFyKC0tZ2FwKSAqIC0wLjUpKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgbGkgLnN1Yi1tZW51IGxpOm50aC1vZi10eXBlKDEpIHtcbiAgcGFkZGluZy10b3A6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaSAuc3ViLW1lbnUgbGk6bGFzdC1vZi10eXBlIHtcbiAgcGFkZGluZy1ib3R0b206IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaSAuc3ViLW1lbnUgYSB7XG4gIHBhZGRpbmc6IGNhbGMoY2FsYyh2YXIoLS1nYXApICogMC41KSAvIDIpIHZhcigtLWdhcCk7XG4gIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICBjb2xvcjogd2hpdGU7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaSAuc3ViLW1lbnUgYS5hc3NldCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaSAuc3ViLW1lbnUgYS5hc3NldCBzdmcge1xuICBvcmRlcjogLTE7XG4gIG1hcmdpbjogMCAwLjRlbSAwIDA7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIG1hcmdpbi10b3A6IDAuNGVtO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgbGkgLnN1Yi1tZW51W2RhdGEtbGV2ZWw9XCIxXCJdIGxpOmZpcnN0LW9mLXR5cGUge1xuICBvcmRlcjogMTAwO1xufVxuOnJvb3Q6bm90KFtkYXRhLWJyb3dzZXItZmVhdHVyZSo9dG91Y2hdKSBuYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaSAuc3ViLW1lbnVbZGF0YS1sZXZlbD1cIjFcIl0gbGk6Zmlyc3Qtb2YtdHlwZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIG5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpOmhvdmVyID4gYSB7XG4gICAgY29sb3I6ICMwMDk1ZmY7XG4gIH1cbiAgbmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgbGk6aG92ZXIgLnN1Yi1tZW51IHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgMCk7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgfVxufVxubmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgbGk6bGFzdC1vZi10eXBlIC5zdWItbWVudSB7XG4gIHJpZ2h0OiBjYWxjKDEwMCUgKyB2YXIoLS1nYXApKSAhaW1wb3J0YW50O1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgPiBsaS5oYXMtY2hpbGRyZW46OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgdG9wOiBjYWxjKDEwMCUgKyAxcHgpO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIGNhbGMoLTUwJSArIGNhbGModmFyKC0tZ2FwKSAqIC0wLjUpKSkgcm90YXRlKDQ1ZGVnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCAxMDAlIDAlLCA1MCUgNTAlLCAwIDEwMCUpO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgbmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgPiBsaS5oYXMtY2hpbGRyZW46aG92ZXI6OmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNDAwcHgpIHtcbiAgbmF2aWdhdGlvbi1iYXIge1xuICAgIC0tdG9wLWxldmVsLWxpbmstZ3V0dGVyczogdmFyKC0tZ2FwKTtcbiAgfVxuICBuYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51ID4gdWwgbGkuc2VhcmNoIHNwYW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkge1xuICBuYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IHtcbiAgICAtLWZvbnQtc2l6ZTogMC45ZW07XG4gIH1cbn1cbm5hdmlnYXRpb24tYmFyIGxpLm1lbnUge1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tbGVmdDogdmFyKC0tdG9wLWxldmVsLWxpbmstZ3V0dGVycyk7XG59XG5uYXZpZ2F0aW9uLWJhciBidXR0b24ubWVudSB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG59XG5uYXZpZ2F0aW9uLWJhciBidXR0b24ubWVudSBzdmcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5uYXZpZ2F0aW9uLWJhciBidXR0b24ubWVudSBzdmcgbGluZSB7XG4gIHN0cm9rZS13aWR0aDogM3B4O1xuICBzdHJva2U6IHZhcigtLXRvcC1sZXZlbC1saW5rLWNvbG91cik7XG59XG5uYXZpZ2F0aW9uLWJhciBidXR0b24ubWVudSBzdmcgbGluZTpudGgtY2hpbGQoMSkge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAxNSUgMzAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC44NiwgMCwgMC4wNywgMSk7XG59XG5uYXZpZ2F0aW9uLWJhciBidXR0b24ubWVudSBzdmcgbGluZTpudGgtY2hpbGQoMikge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxubmF2aWdhdGlvbi1iYXIgYnV0dG9uLm1lbnUgc3ZnIGxpbmU6bnRoLWNoaWxkKDMpIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTUlIDcwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuODYsIDAsIDAuMDcsIDEpO1xufVxubmF2aWdhdGlvbi1iYXIgYnV0dG9uLm1lbnUuYWN0aXZlIHN2ZyBsaW5lOm50aC1jaGlsZCgxKSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbn1cbm5hdmlnYXRpb24tYmFyIGJ1dHRvbi5tZW51LmFjdGl2ZSBzdmcgbGluZTpudGgtY2hpbGQoMikge1xuICBvcGFjaXR5OiAwO1xufVxubmF2aWdhdGlvbi1iYXIgYnV0dG9uLm1lbnUuYWN0aXZlIHN2ZyBsaW5lOm50aC1jaGlsZCgzKSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciB7XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcjEpIDA7XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBsaS5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogNDBweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODBweCkgYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICBib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciAuYnV0dG9uLnNlYXJjaCB7XG4gICAgLS1mb250LXNpemU6IDAuOGVtO1xuICAgIC0tcGFkZGluZzogNHB4IDEwcHg7XG4gIH1cbiAgYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgbGkubWVudSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIGJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGxpLm1lbnUgYnV0dG9uLm1lbnUge1xuICAgIGhlaWdodDogMzBweDtcbiAgICB3aWR0aDogMzBweDtcbiAgfVxufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgYS5sb2dvIHtcbiAgbWF4LXdpZHRoOiBpbml0aWFsO1xuICB3aWR0aDogMjAwcHg7XG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rLFxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgPiB1bCBsaS5zZWFyY2ggc3BhbixcbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgPiB1bCBsaVtkYXRhLW5hdj1zdWJtZW51XSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gIGJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgPiB1bCBsaS5zZWFyY2ggc3BhbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5kcm9wZG93bi1tZW51IHtcbiAgLS1taW4taGVpZ2h0OiA0MzBweDtcbiAgLS1tYXgtaGVpZ2h0OiA2MDBweDtcbiAgLS1kcm9wZG93bi1ncm91cC1uYXYtd2lkdGg6IDI3MHB4O1xuICAtLWRyb3Bkb3duLWltYWdlLXdpZHRoOiAzMDBweDtcbiAgLS1kcm9wZG93bi1pbWFnZS1oZWlnaHQ6IDgwcHg7XG4gIC0tZHJvcGRvd24tb3Blbi1vZmZzZXQ6IDZweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSAtIHZhcigtLW1hcmtlci1saW5lLXRoaWNrbmVzcykgLSAxcHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWRyb3Bkb3duLWdyb3VwLW5hdi13aWR0aCkgMWZyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSwgbWFyZ2luLXRvcCAwLjNzIGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUuYWN0aXZlIC50b3AtbGV2ZWwtbGlua3MgLnRvcC1sZXZlbC1saW5rIC5saW5rLmN1cnJlbnQ6OmFmdGVyIHtcbiAgb3BhY2l0eTogMDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUuYWN0aXZlIGRyb3Bkb3duLW1lbnUge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1kcm9wZG93bi1vcGVuLW9mZnNldCk7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbmRyb3Bkb3duLW1lbnU6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYyh2YXIoLS1tYXJrZXItbGluZS10aGlja25lc3MpKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDBweDtcbiAgei1pbmRleDogNTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmMzAzNTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1tZW51IHtcbiAgLS1kcm9wZG93bi1vcGVuLW9mZnNldDogdmFyKC0tZ2FwKTtcbiAgd2lkdGg6IHZhcigtLWRyb3Bkb3duLWdyb3VwLW5hdi13aWR0aCkgIWltcG9ydGFudDtcbiAgcmlnaHQ6IDA7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tbWVudSB7XG4gICAgLS1kcm9wZG93bi1ncm91cC1uYXYtd2lkdGg6IGNhbGMoMTAwdncgLSB2YXIoLS1ndXR0ZXIzKSkgIWltcG9ydGFudDtcbiAgfVxufVxuXG5kcm9wZG93bi1ncm91cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZ3JpZC1jb2x1bW46IDE7XG4gIGdyaWQtcm93OiAxO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBvcGFjaXR5OiAwO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpLCB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSk7XG59XG5kcm9wZG93bi1ncm91cFtkYXRhLWxldmVsPVwiMFwiXSB7XG4gIHotaW5kZXg6IDU7XG59XG5kcm9wZG93bi1ncm91cFtkYXRhLWxldmVsPVwiMVwiXSB7XG4gIHotaW5kZXg6IDQ7XG59XG5kcm9wZG93bi1ncm91cFtkYXRhLWxldmVsPVwiMlwiXSB7XG4gIHotaW5kZXg6IDM7XG59XG5kcm9wZG93bi1ncm91cFtkYXRhLWxldmVsPVwiM1wiXSB7XG4gIHotaW5kZXg6IDI7XG59XG5kcm9wZG93bi1ncm91cFtkYXRhLWxldmVsPVwiNFwiXSB7XG4gIHotaW5kZXg6IDE7XG59XG5kcm9wZG93bi1ncm91cDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMC45ZW07XG4gIGhlaWdodDogMC45ZW07XG59XG5kcm9wZG93bi1ncm91cDo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uIHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmRyb3Bkb3duLWdyb3VwOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5Njk2OTU7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlcjogNHB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMCk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG5kcm9wZG93bi1ncm91cDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbmRyb3Bkb3duLWdyb3VwOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbmRyb3Bkb3duLWdyb3VwOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG5kcm9wZG93bi1ncm91cCAubGluayB7XG4gIC0tZm9udC1zaXplOiAwLjllbTtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBsaW5lLWhlaWdodDogMS40O1xuICBwYWRkaW5nOiA0cHggY2FsYyh2YXIoLS1nYXApICogMik7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuZHJvcGRvd24tZ3JvdXAgLmxpbmsuY3VycmVudCB7XG4gIGNvbG9yOiAjZGYzMDM1O1xufVxuZHJvcGRvd24tZ3JvdXAgLmxpbmsuYWN0aXZlIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTMxZjZiO1xuICB6LWluZGV4OiAxO1xufVxuOnJvb3Q6bm90KFtkYXRhLWJyb3dzZXItZmVhdHVyZSo9dG91Y2hdKSBkcm9wZG93bi1ncm91cCAubGluay5hY3RpdmU6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICBsZWZ0OiBjYWxjKDEwMCUgLSA1MHB4KTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiAxMDBweDtcbn1cblxuOm5vdChbZGF0YS1icm93c2VyLWZlYXR1cmUqPXRvdWNoXSkgZHJvcGRvd24tZ3JvdXAgLmxhc3QgLmxpbmsuYWN0aXZlOjphZnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSkgcm90YXRlKDBkZWcpIHNrZXcoLTQ1ZGVnLCAwKTtcbn1cblxuZHJvcGRvd24tZ3JvdXAgLmxpbmsuaGFzLWNoaWxkcmVuIHN2ZyB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgZHJvcGRvd24tZ3JvdXAgLmxpbms6aG92ZXIge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTMxZjZiO1xuICB9XG59XG5kcm9wZG93bi1ncm91cCB1bCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG59XG5kcm9wZG93bi1ncm91cCB1bCBsaS5maXJzdCB7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1nYXApO1xufVxuZHJvcGRvd24tZ3JvdXAgdWwgbGkubGFzdCB7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1nYXApO1xufVxuZHJvcGRvd24tZ3JvdXAgdWwgbGkub3ZlcnZpZXcge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1nYXApO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIGRyb3Bkb3duLWdyb3VwIHVsIGxpLm92ZXJ2aWV3IH4gLmZpcnN0IHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgfVxufVxuZHJvcGRvd24tZ3JvdXAgdWwgbGkub3ZlcnZpZXcgLmxpbmsge1xuICBjb2xvcjogIzEzMWY2YjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBkcm9wZG93bi1ncm91cCB1bCBsaS5vdmVydmlldyAubGluazpob3ZlciB7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG59XG5kcm9wZG93bi1ncm91cCB1bCBsaS5vdmVydmlldyAubGluay5hY3RpdmUge1xuICBjb2xvcjogd2hpdGU7XG59XG46cm9vdDpub3QoW2RhdGEtYnJvd3Nlci1mZWF0dXJlKj10b3VjaF0pIGRyb3Bkb3duLWdyb3VwIHVsIGxpLm92ZXJ2aWV3IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuZHJvcGRvd24tZ3JvdXAgdWwgbGkuYmFjayB7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1nYXApO1xufVxuOnJvb3Q6bm90KFtkYXRhLWJyb3dzZXItZmVhdHVyZSo9dG91Y2hdKSBkcm9wZG93bi1ncm91cCB1bCBsaS5iYWNrIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuZHJvcGRvd24tZ3JvdXAgdWwgbGkuYmFjayAubGluayBzdmcge1xuICBtYXJnaW4tcmlnaHQ6IDAuNGVtO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbmRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCIxXCJdIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbn1cbmRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCIxXCJdIGxpLmJhY2sge1xuICBkaXNwbGF5OiBub25lO1xufVxuZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjJcIl0ge1xuICB3aWR0aDogOTUlO1xuICBsZWZ0OiAxMDAlO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbn1cbmRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCIzXCJdIHtcbiAgd2lkdGg6IGNhbGMoOTUlICsgMnB4KTtcbiAgb3BhY2l0eTogMDtcbiAgbGVmdDogY2FsYygxOTUlIC0gMXB4KTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4zcywgMC4zcztcbn1cbmRyb3Bkb3duLWdyb3VwLmFsbG93LXNjcm9sbCB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5kcm9wZG93bi1ncm91cC5hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuZHJvcGRvd24tZ3JvdXAuYWN0aXZlW2RhdGEtbGV2ZWw9XCIyXCJdLCBkcm9wZG93bi1ncm91cC5hY3RpdmVbZGF0YS1sZXZlbD1cIjNcIl0ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xufVxuZHJvcGRvd24tZ3JvdXA6bm90KC5hY3RpdmUpW2RhdGEtbGV2ZWw9XCIxXCJdLCBkcm9wZG93bi1ncm91cDpub3QoLmFjdGl2ZSlbZGF0YS1sZXZlbD1cIjJcIl0sIGRyb3Bkb3duLWdyb3VwOm5vdCguYWN0aXZlKVtkYXRhLWxldmVsPVwiM1wiXSB7XG4gIGxlZnQ6IDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xufVxuYm9keTpub3QoLm1vYmlsZSkgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tZ3JvdXA6bm90KFtkYXRhLWxldmVsPVwiMVwiXSkgLmxpbmsge1xuICBwYWRkaW5nLXRvcDogNnB4O1xuICBwYWRkaW5nLWJvdHRvbTogNnB4O1xufVxuXG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1ncm91cCB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCkgdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KSAwIDAgIWltcG9ydGFudDtcbiAgbGVmdDogMCAhaW1wb3J0YW50O1xuICB3aWR0aDogaW5oZXJpdCAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzLCAwLjVzO1xuICB0cmFuc2Zvcm06IGluaXRpYWwgIWltcG9ydGFudDtcbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCIwXCJdIHtcbiAgei1pbmRleDogMTtcbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCIxXCJdIHtcbiAgei1pbmRleDogMjtcbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCIyXCJdIHtcbiAgei1pbmRleDogMztcbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCIzXCJdIHtcbiAgei1pbmRleDogNDtcbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCI0XCJdIHtcbiAgei1pbmRleDogNTtcbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGRyb3Bkb3duLWdyb3VwIC5saW5rIHtcbiAgLS1mb250LXNpemU6IDFlbTtcbiAgcGFkZGluZy10b3A6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tZ3JvdXAgdWwgbGkub3ZlcnZpZXcsIGJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGRyb3Bkb3duLWdyb3VwIHVsIGxpLmJhY2sge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG5kcm9wZG93bi1pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB2YXIoLS1wb3NpdGlvbiwgY2VudGVyIDMzJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBncmlkLWNvbHVtbjogMjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBkaXNwbGF5OiBncmlkO1xuICBqdXN0aWZ5LWl0ZW1zOiBmbGV4LWVuZDtcbn1cbmRyb3Bkb3duLWltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IHZhcigtLWltYWdlLXBvc2l0aW9uLCBjZW50ZXIgMzMuMzMlKTtcbiAgd2lkdGg6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcbiAgaGVpZ2h0OiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpO1xuICBtYXgtd2lkdGg6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcbiAgbWF4LWhlaWdodDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuZHJvcGRvd24taW1hZ2UgLmltYWdlIHtcbiAgd2lkdGg6IGNsYW1wKHZhcigtLWRyb3Bkb3duLWltYWdlLXdpZHRoKSAvIDIsIDMwdncsIHZhcigtLWRyb3Bkb3duLWltYWdlLXdpZHRoKSk7XG4gIGdyaWQtcm93OiAxO1xuICBncmlkLWNvbHVtbjogMTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTtcbiAgb3BhY2l0eTogMDtcbn1cbmRyb3Bkb3duLWltYWdlIC5pbWFnZS5hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuZHJvcGRvd24taW1hZ2UgLmltYWdlLmFjdGl2ZSBpbWcge1xuICBvcGFjaXR5OiAxO1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24taW1hZ2Uge1xuICBncmlkLWNvbHVtbjogMTtcbiAgei1pbmRleDogMTA7XG4gIHdpZHRoOiBpbmhlcml0O1xuICBoZWlnaHQ6IHZhcigtLWRyb3Bkb3duLWltYWdlLWhlaWdodCk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbml0aWFsO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24taW1hZ2UgLmltYWdlIHtcbiAgd2lkdGg6IGluaGVyaXQ7XG4gIGhlaWdodDogaW5oZXJpdDtcbn1cblxuLmhlYWRlciB7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjZXIxKTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNlcjEpO1xufVxuLmhlYWRlciA+IGgxIHN1cCB7XG4gIGZvbnQtc2l6ZTogMC42ZW07XG59XG4uaGVhZGVyID4gaDEgc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuMzc1ZW07XG4gIGNvbG9yOiAjOTY5Njk1O1xufVxuLmhlYWRlciA+IGgxICsgKiwgLmhlYWRlciA+IGgyICsgKiB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWd1dHRlcjEpO1xufVxuLmhlYWRlciA+IGgxICsgaDIge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1ndXR0ZXIwKTtcbn1cbi5oZWFkZXIgPiBoMiB7XG4gIGNvbG9yOiB2YXIoLS1zdWItaGVhZGluZy1jb2xvdXIpO1xuICBmb250LWZhbWlseTogbGF0bywgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuLmhlYWRlciA+IGgyIGEge1xuICAtLWZvbnQtY29sb3VyOiB2YXIoLS1zdWItaGVhZGluZy1jb2xvdXIpO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIC5oZWFkZXIgPiBoMiBhOmhvdmVyIHtcbiAgICAtLWZvbnQtY29sb3VyOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgfVxufVxuLmhlYWRlciB0aW1lIHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgbWFyZ2luOiB2YXIoLS1ndXR0ZXIxKSAwO1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS10YWctY29sb3VyLCAjZGYzMDM1KTtcbn1cbi5oZWFkZXIgYnV0dG9uLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ2FwKSAqIC0xKTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMCk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmhlYWRlciBidXR0b24tY29udGFpbmVyIC5idXR0b24gc3BhbiB7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgfVxufVxuLmhlYWRlciBub3RpY2UtbWVzc2FnZXMge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXIwKTtcbn1cbi5oZWFkZXIuZGFyayB7XG4gIC0taGVhZGluZy1jb2xvdXI6d2hpdGU7XG4gIC0tc3ViLWhlYWRpbmctY29sb3VyOndoaXRlO1xufVxuLmhlYWRlci5kYXJrIC5idXR0b24uYnJvY2h1cmUge1xuICAtLWZvbnQtY29sb3VyOndoaXRlO1xufVxuLmhlYWRlci5kYXJrIC5idXR0b24uYnJvY2h1cmUgc3ZnIHtcbiAgZmlsbDogd2hpdGU7XG59XG4uaGVhZGVyLm5vLWRldmlkZXItbGluZSB+IG1haW4ge1xuICAtLWJvcmRlci10b3AtY29sb3VyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG59XG4uaGVhZGVyLm5vLWRldmlkZXItbGluZSB+IG1haW4gPiAuY29udGVudC1ibG9jazpmaXJzdC1vZi10eXBlIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIGJveC1zaGFkb3c6IGluaXRpYWw7XG59XG5cbmZvb3RlciNmb290ZXIge1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2VyMSk7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjZXIxKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIGdyaWQtZ2FwOiB2YXIoLS1ndXR0ZXIxKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMzAwcHg7XG59XG5mb290ZXIjZm9vdGVyIGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBmb290ZXIjZm9vdGVyIGE6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktbGlnaHQsICNlNDRmNTMpO1xuICB9XG59XG5mb290ZXIjZm9vdGVyIGEuY3VycmVudCB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktbGlnaHQsICNlNDRmNTMpO1xufVxuZm9vdGVyI2Zvb3RlciBhLmN1cnJlbnQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbmZvb3RlciNmb290ZXIgLmJhY2stdG8tdG9wIHtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBtYXJnaW46IGNhbGModmFyKC0tZ2FwKSAqIC0xKSBhdXRvIHZhcigtLWdhcCkgYXV0bztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODFweCkge1xuICBmb290ZXIjZm9vdGVyIC5iYWNrLXRvLXRvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuZm9vdGVyI2Zvb3RlciAudGFnLWxpbmUtc2lnbi1vZmYge1xuICBncmlkLWNvbHVtbjogMS8tMTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlcjApO1xuICBmb250LXNpemU6IDJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbkBzdXBwb3J0cyAod2lkdGg6IGNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICBmb290ZXIjZm9vdGVyIC50YWctbGluZS1zaWduLW9mZiB0YWctbGluZSBzcGFuIHtcbiAgICBmb250LXNpemU6IGNsYW1wKDEycHgsIDEuNXZ3LCAwLjRlbSk7XG4gIH1cbn1cbkBzdXBwb3J0cyBub3QgKHdpZHRoOiBjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDk1MHB4KSB7XG4gICAgZm9vdGVyI2Zvb3RlciAudGFnLWxpbmUtc2lnbi1vZmYgdGFnLWxpbmUgc3BhbiB7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxuICB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxNjAxcHgpIHtcbiAgICBmb290ZXIjZm9vdGVyIC50YWctbGluZS1zaWduLW9mZiB0YWctbGluZSBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMC40ZW07XG4gICAgfVxuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgZm9vdGVyI2Zvb3RlciAudGFnLWxpbmUtc2lnbi1vZmYgdGFnLWxpbmUge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICBmb290ZXIjZm9vdGVyIC50YWctbGluZS1zaWduLW9mZiB0YWctbGluZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gIH1cbiAgZm9vdGVyI2Zvb3RlciAudGFnLWxpbmUtc2lnbi1vZmYgdGFnLWxpbmUgc3BhbiB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG5mb290ZXIjZm9vdGVyID4gbmF2IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZmxleC1ncm93OiAxO1xuICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMSk7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbn1cbmZvb3RlciNmb290ZXIgPiBuYXYgdWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbmZvb3RlciNmb290ZXIgPiBuYXYgdWwgbGkgKyBsaSB7XG4gIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5mb290ZXIjZm9vdGVyID4gbmF2IHVsOmxhc3Qtb2YtdHlwZSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzMzcHgsIDFmcikpO1xuICBncmlkLWdhcDogMCB2YXIoLS1nYXApO1xufVxuZm9vdGVyI2Zvb3RlciA+IG5hdiB1bDpsYXN0LW9mLXR5cGUgbGk6Zmlyc3Qtb2YtdHlwZSB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xufVxuZm9vdGVyI2Zvb3RlciAuaGVhZGluZyB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcCk7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxLjA2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cbmZvb3RlciNmb290ZXIgLmhlYWRpbmc6OmJlZm9yZSwgZm9vdGVyI2Zvb3RlciAuaGVhZGluZzo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuZm9vdGVyI2Zvb3RlciAuaGVhZGluZyBhIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG59XG5mb290ZXIjZm9vdGVyIGNvbXBhbnktZGV0YWlscyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bm07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIGdyaWQtZ2FwOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpIHZhcigtLWdhcCk7XG59XG5mb290ZXIjZm9vdGVyIGNvbXBhbnktZGV0YWlscyBzbWFsbCxcbmZvb3RlciNmb290ZXIgY29tcGFueS1kZXRhaWxzIC5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMC42MjVlbTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbmZvb3RlciNmb290ZXIgY29tcGFueS1kZXRhaWxzIHNtYWxsIGJyLFxuZm9vdGVyI2Zvb3RlciBjb21wYW55LWRldGFpbHMgLnNtYWxsIGJyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmZvb3RlciNmb290ZXIgLmJhc2Uge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXIxKTtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuZm9vdGVyI2Zvb3RlciAuYmFzZSBhLmxvZ28ge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAyNDBweDtcbiAgcG9zaXRpb246IGluaXRpYWw7XG59XG5mb290ZXIjZm9vdGVyIC5iYXNlIGEubG9nbyBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkge1xuICBmb290ZXIjZm9vdGVyIC5iYXNlIGEubG9nbzo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZm9vdGVyLWJyLWNvbG91ciwgI2RmMzAzNSk7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogLTEuNXB4O1xuICAgIGxlZnQ6IDA7XG4gIH1cbn1cbmZvb3RlciNmb290ZXIgLmJhc2UgYS55ZWxsbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyB2YXIoLS1nYXApKTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICByaWdodDogMDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5mb290ZXIjZm9vdGVyIC5iYXNlIGEueWVsbG8gc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBmb290ZXIjZm9vdGVyIC5iYXNlIGEueWVsbG86aG92ZXIge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuICBmb290ZXIjZm9vdGVyIC5iYXNlIGEueWVsbG86aG92ZXIgc3BhbiB7XG4gICAgY29sb3I6ICNGRkNCMDg7XG4gIH1cbn1cbmZvb3RlciNmb290ZXIgLmJhc2UgYWRtaW4tbGlua3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgdmFyKC0tZ2FwKSk7XG4gIGxlZnQ6IDA7XG59XG5mb290ZXIjZm9vdGVyIC5iYXNlIGFkbWluLWxpbmtzIGEge1xuICBmb250LXNpemU6IDEycHg7XG4gIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbmZvb3RlciNmb290ZXIgLmJhc2U6aGFzKC5jZXAtbG9nbykge1xuICAtLWxvZ28tc3BhY2VyOiAyMDBweDtcbn1cbmZvb3RlciNmb290ZXIgLmJhc2U6aGFzKC5jZXAtbG9nbykgLmNlcC1sb2dvIHtcbiAgZmlsdGVyOiBncmF5c2NhbGUoMSkgaW52ZXJ0KDEpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSB7XG4gIGZvb3RlciNmb290ZXIgLmJhc2U6aGFzKC5jZXAtbG9nbykge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tbG9nby1zcGFjZXIpO1xuICB9XG4gIGZvb3RlciNmb290ZXIgLmJhc2U6aGFzKC5jZXAtbG9nbykgLmNlcC1sb2dvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgKyBjYWxjKHZhcigtLWdhcCkgKiAyKSk7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiBjYWxjKHZhcigtLWxvZ28tc3BhY2VyKSAqIC0xKTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gIGZvb3RlciNmb290ZXIgLmJhc2U6aGFzKC5jZXAtbG9nbykgLmNlcC1sb2dvIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ndXR0ZXIyKTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE0MDBweCkge1xuICBmb290ZXIjZm9vdGVyID4gbmF2IHVsOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBmb290ZXIjZm9vdGVyIGNvbXBhbnktZGV0YWlscyBzbWFsbCBiciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gIGZvb3RlciNmb290ZXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIGZvb3RlciNmb290ZXIgPiAqIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICBmb290ZXIjZm9vdGVyID4gbmF2IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIGZvb3RlciNmb290ZXIgPiBuYXYgdWw6bGFzdC1vZi10eXBlIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHVuc2V0O1xuICB9XG4gIGZvb3RlciNmb290ZXIgLmJhc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICBmb290ZXIjZm9vdGVyIC5iYXNlIGEubG9nbyB7XG4gICAgb3JkZXI6IDE7XG4gICAgd2lkdGg6IDE2MHB4O1xuICB9XG4gIGZvb3RlciNmb290ZXIgLmJhc2UgYS5sb2dvIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIGZvb3RlciNmb290ZXIgLmJhc2Ugc29jaWFsLW1lZGlhIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXIwLSk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2VyMCk7XG4gIH1cbiAgZm9vdGVyI2Zvb3RlciAuYmFzZSBhZG1pbi1saW5rcyB7XG4gICAgb3JkZXI6IDM7XG4gICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwKTtcbiAgfVxufVxuXG4uY2wtY29uc2VudC1zZXR0aW5ncyB7XG4gIGxlZnQ6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgd2lkdGg6IDQycHg7XG4gIGhlaWdodDogNDJweDtcbiAgYm94LXNoYWRvdzogdW5zZXQgIWltcG9ydGFudDtcbiAgYm90dG9tOiBjYWxjKHZhcigtLWd1dHRlcjMpICogMi43NSkgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkge1xuICAuY2wtY29uc2VudC1zZXR0aW5ncyB7XG4gICAgYm90dG9tOiB2YXIoLS1ndXR0ZXI1KSAhaW1wb3J0YW50O1xuICB9XG59XG5cbmJvZHkgPiBiYWNrZ3JvdW5kLWltYWdlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB2YXIoLS1wb3NpdGlvbiwgY2VudGVyIDMzJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLS1iYWNrZ3JvdW5kLXRoZW1lLW9uZTogIzEzMWY2YjtcbiAgLS1iYWNrZ3JvdW5kLXRoZW1lLXR3bzogIzI5MmI2ODtcbn1cbmJvZHkgPiBiYWNrZ3JvdW5kLWltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IHZhcigtLWltYWdlLXBvc2l0aW9uLCBjZW50ZXIgMzMuMzMlKTtcbiAgd2lkdGg6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcbiAgaGVpZ2h0OiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpO1xuICBtYXgtd2lkdGg6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcbiAgbWF4LWhlaWdodDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuYm9keSA+IGJhY2tncm91bmQtaW1hZ2U6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDAuNztcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdmFyKC0tYmFja2dyb3VuZC10aGVtZS1vbmUpLCB2YXIoLS1iYWNrZ3JvdW5kLXRoZW1lLXR3bykpO1xufVxuYm9keSA+IGJhY2tncm91bmQtaW1hZ2Uubm9uZTo6YWZ0ZXIge1xuICBjb250ZW50OiBpbml0aWFsO1xufVxuYm9keSA+IGJhY2tncm91bmQtaW1hZ2UucmVkIHtcbiAgLS1iYWNrZ3JvdW5kLXRoZW1lLW9uZTogI2RmMzAzNTtcbiAgLS1iYWNrZ3JvdW5kLXRoZW1lLXR3bzogI2RmMzAzNTtcbn1cbmJvZHkgPiBiYWNrZ3JvdW5kLWltYWdlLmJsYWNrIHtcbiAgLS1iYWNrZ3JvdW5kLXRoZW1lLW9uZTogIzFlMWMxYztcbiAgLS1iYWNrZ3JvdW5kLXRoZW1lLXR3bzogIzFlMWMxYztcbn1cbmJvZHkgPiBiYWNrZ3JvdW5kLWltYWdlLnRpbGUge1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGF1dG87XG59XG5ib2R5ID4gYmFja2dyb3VuZC1pbWFnZS50aWxlIGltZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5ib2R5ID4gYmFja2dyb3VuZC1pbWFnZTpub3QoLnRpbGUpIHtcbiAgbWF4LWhlaWdodDogMTAwdmg7XG59XG5ib2R5ID4gYmFja2dyb3VuZC1pbWFnZS5iZWhpbmQtaGVhZGVyOjphZnRlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIGJsYWNrIDIwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG59XG5cbmJvZHkubW9iaWxlID4gYmFja2dyb3VuZC1pbWFnZSwgYm9keS5tb2JpbGUgPiBiYWNrZ3JvdW5kLXZpZGVvIHtcbiAgbWF4LWhlaWdodDogaW5pdGlhbDtcbn1cblxuYm9keSA+IGJhY2tncm91bmQtdmlkZW8ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHZhcigtLXBvc2l0aW9uLCBjZW50ZXIgMzMlKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuYm9keSA+IGJhY2tncm91bmQtdmlkZW8gaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG9iamVjdC1wb3NpdGlvbjogdmFyKC0taW1hZ2UtcG9zaXRpb24sIGNlbnRlciAzMy4zMyUpO1xuICB3aWR0aDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2Utd2lkdGgtc2l6ZSwgMTAwJSkpO1xuICBoZWlnaHQ6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7XG4gIG1heC13aWR0aDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2Utd2lkdGgtc2l6ZSwgMTAwJSkpO1xuICBtYXgtaGVpZ2h0OiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG5ib2R5ID4gYmFja2dyb3VuZC12aWRlbyB2aWRlbyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IHZhcigtLWltYWdlLXBvc2l0aW9uLCBjZW50ZXIgMzMuMzMlKTtcbiAgd2lkdGg6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcbiAgaGVpZ2h0OiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpO1xuICBtYXgtd2lkdGg6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcbiAgbWF4LWhlaWdodDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuYm9keSA+IGJhY2tncm91bmQtdmlkZW86OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLWJhY2tncm91bmQtdGhlbWUtb25lLCB0cmFuc3BhcmVudCksIHZhcigtLWJhY2tncm91bmQtdGhlbWUtdHdvLCBibGFjaykpO1xufVxuXG4jYnJlYWRjcnVtYnMtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGhlaWdodCB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgdG9wIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuI2JyZWFkY3J1bWJzLWJhciB1bCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogY2FsYyh2YXIoLS1nYXApICogLTEpO1xuICB3aWR0aDogMTAwJTtcbn1cbiNicmVhZGNydW1icy1iYXIgdWwgbGkge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4jYnJlYWRjcnVtYnMtYmFyIHVsIGxpICsgbGkge1xuICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1nYXApICogLTEpO1xufVxuI2JyZWFkY3J1bWJzLWJhciAubGluayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogMTAwJTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMS4xMjVlbTtcbiAgcGFkZGluZzogdmFyKC0tZ2FwKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogd2hpdGU7XG59XG4jYnJlYWRjcnVtYnMtYmFyIC5saW5rIHN2ZyB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIHdpZHRoOiAwLjdlbTtcbiAgaGVpZ2h0OiAwLjdlbTtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWdhcCk7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAjYnJlYWRjcnVtYnMtYmFyIC5saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbiAgfVxufVxuI2JyZWFkY3J1bWJzLWJhciAubGluay5jdXJyZW50IHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG59XG4jYnJlYWRjcnVtYnMtYmFyIC5saW5rLmN1cnJlbnQ6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuYm9keS5tb2JpbGUgPiAjYnJlYWRjcnVtYnMtYmFyIHtcbiAgbWF4LWhlaWdodDogaW5pdGlhbDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI2FuY2hvcnMtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCB0b3AgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1heC13aWR0aDogMTAwdnc7XG59XG4jYW5jaG9ycy1iYXIgLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogMTAwJTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjgwcHgpIHtcbiAgOnJvb3Q6bm90KFtkYXRhLWJyb3dzZXItZmVhdHVyZSo9dG91Y2hdKSAjYW5jaG9ycy1iYXIge1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ3V0dGVyMi0pO1xuICB9XG4gIDpyb290Om5vdChbZGF0YS1icm93c2VyLWZlYXR1cmUqPXRvdWNoXSkgI2FuY2hvcnMtYmFyIC5jb250YWluZXIge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgfVxufVxuXG46cm9vdFtkYXRhLWJyb3dzZXItZmVhdHVyZSo9dG91Y2hdICNhbmNob3JzLWJhciB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1ndXR0ZXIyKSArIGNhbGModmFyKC0tZ2FwKSAqIDAuNSkpO1xuICBtYXJnaW4tbGVmdDogdmFyKC0tZ3V0dGVyMS0pO1xufVxuOnJvb3RbZGF0YS1icm93c2VyLWZlYXR1cmUqPXRvdWNoXSAjYW5jaG9ycy1iYXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IGluaXRpYWw7XG59XG46cm9vdFtkYXRhLWJyb3dzZXItZmVhdHVyZSo9dG91Y2hdICNhbmNob3JzLWJhciAuY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgcGFkZGluZy1yaWdodDogdmFyKC0tZ3V0dGVyMSk7XG59XG5cbiNhbmNob3JzLWJhcjo6YmVmb3JlIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG59XG4jYW5jaG9ycy1iYXIgYSB7XG4gIGdyaWQtcm93OiAxO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbiAgY29sb3I6ICMxMzFmNmI7XG59XG4jYW5jaG9ycy1iYXIgYSArIGEge1xuICBtYXJnaW4tbGVmdDogdmFyKC0tZ3V0dGVyMSk7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAjYW5jaG9ycy1iYXIgYTpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG4gIH1cbn1cbiNhbmNob3JzLWJhciBhOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zZm9ybTogc2NhbGVZKDApO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkgMC4ycztcbn1cbiNhbmNob3JzLWJhciBhLmN1cnJlbnQge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbn1cbiNhbmNob3JzLWJhciBhLmN1cnJlbnQ6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoMSk7XG59XG5cbnNpZGUtYmFyID4gZGl2ID4gKiB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICBvcmRlcjogMztcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpKTtcbn1cbnNpZGUtYmFyID4gZGl2ID4gKjpub3QoLndoaXRlKSB7XG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICAtLWhlYWRpbmctY29sb3VyOiB3aGl0ZTtcbn1cbnNpZGUtYmFyID4gZGl2IHNlcnZpY2UtY2VudHJlLWZpbmRlciB7XG4gIG9yZGVyOiAxO1xufVxuc2lkZS1iYXIgPiBkaXYgc2VydmljZS1jZW50cmUtZmluZGVyIH4gI2dyYWRlcy1zaWRlYmFyLWxpc3Qge1xuICBvcmRlcjogMjtcbn1cbnNpZGUtYmFyID4gZGl2IC5oZWFkaW5nIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ3V0dGVyMCk7XG4gIGZvbnQtc2l6ZTogMS41NjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5zaWRlLWJhciA+IGRpdiA+IGRpdi5zaWRlYmFyLWxvZ29zIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAycmVtO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbnNpZGUtYmFyID4gZGl2ID4gZGl2LnNpZGViYXItbG9nb3MgaW1nIHtcbiAgbWF4LXdpZHRoOiA1MCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5zaWRlLWJhciA+IGRpdiA+IGRpdi5zaWRlYmFyLWxvZ29zIHN2ZyB7XG4gIG1heC13aWR0aDogMTUwcHg7XG4gIG1heC1oZWlnaHQ6IDEwMHB4O1xufVxuc2lkZS1iYXIgI3Bvd2Rlci10dWJzLFxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlLFxuc2lkZS1iYXIgI2xpYmVydHktcG93ZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuc2lkZS1iYXIgI3Bvd2Rlci10dWJzIGgzIHNwYW4sXG5zaWRlLWJhciAjZ3JlZW5lci1mdXR1cmUgaDMgc3BhbixcbnNpZGUtYmFyICNsaWJlcnR5LXBvd2RlciBoMyBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5zaWRlLWJhciAjcG93ZGVyLXR1YnMgZGl2LFxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIGRpdixcbnNpZGUtYmFyICNsaWJlcnR5LXBvd2RlciBkaXYge1xuICB6LWluZGV4OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5zaWRlLWJhciAjcG93ZGVyLXR1YnMgLmJhY2tncm91bmQsXG5zaWRlLWJhciAjZ3JlZW5lci1mdXR1cmUgLmJhY2tncm91bmQsXG5zaWRlLWJhciAjbGliZXJ0eS1wb3dkZXIgLmJhY2tncm91bmQge1xuICBvcGFjaXR5OiAwLjI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiAxMDAlIDAlO1xufVxuc2lkZS1iYXIgI3Bvd2Rlci10dWJzIC5pbWFnZSBpbWcsXG5zaWRlLWJhciAjZ3JlZW5lci1mdXR1cmUgLmltYWdlIGltZyxcbnNpZGUtYmFyICNsaWJlcnR5LXBvd2RlciAuaW1hZ2UgaW1nIHtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbnNpZGUtYmFyICNsaWJlcnR5LXBvd2RlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xufVxuc2lkZS1iYXIgI2xpYmVydHktcG93ZGVyIC5pbWFnZSB7XG4gIGhlaWdodDogNjBweDtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1nYXApICogMik7XG59XG5zaWRlLWJhciAjbGliZXJ0eS1wb3dkZXIgLmltYWdlIGltZyB7XG4gIHdpZHRoOiBhdXRvO1xufVxuc2lkZS1iYXIgI3Bvd2Rlci10dWJzIHtcbiAgYmFja2dyb3VuZDogIzMzMzIzNjtcbn1cbnNpZGUtYmFyICNwb3dkZXItdHVicyBoMyB7XG4gIHBhZGRpbmctYm90dG9tOiAyMjVweDtcbiAgZm9udC1zaXplOiAyMnB4O1xufVxuc2lkZS1iYXIgI3Bvd2Rlci10dWJzIGgzIHNwYW4ge1xuICBjb2xvcjogI2RmMzAzNTtcbn1cbnNpZGUtYmFyICNwb3dkZXItdHVicyAuYmFja2dyb3VuZCB7XG4gIG9wYWNpdHk6IDE7XG59XG5zaWRlLWJhciAjcG93ZGVyLXR1YnMgLmltYWdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIGhlaWdodDogMjUwcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuc2lkZS1iYXIgI3Bvd2Rlci10dWJzIC5pbWFnZSBpbWcge1xuICB3aWR0aDogMTAwJTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMTIwcHgpIHtcbiAgc2lkZS1iYXIgI3Bvd2Rlci10dWJzIGgzIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzAwcHg7XG4gIH1cbiAgc2lkZS1iYXIgI3Bvd2Rlci10dWJzIC5pbWFnZSB7XG4gICAgaGVpZ2h0OiAzNTBweDtcbiAgfVxufVxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIHtcbiAgLS1ncmVlbmVyLWdyZWVuOiAjNGVjYjNkO1xufVxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIGgzIHtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1nYXApICogMik7XG59XG5zaWRlLWJhciAjZ3JlZW5lci1mdXR1cmUgaDMgc3BhbiB7XG4gIGNvbG9yOiB2YXIoLS1ncmVlbmVyLWdyZWVuKTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5zaWRlLWJhciAjZ3JlZW5lci1mdXR1cmUgLmltYWdlIHtcbiAgaGVpZ2h0OiA5MHB4O1xufVxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIC5pbWFnZSBpbWcge1xuICB3aWR0aDogYXV0bztcbn1cbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSB1bCB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcCk7XG59XG5zaWRlLWJhciAjZ3JlZW5lci1mdXR1cmUgdWwgbGkge1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1nYXApICogMik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwKTtcbn1cbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSB1bCBsaTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbmVyLWdyZWVuKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNHB4O1xuICBsZWZ0OiAwO1xuICBjb250ZW50OiBcIlwiO1xufVxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIHVsIGxpOmFmdGVyIHtcbiAgaGVpZ2h0OiAxMnB4O1xuICB3aWR0aDogNnB4O1xuICBjb250ZW50OiBcIlwiO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgd2hpdGU7XG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHdoaXRlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDdweDtcbiAgdG9wOiA2cHg7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMTIwcHgpIHtcbiAgc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIHVsIHtcbiAgICBjb2x1bW4tY291bnQ6IDI7XG4gIH1cbn1cblxuLnNpZGViYXItYmxvY2tcXDpsb2NhbC1jdGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjc2NzY3O1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xcmVtIGJvdHRvbTtcbiAgYmFja2dyb3VuZC1zaXplOiBhdXRvIDIyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLWd1dHRlcjApO1xufVxuLnNpZGViYXItYmxvY2tcXDpsb2NhbC1jdGEgcCB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgdGV4dC13cmFwOiBwcmV0dHk7XG59XG5AbWVkaWEgKHdpZHRoID4gMTQwMHB4KSB7XG4gIC5zaWRlYmFyLWJsb2NrXFw6bG9jYWwtY3RhIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvYXNzZXRzL3VwbG9hZHMvaW1hZ2VzLzIwbXBoLXNpZ24ucG5nXCIpO1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAxNjBweDtcbiAgfVxufVxuXG4uc2lkZWJhci1ibG9ja1xcOmlzbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3NGJmMDM7XG4gIGJvcmRlcjogaW5pdGlhbDtcbiAgcGFkZGluZzogMDtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG9iamVjdC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5zaWRlYmFyLWJsb2NrXFw6aXNvIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuc29jaWFsLW1lZGlhIHtcbiAgLS1pY29uLWNvbG91cjogI0ZGRkZGRjtcbiAgLS1pY29uLXNpemU6IDIwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5zb2NpYWwtbWVkaWEgYSB7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXApO1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG59XG5zb2NpYWwtbWVkaWEgYSBzdmcge1xuICB3aWR0aDogdmFyKC0taWNvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1pY29uLXNpemUpO1xuICBmaWxsOiB2YXIoLS1pY29uLWNvbG91cik7XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIuZmFjZWJvb2sge1xuICAgIC0taWNvbi1jb2xvdXI6ICMxODc3ZjI7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIudHdpdHRlciB7XG4gICAgLS1pY29uLWNvbG91cjogIzFkYTFmMjtcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci5nb29nbGUge1xuICAgIC0taWNvbi1jb2xvdXI6ICM0Mjg1ZjQ7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIueW91dHViZSB7XG4gICAgLS1pY29uLWNvbG91cjogI2ZmMDAwMDtcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci5saW5rZWRpbiB7XG4gICAgLS1pY29uLWNvbG91cjogIzAwN2JiNTtcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci5pbnN0YWdyYW0ge1xuICAgIC0taWNvbi1jb2xvdXI6ICNjMzJhYTM7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIucGludGVyZXN0IHtcbiAgICAtLWljb24tY29sb3VyOiAjYmQwODFjO1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLmRhaWx5bW90aW9uIHtcbiAgICAtLWljb24tY29sb3VyOiAjMDA2NkRDO1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLnNuYXBjaGF0IHtcbiAgICAtLWljb24tY29sb3VyOiAjZmZmYzAwO1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLmZsaWNrciB7XG4gICAgLS1pY29uLWNvbG91cjogI2Y0MDA4MztcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci52aW1lbyB7XG4gICAgLS1pY29uLWNvbG91cjogIzFhYjdlYTtcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci50aHVtYmxlciB7XG4gICAgLS1pY29uLWNvbG91cjogIzM1NDY1ZDtcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci5yZWRkaXQge1xuICAgIC0taWNvbi1jb2xvdXI6ICNmZjQ1MDA7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIud2hhdHNhcHAge1xuICAgIC0taWNvbi1jb2xvdXI6ICMyNWQzNjY7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIuc2t5cGUge1xuICAgIC0taWNvbi1jb2xvdXI6ICMwMGFmZjA7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIuZGlzY29yZCB7XG4gICAgLS1pY29uLWNvbG91cjogIzcyODlkYTtcbiAgfVxufVxuc29jaWFsLW1lZGlhIGEgc3BhbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5hcnRpY2xlIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIxKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmNGY0ZjQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBnYXA6IDEuNXJlbTtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgPiAqIHtcbiAgb3JkZXI6IDI7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5oZWFkaW5nIHtcbiAgZm9udC1zaXplOiAxLjU2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5zdWJoZWFkaW5nIHtcbiAgZm9udC1zaXplOiAxLjA2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgY29sb3I6IHZhcigtLWFydGljbGUtc3ViaGVhZGluZy1mb250LWNvbG91ciwgIzZhNmE2YSk7XG4gIG1heC13aWR0aDogNzVjaDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgLnN1YmhlYWRpbmcgKyAudGltZXN0YW1wIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwKTtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgLmludHJvZHVjdGlvbiB7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgbWF4LXdpZHRoOiA3NWNoO1xufVxuLmFydGljbGUgLmNvbnRhaW5lciAuYnV0dG9uIHtcbiAganVzdGlmeS1zZWxmOiBmbGV4LXN0YXJ0O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtYXJnaW4tdG9wOiBhdXRvO1xufVxuLmFydGljbGUgLmNvbnRhaW5lcjpoYXMoLmF1dGhvcikgLmF1dGhvciB7XG4gIG1hcmdpbi10b3A6IGF1dG87XG4gIGJvcmRlci10b3A6IHZhcigtLWd1dHRlcjApIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLmFydGljbGUgLmNvbnRhaW5lcjpoYXMoLmF1dGhvcikgLmJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IGluaXRpYWw7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIHRpbWUge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xufVxuLmFydGljbGUgLmNvbnRhaW5lciAuYXV0aG9yIHtcbiAgLS1waG90by1zaXplOiA0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmFydGljbGUgLmNvbnRhaW5lciAuYXV0aG9yIC5uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNvbG9yOiAjMTMxZjZiO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG9yZGVyOiAxO1xuICBtaW4taGVpZ2h0OiB2YXIoLS1waG90by1zaXplKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgLmF1dGhvciAubmFtZSBlbSB7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgLmF1dGhvciAudGltZXN0YW1wIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBvcmRlcjogMjtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgLmF1dGhvciAudGltZXN0YW1wLFxuLmFydGljbGUgLmNvbnRhaW5lciAuYXV0aG9yIC50aW1lc3RhbXAgfiAubmFtZSB7XG4gIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tcGhvdG8tc2l6ZSkgLyAyKTtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgLmF1dGhvciAuaW1hZ2Uge1xuICB3aWR0aDogdmFyKC0tcGhvdG8tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tcGhvdG8tc2l6ZSk7XG4gIHRvcDogY2FsYyg1MCUgLSB2YXIoLS1waG90by1zaXplKSAvIDIpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgLmF1dGhvciAuaW1hZ2UgfiAqIHtcbiAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLXBob3RvLXNpemUpICsgdmFyKC0tZ2FwKSk7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyID4gLmltYWdlIHtcbiAgb3JkZXI6IDE7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWd1dHRlcjEpO1xuICBoZWlnaHQ6IHZhcigtLWltYWdlLWhlaWdodCwgMTgwcHgpO1xuICB3aWR0aDogY2FsYygxMDAlICsgdmFyKC0tZ3V0dGVyMykpO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IHZhcigtLWd1dHRlcjEtKTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ3V0dGVyMS0pO1xufVxuLmFydGljbGUgW2hyZWZePVwidGVsOlwiXSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uYXJ0aWNsZS5iZy1ibHVlOm5vdCguY2VudHJlLXN0YWNrZWQpIC5jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTMxZjZiO1xuICAtLWFydGljbGUtc3ViaGVhZGluZy1mb250LWNvbG91cjogI0ZGRkZGRjtcbiAgLS1oZWFkaW5nLWNvbG91cjogI0ZGRkZGRjtcbn1cbi5hcnRpY2xlLmJnLWJsdWU6bm90KC5jZW50cmUtc3RhY2tlZCkgLmNvbnRhaW5lciAudGV4dCxcbi5hcnRpY2xlLmJnLWJsdWU6bm90KC5jZW50cmUtc3RhY2tlZCkgLmNvbnRhaW5lciAubmFtZSB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLmFydGljbGUuYmctcmVkOm5vdCguY2VudHJlLXN0YWNrZWQpIC5jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGYzMDM1O1xuICAtLWFydGljbGUtc3ViaGVhZGluZy1mb250LWNvbG91cjogI0ZGRkZGRjtcbiAgLS1oZWFkaW5nLWNvbG91cjogI0ZGRkZGRjtcbn1cbi5hcnRpY2xlLmJnLXJlZDpub3QoLmNlbnRyZS1zdGFja2VkKSAuY29udGFpbmVyIC50ZXh0LFxuLmFydGljbGUuYmctcmVkOm5vdCguY2VudHJlLXN0YWNrZWQpIC5jb250YWluZXIgLm5hbWUge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi5hcnRpY2xlLmJnLWdyZXk6bm90KC5jZW50cmUtc3RhY2tlZCkgLmNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG4gIC0taGVhZGluZy1jb2xvdXI6IHZhcigtLXNlY29uZGFyeSk7XG59XG4uYXJ0aWNsZS5iZy15ZWxsb3c6bm90KC5jZW50cmUtc3RhY2tlZCkgLmNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNmY0ZGI7XG59XG4uYXJ0aWNsZS5iZy1vcmFuZ2U6bm90KC5jZW50cmUtc3RhY2tlZCkgLmNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZhMDA7XG4gIC0tYXJ0aWNsZS1zdWJoZWFkaW5nLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWhlYWRpbmctY29sb3VyOiAjRkZGRkZGO1xufVxuLmFydGljbGUuYmctb3JhbmdlOm5vdCguY2VudHJlLXN0YWNrZWQpIC5jb250YWluZXIgLnRleHQsXG4uYXJ0aWNsZS5iZy1vcmFuZ2U6bm90KC5jZW50cmUtc3RhY2tlZCkgLmNvbnRhaW5lciAubmFtZSB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLmFydGljbGUuYmctZ3JlZW46bm90KC5jZW50cmUtc3RhY2tlZCkgLmNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MGJjMDg7XG4gIC0tYXJ0aWNsZS1zdWJoZWFkaW5nLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWhlYWRpbmctY29sb3VyOiAjRkZGRkZGO1xufVxuLmFydGljbGUuYmctZ3JlZW46bm90KC5jZW50cmUtc3RhY2tlZCkgLmNvbnRhaW5lciAudGV4dCxcbi5hcnRpY2xlLmJnLWdyZWVuOm5vdCguY2VudHJlLXN0YWNrZWQpIC5jb250YWluZXIgLm5hbWUge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi5hcnRpY2xlLmJnLWJsYWNrOm5vdCguY2VudHJlLXN0YWNrZWQpIC5jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWUxYzFjO1xufVxuLmFydGljbGUuYmctcHJpbWFyeSAuY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XG4gIC0tYXJ0aWNsZS1zdWJoZWFkaW5nLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWhlYWRpbmctY29sb3VyOiAjRkZGRkZGO1xufVxuLmFydGljbGUuYmctc2Vjb25kYXJ5IC5jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnkpO1xuICAtLWFydGljbGUtc3ViaGVhZGluZy1mb250LWNvbG91cjogI0ZGRkZGRjtcbiAgLS1oZWFkaW5nLWNvbG91cjogI0ZGRkZGRjtcbn1cbi5jb250ZW50LWJsb2NrLmJsYWNrIGFydGljbGUtbGlzdCAuYXJ0aWNsZSAuY29udGFpbmVyIHtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIC0tYXJ0aWNsZS1zdWJoZWFkaW5nLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xufVxuLmNvbnRlbnQtYmxvY2suYmxhY2sgYXJ0aWNsZS1saXN0IC5hcnRpY2xlIC5jb250YWluZXIgLmJ1dHRvbiB7XG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICAtLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjMWUxYzFjO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbn1cbi5jb250ZW50LWJsb2NrLmJsYWNrIGFydGljbGUtbGlzdC5jb2x1bW5zLTIge1xuICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDAxcHgpIHtcbiAgLmNvbnRlbnQtYmxvY2suYmxhY2sgYXJ0aWNsZS1saXN0LmNvbHVtbnMtMiB7XG4gICAgbWF4LXdpZHRoOiAxMDAwcHg7XG4gIH1cbn1cblxuLmFydGljbGU6aGFzKGRpdi5jb250YWluZXIgYnV0dG9uLWNvbnRhaW5lciAuYnV0dG9uOm9ubHktY2hpbGQpIGRpdi5jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIC5hcnRpY2xlOmhhcyhkaXYuY29udGFpbmVyIGJ1dHRvbi1jb250YWluZXIgLmJ1dHRvbjpvbmx5LWNoaWxkKSBkaXYuY29udGFpbmVyOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICB9XG59XG4uYXJ0aWNsZTpoYXMoZGl2LmNvbnRhaW5lciBidXR0b24tY29udGFpbmVyIC5idXR0b246b25seS1jaGlsZCkgYnV0dG9uLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBpbml0aWFsO1xufVxuLmFydGljbGU6aGFzKGRpdi5jb250YWluZXIgYnV0dG9uLWNvbnRhaW5lciAuYnV0dG9uOm9ubHktY2hpbGQpIGJ1dHRvbi1jb250YWluZXIgLmJ1dHRvbjpvbmx5LWNoaWxkIHtcbiAgcG9zaXRpb246IGluaXRpYWw7XG59XG4uYXJ0aWNsZTpoYXMoZGl2LmNvbnRhaW5lciBidXR0b24tY29udGFpbmVyIC5idXR0b246b25seS1jaGlsZCkgYnV0dG9uLWNvbnRhaW5lciAuYnV0dG9uOm9ubHktY2hpbGQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDI7XG59XG4uYXJ0aWNsZSBhLmNvbnRhaW5lciB7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIC5hcnRpY2xlIGEuY29udGFpbmVyOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICB9XG59XG4uYXJ0aWNsZSBidXR0b24tY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ3V0dGVyMSk7XG59XG4uYXJ0aWNsZSBidXR0b24tY29udGFpbmVyIC5idXR0b24ge1xuICBmb250LXNpemU6IHNtYWxsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYXJ0aWNsZS51bmNyb3BwZWQtaW1hZ2UgLmltYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYXJ0aWNsZS51bmNyb3BwZWQtaW1hZ2UgLmltYWdlIGltZyB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcjApO1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG59XG5hcnRpY2xlLWxpc3Q6aGFzKC5pbWFnZS10ZXh0LXNpZGUtYnktc2lkZSkge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uYXJ0aWNsZS5kaXItcnRsIHtcbiAgZGlyZWN0aW9uOiBydGw7XG59XG4uYXJ0aWNsZS5kaXItcnRsIC5jb250ZW50ID4gKiB7XG4gIGRpcmVjdGlvbjogbHRyO1xufVxuLmFydGljbGU6bm90KFtjbGFzcyo9YmctXSkge1xuICAtLWRpdmlkZXItbGluZS1jb2xvdXI6ICNmNGY0ZjQ7XG59XG4uYXJ0aWNsZS5pbWFnZS10ZXh0LXNpZGUtYnktc2lkZSAuY29udGFpbmVyIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgcGFkZGluZzogMDtcbn1cbi5hcnRpY2xlLmltYWdlLXRleHQtc2lkZS1ieS1zaWRlIC5jb250YWluZXIgLmNvbnRlbnQge1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIxKTtcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG59XG4uYXJ0aWNsZS5pbWFnZS10ZXh0LXNpZGUtYnktc2lkZSAuY29udGFpbmVyIC5pbWFnZSB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWF4LXdpZHRoOiAzMyU7XG4gIG1pbi13aWR0aDogMTIwcHg7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1pbmxpbmUtZW5kOiAxcHggc29saWQgdmFyKC0tZGl2aWRlci1saW5lLWNvbG91ciwgI2RjZGNkYyk7XG59XG4uYXJ0aWNsZS5pbWFnZS10ZXh0LXNpZGUtYnktc2lkZSAuY29udGFpbmVyIC5pbWFnZSBpbWcge1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIxKTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgbWFyZ2luOiAwO1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG59XG4uYXJ0aWNsZS5jZW50cmUtc3RhY2tlZCAuY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5hcnRpY2xlLmNlbnRyZS1zdGFja2VkIC5jb250YWluZXIgLmNvbnRlbnQge1xuICBkaXNwbGF5OiBjb250ZW50cztcbn1cbi5hcnRpY2xlLmNlbnRyZS1zdGFja2VkIC5jb250YWluZXIgLnRleHQgKiB7XG4gIHRleHQtd3JhcDogYmFsYW5jZTtcbn1cbi5hcnRpY2xlLmNlbnRyZS1zdGFja2VkIC5pbWFnZSB7XG4gIG1heC13aWR0aDogMjQwcHg7XG4gIGxlZnQ6IDA7XG4gIG1hcmdpbjogMDtcbiAgb3JkZXI6IC0xO1xuICBtaW4taGVpZ2h0OiAxMjBweDtcbiAgbWF4LWhlaWdodDogMTQwcHg7XG59XG4uYXJ0aWNsZS5jZW50cmUtc3RhY2tlZCAuaW1hZ2UgaW1nIHtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgbWFyZ2luOiAwO1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG59XG4uYXJ0aWNsZS5jZW50cmUtc3RhY2tlZCBidXR0b24tY29udGFpbmVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IGF1dG87XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1ndXR0ZXIwKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMzAxcHgpIHtcbiAgLmFydGljbGUgKyAuY2VudHJlLXN0YWNrZWQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBoZWlnaHQ6IDgwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogNTAlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgb3BhY2l0eTogMC4yO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMCUpO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgd2hpdGU7XG4gIH1cbn1cbi5hcnRpY2xlW2RhdGEtY29udGFpbnMqPXRpdGxlXVtkYXRhLWNvbnRhaW5zKj10aW1lc3RhbXBdW2RhdGEtY29udGFpbnMqPWF1dGhvcl1bZGF0YS1jb250YWlucyo9YnV0dG9uXVtkYXRhLWNvbnRhaW5zKj1pbWFnZV06bm90KFtkYXRhLWNvbnRhaW5zKj1zdWJoZWFkaW5nXSk6bm90KFtkYXRhLWNvbnRhaW5zKj1pbnRyb2R1Y3Rpb25dKSAuY29udGFpbmVyIC50aW1lc3RhbXAge1xuICBtYXJnaW4tdG9wOiBhdXRvO1xufVxuXG4uYXJ0aWNsZVtkYXRhLWNvbnRhaW5zKj10aXRsZV1bZGF0YS1jb250YWlucyo9aW1hZ2VdOm5vdChbZGF0YS1jb250YWlucyo9dGltZXN0YW1wXSk6bm90KFtkYXRhLWNvbnRhaW5zKj1hdXRob3JdKTpub3QoW2RhdGEtY29udGFpbnMqPWJ1dHRvbl0pOm5vdChbZGF0YS1jb250YWlucyo9c3ViaGVhZGluZ10pOm5vdChbZGF0YS1jb250YWlucyo9aW50cm9kdWN0aW9uXSkgLmNvbnRhaW5lciAuaGVhZGluZyB7XG4gIG1hcmdpbi1ib3R0b206IGF1dG87XG4gIGZvbnQtc2l6ZTogMS41NjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG4uYXJ0aWNsZVtkYXRhLWNvbnRhaW5zKj10aXRsZV1bZGF0YS1jb250YWlucyo9aW1hZ2VdOm5vdChbZGF0YS1jb250YWlucyo9dGltZXN0YW1wXSk6bm90KFtkYXRhLWNvbnRhaW5zKj1hdXRob3JdKTpub3QoW2RhdGEtY29udGFpbnMqPWJ1dHRvbl0pOm5vdChbZGF0YS1jb250YWlucyo9c3ViaGVhZGluZ10pOm5vdChbZGF0YS1jb250YWlucyo9aW50cm9kdWN0aW9uXSkgLmNvbnRhaW5lciA+IC5pbWFnZSB7XG4gIC0taW1hZ2UtaGVpZ2h0OiAxMzBweDtcbn1cblxuLmFydGljbGVbZGF0YS1jb250YWlucyo9c2VydmljZUNlbnRyZXNdIC5jb250YWluZXIgZGl2IHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwKTtcbn1cbi5hcnRpY2xlW2RhdGEtY29udGFpbnMqPXNlcnZpY2VDZW50cmVzXSAuY29udGFpbmVyIGg0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmFydGljbGUubGF5b3V0LXRleHQtaW1hZ2Utc2lkZS1ieS1zaWRlOm5vdChbY2xhc3M9YmctXSkgLmNvbnRhaW5lcixcbi5hcnRpY2xlLmxheW91dC10ZXh0LWltYWdlLXNpZGUtYnktc2lkZTpub3QoW2NsYXNzPWJnLV0pIC5jb250ZW50IHtcbiAgcGFkZGluZzogMDtcbn1cblxudGFnLWxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1nYXApO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiA1cHg7XG4gIGZvbnQtc2l6ZTogMS41NjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG50YWctbGluZSBzcGFuIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjVlbTtcbiAgY29sb3I6IHdoaXRlO1xuICBncmlkLXJvdzogMTtcbiAgbGluZS1oZWlnaHQ6IDI7XG59XG50YWctbGluZSBzdmcge1xuICBjb2xvcjogdmFyKC0tdGFnbGluZS1pY29uLWNvbG91ciwgI2RmMzAzNSk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcCk7XG59XG5cbnNpZGUtYmFyIGZvcm0gLmZyZWVmb3JtLWZvcm0tc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MGJjMDg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDMwcHgpO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpIHZhcigtLWdhcCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIG1hcmdpbjogMCAtMTVweCB2YXIoLS1nYXApO1xufVxuc2lkZS1iYXIgZm9ybSAuc3VibWl0LXJvdyB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG59XG5cbmZvcm0gc2VsZWN0IHtcbiAgLS1mb250LWNvbG91cjogIzZhNmE2YTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI0ZGRkZGRjtcbiAgLS1ib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICAtLWJvcmRlci1jb2xvdXI6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLS1ib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgLS1wYWRkaW5nOiB2YXIoLS1nYXApIHZhcigtLWdhcCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXIpO1xuICBwYWRkaW5nOiB2YXIoLS1wYWRkaW5nKTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSB2YXIoLS1nYXApKSBjZW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTcuNCcgaGVpZ2h0PScxMC4xJyUzRSUzQ3BhdGggZD0nTTE2LjcuN2wtOCA4LTgtOCcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMxRTFDMUMnIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuZm9ybSBzZWxlY3Q6OnBsYWNlaG9sZGVyIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5mb3JtIHNlbGVjdDpmb2N1cyB7XG4gIG91dGxpbmUtY29sb3I6ICMxMzFmNmI7XG59XG5mb3JtIHNlbGVjdDpmb2N1czo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5mb3JtIHNlbGVjdC5hdXRvY29tcGxldGU6bm90KFt2YWx1ZT1cIlwiXSk6Zm9jdXMge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbmZvcm0gaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPXJhZGlvXSkge1xuICAtLWZvbnQtY29sb3VyOiAjNmE2YTZhO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIC0tYm9yZGVyLWNvbG91cjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtLWJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICAtLXBhZGRpbmc6IHZhcigtLWdhcCkgdmFyKC0tZ2FwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXI6IHZhcigtLWJvcmRlcik7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmcpO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuZm9ybSBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9cmFkaW9dKTo6cGxhY2Vob2xkZXIge1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbmZvcm0gaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPXJhZGlvXSk6Zm9jdXMge1xuICBvdXRsaW5lLWNvbG9yOiAjMTMxZjZiO1xufVxuZm9ybSBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9cmFkaW9dKTpmb2N1czo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5mb3JtIGlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1yYWRpb10pLmF1dG9jb21wbGV0ZTpub3QoW3ZhbHVlPVwiXCJdKTpmb2N1cyB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuZm9ybSB0ZXh0YXJlYSB7XG4gIC0tZm9udC1jb2xvdXI6ICM2YTZhNmE7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0tYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgLS1ib3JkZXItY29sb3VyOiB2YXIoLS1mb250LWNvbG91cik7XG4gIC0tYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIC0tcGFkZGluZzogdmFyKC0tZ2FwKSB2YXIoLS1nYXApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyKTtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5mb3JtIHRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuZm9ybSB0ZXh0YXJlYTpmb2N1cyB7XG4gIG91dGxpbmUtY29sb3I6ICMxMzFmNmI7XG59XG5mb3JtIHRleHRhcmVhOmZvY3VzOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbmZvcm0gdGV4dGFyZWEuYXV0b2NvbXBsZXRlOm5vdChbdmFsdWU9XCJcIl0pOmZvY3VzIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG5mb3JtIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGwsXG5mb3JtIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG5mb3JtIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG5mb3JtIHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGwsXG5mb3JtIHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG5mb3JtIHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMge1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdmFyKC0tZm9udC1jb2xvdXIsIGluaGVyaXQpO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwcHggMTAwMHB4IHZhcigtLWJhY2tncm91bmQtY29sb3VyLCB3aGl0ZSkgaW5zZXQ7XG59XG5mb3JtW2RhdGEtZnJlZWZvcm1dIGxhYmVsICsgZGl2IHtcbiAgZm9udC1zaXplOiAwLjc1ZW07XG4gIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5mb3JtW2RhdGEtZnJlZWZvcm1dIC5mcmVlZm9ybS1yb3cgKyAuZnJlZWZvcm0tcm93ID4gZGl2IHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwKTtcbn1cbmZvcm1bZGF0YS1mcmVlZm9ybV0gLmZyZWVmb3JtLWNvbHVtbiB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbnNpZGUtYmFyIGZvcm0gbGFiZWwge1xuICBjb2xvcjogd2hpdGU7XG59XG5zaWRlLWJhciBmb3JtIGxhYmVsIH4gZGl2IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG5mb3JtI2xvZ2luIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbmZvcm0jbG9naW4gPiBsYWJlbCB+IGxhYmVsIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwKTtcbn1cbmZvcm0jbG9naW4gZGl2IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1nYXApO1xuICBmb250LXNpemU6IDAuNzVlbTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIGZvcm0jbG9naW4gZGl2IGE6aG92ZXIge1xuICAgIGNvbG9yOiAjZGYzMDM1O1xuICB9XG59XG5mb3JtI2xvZ2luIGJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG59XG5cbmZvcm0jcmVzZXQtcGFzc3dvcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTMxZjZiO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcjEpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuZm9ybSNyZXNldC1wYXNzd29yZCBidXR0b24ge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1nYXApO1xufVxuXG5yZXF1aXJlZC1ub3RpY2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDVweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdGljZS1jb2xvdXIsICM1MGJjMDgpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNnB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xufVxucmVxdWlyZWQtbm90aWNlIHNwYW4ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1zaXplOiAwLjc1ZW07XG4gIHRvcDogNTAlO1xuICByaWdodDogY2FsYygxMDAlICsgY2FsYyh2YXIoLS1nYXApICogMC41KSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDRweCBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwcHgsIC01MCUpO1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIHJlcXVpcmVkLW5vdGljZTpob3ZlciBzcGFuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC01MCUpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mcmVlZm9ybS1mb3JtLXN1Y2Nlc3MsXG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZyZWVmb3JtLWZvcm0tZXJyb3JzLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZnJlZWZvcm0tZm9ybS1zdWNjZXNzLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZnJlZWZvcm0tZm9ybS1lcnJvcnMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTBiYzA4O1xuICBjb2xvcjogd2hpdGU7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1nYXApICogMC41KSB2YXIoLS1nYXApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ndXR0ZXIxKTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZnJlZWZvcm0tZm9ybS1lcnJvcnMsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mcmVlZm9ybS1mb3JtLWVycm9ycyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZjMwMzU7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMSkgdmFyKC0tZ3V0dGVyMSk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjAxcHgpIHtcbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDM0MHB4LCAxZnIpKTtcbiAgfVxuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3c6Zmlyc3QtY2hpbGQsXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3c6Zmlyc3QtY2hpbGQge1xuICAgIGdyaWQtcm93OiAxO1xuICB9XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5maXJzdC1uYW1lLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cubGFzdC1uYW1lLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZW1haWwsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5jb21wYW55LW5hbWUsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5jb250YWN0LW5vLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cueS1ycWcxODFrLWQsXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZmlyc3QtbmFtZSxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5sYXN0LW5hbWUsXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZW1haWwsXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuY29tcGFueS1uYW1lLFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmNvbnRhY3Qtbm8sXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cueS1ycWcxODFrLWQge1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICB9XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5kZXRhaWxzb2ZlbnF1aXJ5LFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmRldGFpbHNvZmVucXVpcnkge1xuICAgIGdyaWQtY29sdW1uOiAyO1xuICAgIGdyaWQtcm93OiAyL3NwYW4gNTtcbiAgfVxuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuc3VibWl0LXJvdyxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5zdWJtaXQtcm93IHtcbiAgICBncmlkLWNvbHVtbjogMjtcbiAgfVxuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIGJ1dHRvblt0eXBlPXN1Ym1pdF0sXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIGJ1dHRvblt0eXBlPXN1Ym1pdF0ge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICB9XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIGgyLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgaDIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyBoMiBzdmcuZW1haWwsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyBoMiBzdmcuZW1haWwge1xuICB3aWR0aDogMWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgZmlsbDogI2RmMzAzNTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdyxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGdyaWQtY29sdW1uOiAxL3NwYW4gMjtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5kZXRhaWxzb2ZlbnF1aXJ5IC5mcmVlZm9ybS1pbnN0cnVjdGlvbnMsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmRldGFpbHNvZmVucXVpcnkgLmZyZWVmb3JtLWluc3RydWN0aW9ucyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZGV0YWlsc29mZW5xdWlyeSB0ZXh0YXJlYSxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZGV0YWlsc29mZW5xdWlyeSB0ZXh0YXJlYSB7XG4gIGhlaWdodDogMTAwJTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5kZXRhaWxzb2ZlbnF1aXJ5IC5mcmVlZm9ybS1jb2x1bW4sXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmRldGFpbHNvZmVucXVpcnkgLmZyZWVmb3JtLWNvbHVtbiB7XG4gIGhlaWdodDogMTAwJTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdyAuZnJlZWZvcm0tY29sdW1uLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdyAuZnJlZWZvcm0tY29sdW1uIHtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cgLmZyZWVmb3JtLWNvbHVtbiBsYWJlbDpub3QoLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwpLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdyAuZnJlZWZvcm0tY29sdW1uIGxhYmVsOm5vdCguZnJlZWZvcm0taW5wdXQtb25seS1sYWJlbCkge1xuICBkaXNwbGF5OiBub25lO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LnNlcnZpY2UtY2VudHJlLWNvbnRhY3QsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5sZWFkLXN0YXR1cywgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmludGVybmFsLW5vdGVzLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cub3JkZXItdmFsdWUsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LnNlcnZpY2UtY2VudHJlLWNvbnRhY3QsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmxlYWQtc3RhdHVzLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5pbnRlcm5hbC1ub3RlcyxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cub3JkZXItdmFsdWUge1xuICBkaXNwbGF5OiBub25lO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyBsYWJlbC5mcmVlZm9ybS1pbnB1dC1vbmx5LWxhYmVsLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgbGFiZWwuZnJlZWZvcm0taW5wdXQtb25seS1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgZ3JpZC1jb2x1bW46IDE7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIGxhYmVsLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwgaW5wdXQsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyBsYWJlbC5mcmVlZm9ybS1pbnB1dC1vbmx5LWxhYmVsIGlucHV0IHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyBsYWJlbC5mcmVlZm9ybS1pbnB1dC1vbmx5LWxhYmVsIGlucHV0OmNoZWNrZWQsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyBsYWJlbC5mcmVlZm9ybS1pbnB1dC1vbmx5LWxhYmVsIGlucHV0OmNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTBiYzA4O1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyBzZWxlY3QsXG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIHRleHRhcmVhLFxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSksXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyBzZWxlY3QsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyB0ZXh0YXJlYSxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKSB7XG4gIC0tYm9yZGVyLWNvbG91cjogbm9uZTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZyZWVmb3JtLWVycm9ycyxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZyZWVmb3JtLWVycm9ycyB7XG4gIGNvbG9yOiAjZGYzMDM1O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAwLjYyNWVtO1xuICBwYWRkaW5nOiAycHggdmFyKC0tZ2FwKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSAtIDRweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZjMwMzU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDZweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0MDBweCkge1xuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gYnV0dG9uW3R5cGU9c3VibWl0XSxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSBidXR0b25bdHlwZT1zdWJtaXRdIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mcmVlZm9ybS1pbnB1dFtyZXF1aXJlZF06bm90KDp2YWxpZCkgfiByZXF1aXJlZC1ub3RpY2UsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mcmVlZm9ybS1pbnB1dFtyZXF1aXJlZF06bm90KDp2YWxpZCkgfiByZXF1aXJlZC1ub3RpY2Uge1xuICAtLW5vdGljZS1jb2xvdXI6ICNkZjMwMzU7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc106bm90KDp2YWxpZCkgYnV0dG9uW3R5cGU9c3VibWl0XSxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF06bm90KDp2YWxpZCkgYnV0dG9uW3R5cGU9c3VibWl0XSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogIzk2OTY5NTtcbiAgLS1ib3JkZXItY29sb3VyOiAjOTY5Njk1O1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjOTY5Njk1O1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjOTY5Njk1O1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5zZXJ2aWNlLWNlbnRyZSxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLnNlcnZpY2UtY2VudHJlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAxcHgpIHtcbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMzQwcHgsIDFmcikpO1xuICB9XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdzpmaXJzdC1jaGlsZCB7XG4gICAgZ3JpZC1yb3c6IDE7XG4gIH1cbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmZpcnN0LW5hbWUsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5sYXN0LW5hbWUsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5lbWFpbCwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmNvbXBhbnktbmFtZSwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmNvbnRhY3Qtbm8sIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy55LXJxZzE4MWstZCwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LnByb2R1Y3Qge1xuICAgIGdyaWQtY29sdW1uOiAxLzI7XG4gIH1cbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmRldGFpbHNvZmVucXVpcnkge1xuICAgIGdyaWQtY29sdW1uOiAyLy0xO1xuICAgIGdyaWQtcm93OiAyL3NwYW4gNjtcbiAgfVxufVxuXG5ib2R5I2VkaXQgZm9ybSB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIGlucHV0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG59XG5ib2R5I2VkaXQgZm9ybSAuc3VibWl0LXJvdyB7XG4gIG9yZGVyOiAyMDtcbn1cbmJvZHkjZWRpdCBmb3JtIC5mcmVlZm9ybS1yb3cge1xuICBkaXNwbGF5OiBub25lO1xufVxuYm9keSNlZGl0IGZvcm0gLmZpcnN0LW5hbWUsXG5ib2R5I2VkaXQgZm9ybSAubGFzdC1uYW1lLFxuYm9keSNlZGl0IGZvcm0gLmVtYWlsLFxuYm9keSNlZGl0IGZvcm0gLnByb2R1Y3QsXG5ib2R5I2VkaXQgZm9ybSAuZGV0YWlsc29mZW5xdWlyeSxcbmJvZHkjZWRpdCBmb3JtIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0LFxuYm9keSNlZGl0IGZvcm0gLmxlYWQtc3RhdHVzLFxuYm9keSNlZGl0IGZvcm0gLmludGVybmFsLW5vdGVzLFxuYm9keSNlZGl0IGZvcm0gLm9yZGVyLXZhbHVlLFxuYm9keSNlZGl0IGZvcm0gLnN1Ym1pdC1yb3cge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbmJvZHkjZWRpdCBmb3JtIC5maXJzdC1uYW1lIC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLmZpcnN0LW5hbWUgLmZyZWVmb3JtLWNvbHVtbiB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5maXJzdC1uYW1lIC5mcmVlZm9ybS1jb2x1bW4gaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAubGFzdC1uYW1lIC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLmxhc3QtbmFtZSAuZnJlZWZvcm0tY29sdW1uIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLmxhc3QtbmFtZSAuZnJlZWZvcm0tY29sdW1uIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLmVtYWlsIC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLmVtYWlsIC5mcmVlZm9ybS1jb2x1bW4gdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAuZW1haWwgLmZyZWVmb3JtLWNvbHVtbiBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5wcm9kdWN0IC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLnByb2R1Y3QgLmZyZWVmb3JtLWNvbHVtbiB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5wcm9kdWN0IC5mcmVlZm9ybS1jb2x1bW4gaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAuZGV0YWlsc29mZW5xdWlyeSAuZnJlZWZvcm0tY29sdW1uIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5kZXRhaWxzb2ZlbnF1aXJ5IC5mcmVlZm9ybS1jb2x1bW4gdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAuZGV0YWlsc29mZW5xdWlyeSAuZnJlZWZvcm0tY29sdW1uIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLnNlcnZpY2UtY2VudHJlLWNvbnRhY3QgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAuc2VydmljZS1jZW50cmUtY29udGFjdCAuZnJlZWZvcm0tY29sdW1uIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLnNlcnZpY2UtY2VudHJlLWNvbnRhY3QgLmZyZWVmb3JtLWNvbHVtbiBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5sZWFkLXN0YXR1cyAuZnJlZWZvcm0tY29sdW1uIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5sZWFkLXN0YXR1cyAuZnJlZWZvcm0tY29sdW1uIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLmxlYWQtc3RhdHVzIC5mcmVlZm9ybS1jb2x1bW4gaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAuaW50ZXJuYWwtbm90ZXMgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAuaW50ZXJuYWwtbm90ZXMgLmZyZWVmb3JtLWNvbHVtbiB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5pbnRlcm5hbC1ub3RlcyAuZnJlZWZvcm0tY29sdW1uIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLm9yZGVyLXZhbHVlIC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLm9yZGVyLXZhbHVlIC5mcmVlZm9ybS1jb2x1bW4gdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAub3JkZXItdmFsdWUgLmZyZWVmb3JtLWNvbHVtbiBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5zdWJtaXQtcm93IC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLnN1Ym1pdC1yb3cgLmZyZWVmb3JtLWNvbHVtbiB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5zdWJtaXQtcm93IC5mcmVlZm9ybS1jb2x1bW4gaW5wdXQge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5ib2R5I2VkaXQgZm9ybSAuZGV0YWlsc29mZW5xdWlyeSB7XG4gIGdyaWQtcm93OiAxL3NwYW4gNjtcbn1cbmJvZHkjZWRpdCBmb3JtIC5maXJzdC1uYW1lLFxuYm9keSNlZGl0IGZvcm0gLmxhc3QtbmFtZSxcbmJvZHkjZWRpdCBmb3JtIC5lbWFpbCxcbmJvZHkjZWRpdCBmb3JtIC5wcm9kdWN0LFxuYm9keSNlZGl0IGZvcm0gLnNlcnZpY2UtY2VudHJlLWNvbnRhY3Qge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbmJvZHkjZWRpdCBmb3JtIC5maXJzdC1uYW1lIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5maXJzdC1uYW1lIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLmZpcnN0LW5hbWUgaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAubGFzdC1uYW1lIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5sYXN0LW5hbWUgdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAubGFzdC1uYW1lIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLmVtYWlsIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5lbWFpbCB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5lbWFpbCBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5wcm9kdWN0IHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5wcm9kdWN0IHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLnByb2R1Y3QgaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAuc2VydmljZS1jZW50cmUtY29udGFjdCBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAuc2VydmljZS1jZW50cmUtY29udGFjdCB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0IGlucHV0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbn1cbmJvZHkjZWRpdCBmb3JtIC5kZXRhaWxzb2ZlbnF1aXJ5IHtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cbmJvZHkjZWRpdCBmb3JtIC5kZXRhaWxzb2ZlbnF1aXJ5IHRleHRhcmVhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbn1cbmJvZHkjZWRpdCBmb3JtIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0IC5mcmVlZm9ybS1jb2x1bW4gbGFiZWwsXG5ib2R5I2VkaXQgZm9ybSAubGVhZC1zdGF0dXMgLmZyZWVmb3JtLWNvbHVtbiBsYWJlbCxcbmJvZHkjZWRpdCBmb3JtIC5pbnRlcm5hbC1ub3RlcyAuZnJlZWZvcm0tY29sdW1uIGxhYmVsLFxuYm9keSNlZGl0IGZvcm0gLm9yZGVyLXZhbHVlIC5mcmVlZm9ybS1jb2x1bW4gbGFiZWwge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5cbm1vZGFsLXdyYXBwZXIge1xuICAtLXdyYXBwZXItYmFja2dyb3VuZC1jb2xvdXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gIC0tY29udGFpbmVyLWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbiAgLS1taW4td2lkdGg6MzAwcHg7XG4gIC0tbWF4LXdpZHRoOjExMjBweDtcbiAgLS13aWR0aDpjbGFtcCh2YXIoLS1taW4td2lkdGgpLCA5MHZ3LCBmaXQtY29udGVudCk7XG4gIC0tbWluLWhlaWdodDo2MDBweDtcbiAgLS1tYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSB2YXIoLS1ndXR0ZXIyKSk7XG4gIC0taGVpZ2h0OmNsYW1wKHZhcigtLW1pbi1oZWlnaHQpLCA5MHZ3LCBmaXQtY29udGVudCk7XG4gIC0tY2xvc2UtYnV0dG9uLXNpemU6IDMwcHg7XG4gIC0tbmF2LWJ1dHRvbi1zaXplOiA0MHB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13cmFwcGVyLWJhY2tncm91bmQtY29sb3VyKTtcbiAgei1pbmRleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbn1cbkBzdXBwb3J0cyAoLS12Oi13ZWJraXQtZmlsbC1hdmFpbGFibGUgKSB7XG4gIG1vZGFsLXdyYXBwZXIge1xuICAgIC0tbWF4LWhlaWdodDotd2Via2l0LWZpbGwtYXZhaWxhYmxlO1xuICB9XG59XG5tb2RhbC13cmFwcGVyLmxvYWRpbmcge1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSAwLjNzO1xufVxubW9kYWwtd3JhcHBlci5sb2FkaW5nIG1vZGFsLWNvbnRhaW5lciB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgydmgpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpLCB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC44OTUsIDAuMDMsIDAuNjg1LCAwLjIyKTtcbn1cbm1vZGFsLXdyYXBwZXIgYnV0dG9uLmNsb3NlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IHZhcigtLWd1dHRlcjEpO1xuICByaWdodDogdmFyKC0tZ3V0dGVyMSk7XG4gIHdpZHRoOiB2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tY2xvc2UtYnV0dG9uLXNpemUpO1xufVxubW9kYWwtd3JhcHBlciBidXR0b24uY2xvc2Ugc3ZnIHtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAtLWZpbGw6dmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbn1cbm1vZGFsLXdyYXBwZXIgYnV0dG9uLmNsb3NlIHN2ZyBjaXJjbGUsIG1vZGFsLXdyYXBwZXIgYnV0dG9uLmNsb3NlIHN2ZyBwYXRoIHtcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSk7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBtb2RhbC13cmFwcGVyIGJ1dHRvbi5jbG9zZTpob3ZlciBzdmcge1xuICAgIC0tZmlsbDp3aGl0ZTtcbiAgICAtLXN0cm9rZTp2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICB9XG59XG5tb2RhbC13cmFwcGVyIGJ1dHRvbi5uYXZpZ2F0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogdmFyKC0tbmF2LWJ1dHRvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1uYXYtYnV0dG9uLXNpemUpO1xuICB0b3A6IGNhbGMoNTAlIC0gdmFyKC0tbmF2LWJ1dHRvbi1zaXplKSAvIDIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpO1xufVxubW9kYWwtd3JhcHBlciBidXR0b24ubmF2aWdhdGlvbi5wcmV2aW91cyB7XG4gIGxlZnQ6IHZhcigtLWd1dHRlcjEpO1xufVxubW9kYWwtd3JhcHBlciBidXR0b24ubmF2aWdhdGlvbi5uZXh0IHtcbiAgcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xufVxubW9kYWwtd3JhcHBlciBidXR0b24ubmF2aWdhdGlvbiBzdmcge1xuICB3aWR0aDogNTAlO1xuICBoZWlnaHQ6IDUwJTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIG1vZGFsLXdyYXBwZXIgYnV0dG9uLm5hdmlnYXRpb246aG92ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgfVxufVxuXG5tb2RhbC1jb250YWluZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkgMC4zcywgdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKSAwLjNzO1xuICB3aWR0aDogdmFyKC0td2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLWhlaWdodCk7XG4gIG1heC1oZWlnaHQ6IHZhcigtLW1heC1oZWlnaHQpO1xuICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luOiB2YXIoLS1ndXR0ZXIxKTtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbn1cbkBzdXBwb3J0cyBub3QgKHdpZHRoOiBjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcbiAgbW9kYWwtY29udGFpbmVyIHtcbiAgICAtLXdpZHRoOiA2MHZ3O1xuICAgIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcbiAgICBtaW4td2lkdGg6IHZhcigtLW1pbi13aWR0aCk7XG4gICAgLS1oZWlnaHQ6IDgwdnc7XG4gICAgbWF4LWhlaWdodDogdmFyKC0tbWF4LWhlaWdodCk7XG4gICAgbWluLWhlaWdodDogdmFyKC0tbWluLWhlaWdodCk7XG4gIH1cbn1cbm1vZGFsLWNvbnRhaW5lcjplbXB0eSB7XG4gIHdpZHRoOiBjYWxjKHZhcigtLW1heC13aWR0aCkgLyAyKTtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLW1heC1oZWlnaHQpIC8gMik7XG59XG5tb2RhbC1jb250YWluZXI6ZW1wdHk6YWZ0ZXIge1xuICAtLXNpemU6IDIwcHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDUwJSAtIHZhcigtLXNpemUpIC8gMik7XG4gIGxlZnQ6IGNhbGMoNTAlIC0gdmFyKC0tc2l6ZSkgLyAyKTtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IHZhcigtLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXNpemUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWxvYWRlci1jb2xvdXIsICM5Njk2OTUpO1xuICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBsb2FkZXItcm90YXRlO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xuICBvcGFjaXR5OiAxO1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZztcbn1cbkBrZXlmcmFtZXMgbG9hZGVyLXJvdGF0ZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG59XG5tb2RhbC1jb250YWluZXIgPiBidXR0b24uY2xvc2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG9yZGVyOiAtMTtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIHRvcDogaW5pdGlhbDtcbiAgcmlnaHQ6IGluaXRpYWw7XG4gIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSkgLyAyKTtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNsb3NlLWJ1dHRvbi1zaXplKSAvIDIpO1xuICBtYXJnaW4tcmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSkgLyAyKTtcbn1cblxubW9kYWwtY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICB3aWR0aDogaW5oZXJpdDtcbiAgaGVpZ2h0OiBpbmhlcml0O1xuICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSk7XG59XG5tb2RhbC1jb250ZW50ID4gKiB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxubW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9aW1hZ2VdIC5pbWFnZSB7XG4gIG1heC1oZWlnaHQ6IGNhbGModmFyKC0tbWF4LWhlaWdodCkgLSB2YXIoLS1ndXR0ZXI2KSk7XG4gIGJvcmRlcjogbm9uZTtcbn1cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPWltYWdlXSAuaW1hZ2UgaW1nIHtcbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLWd1dHRlcjMpIC0gdmFyKC0tZ3V0dGVyNCkpO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW46IGF1dG87XG59XG5cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPWRlZmF1bHRdIG1vZGFsLWNvbnRlbnQgPiBpbWdbc3JjKj1cIi5zdmdcIl0ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5tb2RhbC13cmFwcGVyW2RhdGEtdHlwZT12aWRlb10ge1xuICAtLXdyYXBwZXItYmFja2dyb3VuZC1jb2xvdXI6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG5tb2RhbC13cmFwcGVyW2RhdGEtdHlwZT12aWRlb10gbW9kYWwtY29udGFpbmVyIHtcbiAgLS1hc3BlY3QtcmF0aW86IDE2Lzk7XG4gIGFzcGVjdC1yYXRpbzogdmFyKC0tYXNwZWN0LXJhdGlvKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogdmFyKC0tZ2FwKTtcbn1cbkBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMTYvOSkge1xuICBtb2RhbC13cmFwcGVyW2RhdGEtdHlwZT12aWRlb10gbW9kYWwtY29udGFpbmVyIHtcbiAgICBhc3BlY3QtcmF0aW86IGluaXRpYWw7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJSAvICh2YXIoLS1hc3BlY3QtcmF0aW8pKSk7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG4gIG1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPXZpZGVvXSBtb2RhbC1jb250YWluZXIgPiAqIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbn1cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPXZpZGVvXSBtb2RhbC1jb250YWluZXIgaWZyYW1lLCBtb2RhbC13cmFwcGVyW2RhdGEtdHlwZT12aWRlb10gbW9kYWwtY29udGFpbmVyIGNhbnZhcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5tb2RhbC13cmFwcGVyW2RhdGEtdHlwZT12aWRlb10gbW9kYWwtY29udGFpbmVyIG1vZGFsLWNvbnRlbnQge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG59XG5cbi5vcGVuLWluLW1vZGFsIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuLm9wZW4taW4tbW9kYWw6YWZ0ZXIge1xuICAtLXNpemU6IDIwcHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDUwJSAtIHZhcigtLXNpemUpIC8gMik7XG4gIGxlZnQ6IGNhbGMoNTAlIC0gdmFyKC0tc2l6ZSkgLyAyKTtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IHZhcigtLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXNpemUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWxvYWRlci1jb2xvdXIsIHdoaXRlKTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICBhbmltYXRpb24tbmFtZTogbG9hZGVyLXJvdGF0ZTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbn1cbkBrZXlmcmFtZXMgbG9hZGVyLXJvdGF0ZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG59XG4ub3Blbi1pbi1tb2RhbC5sb2FkaW5nIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ub3Blbi1pbi1tb2RhbC5sb2FkaW5nOmFmdGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7XG59XG5cbmltZy5vcGVuLWluLW1vZGFsLCAub3Blbi1pbi1tb2RhbCBpbWcge1xuICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcbiAgLWtodG1sLXVzZXItZHJhZzogbm9uZTtcbiAgLW1vei11c2VyLWRyYWc6IG5vbmU7XG4gIC1vLXVzZXItZHJhZzogbm9uZTtcbiAgdXNlci1kcmFnOiBub25lO1xufVxuXG46cm9vdCB7XG4gIC0tZGlhbG9nLXRyYW5zbGF0ZS1vZmZzZXQ6IDFyZW07XG4gIC0tZGlhbG9nLXRyYW5zbGF0ZS1lbnRlcjogMCB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLW9mZnNldCk7XG4gIC0tZGlhbG9nLXRyYW5zbGF0ZS1sZWF2ZTogMCBjYWxjKC0xICogdmFyKC0tZGlhbG9nLXRyYW5zbGF0ZS1vZmZzZXQpKTtcbiAgLS1kaWFsb2ctdHJhbnNsYXRlLWR1cmF0aW9uOiAwLjRzO1xuICAtLWRpYWxvZy1nYXA6IHZhcigtLWd1dHRlcjIpO1xuICAtLWRpYWxvZy1jb250ZW50LW1heC13aWR0aDogMTA4MHB4O1xuICAtLWRpYWxvZy1jb250ZW50LWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbiAgLS1kaWFsb2ctYmFja2Ryb3AtY29sb3VyOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG5cbmRpYWxvZy5tb2RhbCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3ZlcmZsb3c6IGluaXRpYWw7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zbGF0ZTogdmFyKC0tZGlhbG9nLXRyYW5zbGF0ZS1lbnRlcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvdmVybGF5LCBkaXNwbGF5LCB0cmFuc2xhdGUsIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLWRpYWxvZy10cmFuc2xhdGUtZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb24tYmVoYXZpb3I6IGFsbG93LWRpc2NyZXRlO1xuICBtYXJnaW46IDA7XG4gIHotaW5kZXg6IDk5OTtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDBkdmg7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbn1cbmRpYWxvZy5tb2RhbCAqLFxuZGlhbG9nLm1vZGFsICo6OmJlZm9yZSxcbmRpYWxvZy5tb2RhbCAqOjphZnRlciwgZGlhbG9nLm1vZGFsIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbmRpYWxvZy5tb2RhbDo6YmFja2Ryb3Age1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvdmVybGF5LCBkaXNwbGF5LCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi1iZWhhdmlvcjogYWxsb3ctZGlzY3JldGU7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kaWFsb2ctYmFja2Ryb3AtY29sb3VyKTtcbiAgb3BhY2l0eTogMDtcbn1cbmRpYWxvZy5tb2RhbCAuZGlhbG9nXFw6Y29udGVudHMge1xuICBvdmVyZmxvdzogYXV0bztcbiAgZGlyZWN0aW9uOiBsdHI7XG4gIGJvcmRlci1yYWRpdXM6IDAuNmVtO1xuICBtYXgtaGVpZ2h0OiAxMDBkdmg7XG4gIHBhZGRpbmc6IHZhcigtLWRpYWxvZy1nYXApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kaWFsb2ctY29udGVudC1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIHdpZHRoOiBtaW4oMTAwJSwgdmFyKC0tZGlhbG9nLWNvbnRlbnQtbWF4LXdpZHRoKSk7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG59XG5kaWFsb2cubW9kYWxbb3Blbl0ge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2xhdGU6IDAgMDtcbiAgZGlzcGxheTogZmxleDtcbn1cbkBzdGFydGluZy1zdHlsZSB7XG4gIGRpYWxvZy5tb2RhbFtvcGVuXSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2xhdGU6IHZhcigtLWRpYWxvZy10cmFuc2xhdGUtbGVhdmUpO1xuICB9XG59XG5kaWFsb2cubW9kYWxbb3Blbl06OmJhY2tkcm9wIHtcbiAgb3BhY2l0eTogMTtcbn1cbkBzdGFydGluZy1zdHlsZSB7XG4gIGRpYWxvZy5tb2RhbFtvcGVuXTo6YmFja2Ryb3Age1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbmRpYWxvZy5tb2RhbCBidXR0b24uZGlhbG9nXFw6Y2xvc2Uge1xuICBtYXJnaW4tYmxvY2stc3RhcnQ6IGNhbGMoMC41ICogdmFyKC0tZGlhbG9nLWdhcCkpO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG46cm9vdDpoYXMoZGlhbG9nLm1vZGFsW29wZW5dKSBbZGF0YS1tb2RhbF0ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNvbnRlbnQtYmxvY2sge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMSk7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbHVtbi1jb3VudCksIDFmcik7XG59XG4uY29udGVudC1ibG9jazplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uY29udGVudC1ibG9jay50aGluIHtcbiAgcGFkZGluZy10b3A6IHZhcigtLWd1dHRlcjIpO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ3V0dGVyMik7XG59XG4uY29udGVudC1ibG9jay5ibG93b3V0LnRoZW1lZCB+IC5jb250ZW50LWJsb2NrOm5vdCguYmxvd291dCkudGhlbWVkIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMCk7XG59XG4uY29udGVudC1ibG9jazpub3QoLmJsb3dvdXQpLnRoZW1lZCB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG59XG4uY29udGVudC1ibG9jazpub3QoLmJsb3dvdXQpLnRoZW1lZDpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZXIwKTtcbn1cbi5jb250ZW50LWJsb2NrICsgLmNvbnRlbnQtYmxvY2sge1xuICBib3gtc2hhZG93OiAwcHggLTFweCB2YXIoLS1ib3JkZXItdG9wLWNvbG91ciwgI2RjZGNkYyk7XG59XG4uY29udGVudC1ibG9jay5ob3Jpem9udGFsLWJsb2NrcyB7XG4gIGJveC1zaGFkb3c6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc3BhY2VyMCk7XG59XG4uY29udGVudC1ibG9jay5ob3Jpem9udGFsLWJsb2NrczpoYXMoLnRleHQgKyBidXR0b24tY29udGFpbmVyKSB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogdmFyKC0tZ3V0dGVyMSkgdmFyKC0tZ3V0dGVyMCk7XG59XG4uY29udGVudC1ibG9jay5ob3Jpem9udGFsLWJsb2NrczpoYXMoLnRleHQgKyBidXR0b24tY29udGFpbmVyKSAudGV4dCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC13cmFwOiBiYWxhbmNlO1xufVxuLmNvbnRlbnQtYmxvY2suaG9yaXpvbnRhbC1ibG9ja3M6aGFzKC50ZXh0ICsgYnV0dG9uLWNvbnRhaW5lcikgYnV0dG9uLWNvbnRhaW5lciAuYnV0dG9uIHtcbiAgZm9udC1zaXplOiBzbWFsbDtcbn1cbi5jb250ZW50LWJsb2NrLmhvcml6b250YWwtYmxvY2tzOmhhcygudGV4dCArIGJ1dHRvbi1jb250YWluZXIpIC50ZXh0LFxuLmNvbnRlbnQtYmxvY2suaG9yaXpvbnRhbC1ibG9ja3M6aGFzKC50ZXh0ICsgYnV0dG9uLWNvbnRhaW5lcikgYnV0dG9uLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGNvbnRlbnRzO1xufVxuLmNvbnRlbnQtYmxvY2sgOmlzKGgyLCBoMywgaDQsIGg1LCBoNikge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xufVxuLmNvbnRlbnQtYmxvY2suZ3JleSB7XG4gIGJhY2tncm91bmQ6ICNmNGY0ZjQ7XG59XG4uY29udGVudC1ibG9jay5yZWQge1xuICBiYWNrZ3JvdW5kOiAjZGYzMDM1O1xufVxuLmNvbnRlbnQtYmxvY2suYmx1ZSB7XG4gIGJhY2tncm91bmQ6ICMxMzFmNmI7XG59XG4uY29udGVudC1ibG9jay5ibGFjayB7XG4gIGJhY2tncm91bmQ6ICMxZTFjMWM7XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gIC0taGVhZGluZy1jb2xvdXI6IHdoaXRlO1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbn1cbi5jb250ZW50LWJsb2NrLnNpZGUtYnktc2lkZS1jb21wb25lbnRzIHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgZ2FwOiAwO1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4uY29udGVudC1ibG9jay5zaWRlLWJ5LXNpZGUtY29tcG9uZW50cyA+ICoge1xuICBncmlkLWNvbHVtbjogYXV0bztcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xufVxuLmNvbnRlbnQtYmxvY2suc2lkZS1ieS1zaWRlLWNvbXBvbmVudHMgPiAqLmNvbnRhaW5lci1pbmxpbmUge1xuICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zcGFjZXIxKTtcbn1cbi5jb250ZW50LWJsb2NrLnNpZGUtYnktc2lkZS1jb21wb25lbnRzID4gKi5lY29wb3N0ZS1iYW5uZXIge1xuICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2VyMSk7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5tYWluOmhhcyg+IC5jb250ZW50LWJsb2NrLnNpZGUtYnktc2lkZS1jb21wb25lbnRzKSB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn1cbm1haW46aGFzKD4gLmNvbnRlbnQtYmxvY2suc2lkZS1ieS1zaWRlLWNvbXBvbmVudHMpIC5zaWRlLWJ5LXNpZGUtY29tcG9uZW50cyB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG5AbWVkaWEgKHdpZHRoIDwgOTAwcHgpIHtcbiAgLmNvbnRlbnQtYmxvY2suc2lkZS1ieS1zaWRlLWNvbXBvbmVudHMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG5cbi50ZXh0IGEge1xuICAtLWZvbnQtY29sb3VyOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIC50ZXh0IGE6aG92ZXIge1xuICAgIC0tZm9udC1jb2xvdXI6IHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG4gIH1cbn1cbi50ZXh0IGEgYS5idXR0b24ge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbi50ZXh0IHVsID4gbGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnJTNFJTNDY2lyY2xlIGZpbGw9JyUyM0RGMzAzNScgY3g9JzgnIGN5PSc4JyByPSc4Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIHN0cm9rZT0nd2hpdGUnIHN0cm9rZS13aWR0aD0nMS40JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgZD0nTTMuNSA4LjRsMi43IDIuNyA2LjMtNi4zJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuLnRleHQgdWwgPiBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLWxpc3Qtc3R5bGUtc2l6ZSwgMWVtKSAqIDEuOCk7XG59XG4udGV4dCB1bCA+IGxpICsgbGkge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1saW5lLXN0eWxlLXNwYWNpbmcsIHZhcigtLWdhcCkpO1xufVxuLnRleHQgdWwgPiBsaTo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0b3A6IDAuMWVtO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiB2YXIoLS1saXN0LXN0eWxlLXNpemUsIDFlbSk7XG4gIGhlaWdodDogdmFyKC0tbGlzdC1zdHlsZS1zaXplLCAxZW0pO1xufVxuLnRleHQgb2wge1xuICBjb3VudGVyLXJlc2V0OiBjb3VudGVyO1xufVxuLnRleHQgb2wgPiBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMjJweDtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWxpc3Qtc3R5bGUtb2Zmc2V0LCAwKTtcbn1cbi50ZXh0IG9sID4gbGkgKyBsaSB7XG4gIG1hcmdpbi10b3A6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG4udGV4dCBvbCA+IGxpOjpiZWZvcmUge1xuICBjb250ZW50OiBjb3VudGVyKGNvdW50ZXIpIFwiLlwiO1xuICBjb3VudGVyLWluY3JlbWVudDogY291bnRlcjtcbiAgY29sb3I6IHZhcigtLWxpc3Qtc3R5bGUtY29sb3VyLCB2YXIoLS1wcmltYXJ5KSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbn1cbi50ZXh0IHA6ZW1wdHksIC50ZXh0IHAgPiBiciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udGV4dCA+ICo6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcCk7XG59XG4udGV4dCA+ICogdWwsIC50ZXh0ID4gKiBvbCB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG59XG4udGV4dCBoMiwgLnRleHQgaDMsIC50ZXh0IGg0LCAudGV4dCBoNSwgLnRleHQgaDYge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xufVxuLnRleHQgLmhlYWRpbmctaDMge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbn1cbi50ZXh0IFtzdHlsZSo9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIl0ge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA4MDBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi50ZXh0IC5xdW90ZXMge1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICNkY2RjZGM7XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwKTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuLnRleHQgZmlndXJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiB2YXIoLS1nYXApO1xufVxuLnRleHQgZmlndXJlIGltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi50ZXh0IGhyIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMCkgIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2VyMCkgIWltcG9ydGFudDtcbn1cbi50ZXh0IC5ub3RlIHtcbiAgbWFyZ2luOiBjYWxjKHZhcigtLWdhcCkgKiAyKSAwO1xufVxuXG4uZGFyayB7XG4gIC0taHItY29sb3VyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gIC0tbGlzdC1zdHlsZS1jb2xvdXI6IHdoaXRlO1xufVxuLmRhcmsgLnRleHQge1xuICBjb2xvcjogd2hpdGU7XG4gIC0taGVhZGluZy1jb2xvdXI6d2hpdGU7XG59XG4uZGFyayAudGV4dCBhLmJ1dHRvbiB7XG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xufVxuLmRhcmsgLnRleHQgYTpub3QoLmJ1dHRvbikge1xuICAtLWZvbnQtY29sb3VyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDJweDtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIC5kYXJrIC50ZXh0IGE6bm90KC5idXR0b24pOmhvdmVyIHtcbiAgICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgfVxufVxuLmRhcmsucmVkIC50ZXh0IHVsID4gbGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnJTNFJTNDY2lyY2xlIGZpbGw9JyUyM0ZGRkZGRicgY3g9JzgnIGN5PSc4JyByPSc4Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzREYzMDM1JyBzdHJva2Utd2lkdGg9JzEuNCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J00zLjUgOC40bDIuNyAyLjcgNi4zLTYuMycvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cbi5kYXJrLmJsdWUgLnRleHQgdWwgPiBsaTo6YmVmb3JlIHtcbiAgY29udGVudDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNiclM0UlM0NjaXJjbGUgZmlsbD0nJTIzRkZGRkZGJyBjeD0nOCcgY3k9JzgnIHI9JzgnLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMxMzFGNkInIHN0cm9rZS13aWR0aD0nMS40JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgZD0nTTMuNSA4LjRsMi43IDIuNyA2LjMtNi4zJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuXG4uY29udGFpbnMtc3ZncyAudGV4dCBmaWd1cmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDAgdmFyKC0tZ2FwKTtcbn1cbi5jb250YWlucy1zdmdzIC50ZXh0IGZpZ3VyZSBpbWcge1xuICBoZWlnaHQ6IDEyMHB4O1xufVxuXG50YWJsZS1jb250YWluZXIge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogdmFyKC0tZ2FwKTtcbn1cbnRhYmxlLWNvbnRhaW5lciA+IGRpdiB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBkaXNwbGF5OiBncmlkO1xufVxudGFibGUtY29udGFpbmVyID4gZGl2Om5vdCg6aG92ZXIpIHtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG50YWJsZS1jb250YWluZXIgPiBkaXY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDAuOWVtO1xuICBoZWlnaHQ6IDAuOWVtO1xufVxudGFibGUtY29udGFpbmVyID4gZGl2Ojotd2Via2l0LXNjcm9sbGJhci1idXR0b24ge1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBub25lO1xufVxudGFibGUtY29udGFpbmVyID4gZGl2Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5Njk2OTU7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlcjogNHB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMCk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG50YWJsZS1jb250YWluZXIgPiBkaXY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG50YWJsZS1jb250YWluZXIgPiBkaXY6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxudGFibGUtY29udGFpbmVyIGgzIHtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxudGFibGUtY29udGFpbmVyIHRhYmxlLnRhYmxlIHtcbiAgd2lkdGg6IGF1dG87XG4gIGdyaWQtcm93OiAxO1xuICBncmlkLWNvbHVtbjogMTtcbn1cbnRhYmxlLWNvbnRhaW5lciB0YWJsZS50YWJsZS5mYWtlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCh2YXIoLS14KSk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS14KSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG59XG50YWJsZS1jb250YWluZXIgdGFibGUudGFibGUuZmFrZSB0Ym9keSB0ciB0ZCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItcmlnaHQ6IDFweCAjZGNkY2RjIGRhc2hlZDtcbn1cbnRhYmxlLWNvbnRhaW5lciB0YWJsZS50YWJsZS5mYWtlIHRib2R5IHRyOm50aC1vZi10eXBlKG9kZCkgdGQge1xuICBiYWNrZ3JvdW5kOiAjZjRmNGY0O1xufVxudGFibGUtY29udGFpbmVyIHRhYmxlLnRhYmxlLmZha2UgdGhlYWQgdHIgdGg6Zmlyc3Qtb2YtdHlwZSB7XG4gIGJvcmRlci1yaWdodDogMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSBkYXNoZWQ7XG59XG50YWJsZS1jb250YWluZXIgdGFibGUudGFibGUuZmFrZSB0aGVhZCB0ciB0aDpub3QoOmZpcnN0LW9mLXR5cGUpLCB0YWJsZS1jb250YWluZXIgdGFibGUudGFibGUuZmFrZSB0Ym9keSB0ciB0ZDpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuQHN1cHBvcnRzICh3cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyKSB7XG4gIHRhYmxlLWNvbnRhaW5lci5lbmFibGUtdmVydGljYWwtaGVhZGluZ3MgdGFibGUudGFibGUgdGhlYWQgdHIgdGg6bm90KDpmaXJzdC1vZi10eXBlKSBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjtcbiAgICBtYXgtd2lkdGg6IDUwcHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgfVxufVxudGFibGUtY29udGFpbmVyIG5hdiB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZ3JpZC1yb3c6IDE7XG4gIGdyaWQtY29sdW1uOiAyO1xuICBkaXNwbGF5OiBub25lO1xufVxudGFibGUtY29udGFpbmVyIG5hdiBidXR0b24ubmF2aWdhdGlvbiB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xufVxudGFibGUtY29udGFpbmVyIG5hdiBidXR0b24ubmF2aWdhdGlvbiArIGJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxudGFibGUtY29udGFpbmVyIG5hdiArIGRpdiB7XG4gIGdyaWQtY29sdW1uOiAxL3NwYW4gMjtcbn1cbnRhYmxlLWNvbnRhaW5lci5zY3JvbGxlZC1yaWdodCBidXR0b24ubmV4dCwgdGFibGUtY29udGFpbmVyLnNjcm9sbGVkLWxlZnQgYnV0dG9uLnByZXZpb3VzIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG50YWJsZS1jb250YWluZXIuZW5hYmxlLXNjcm9sbC1idXR0b25zIG5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG50YWJsZS1jb250YWluZXIgYnV0dG9uLm5hdmlnYXRpb24ge1xuICAtLWJ1dHRvbi1zaXplOiA0MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogdmFyKC0tYnV0dG9uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLWJ1dHRvbi1zaXplKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgY29sb3I6ICM2YTZhNmE7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7XG59XG50YWJsZS1jb250YWluZXIgYnV0dG9uLm5hdmlnYXRpb24ucHJldmlvdXMgc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IC0ycHg7XG59XG50YWJsZS1jb250YWluZXIgYnV0dG9uLm5hdmlnYXRpb24ubmV4dCBzdmcge1xuICBtYXJnaW4tbGVmdDogMnB4O1xufVxudGFibGUtY29udGFpbmVyIGJ1dHRvbi5uYXZpZ2F0aW9uIHN2ZyB7XG4gIHdpZHRoOiBjYWxjKHZhcigtLWJ1dHRvbi1zaXplKSAvIDIuNSk7XG4gIGhlaWdodDogY2FsYyh2YXIoLS1idXR0b24tc2l6ZSkgLyAyLjUpO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgdGFibGUtY29udGFpbmVyIGJ1dHRvbi5uYXZpZ2F0aW9uOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzEzMWY2YjtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxudGFibGUudGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cbnRhYmxlLnRhYmxlIHRoZWFkIHRyIHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIHBhZGRpbmc6IHZhcigtLWdhcCk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbnRhYmxlLnRhYmxlIHRoZWFkIHRyIHRoOmZpcnN0LW9mLXR5cGUge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxudGFibGUudGFibGUgdGhlYWQgdHIgdGg6bGFzdC1vZi10eXBlIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG50YWJsZS50YWJsZSB0Ym9keSB0ciB0ZCB7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgdmFyKC0tZ2FwKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxudGFibGUudGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3Qtb2YtdHlwZSB7XG4gIG1pbi13aWR0aDogMjAwcHg7XG59XG50YWJsZS50YWJsZSB0Ym9keSB0ciB0ZCBzdHJvbmcge1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogIzZhNmE2YTtcbn1cbnRhYmxlLnRhYmxlIHRib2R5IHRyIHRkIGEge1xuICBjb2xvcjogIzEzMWY2YjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICB0YWJsZS50YWJsZSB0Ym9keSB0ciB0ZCBhOmhvdmVyIHtcbiAgICBjb2xvcjogI2RmMzAzNTtcbiAgfVxufVxudGFibGUudGFibGUgdGJvZHkgdHIgdGQgc3ZnIHtcbiAgLS1maWxsOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgd2lkdGg6IDFlbTtcbiAgaGVpZ2h0OiAxZW07XG59XG50YWJsZS50YWJsZSB0Ym9keSB0ciB0ZCBzdmcuY3Jvc3Mge1xuICAtLWZpbGw6ICNkZjMwMzU7XG59XG50YWJsZS50YWJsZSB0Ym9keSB0ciB0ZCBzdmcudGljayB7XG4gIC0tZmlsbDogIzUwYmMwODtcbn1cbnRhYmxlLnRhYmxlIHRyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxudGFibGUudGFibGUgdHI6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG59XG50YWJsZS50YWJsZSB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbn1cbnRhYmxlLnRhYmxlLmFsdGVybmF0aW5nLXJvdy1jb2xvdXJzIHRib2R5IHRyOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxudGFibGUudGFibGUubGFzdC1jb2x1bW4taXMtZ3JlZW4gdGJvZHkgdHIgdGQ6bGFzdC1vZi10eXBlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEzMWY2YjtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uZGFyayB0YWJsZS1jb250YWluZXIgPiBoMywgLmRhcmsuY29udGVudC1ibG9jayAudGFiLWNvbnRlbnQgPiBoMyB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kYXJrIHRhYmxlLWNvbnRhaW5lciA+IGRpdiwgLmRhcmsuY29udGVudC1ibG9jayAudGFiLWNvbnRlbnQgPiBkaXYge1xuICBib3JkZXItcmFkaXVzOiBpbml0aWFsO1xufVxuLmRhcmsgdGFibGUtY29udGFpbmVyIHRhYmxlLnRhYmxlLCAuZGFyay5jb250ZW50LWJsb2NrIC50YWItY29udGVudCB0YWJsZS50YWJsZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbn1cbi5kYXJrIHRhYmxlLWNvbnRhaW5lciB0YWJsZS50YWJsZSB0ciB0aCwgLmRhcmsuY29udGVudC1ibG9jayAudGFiLWNvbnRlbnQgdGFibGUudGFibGUgdHIgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuLmRhcmsgdGFibGUtY29udGFpbmVyIHRhYmxlLnRhYmxlIHRyLCAuZGFyay5jb250ZW50LWJsb2NrIC50YWItY29udGVudCB0YWJsZS50YWJsZSB0ciB7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuLmRhcmsgdGFibGUtY29udGFpbmVyIHRhYmxlLnRhYmxlIHRyOm50aC1vZi10eXBlKG9kZCksIC5kYXJrLmNvbnRlbnQtYmxvY2sgLnRhYi1jb250ZW50IHRhYmxlLnRhYmxlIHRyOm50aC1vZi10eXBlKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuXG5maWd1cmUuaW1hZ2Uuc3RhdGljIHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmNGY0ZjQ7XG4gIGhlaWdodDogZml0LWNvbnRlbnQ7XG59XG5maWd1cmUuaW1hZ2Uuc3RhdGljIGltZyB7XG4gIC0taW1hZ2UtaGVpZ2h0LXNpemU6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbmZpZ3VyZS5pbWFnZS5zdGF0aWMgZmlnY2FwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgdmFyKC0tZ2FwKTtcbn1cbmZpZ3VyZS5pbWFnZS5zdGF0aWMubm8tY2FwdGlvbiB7XG4gIGJvcmRlcjogbm9uZTtcbn1cbmZpZ3VyZS5pbWFnZS5zdGF0aWMuY3JvcC1pbWFnZSB7XG4gIC0tYXNwZWN0LXJhdGlvOiAxNi85O1xuICBhc3BlY3QtcmF0aW86IHZhcigtLWFzcGVjdC1yYXRpbyk7XG4gIC0tYXNwZWN0LXJhdGlvOiBpbmhlcml0O1xufVxuZmlndXJlLmltYWdlLnN0YXRpYy5jcm9wLWltYWdlIGZpZ2NhcHRpb24ge1xuICBib3R0b206IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiAxNi85KSB7XG4gIGZpZ3VyZS5pbWFnZS5zdGF0aWMuY3JvcC1pbWFnZSB7XG4gICAgYXNwZWN0LXJhdGlvOiBpbml0aWFsO1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDEwMCUgLyAodmFyKC0tYXNwZWN0LXJhdGlvKSkpO1xuICAgIGhlaWdodDogMDtcbiAgfVxuICBmaWd1cmUuaW1hZ2Uuc3RhdGljLmNyb3AtaW1hZ2UgPiAqIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbn1cbmZpZ3VyZS5pbWFnZS5zdGF0aWMuY3JvcC1pbWFnZSBpbWcge1xuICAtLWltYWdlLWhlaWdodC1zaXplOiAxMDAlO1xufVxuXG4uaW1hZ2UubG9hZC1pbi12aWV3IGltZyB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSk7XG59XG4uaW1hZ2UubG9hZC1pbi12aWV3IGltZzpub3QoW3NyY10pIHtcbiAgb3BhY2l0eTogMDtcbn1cblxuaW1hZ2VzLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMCk7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KGNhbGModmFyKC0tbWFpbi1tYXgtd2lkdGgpIC8gKHZhcigtLWltYWdlcy1wZXItcm93KSArIDEpKSwgMWZyKSk7XG59XG5pbWFnZXMtY29udGFpbmVyLmNyb3AtaW1hZ2VzIC5pbWFnZSB7XG4gIC0tYXNwZWN0LXJhdGlvOiA0LzM7XG4gIGFzcGVjdC1yYXRpbzogdmFyKC0tYXNwZWN0LXJhdGlvKTtcbiAgLS1hc3BlY3QtcmF0aW86IGluaGVyaXQ7XG59XG5Ac3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86IDQvMykge1xuICBpbWFnZXMtY29udGFpbmVyLmNyb3AtaW1hZ2VzIC5pbWFnZSB7XG4gICAgYXNwZWN0LXJhdGlvOiBpbml0aWFsO1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDEwMCUgLyAodmFyKC0tYXNwZWN0LXJhdGlvKSkpO1xuICAgIGhlaWdodDogMDtcbiAgfVxuICBpbWFnZXMtY29udGFpbmVyLmNyb3AtaW1hZ2VzIC5pbWFnZSA+ICoge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxufVxuaW1hZ2VzLWNvbnRhaW5lci5jcm9wLWltYWdlcyAuaW1hZ2UgaW1nIHtcbiAgLS1pbWFnZS1oZWlnaHQtc2l6ZTogMTAwJTtcbn1cbkBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMS8xKSB7XG4gIGltYWdlcy1jb250YWluZXIuY3JvcC1pbWFnZXMgLmltYWdlIGltZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG59XG5pbWFnZXMtY29udGFpbmVyLmNyb3AtaW1hZ2VzIC5pbWFnZSBmaWdjYXB0aW9uIHtcbiAgYm90dG9tOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxudGFiYmVkLWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogMTAwJTtcbn1cbnRhYmJlZC1jb250ZW50ID4gbmF2IGJ1dHRvbiB7XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxudGFiYmVkLWNvbnRlbnQgPiBuYXYgYnV0dG9uW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbnRhYmJlZC1jb250ZW50ID4gbmF2IGJ1dHRvbiBzdmcge1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xufVxudGFiYmVkLWNvbnRlbnQgc3VtbWFyeSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZy10b3A6IHZhcigtLWdhcCk7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1nYXApO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLWd1dHRlcjEpO1xuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgYm9yZGVyLXJhZGl1cyB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgb3V0bGluZTogbm9uZTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxudGFiYmVkLWNvbnRlbnQgc3VtbWFyeTo6bWFya2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnRhYmJlZC1jb250ZW50IHN1bW1hcnksIHRhYmJlZC1jb250ZW50IHN1bW1hcnkgLmhlYWRpbmcge1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICBmb250LWZhbWlseTogbGF0bywgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBmb250LXNpemU6IDEuMDYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxudGFiYmVkLWNvbnRlbnQgc3VtbWFyeSAuaGVhZGluZyB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG50YWJiZWQtY29udGVudCBzdW1tYXJ5IHN2ZyB7XG4gIGhlaWdodDogOHB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xuICB0b3A6IGNhbGMoNTAlIC0gNHB4KTtcbn1cbnRhYmJlZC1jb250ZW50IHN1bW1hcnk6aG92ZXIsIHRhYmJlZC1jb250ZW50IGRldGFpbHNbb3Blbl0gc3VtbWFyeTpob3ZlciB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IzFjMmQ5Yztcbn1cbnRhYmJlZC1jb250ZW50IC50YWItY29udGVudCB7XG4gIGdyaWQtZ2FwOiB2YXIoLS1zcGFjZXIwKSAwO1xuICBvdXRsaW5lOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGdyaWQtYXV0by1yb3dzOiBtaW4tY29udGVudDtcbn1cbnRhYmJlZC1jb250ZW50IC50YWItY29udGVudDpub3QoW2hpZGRlbl0pIHtcbiAgZGlzcGxheTogZ3JpZDtcbn1cbnRhYmJlZC1jb250ZW50IC50YWItY29udGVudCAuaGVhZGluZy1oNCB7XG4gIGZvbnQtc2l6ZTogMS41NjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGNvbG9yOiAjZGYzMDM1O1xufVxudGFiYmVkLWNvbnRlbnQgLnRhYi1jb250ZW50IC5oZWFkaW5nLWg1IHtcbiAgZm9udC1zaXplOiAxLjA2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cbnRhYmJlZC1jb250ZW50IC50YWItY29udGVudCAudGFibGUtY29udGFpbmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG50YWJiZWQtY29udGVudCAudGFiLWNvbnRlbnQgLnRhYmxlLWNvbnRhaW5lci5oYWx2ZXMge1xuICBtYXgtd2lkdGg6IDQwJTtcbiAgbWFyZ2luOiAwIDUlIDAgMDtcbn1cbnRhYmJlZC1jb250ZW50IC50YWItY29udGVudCAudGFibGUtY29udGFpbmVyLmhhbHZlczpudGgtb2YtdHlwZSgybikge1xuICBtYXJnaW46IDAgMCAwIDUlO1xufVxudGFiYmVkLWNvbnRlbnQgLnRhYi1jb250ZW50IC50YWJsZS1jb250YWluZXIudGhpcmRzIHtcbiAgbWF4LXdpZHRoOiAzMCU7XG59XG50YWJiZWQtY29udGVudCAudGFiLWNvbnRlbnQgLnRhYmxlLWNvbnRhaW5lci50aGlyZHM6bnRoLW9mLXR5cGUoM24gLSAxKSB7XG4gIG1hcmdpbjogMCA1JTtcbn1cbnRhYmJlZC1jb250ZW50IHRhYmxlLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xufVxudGFiYmVkLWNvbnRlbnQ6bm90KFtkYXRhLXN0eWxlPVwiM1wiXSkuaW4tdmlldyA+IG5hdiBidXR0b25bYXJpYS1zZWxlY3RlZD10cnVlXSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSBhbmQgKG1heC13aWR0aDogMTMwMHB4KSwgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgdGFiYmVkLWNvbnRlbnQ6bm90KC5tYXJrZXRzKS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyB7XG4gICAgZ3JpZC1nYXA6IHZhcigtLWdhcCkgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Om5vdCgubWFya2V0cykuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgPiBuYXYge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMge1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Om5vdCgubWFya2V0cykuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlsc1toaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMgc3VtbWFyeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMgLnRhYi1jb250ZW50IHtcbiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjZXIwKSB2YXIoLS1ndXR0ZXIxKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMgLnRhYi1jb250ZW50ID4gKiB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Om5vdCgubWFya2V0cykuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyAudGFiLWNvbnRlbnQgZmlndXJlLmltYWdlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Om5vdCgubWFya2V0cykuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlsc1tvcGVuXSBzdW1tYXJ5IHtcbiAgICAtLWJhY2tncm91bmQtY29sb3VyOiMwZjE5NTY7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbb3Blbl0gc3VtbWFyeSBzdmcge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQ6bm90KC5tYXJrZXRzKS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzW29wZW5dIC50YWItY29udGVudCA+ICoge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCI0XCJdLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIHtcbiAgZ3JpZC1nYXA6IHZhcigtLWdhcCkgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZ3JpZDtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCI0XCJdLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nID4gbmF2IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjRcIl0uYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjRcIl0uYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlsc1toaWRkZW5dIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiNFwiXS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIHN1bW1hcnkge1xuICBkaXNwbGF5OiBmbGV4O1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjRcIl0uYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyAudGFiLWNvbnRlbnQge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjZXIwKSB2YXIoLS1ndXR0ZXIxKSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiNFwiXS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIC50YWItY29udGVudCA+ICoge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBvcGFjaXR5OiAwO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjRcIl0uYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyAudGFiLWNvbnRlbnQgZmlndXJlLmltYWdlIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCI0XCJdLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbb3Blbl0gc3VtbWFyeSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IzBmMTk1NjtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiNFwiXS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzW29wZW5dIHN1bW1hcnkgc3ZnIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCI0XCJdLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbb3Blbl0gLnRhYi1jb250ZW50ID4gKiB7XG4gIG9wYWNpdHk6IDE7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTAwMHB4KSB7XG4gIHRhYmJlZC1jb250ZW50Lm1hcmtldHMuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcge1xuICAgIGdyaWQtZ2FwOiB2YXIoLS1nYXApICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgfVxuICB0YWJiZWQtY29udGVudC5tYXJrZXRzLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nID4gbmF2IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIHtcbiAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgfVxuICB0YWJiZWQtY29udGVudC5tYXJrZXRzLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIHN1bW1hcnkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIC50YWItY29udGVudCB7XG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2VyMCkgdmFyKC0tZ3V0dGVyMSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIC50YWItY29udGVudCA+ICoge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0YWJiZWQtY29udGVudC5tYXJrZXRzLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMgLnRhYi1jb250ZW50IGZpZ3VyZS5pbWFnZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICB0YWJiZWQtY29udGVudC5tYXJrZXRzLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbb3Blbl0gc3VtbWFyeSB7XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG91cjojMGYxOTU2O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzW29wZW5dIHN1bW1hcnkgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Lm1hcmtldHMuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlsc1tvcGVuXSAudGFiLWNvbnRlbnQgPiAqIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIxXCJdIHtcbiAgLS1zaWRlLW5hdi13aWR0aDogMjAwcHg7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0tc2lkZS1uYXYtd2lkdGgpIDFmcjtcbiAgZ3JpZC1nYXA6IHZhcigtLWd1dHRlcjEpO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjFcIl0gPiBuYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICB0b3A6IGNhbGModmFyKC0tYnJlYWRjcnVtYi1oZWlnaHQpICsgdmFyKC0tYW5jaG9ycy1oZWlnaHQpIC0gdmFyKC0tZ3V0dGVyMSkpO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjFcIl0gPiBuYXYgYnV0dG9uIHtcbiAgcGFkZGluZzogdmFyKC0tZ2FwKSAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMVwiXSA+IG5hdiBidXR0b24gc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWdhcCk7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMVwiXSA+IG5hdiBidXR0b24gKyBidXR0b24ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYztcbn1cblxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjJcIl0gPiBuYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIyXCJdID4gbmF2IGJ1dHRvbiB7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDIpIHZhcigtLWd1dHRlcjIpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMlwiXSA+IG5hdiBidXR0b24gc3ZnIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIHRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIyXCJdID4gbmF2IGJ1dHRvbjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG4gIH1cbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIyXCJdID4gbmF2IGJ1dHRvblthcmlhLXNlbGVjdGVkPXRydWVdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIyXCJdIC50YWItY29udGVudCB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNlcjEpIHZhcigtLWd1dHRlcjEpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI2Y0ZjRmNCwgd2hpdGUpO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjJcIl0uaW52aWV3IG5hdiBidXR0b25bYXJpYS1zZWxlY3RlZD10cnVlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIHRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIyXCJdOm5vdCguYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcpW2RhdGEtY291bnQ9XCIyXCJdIFtyb2xlPXRhYl0ge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwKTtcbiAgfVxufVxuXG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSA+IG5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSA+IG5hdiBidXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgei1pbmRleDogMTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIHBhZGRpbmc6IHZhcigtLWdhcCkgdmFyKC0tZ3V0dGVyMSk7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSA+IG5hdiBidXR0b24gc3ZnIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIzXCJdID4gbmF2IGJ1dHRvblthcmlhLXNlbGVjdGVkPXRydWVdIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgdGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjNcIl0gPiBuYXYgYnV0dG9uOm5vdChbYXJpYS1zZWxlY3RlZD10cnVlXSk6aG92ZXIge1xuICAgIGNvbG9yOiAjZGYzMDM1O1xuICB9XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSA+IG5hdjpub3QoLmhhcy1tYXJrZXIpIGJ1dHRvblthcmlhLXNlbGVjdGVkPXRydWVdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEzMWY2Yjtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIzXCJdID4gbmF2IG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbiAgcGFkZGluZzogaW5pdGlhbDtcbiAgdHJhbnNpdGlvbjogaW5pdGlhbDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEzMWY2YjtcbiAgd2lkdGg6IDUwJTtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSA+IG5hdiBtYXJrLmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSAudGFiLWNvbnRlbnQge1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIxKSAwO1xufVxuXG4uZXhwZXJ0cy1pbi15b3VyLWJ1c2luZXNzIHtcbiAgLS1zZWNvbmRhcnk6ICNkZjMwMzU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbn1cbnNpZGUtYmFyIC5leHBlcnRzLWluLXlvdXItYnVzaW5lc3Mge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuc2lkZS1iYXIgLmV4cGVydHMtaW4teW91ci1idXNpbmVzcyAuY29udGFpbmVyLWlubGluZSB7XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcjIpICFpbXBvcnRhbnQ7XG59XG5zaWRlLWJhciAuZXhwZXJ0cy1pbi15b3VyLWJ1c2luZXNzIC5jb250YWluZXItaW5saW5lID4gLnRleHQge1xuICBwYWRkaW5nLXRvcDogMDtcbn1cblxuLmV4cGVydHMtaW4teW91ci1idXNpbmVzcy50aGVtZWQgLmNvbnRhaW5lci1pbmxpbmUge1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIxKSB2YXIoLS1ndXR0ZXIxKSB2YXIoLS1ndXR0ZXIxKSB2YXIoLS1ndXR0ZXIyKTtcbn1cbi5leHBlcnRzLWluLXlvdXItYnVzaW5lc3MgLnRleHQge1xuICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1ndXR0ZXIxKTtcbn1cbi5leHBlcnRzLWluLXlvdXItYnVzaW5lc3MgLnRleHQgdWwgPiBsaTo6YmVmb3JlIHtcbiAgY29udGVudDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNiclM0UlM0NjaXJjbGUgZmlsbD0nJTIzREYzMDM1JyBjeD0nOCcgY3k9JzgnIHI9JzgnLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgc3Ryb2tlPSd3aGl0ZScgc3Ryb2tlLXdpZHRoPScxLjQnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJyBkPSdNMy41IDguNGwyLjcgMi43IDYuMy02LjMnLyUzRSUzQy9zdmclM0VcIikgIWltcG9ydGFudDtcbn1cbi5leHBlcnRzLWluLXlvdXItYnVzaW5lc3MgLnRleHQgPiBoMiB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWd1dHRlcjEpO1xufVxuLmV4cGVydHMtaW4teW91ci1idXNpbmVzcyBidXR0b24tY29udGFpbmVyIHtcbiAgZ2FwOiB2YXIoLS1nYXApO1xufVxuLmV4cGVydHMtaW4teW91ci1idXNpbmVzcyBidXR0b24tY29udGFpbmVyIC5idXR0b24ge1xuICBtYXJnaW46IDA7XG59XG4uZXhwZXJ0cy1pbi15b3VyLWJ1c2luZXNzIGZpZ3VyZS5pbWFnZS5zdGF0aWMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZ3JpZC1jb2x1bW46IDI7XG4gIGdyaWQtcm93OiAxL3NwYW4gMjtcbiAgbWF4LXdpZHRoOiAyNjBweDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYWxpZ24tc2VsZjogZW5kO1xuICBqdXN0aWZ5LXNlbGY6IGZsZXgtZW5kO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ndXR0ZXIyLSk7XG59XG4uZXhwZXJ0cy1pbi15b3VyLWJ1c2luZXNzIC5jb250YWluZXItaW5saW5lIHtcbiAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IHZhcigtLWd1dHRlcjEpO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG59XG4uZXhwZXJ0cy1pbi15b3VyLWJ1c2luZXNzIC5jb250YWluZXItaW5saW5lID4gKjpub3QoZmlndXJlKSB7XG4gIGdyaWQtY29sdW1uOiAxO1xufVxuQGNvbnRhaW5lciAod2lkdGggPCA1MDBweCkge1xuICAuZXhwZXJ0cy1pbi15b3VyLWJ1c2luZXNzIC5jb250YWluZXItaW5saW5lIGZpZ3VyZS5pbWFnZS5zdGF0aWMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvcGFjaXR5OiAwLjE7XG4gICAgei1pbmRleDogLTE7XG4gIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gTm9ybWFsaXNlcnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLyBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlXG4vLy8gQGF1dGhvciBBdXRob3JzIG5hbWVcbi8vLyBAc2VlIGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzXG5cbiRub3JtYWxpc2UgICAgICAgICA6IHRydWUgIWRlZmF1bHQ7XG4kYmFzZS1lbGVtZW50cyAgICAgOiB0cnVlICFkZWZhdWx0O1xuJHNlY3Rpb24tZWxlbWVudHMgIDogdHJ1ZSAhZGVmYXVsdDtcbiRoZWFkZXItZWxlbWVudHMgICA6IHRydWUgIWRlZmF1bHQ7XG4kZ3JvdXBpbmctZWxlbWVudHMgOiB0cnVlICFkZWZhdWx0O1xuJHRhYmxlLWVsZW1lbnRzICAgIDogdHJ1ZSAhZGVmYXVsdDtcbiRmb3JtLWVsZW1lbnRzICAgICA6IHRydWUgIWRlZmF1bHQ7XG4kZW1iZWRkZWQtZWxlbWVudHMgOiB0cnVlICFkZWZhdWx0O1xuJHRleHQtZWxlbWVudHMgICAgIDogdHJ1ZSAhZGVmYXVsdDtcbiRkZXYtZWxlbWVudHMgICAgICA6IHRydWUgIWRlZmF1bHQ7XG5cbkBpZiAkbm9ybWFsaXNlIHtcblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblx0Ly8gQmFzZSBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJGJhc2UtZWxlbWVudHMge1xuXG5cdFx0aHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLFxuXHRcdGJsb2NrcXVvdGUsIHByZSwgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLCBkZWwsIGRmbiwgZW0sXG5cdFx0aW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCwgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhciwgYiwgdSwgaSxcblx0XHRjZW50ZXIsIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLCB0YWJsZSxcblx0XHRjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLCBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLFxuXHRcdGVtYmVkLCBmaWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LFxuXHRcdHNlY3Rpb24sIHN1bW1hcnksIHRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXHRcdH1cblxuXHRcdDpyb290IHtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHQtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG5cdFx0fVxuXG5cdFx0KiwgKjphZnRlciwgKjpiZWZvcmUge1xuXHRcdFx0Jjpmb2N1cyB7IG91dGxpbmU6MDsgfTtcblx0XHRcdGJveC1zaXppbmc6aW5oZXJpdDtcblx0XHR9XG5cblx0XHRodG1sIHsgXG5cdFx0XHRoZWlnaHQ6MTAwJTsgXG5cdFx0XHRmb250LXNpemU6NjIuNSU7IFxuXHRcdFx0YmxvY2stc2l6ZTogMTAwJTtcblx0XHRcdGlubGluZS1zaXplOiAxMDAlO1xuXHRcdH1cblxuXHRcdGJvZHkgeyBcblx0XHRcdG1pbi1ibG9jay1zaXplOiAxMDAlO1xuXHRcdFx0bWluLWlubGluZS1zaXplOiAxMDAlO1xuXHRcdH1cblxuXHRcdGh0bWwsIGJvZHkge1xuXHRcdFx0bWluLWhlaWdodDoxMDAlO1xuXHRcdH1cblxuXHRcdHAsIHByZSwgYmxvY2txdW90ZSwgb2wsIHVsLCBsaSwgbGVnZW5kLCBmaWdjYXB0aW9uLCBib2R5LCBhcnRpY2xlLCBuYXYsIGFzaWRlLCBzZWN0aW9uLCBoZWFkZXIsIGZvb3RlciwgYWRkcmVzcyB7XG5cdFx0XHQmOmVtcHR5IHsgZGlzcGxheTpub25lOyB9XG5cdFx0fVxuXG5cdFx0YXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIG1haW4sIG1lbnUsIG5hdiwgc2VjdGlvbiwgc3VtbWFyeSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cblx0XHRzdmcsIHN5bWJvbCB7IG92ZXJmbG93OnZpc2libGU7IH1cblxuXHRcdGRldGFpbHMgeyBkaXNwbGF5OiBibG9jaztcdH1cblxuXHRcdHN1bW1hcnkge1xuXHRcdFx0ZGlzcGxheTogbGlzdC1pdGVtO1xuXHRcdFx0LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7XG5cdFx0XHQmOjotd2Via2l0LWRldGFpbHMtbWFya2VyLCAmOjptYXJrZXIgeyBkaXNwbGF5Om5vbmU7IH1cblx0XHR9XG5cblx0XHR0ZW1wbGF0ZSB7IGRpc3BsYXk6IG5vbmU7XHR9XG5cblx0XHRbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cdC8vIFNlY3Rpb24gRWxlbWVudHNcblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cblx0QGlmICRzZWN0aW9uLWVsZW1lbnRzIHtcblxuXHRcdGJvZHkge1xuXHRcdFx0dGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcblx0XHRcdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHR9XG5cblx0XHRhZGRyZXNzIHtcblx0XHRcdGZvbnQtc3R5bGU6bm9ybWFsO1xuXHRcdH1cblxuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cdC8vIEhlYWRlciBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJGhlYWRlci1lbGVtZW50cyB7XG5cblx0XHRoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcblx0XHRcdC13ZWJraXQtbWFyZ2luLWJlZm9yZTowZW07XG5cdFx0XHQtd2Via2l0LW1hcmdpbi1hZnRlcjowZW07XG5cdFx0XHQtd2Via2l0LW1hcmdpbi1zdGFydDowcHg7XG5cdFx0XHQtd2Via2l0LW1hcmdpbi1lbmQ6MHB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHR9XG5cblx0fVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXHQvLyBHcm91cGluZyBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJGdyb3VwaW5nLWVsZW1lbnRzIHtcblxuXHRcdGhyIHtcblx0XHRcdGJvcmRlcjpub25lO1xuXHRcdFx0aGVpZ2h0OjFweDtcblx0XHRcdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7XG5cdFx0fVxuXG5cdFx0YmxvY2txdW90ZSwgcSB7XG5cdFx0XHRxdW90ZXM6IG5vbmU7XG5cdFx0XHQmOmJlZm9yZSwgJjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHRjb250ZW50OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHByZSB7XG5cdFx0XHRmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG5cdFx0XHRmb250LXNpemU6IDFlbTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHRcdFx0Y29sb3I6IGJsYWNrO1xuXHRcdFx0cGFkZGluZzoxNnB4O1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHR6LWluZGV4Ojk5OTk7XG5cdFx0fVxuXG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblx0Ly8gVGFibGUgRWxlbWVudHNcblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cblx0QGlmICR0YWJsZS1lbGVtZW50cyB7XG5cblx0XHR0YWJsZSB7XG5cdFx0XHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRcdFx0Ym9yZGVyLXNwYWNpbmc6IDA7XG5cdFx0fVxuXG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblx0Ly8gRm9ybSBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJGZvcm0tZWxlbWVudHMge1xuXG5cdFx0YnV0dG9uIHtcblx0XHRcdHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuXHRcdH1cblxuXHRcdGJ1dHRvbixcdGlucHV0LCBvcHRncm91cCxcdHNlbGVjdCxcdHRleHRhcmVhIHtcblx0XHRcdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRcdFx0Zm9udC1zaXplOiAxMDAlO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuMTU7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXG5cdFx0YnV0dG9uLFx0aW5wdXQge1xuXHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7XG5cdFx0fVxuXG5cdFx0YnV0dG9uLFx0c2VsZWN0IHtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdH1cblxuXHRcdGJ1dHRvbixcblx0XHRbdHlwZT1cImJ1dHRvblwiXSxcblx0XHRbdHlwZT1cInJlc2V0XCJdLFxuXHRcdFt0eXBlPVwic3VibWl0XCJdIHtcblx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuXHRcdFx0YmFja2dyb3VuZDpub25lO1xuXHRcdFx0Ym9yZGVyOm5vbmU7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRtYXJnaW46MDtcblx0XHRcdGN1cnNvcjpwb2ludGVyO1xuXHRcdFx0Jjpmb2N1cyB7IG91dGxpbmU6MDsgfVxuXHRcdH1cblxuXHRcdGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblx0XHRbdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblx0XHRbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuXHRcdFt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcblx0XHRcdGJvcmRlci1zdHlsZTogbm9uZTtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXG5cdFx0YnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuXHRcdFt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuXHRcdFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5cdFx0W3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuXHRcdFx0b3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xuXHRcdH1cblxuXHRcdGZpZWxkc2V0IHtcblx0XHRcdHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcblx0XHR9XG5cblx0XHRsZWdlbmQge1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblx0XHR9XG5cblx0XHRwcm9ncmVzcyB7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cdFx0fVxuXG5cdFx0W3R5cGU9XCJjaGVja2JveFwiXSxcblx0XHRbdHlwZT1cInJhZGlvXCJdIHtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblxuXHRcdFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuXHRcdFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcblx0XHRcdGhlaWdodDogYXV0bztcblx0XHR9XG5cblx0XHRbdHlwZT1cInNlYXJjaFwiXSB7XG5cdFx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcblx0XHRcdG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuXHRcdH1cblxuXHRcdFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcblx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0XHR9XG5cdFx0Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG5cdFx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcblx0XHRcdGZvbnQ6IGluaGVyaXQ7XG5cdFx0fVxuXG5cdFx0W2Rpc2FibGVkXSB7XG5cdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0fVxuXG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblx0Ly8gRW1iZWRkZWQgRWxlbWVudHNcblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cblx0QGlmICRlbWJlZGRlZC1lbGVtZW50cyB7XG5cblx0XHRpbWcge1xuXHRcdFx0Ym9yZGVyLXN0eWxlOiBub25lO1xuXHRcdH1cblxuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cdC8vIFRleHQgRWxlbWVudHNcblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cblx0QGlmICR0ZXh0LWVsZW1lbnRzIHtcblxuXHRcdGVtIHtcblx0XHRcdGZvbnQtc3R5bGU6aXRhbGljO1xuXHRcdH1cblxuXHRcdGEge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjpub25lO1xuXHRcdFx0dG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cdFx0fVxuXG5cdFx0YWJiclt0aXRsZV0ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuXHRcdH1cblxuXHRcdGIsIHN0cm9uZyB7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHR9XG5cblx0XHRjb2RlLFx0a2JkLCBzYW1wIHtcblx0XHRcdGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcblx0XHRcdGZvbnQtc2l6ZTogMWVtO1xuXHRcdH1cblxuXHRcdHNtYWxsIHtcblx0XHRcdGZvbnQtc2l6ZTogODAlO1xuXHRcdH1cblxuXHRcdHN1Yiwgc3VwIHtcblx0XHRcdGZvbnQtc2l6ZTogNzUlO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDA7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cdFx0fVxuXG5cdFx0c3ViIHtcblx0XHRcdGJvdHRvbTogLTAuMjVlbTtcblx0XHR9XG5cblx0XHRzdXAge1xuXHRcdFx0dG9wOiAtMC41ZW07XG5cdFx0fVxuXG5cdFx0dGV4dGFyZWEge1xuXHRcdFx0cmVzaXplOm5vbmU7XG5cdFx0XHRvdmVyZmxvdzogYXV0bztcblx0XHR9XG5cblx0fVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXHQvLyBEZXZlbG9wbWVudCBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJGRldi1lbGVtZW50cyB7XG5cblx0XHRwcmUge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcblx0XHRcdGNvbG9yOmJsYWNrO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06bm9uZTtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjpub25lO1xuXHRcdFx0dGV4dC1hbGlnbjpsZWZ0O1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdGZvbnQtc2l6ZToxNnB4O1xuXHRcdFx0cGFkZGluZzoxNnB4O1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHR6LWluZGV4Ojk5OTtcblx0XHR9XG5cdFx0XG5cdFx0Ym9keS5kZXZtb2RlIHtcblx0XHRcdGltZzpub3QoW2FsdF0pIHtcblx0XHRcdFx0Ym9yZGVyOiAycHggcmVkIGRhc2hlZDtcblx0XHRcdH1cblx0XHR9XG5cblx0fVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEdsb2JhbCBTdHlsaW5nXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdfbW9kdWxlcycgYXMgKjtcblxuYm9keSB7XG4gIHdpZHRoOiAxMDB2dztcbiAgQGluY2x1ZGUgYnJlYWstb3V0KG1pbikge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgfVxufVxuXG46d2hlcmUoKikge1xuICBzY3JvbGwtbWFyZ2luLXRvcDogdmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDJyZW0pO1xufVxuXG4uYXN5bmMtaGlkZSB7XG4gIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbn1cblxubWFpbjplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmZpZ3VyZS5pbWFnZSxcbnBpY3R1cmUuaW1hZ2Uge1xuICBAaW5jbHVkZSBpbWFnZS1zcmNzZXQoKTtcbn1cblxudmlkZW8tY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgdmlkZW8tY29udGFpbmVyKCk7XG59XG5cbio6aGFzKD4gLmNvbnRhaW5lci1pbmxpbmUpIHtcbiAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xufVxuXG5tYXJrIHtcbiAgQGluY2x1ZGUgbWFyaygpO1xufVxuXG5kZXRhaWxzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbnN1bW1hcnkge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICY6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIsXG4gICY6Om1hcmtlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5oZWFkZXIgLmJ1dHRvbiB7XG4gICYuYnJvY2h1cmUge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1icm9jaHVyZSgpO1xuICB9XG59XG5cbi5idXR0b24ge1xuICBAaW5jbHVkZSBidXR0b24oKTtcbiAgJi5yZWQgc3ZnIHtcbiAgICAmLnRpY2ssXG4gICAgJi5kb3dubG9hZCB7XG4gICAgICAtLXN0cm9rZTogI3skcmVkfTtcbiAgICB9XG4gIH1cbiAgJi5ibHVlIHN2ZyB7XG4gICAgJi50aWNrLFxuICAgICYuZG93bmxvYWQge1xuICAgICAgLS1zdHJva2U6ICN7JGJsdWV9O1xuICAgIH1cbiAgfVxuICAmLm91dGxpbmUgc3ZnIHtcbiAgICAmLnRpY2ssXG4gICAgJi5kb3dubG9hZCB7XG4gICAgICAtLXN0cm9rZTogI3skd2hpdGV9O1xuICAgIH1cbiAgfVxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgJi5yZWQge1xuICAgICAgc3ZnLnRpY2ssXG4gICAgICBzdmcuZG93bmxvYWQge1xuICAgICAgICAtLXN0cm9rZTogI3skd2hpdGV9O1xuICAgICAgfVxuICAgICAgJi5vdXRsaW5lIHN2ZyB7XG4gICAgICAgICYudGljayxcbiAgICAgICAgJi5kb3dubG9hZCB7XG4gICAgICAgICAgLS1zdHJva2U6ICN7JHJlZH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5ibHVlIHtcbiAgICAgIHN2Zy50aWNrLFxuICAgICAgc3ZnLmRvd25sb2FkIHtcbiAgICAgICAgLS1zdHJva2U6ICN7JHdoaXRlfTtcbiAgICAgIH1cbiAgICAgICYub3V0bGluZSBzdmcge1xuICAgICAgICAmLnRpY2ssXG4gICAgICAgICYuZG93bmxvYWQge1xuICAgICAgICAgIC0tc3Ryb2tlOiAjeyRibHVlfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLndoaXRlIHN2ZyB7XG4gICAgICAmLnRpY2ssXG4gICAgICAmLmRvd25sb2FkIHtcbiAgICAgICAgLS1zdHJva2U6ICN7JGJsdWV9O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5idXR0b24tY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWNvbnRhaW5lcigpO1xufVxuXG4uc3RpY2t5IHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwcHg7XG59XG5cbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgJjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbixcbiAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICY6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cbn1cblxuI2hvbGRpbmctcGFnZSB7XG4gIGhlYWRlciBzdmcge1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWstaW4oJ3NtYWxsLW1lZGl1bScpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogJGd1dHRlcjtcbiAgfVxufVxuXG5ib2R5I2Vycm9yLTQwNCB7XG4gIGhlYWRlciBoMiB7XG4gICAgbWF4LXdpZHRoOiA5MDBweDtcbiAgfVxuICBzZWFyY2gtYmFyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyMDtcbiAgICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkYmx1ZTtcbiAgICB9XG4gIH1cbn1cblxuYm9keSA+IC5pZGxlLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGJveC1zaGFkb3c6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBib3R0b206ICRndXR0ZXItO1xuICB6LWluZGV4OiAyO1xuXG4gIC8qIFN0YXJ0IGhpZGRlbiBiZWxvdyB2aWV3cG9ydCAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIC8qIEFuaW1hdGlvbiB3aXRoIGRlbGF5ZWQgc3RhcnQgKi9cbiAgYW5pbWF0aW9uOiBzbGlkZS1pbi1pZGxlLWRpYWxvZyBib3RoO1xuICBhbmltYXRpb24tdGltZWxpbmU6IHNjcm9sbCgpO1xuICBhbmltYXRpb24tcmFuZ2U6IGNhbGModmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDBweCkpIGNhbGModmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDBweCkgKyBjYWxjKGNsYW1wKDJyZW0sIDV2aCwgM3JlbSkgKiAyKSk7XG5cbiAgLmJ1dHRvbiB7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHJnYmEod2hpdGUsIDAuNSk7XG4gIH1cblxuICBAa2V5ZnJhbWVzIHNsaWRlLWluLWlkbGUtZGlhbG9nIHtcbiAgICB0byB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHJlbSk7XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3QgI2NvbnRhY3QtbW9kYWwge1xuICAgIC0tZGlhbG9nLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvdXI6ICN7JGdyZXkzfTtcbiAgICBmb3JtIC5zdWJtaXQtcm93IHtcbiAgICAgIG1hcmdpbi10b3A6ICRndXR0ZXI7XG4gICAgfVxuICB9XG59XG5cbmJvZHkgPiAuYmFjay10by10b3Age1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogJGd1dHRlcjtcbiAgcmlnaHQ6ICRndXR0ZXI7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2stdG8tdG9wLWJhY2tncm91bmQsICRibHVlMik7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHotaW5kZXg6IDk5OTk7XG4gIG9wYWNpdHk6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uLCBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLCBib3R0b20gJHRyYW5zaXRpb247XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgc3ZnIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHdpZHRoOiA1MCU7XG4gICAgdG9wOiAtNCU7XG4gIH1cbiAgQGluY2x1ZGUgaG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1saWdodCwgJHJlZCk7XG4gIH1cbn1cblxuZm9vdGVyI2Zvb3Rlci5pbi12aWV3IH4gLmJhY2stdG8tdG9wIHtcbiAgYm90dG9tOiAxMjBweDtcbn1cblxubmF2aWdhdGlvbi1iYXI6bm90KC5pbi12aWV3KSB+IC5iYWNrLXRvLXRvcCB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEJyZWFrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYnJlYWtcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBvdXQoJGJyZWFrcG9pbnQpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6I3skYnJlYWtwb2ludCArIDF9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGluKCRicmVha3BvaW50KSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiN7JGJyZWFrcG9pbnR9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGJldHdlZW4oJG1pbiwgJG1heCkge1xuICBAbWVkaWEgKG1pbi13aWR0aDojeyRtaW59KSBhbmQgKG1heC13aWR0aDojeyRtYXh9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEltYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjaW1hZ2Vcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ3Bvc2l0aW9uJztcblxuQG1peGluIHNyY3NldCgkcG9zaXRpb246ZmFsc2UpIHtcblxuICBkaXNwbGF5ICAgICAgICAgICAgIDogYmxvY2s7XG5cdGJhY2tncm91bmQtcG9zaXRpb24gOiB2YXIoLS1wb3NpdGlvbiwgY2VudGVyIDMzJSk7XG5cdGJhY2tncm91bmQtc2l6ZSAgICAgOiBjb3Zlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQgICA6IG5vLXJlcGVhdDtcblx0b3ZlcmZsb3cgICAgICAgICAgICA6IGhpZGRlbjtcblxuXHRAaWYgJHBvc2l0aW9uID09ICdleHBhbmRlZCcgeyBcblx0XHRAaW5jbHVkZSBwb3NpdGlvbi5leHBhbmRlZDtcblx0fSBAZWxzZSBpZiAkcG9zaXRpb24gPT0gJ2Jsb3dvdXQnIHsgXG5cdFx0QGluY2x1ZGUgcG9zaXRpb24uYmxvd291dDtcblx0fSBAZWxzZSB7XG5cdFx0cG9zaXRpb24gOiByZWxhdGl2ZTsgXG5cdH1cblx0XG4gIGltZyB7XG4gICAgZGlzcGxheSAgICAgICAgIDogYmxvY2s7XG4gICAgcG9zaXRpb24gICAgICAgIDogYWJzb2x1dGU7XG4gICAgb2JqZWN0LWZpdCAgICAgIDogY292ZXI7XG4gICAgb2JqZWN0LXBvc2l0aW9uIDogdmFyKC0taW1hZ2UtcG9zaXRpb24sIGNlbnRlciAzMy4zMyUpO1xuXHRcdHdpZHRoICAgICAgICAgICA6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcblx0XHRoZWlnaHQgICAgICAgICAgOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpOyBcblx0XHRtYXgtd2lkdGggICAgICAgOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG5cdFx0bWF4LWhlaWdodCAgICAgIDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcblx0XHR0b3AgICAgICAgICAgICAgOiAwOyBcblx0XHRsZWZ0ICAgICAgICAgICAgOiAwO1xuXHR9XG5cblx0QGNvbnRlbnQ7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBBc3BlY3QgUmF0aW8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYXNwZWN0LXJhdGlvXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlIFwic2FzczpzdHJpbmdcIjtcblxuLy8vIEBleGFtcGxlIEBpbmNsdWRlIGFzcGVjdC1yYXRpbygxNi85KVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvKCRyYXRpbyA6ICcxNi85Jykge1xuXG4gIC0tYXNwZWN0LXJhdGlvOiAje3N0cmluZy51bnF1b3RlKCRyYXRpbyl9O1xuICBhc3BlY3QtcmF0aW86IHZhcigtLWFzcGVjdC1yYXRpbyk7XG5cbiAgQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiAje3N0cmluZy51bnF1b3RlKCRyYXRpbyl9KSB7XG4gICAgYXNwZWN0LXJhdGlvOmluaXRpYWw7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJS8odmFyKC0tYXNwZWN0LXJhdGlvKSkpO1xuICAgIGhlaWdodDogMDtcbiAgICA+ICogeyBwb3NpdGlvbjogYWJzb2x1dGU7IH0gXG4gIH1cbn0iLCJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICdjb2xsZWN0aW9ucy9zdHlsaW5nL2FzcGVjdC1yYXRpbycgYXMgKjtcblxuQG1peGluIGNvbnRhaW5lcigkcmF0aW86JzE2LzknKSB7XG5cdFxuXHRAaW5jbHVkZSBhc3BlY3QtcmF0aW8oJHJhdGlvKTtcblxuXHRkaXNwbGF5ICAgICAgICAgIDogYmxvY2s7XG5cdHBvc2l0aW9uICAgICAgICAgOiByZWxhdGl2ZTtcblx0d2lkdGggICAgICAgICAgICA6IDEwMCU7XG5cdGJhY2tncm91bmQtY29sb3IgOiBibGFjaztcblxuXHRpZnJhbWUsIGNhbnZhcyB7XG5cdFx0cG9zaXRpb24gOiBhYnNvbHV0ZTtcblx0XHRkaXNwbGF5ICA6IGJsb2NrO1xuXHRcdHRvcCAgICAgIDogMDsgXG5cdFx0bGVmdCAgICAgOiAwO1xuXHRcdGhlaWdodCAgIDogMTAwJSAhaW1wb3J0YW50OyBcblx0XHR3aWR0aCAgICA6IDEwMCUgIWltcG9ydGFudDtcblx0fVxufSIsIkB1c2UgJy4uL192YXJpYWJsZXMnIGFzICo7XG5cbkBtaXhpbiBtYXJrKCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Vycy1tYXJrO1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoI3skYm9yZGVyLXJhZGl1c30gLyAyKTtcbiAgcGFkZGluZzowIDVweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb24sIGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb247XG59XG5cbkBtaXhpbiBtYXJrLXJlc2V0KCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbiAgcGFkZGluZzppbml0aWFsO1xuICB0cmFuc2l0aW9uOiBpbml0aWFsO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb2xvdXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLy8gRXhwbGljaXQgQ29sb3VycyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIEV4cGxpY2l0IGNvbG91cnMgYXJlIGEgd2hhdCB0aGV5IGFyZS4gR3JlZW4gaXMgZ3JlZW4sIGJsdWUgaXMgYmx1ZS4uLiBubyBvYnNjdXJpdHkuXG4vLy8gV2Ugc3VmZml4IG51bWJlcnMgdG8gZGVmaW5lIHZhcmlhdGlvbnMgb2YgY29sb3VycyBpbiBubyBwYXJ0aWN1bGFyIG9yZGVyIG9mIHNoYWRlLlxuLy8vIEV4YW1wbGU6IGdyZWVuMSwgZ3JlZW4yLCBncmVlbjMsIGdyZWVuNC4gVGhpcyBpcyBzbyB3ZSBjYW4gaW1taWRpYXRlbHkgc2VlIGhvd1xuLy8vIG1hbnkgb3B0aW9ucyB3ZSBoYXZlIGZvciBhIHNpbmdsZSBjb2xvdXIgYXQgYSBnbGFuY2UuIElmIHlvdSBzZWUgJGdyZWVuNCwgeW91IGtub3cgdGhpc1xuLy8vIHByb2plY3QgaXMgdXNpbmcgZm91ciB2YXJpYXRpb25zIG9mIGdyZWVuLiBUaGlzIGlzIGFsc28gb2Z0ZW4gdXNlZnVsIGJlY2F1c2UgbWFueSBkZXZlbG9wbWVudFxuLy8vIHRvb2xzIHdpbGwgYXV0by1zdWdnZXN0IGNvbG91cnMgd2l0aCBhY3R1YWwgZXhhbXBsZXMgb2YgdGhlIGNvbG91ci5cbi8vLyBUaGUgUGFsbGV0ZXMgbW9kdWxlIChhdCB0aGUgYm90dG9tIG9mIHRoaXMgZmlsZSkgd2lsbCBvdXRwdXQgc2hhZGVkIG5hbWVkIHZhcmlhdGlvbnMsXG4vLy8vIDxjb2xvdXI+LWRhcmsgYW5kIDxjb2xvdXI+LWxpZ2h0LiBJZiB5b3UgbmVlZCBhZGRpdGlvbmFsIHNoYWRlcyBwbGVhc2UgcmVmcmFpbSBmcm9tIGdvaW5nIGRvd25cbi8vLyB0aGUgJ2xpZ2h0ZXInLCAnbGlnaHRlc3QnLCAnZGFya2VyJywgJ2Rhcmtlc3QnIGNvbnZlbnRpb24uIFRoZXNlIGFyZSBub3QgcGFydGljdWFybHkgbGVnaWFibGVcbi8vLyBhbmQgdGhleSBhcmUgbGltaXRlZCBieSBob3cgY3JlYXRpdmUgKGNvbmZ1c2luZykgeW91ciB3b3JkaW5nIGNhbiBiZS5cbi8vLyBJdCBpcyBiZXR0ZXIgdG8gZGVmaW5lIGEgbmV3IGV4cGxjaXQgY29sb3VyIGVudGlyZWx5LlxuLy8vIEBzZWUgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS93aGF0LWRvLXlvdS1uYW1lLWNvbG9yLXZhcmlhYmxlcy9cblxuJGJsdWU6ICMxMzFmNmI7IC8vIFByaW1hcnlcbiRibHVlMjogIzI5MmI2ODsgLy8gTmFrZWQgTGlua1xuJGJsdWUzOiAjM2QzZjdmOyAvLyBMaWdudCBHcmFkaWVudFxuJGJsdWU0OiAjMTAxMjRkOyAvLyBEYXJrIEdyYWRpZW50XG4kYmx1ZTU6ICMwMDk1ZmY7IC8vIE5hdmlnYXRpb24gbGluayBob3ZlclxuLy8gJHJlZCAgICA6ICNFMDNBNDA7IC8vIFNlY29uZGFyeVxuJHJlZDogI2RmMzAzNTsgLy8gU2Vjb25kYXJ5IC0gVGhpcyBwYXNzZXMgdGhlIGNvbnRyYXN0IHJhdGlvIGFjY2Vzc2liaWxpdHkgdGVzdCBpbiBHb29nbGVzIExpZ2h0aG91c2VcbiRncmV5OiAjOTY5Njk1O1xuJGdyZXkyOiAjNmE2YTZhOyAvLyBGb250XG4kZ3JleTM6ICNmNGY0ZjQ7IC8vIExpZ2h0ZXIgR3JleSBCYWNrZ3JvdW5kXG4kZ3JleTQ6ICNkY2RjZGM7XG4kZ3JleTU6ICNiMWIxYjE7IC8vIFNwYWNlcnMgPGhyPlxuJGdyZXk2OiAjMzMzMjM2OyAvLyBOYXZpZ2F0aW9uIGxpbmsgaG92ZXJcbiRncmVlbjogIzUwYmMwODtcbiRncmVlbjI6ICM3NmJiMjg7IC8vIEVTRyBncmVlblxuJHllbGxvdzogI2Y2ZjRkYjsgLy8gRGlzY2xhaW1lciBCYWNrZ3JvdW5kXG4keWVsbG93MjogI2ZjYjAwMjtcbiRvcmFuZ2U6ICNmZjZhMDA7XG4kb3JhbmdlMjogI2RhOGIwZjtcbiRibGFjazogIzFlMWMxYztcblxuJG1hcms6ICRibHVlNTsgLy8gYmFja2dyb3VuZCBjb2xvdXIgZm9yIDxtYXJrPiB0YWdzXG5cbiRwcmltYXJ5OiB2YXIoLS1wcmltYXJ5LCAjeyRibHVlfSk7XG4kc2Vjb25kYXJ5OiB2YXIoLS1zZWNvbmRhcnksICN7JHJlZH0pO1xuXG4vLy8gUGFsZXR0ZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIEJ5IGxvYWRpbmcgY29uZmlndXJhdGlvbnMgaW50byB0aGlzICdwYWxsZXRlJyBtb2R1bGUsIHdlIHdpbGwgYmUgYWJsZVxuLy8vIHRvIGRlY2xhcmUgdmFyaWFudHMgb2YgYSBmZXcgY29tbW9uIGNvbG91cnMuIFlvdSBjYW4gYWxzbyBhZGp1c3QgdGhlIGxpZ2h0bmVzc1xuLy8vIG9yIGRhcmtuZXNzIG9mIGVhY2ggdmFyaWFudCBieSBwYXNzaW5nIGluIHRoZSByZWxldmFudCBwcml2YXRlIHJ1bGVzLlxuLy8vIFBhbGV0dGUgd2lsbCBhbHNvIGV4cG9zZSBwb3B1bGFyIHNvY2lhbCBtZWRpYSBjb2xvdXJzIGFuZCB0aGUgWWVsbG8gYnJhbmQgY29sb3VyLlxuLy8vIEBzZWUgaHR0cHM6Ly9zYXNzLWxhbmcuY29tL2RvY3VtZW50YXRpb24vYXQtcnVsZXMvZm9yd2FyZCNjb25maWd1cmluZy1tb2R1bGVzXG4vLy8gQG91dHB1dCAkZ3JlZW4gOiAjMDI5MjlBOyAkZ3JlZW4tZGFyayA6ICMyNTY1Njk7ICRncmVlbi1saWdodDogIzA0YjljNDtcblxuQGZvcndhcmQgJ2NyZWF0ZS9wYWxldHRlJyB3aXRoIChcbiAgJGJsdWU6ICRibHVlLFxuICAkcmVkOiAkcmVkLFxuICAkZ3JleTogJGdyZXksXG4gICR5ZWxsb3c6ICR5ZWxsb3csXG4gICRvcmFuZ2U6ICRvcmFuZ2UsXG4gICRncmVlbjogJGdyZWVuLFxuICAkYmxhY2s6ICRibGFja1xuKTtcblxuJG1hcDogKFxuICBibHVlOiAkYmx1ZSxcbiAgcmVkOiAkcmVkLFxuICBncmV5OiAkZ3JleTMsXG4gIHllbGxvdzogJHllbGxvdyxcbiAgb3JhbmdlOiAkb3JhbmdlLFxuICBncmVlbjogJGdyZWVuLFxuICBibGFjazogJGJsYWNrLFxuKTtcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCdXR0b25zXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnc3R5bGluZycgYXMgKjtcblxuQG1peGluIGJ1dHRvbigkY29sb3VyOiB2YXIoLS1wcmltYXJ5KSkge1xuICAvLyBTdGF0aWMgU3R5bGluZ1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI3skY29sb3VyfTtcbiAgLS1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1wYWRkaW5nOiA4cHggMjBweDtcbiAgLS1mb250LXNpemU6IDE2cHg7XG4gIC0tYm9yZGVyLXJhZGl1czogNTBweDtcblxuICAvLyBIb3ZlciAvIEFjdGl2ZSBzdHlsaW5nXG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICN7JGNvbG91cn07XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IGluaXRpYWw7XG4gIC0taG92ZXItcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIC0taG92ZXItZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xuICAtLWhvdmVyLWJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuXG4gIC0taWNvbi1zaXplOiAxLjFlbTtcblxuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmcpO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSksXG4gICAgYm9yZGVyIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSk7XG5cbiAgLy8gSWNvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogdmFyKC0taWNvbi1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLWljb24tc2l6ZSk7XG4gICAgb3JkZXI6IDM7XG4gICAgZmlsbDogdmFyKC0tZmlsbCwgY3VycmVudENvbG9yKTtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1pY29uLXNpemUpIC8gMik7XG4gICAgdHJhbnNpdGlvbjogZmlsbCB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UpLCBzdHJva2UgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlKTtcblxuICAgICZbY2xhc3MqPSdhcnJvdyddIHtcbiAgICAgIC0taWNvbi1zaXplOiAwLjllbTtcbiAgICB9XG4gICAgJi5hcnJvdy1sZWZ0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1pY29uLXNpemUpIC8gMik7XG4gICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG5cbiAgPiBzcGFuIHtcbiAgICBvcmRlcjogMjtcbiAgICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG4gIH1cblxuICAvLyBWYXJpYW50IERlY2xhcmF0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAmLnNtYWxsIHtcbiAgICBAaW5jbHVkZSBzbWFsbDtcbiAgfVxuICAmLmxhcmdlIHtcbiAgICBAaW5jbHVkZSBsYXJnZTtcbiAgfVxuICAmLm91dGxpbmUge1xuICAgIEBpbmNsdWRlIG91dGxpbmUtdGhlbWUoJGJsdWUpO1xuICB9XG5cbiAgJi5ibHVlIHtcbiAgICBAaW5jbHVkZSBzb2xpZC10aGVtZSgkYmx1ZSwgd2hpdGUpO1xuICAgICYub3V0bGluZSB7XG4gICAgICBAaW5jbHVkZSBvdXRsaW5lLXRoZW1lKCRibHVlLCAkd2hpdGUpO1xuICAgIH1cbiAgfVxuICAmLnJlZCB7XG4gICAgQGluY2x1ZGUgc29saWQtdGhlbWUoJHJlZCwgd2hpdGUpO1xuICAgICYub3V0bGluZSB7XG4gICAgICBAaW5jbHVkZSBvdXRsaW5lLXRoZW1lKCRyZWQsICR3aGl0ZSk7XG4gICAgfVxuICB9XG4gICYuZ3JlZW4ge1xuICAgIEBpbmNsdWRlIHNvbGlkLXRoZW1lKCRncmVlbjIsIHdoaXRlKTtcbiAgICAmLm91dGxpbmUge1xuICAgICAgQGluY2x1ZGUgb3V0bGluZS10aGVtZSgkZ3JlZW4yLCAkd2hpdGUpO1xuICAgIH1cbiAgfVxuICAmLndoaXRlIHtcbiAgICBAaW5jbHVkZSBzb2xpZC10aGVtZSgkd2hpdGUsICRwcmltYXJ5KTtcbiAgICAmLm91dGxpbmUge1xuICAgICAgQGluY2x1ZGUgb3V0bGluZS10aGVtZSgkd2hpdGUsICRwcmltYXJ5KTtcbiAgICB9XG4gIH1cbiAgJi5kaXNhYmxlZCB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgQGluY2x1ZGUgc29saWQtdGhlbWUoJGdyZXk0KTtcbiAgICAmLm91dGxpbmUge1xuICAgICAgQGluY2x1ZGUgb3V0bGluZS10aGVtZSgkZ3JleTQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvdmVyIFN0YXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIEBpbmNsdWRlIGhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0taG92ZXItZm9udC1jb2xvdXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWhvdmVyLWJvcmRlci1jb2xvdXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWhvdmVyLWJvcmRlci1yYWRpdXMpO1xuICAgIHBhZGRpbmc6IHZhcigtLWhvdmVyLXBhZGRpbmcpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0taG92ZXItZm9udC1zaXplKTtcbiAgfVxufVxuXG4vLy8gTGFyZ2UgQnV0dG9uID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIFRoZXNlIGV4dGVuZCB0aGUgc3R5bGluZyBvZiBtYXJrdXAgZWxlbWVudHMgd2l0aCB0aGUgLmJ1dHR0b24gY2xhc3Ncbi8vLyBAY29udGVudCBpcyBwYXNzZWQgdGhyb3VnaCBpcyBmb3IgdGhlIGhvdmVyIHN0YXRlIG9ubHkuXG4vLy8gQGV4YW1wbGVcbi8vLyAuYnV0dG9uIHtcbi8vLyAgIEBpbmNsdWRlIGJ1dHRvbi1sYXJnZSB7XG4vLy8gICAgIC0tYmFja2dyb3VuZC1jb2xvdXIgOiBncmVlbjtcbi8vLyAgICAgLS1mb250LWNvbG91ciAgICAgOiByZWQ7XG4vLy8gICB9XG4vLy8gfVxuXG5AbWl4aW4gbGFyZ2Uge1xuICAtLXBhZGRpbmc6IDEycHggMjRweDtcbiAgLS1mb250LXNpemU6IDI0cHg7XG4gIEBjb250ZW50O1xufVxuXG4vLy8gU21hbGwgQnV0dG9uID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIFRoZXNlIGV4dGVuZCB0aGUgc3R5bGluZyBvZiBtYXJrdXAgZWxlbWVudHMgd2l0aCB0aGUgLmJ1dHR0b24gY2xhc3Ncbi8vLyBAY29udGVudCBpcyBwYXNzZWQgdGhyb3VnaCBpcyBmb3IgdGhlIGhvdmVyIHN0YXRlIG9ubHkuXG4vLy8gQGV4YW1wbGVcbi8vLyAuYnV0dG9uIHtcbi8vLyAgIEBpbmNsdWRlIGJ1dHRvbi1zbWFsbCB7XG4vLy8gICAgIC0tYmFja2dyb3VuZC1jb2xvdXIgOiBncmVlbjtcbi8vLyAgICAgLS1mb250LWNvbG91ciAgICAgOiByZWQ7XG4vLy8gICB9XG4vLy8gfVxuXG5AbWl4aW4gc21hbGwge1xuICAtLXBhZGRpbmc6IDZweCAxOHB4O1xuICAtLWZvbnQtc2l6ZTogMTJweDtcblxuICBzdmcge1xuICAgIG1hcmdpbi1sZWZ0OiAkZ2FwMDtcbiAgICAmLmFycm93LWxlZnQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2FwMDtcbiAgICB9XG4gIH1cblxuICBAY29udGVudDtcbn1cblxuLy8vIFZhcmllbnQgU3R5bGluZyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQG1peGluIHNvbGlkLXRoZW1lKCRzdGF0aWM6ICRwcmltYXJ5LCAkaG92ZXI6IHdoaXRlKSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICN7JHN0YXRpY307XG4gIC0tZm9udC1jb2xvdXI6ICN7JGhvdmVyfTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogI3skaG92ZXJ9O1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjeyRzdGF0aWN9O1xufVxuXG5AbWl4aW4gb3V0bGluZS10aGVtZSgkc3RhdGljOiAkcHJpbWFyeSwgJGhvdmVyOiB0cmFuc3BhcmVudCkge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogI3skc3RhdGljfTtcbiAgLS1ib3JkZXItY29sb3VyOiAjeyRzdGF0aWN9O1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjeyRzdGF0aWN9O1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAje2lmKCRob3ZlciA9PSB0cmFuc3BhcmVudCwgJHN0YXRpYywgJGhvdmVyKX07XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG59XG5cbi8vLyBCdXR0b24gQ29udGFpbmVyID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBtaXhpbiBjb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvLyBtYXJnaW4tbGVmdDokZ2FwMC07XG4gIC8vIHdpZHRoOmNhbGMoMTAwJSArICN7JGdhcH0pO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGdhcDogJGdhcDA7XG4gIC5idXR0b24ge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuLy8vIEJlc3Bva2UgQnV0dG9ucyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQG1peGluIGJyb2NodXJlIHtcbiAgLS1mb250LWNvbG91cjogI3skYmx1ZX07XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLXBhZGRpbmc6IDVweCAwcHg7XG4gIC0taWNvbi1zaXplOiAzMnB4O1xuICAtLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWJvcmRlci1yYWRpdXM6IDA7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICN7JHJlZH07XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuXG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgc3ZnIHtcbiAgICBtYXJnaW4tcmlnaHQ6ICRnYXAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGZpbGw6ICRyZWQ7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVbml0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptZXRhJztcblxuLy8gVGhpcyB1bml0cyBjcmVhdG9yIHdpbGwgcmVuZGVyIHNpeCBwb3NpdGl2ZSBhbmQgc2l4IG5lZ2F0aXZlIHNhc3MgdmFyaWFibGVzIGZvciBcbi8vIGdhcHMsIHNwYWNlcnMsIGFuZCBndXR0ZXJzIHJlbGF0aXZlIHRvIHRoZSBiYXNldiB2YWx1ZXMgZGVmaW5lZCBiZWxvdy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCYXNlIFZhbHVlcyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vY29kZXBlbi5pby9tYXJrbm90dG9uL3Blbi9FeFBiTkdlXG5cbi8vIFRoZXNlIHRocmVlIHZhbHVlcyB3aWxsIGFjdCBhIGNvbnN0YW50IGJhc2VsaW5lIGZvciBhbGwgZm9sbG93aW5nIHVuaXQgZGVsY2FyYXRpb25zLlxuXG4vLyBHYXBzIG11c3QgdXNlIGFuIGFic29sdXRlIGFuZCBzdGF0aWMgJ3B4JyB1bml0LiBJdCBzaG91bGQgbm90IGJlIHJlbGF0aXZlIHRvIGFueVxuLy8gcGFyZW50IGNvbnRhaW5lciBhbmQgaXMgbm90IGludGVuZGVkIGZvciBmb250IHNpemVzLCBzbyB5b3Ugc2hvdWxkIG5vdCB1c2UgJ3JlbScgb3IgJ2VtJy4gXG4kZ2FwIDogMTZweCAhZGVmYXVsdDtcbiRiYXNlLWdhcCA6ICRnYXA7XG5cbi8vIFNwYWNlcnMgbXVzdCB1c2UgYSAndmgnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IGhlaWdodC13aXNlLlxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zIG9uIGEgY29tcG9uZW50IGxldmVsLlxuJHNwYWNlciA6IDR2aCAhZGVmYXVsdDsgXG4kYmFzZS1zcGFjZXIgOiAkc3BhY2VyOyBcblxuLy8gR3V0dGVycyBtdXN0IHVzZSBhICd2dycgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgd2lkdGgtd2lzZS4gXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb3IgbWFyZ2luIG9uIGEgcGFyZW50IGxldmVsLlxuLy8gQXMgYSBzdWdnZXN0aW9uLCB0aGlzIGd1dHRlciBjb25zdGFudCBzaG91bGQgYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgc3BhY2VyIHZhbHVlLlxuJGd1dHRlciA6IDN2dyAhZGVmYXVsdDtcbiRiYXNlLWd1dHRlciA6ICRndXR0ZXI7IFxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQXNib2x1dGUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBHYXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR2FwcyBhcmUgYW4gYWJzb2x1dGUgdW5pdCAocHgpIGludGVuZGVkIHRvIGJlIHVzZWQgb24gaW5kaXZpZHVhbCBlbGVtZW50cyB3aXRoaW4gYSBjb21wb25lbnRlZC4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHNwYWNpbmcgYW1vbmdzdCBibG9jaywgaW5saW5lLCB0YWJsZSBhbmQgZ3JvdXAgaHRtbCBlbGVtZW50cy5cblxuQGZ1bmN0aW9uIGdhcCgkYW1vdW50IDogMSkge1xuICBAaWYgKCAkYW1vdW50ID09IDEgKSB7IFxuICAgIEByZXR1cm4gdmFyKC0tZ2FwKTsgXG4gIH0gQGVsc2UgeyBcbiAgICBAcmV0dXJuIGNhbGModmFyKC0tZ2FwKSAqICN7JGFtb3VudH0pOyBcbiAgfVxufVxuXG4kZ2FwMCA6IGdhcCgwLjUpOyAkZ2FwMC0gOiBnYXAoLTAuNSk7XG4kZ2FwICA6IGdhcCgxKTsgICAkZ2FwLSAgOiBnYXAoLTEpO1xuJGdhcDIgOiBnYXAoMik7ICAgJGdhcDItIDogZ2FwKC0yKTtcbiRnYXAzIDogZ2FwKDMpOyAgICRnYXAzLSA6IGdhcCgtMyk7XG4kZ2FwNCA6IGdhcCg0KTsgICAkZ2FwNC0gOiBnYXAoLTQpO1xuJGdhcDUgOiBnYXAoNSk7ICAgJGdhcDUtIDogZ2FwKC01KTtcbiRnYXA2IDogZ2FwKDYpOyAgICRnYXA2LSA6IGdhcCgtNik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZWxhdGl2ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBmdW5jdGlvbiBfZHluYW1pYy11bml0KCRjdXN0b20tcHJvcGVydHksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcblxuICAvLyBDYWxjIE1ldGhvZFxuICAkcmVzdWx0IDogY2FsYygoI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0pICsgI3tpZigkbWluID09IDAsIDBweCwgJG1pbil9KTtcbiAgXG4gIC8vIENsYW1wIE1ldGhvZFxuICBAaWYgKCAkdXNlLWNsYW1wICkge1xuICAgIEBpZiAoICRhbW91bnQgPT0gMCApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgje21hdGguZGl2KCRtaW4sIDIpfSwgI3skY3VzdG9tLXByb3BlcnR5fSAqIDAuNSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSBpZiAoICRhbW91bnQgPT0gMSApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSwgI3skbWF4fSk7XG4gICAgfVxuICB9IFxuXG4gIEBpZiAoICR1c2UtbmVnYXRpdmUgKSB7XG4gICAgJHJlc3VsdCA6IGNhbGMoLTEgKiAjeyRyZXN1bHR9KTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcblxufSBcblxuLy8gU3BhY2VycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNwYWNlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgaGVpZ2h0ICh2aCkgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgY29tcG9uZW50ZWQgbGV2ZWwuXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gU3BhY2VycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkc3BhY2VyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdmggc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gc3BhY2VyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLXNwYWNlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kc3BhY2VyMCA6IHZhcigtLXNwYWNlcjApOyAkc3BhY2VyMC0gOiB2YXIoLS1zcGFjZXIwLSk7XG4kc3BhY2VyICA6IHZhcigtLXNwYWNlcjEpOyAkc3BhY2VyLSAgOiB2YXIoLS1zcGFjZXIxLSk7XG4kc3BhY2VyMiA6IHZhcigtLXNwYWNlcjIpOyAkc3BhY2VyMi0gOiB2YXIoLS1zcGFjZXIyLSk7XG4kc3BhY2VyMyA6IHZhcigtLXNwYWNlcjMpOyAkc3BhY2VyMy0gOiB2YXIoLS1zcGFjZXIzLSk7XG4kc3BhY2VyNCA6IHZhcigtLXNwYWNlcjQpOyAkc3BhY2VyNC0gOiB2YXIoLS1zcGFjZXI0LSk7XG4kc3BhY2VyNSA6IHZhcigtLXNwYWNlcjUpOyAkc3BhY2VyNS0gOiB2YXIoLS1zcGFjZXI1LSk7XG4kc3BhY2VyNiA6IHZhcigtLXNwYWNlcjYpOyAkc3BhY2VyNi0gOiB2YXIoLS1zcGFjZXI2LSk7XG5cbi8vIEd1dHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHdXR0ZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IHdpZHRoICh2dykgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgcGFyZW50IGxldmVsO1xuLy8gZm9yIGV4YW1wbGUsIGEgd3JhcHBlciBjb250YWluZXIgb3IgYm9keSB3aXRoIG5lc3RlZCBjb21wb25lbnRzLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgbGVmdCBhbmQgcmlnaHQgc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBHdXR0ZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRndXR0ZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2dyBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBndXR0ZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tZ3V0dGVyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRndXR0ZXIwIDogdmFyKC0tZ3V0dGVyMCk7ICRndXR0ZXIwLSA6IHZhcigtLWd1dHRlcjAtKTtcbiRndXR0ZXIgIDogdmFyKC0tZ3V0dGVyMSk7ICRndXR0ZXItICA6IHZhcigtLWd1dHRlcjEtKTtcbiRndXR0ZXIyIDogdmFyKC0tZ3V0dGVyMik7ICRndXR0ZXIyLSA6IHZhcigtLWd1dHRlcjItKTtcbiRndXR0ZXIzIDogdmFyKC0tZ3V0dGVyMyk7ICRndXR0ZXIzLSA6IHZhcigtLWd1dHRlcjMtKTtcbiRndXR0ZXI0IDogdmFyKC0tZ3V0dGVyNCk7ICRndXR0ZXI0LSA6IHZhcigtLWd1dHRlcjQtKTtcbiRndXR0ZXI1IDogdmFyKC0tZ3V0dGVyNSk7ICRndXR0ZXI1LSA6IHZhcigtLWd1dHRlcjUtKTtcbiRndXR0ZXI2IDogdmFyKC0tZ3V0dGVyNik7ICRndXR0ZXI2LSA6IHZhcigtLWd1dHRlcjYtKTtcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gSG92ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNob3ZlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGhvdmVyKCRzZWxlY3RvciA6IG51bGwpIHtcbiAgQG1lZGlhICggaG92ZXIgOiBob3ZlciApIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkc2VsZWN0b3Ige1xuICAgICYjeyRzZWxlY3Rvcn0geyBcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEN1c3RvbSBQcm9wZXJ0aWVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdfbW9kdWxlcycgYXMgKjtcbkB1c2UgJ3Nhc3M6bWF0aCc7XG5cbjpyb290IHtcblxuICAvLyBDb2xvdXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAtLXByaW1hcnkgICAgICAgICA6ICN7JGJsdWV9OyBcbiAgLS1zZWNvbmRhcnkgICAgICAgOiAjeyRyZWR9OyBcblxuICAvLyBCcmVha3BvaW50cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAtLWJyZWFrcG9pbnQtI3skbmFtZX0gOiAjeyR2YWx1ZX07XG4gIH1cblxuICAvLyBGb250cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgXG4gIC0tZm9udC1jb2xvdXIgICAgICAgIDogI3skZm9udC1jb2xvdXJ9O1xuICAtLWhlYWRpbmctY29sb3VyICAgICA6ICN7dmFyKC0tcHJpbWFyeSwgJGJsdWUpfTtcbiAgLS1zdWItaGVhZGluZy1jb2xvdXIgOiAje3ZhcigtLXNlY29uZGFyeSwgJHJlZCl9O1xuXG4gIC8vIFRyYW5zaXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbiA6ICN7JHRyYW5zaXRpb24tZHVyYXRpb259O1xuICAtLXRyYW5zaXRpb24tZWFzZSAgICAgOiAjeyR0cmFuc2l0aW9uLWVhc2V9O1xuICAtLXRyYW5zaXRpb24tZGVsYXkgICAgOiAjeyR0cmFuc2l0aW9uLWRlbGF5fTtcblxuICAvLyBMYXlvdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAtLWJyZWFkY3J1bWItaGVpZ2h0IDogOTBweDtcbiAgLS1hbmNob3JzLWhlaWdodCA6IDYwcHg7XG4gIC0tYnJlYWRjcnVtYi1hbmQtYW5jaG9ycy1zdGlja3ktdW5kZXJzZXQgOiAtMTVweDtcbiAgLS1tYWluLW1heC13aWR0aCA6IDkwMHB4O1xuICAtLW5hdmlnYXRpb24taGVpZ2h0OiAxNDNweDtcblxuICAtLXNpZGViYXItd2lkdGggOiBjbGFtcCgjeyRzaWRlYmFyLXdpZHRoIC0gbWF0aC5kaXYoJHNpZGViYXItd2lkdGgsIDEwMCkgKiA0MH0sIDMwdncsICN7JHNpZGViYXItd2lkdGh9KTtcbiAgXG4gIEBzdXBwb3J0cyBub3QgKCB3aWR0aDpjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcbiAgICAtLXNpZGViYXItd2lkdGggOiAjeyRzaWRlYmFyLXdpZHRofTtcbiAgICBAaW5jbHVkZSBicmVhay1pbihsYXJnZSkge1xuICAgICAgLS1zaWRlYmFyLXdpZHRoIDogMzAwcHg7XG4gICAgfVxuICB9XG5cbiAgLy8gVW5pdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLS1nYXAgICAgOiAjeyRiYXNlLWdhcH07XG4gIC0tZ3V0dGVyIDogI3skYmFzZS1ndXR0ZXJ9O1xuICAtLXNwYWNlciA6ICN7JGJhc2Utc3BhY2VyfTtcbiBcbiAgLy8vIFNldCB0aGUgZ3V0dGVycyBhbmQgc3BhY2VycyB3aXRoIGNsYW1wIFxuICAvLy8gQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvY2xhbXBcbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCA2IHtcblxuICAgIC0tZ3V0dGVyI3skaX0gIDogI3tndXR0ZXIoJGkpfTsgXG4gICAgLS1ndXR0ZXIjeyRpfS0gOiAje2d1dHRlcigkaSwgJHVzZS1uZWdhdGl2ZSA6IHRydWUpfTtcblxuICAgICRzcGFjZXItZ3Jvd3RoIDogaWYoJGkgPT0gMCwgMSwgJGkgKiAzKTtcbiAgICAtLXNwYWNlciN7JGl9ICA6ICN7c3BhY2VyKCRzcGFjZXItZ3Jvd3RoKX07IFxuICAgIC0tc3BhY2VyI3skaX0tIDogI3tzcGFjZXIoJHNwYWNlci1ncm93dGgsICR1c2UtbmVnYXRpdmUgOiB0cnVlKX07XG4gIH1cbiAgXG4gIC8vLyBTZXRzIHRoZSBndXR0ZXJzIGFuZCBzcGFjZXJzIHVzaW5nIHRoZSBjYWxjIFxuICAvLy8gbWV0aG9kIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgY2xhbXBcbiAgQHN1cHBvcnRzIG5vdCAoIHdpZHRoOmNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggNiB7XG5cbiAgICAgIC0tZ3V0dGVyI3skaX0gIDogI3tndXR0ZXIoJGksICR1c2UtY2xhbXAgOiBmYWxzZSApfTsgXG4gICAgICAtLWd1dHRlciN7JGl9LSA6ICN7Z3V0dGVyKCRpLCAkdXNlLWNsYW1wIDogZmFsc2UsICR1c2UtbmVnYXRpdmUgOiB0cnVlICl9O1xuXG4gICAgICAkc3BhY2VyLWdyb3d0aCA6IGlmKCRpID09IDAsIDIsICRpICogNCk7XG4gICAgICAtLXNwYWNlciN7JGl9ICA6ICN7c3BhY2VyKCRzcGFjZXItZ3Jvd3RoLCAkdXNlLWNsYW1wIDogZmFsc2UgKX07IFxuICAgICAgLS1zcGFjZXIjeyRpfS0gOiAje3NwYWNlcigkc3BhY2VyLWdyb3d0aCwgJHVzZS1jbGFtcCA6IGZhbHNlLCAkdXNlLW5lZ2F0aXZlIDogdHJ1ZSApfTtcbiAgICB9ICAgIFxuICB9XG5cbiAgLy8vIFRoaXMgaXMgdGhlIGNhbGN1bGF0ZWQgd2lkdGggb2YgYSBzaW5nbGUgZ3V0dGVyIHRoYXQgb2NjdXJzIHdoZW4gdGhlIHVzZXJzXG4gIC8vLyB2aWV3cG9ydCBpcyBsYXJnZXIgdGhhbiB0aGUgbGFyZ2VzdCBtZWRpYSBxdWVyeSBicmVha3BvaW50LiBQcmltYXJseSB1c2VkIHRvXG4gIC8vLyBvZmZzZXQgb3ZlcmJsb3duIGNvbnRlbnQgZm9yIHByZXZlbnRpbmcgaG9yaXpvbnRhbCBzY3JvbGxpbmcgb24gdGhlIDxib2R5Pi5cbiAgLy8gLS1jb21wdXRlZC1ndXR0ZXIgOiBjYWxjKCgoMTAwdncgLSAje3ZhcigtLWJyZWFrcG9pbnQtbWF4KX0pIC8gMikgLSAje3ZhcigtLWd1dHRlcjIpfSk7XG4gIC0tY29tcHV0ZWQtZ3V0dGVyIDogY2FsYygoKDEwMHZ3IC0gI3t2YXIoLS1icmVha3BvaW50LW1heCl9KSAvIDIpKTtcblxuXG59IiwiLy8vIEdsb2JhbCB0eXBvZ3JhcGhpYyBzdHlsaW5nIHRoYXQgZWZmZWN0cyBldmVyeXRoaW5nLlxuLy8vIElmIHlvdSB3YW50IHRvIHVwZGF0ZSBzdHlsaW5nIGZvciBjb250ZW50IGJsb2NrIHRleHQgZmllbGRzLCBpbnRyb2R1Y3Rpb24gZmllbGRzLFxuLy8vIG9yIGFueXRoaW5nIGFzc2lnbmVkIGEgLnRleHQgY2xhc3Mgb24gaXQncyBjb250YWluZXIgdGhlbiBlZGl0IHRoaXMgZmlsZTpcbi8vLyBAc2VlIC9zcmMvc2Fzcy9jb21wb25lbnRzL3RleHRcblxuQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2xhdG8nO1xuICBzcmM6IHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1ib2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLWJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnbGF0byc7XG4gIHNyYzogdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1zZW1pYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1zZW1pYm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1zZW1pYm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdsYXRvJztcbiAgc3JjOiB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tcmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1yZWd1bGFyLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ21vbnRzZXJyYXQnO1xuICBzcmM6IHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnbW9udHNlcnJhdCc7XG4gIHNyYzogdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0taXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS1pdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgIHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLWl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdtb250c2VycmF0JztcbiAgc3JjOiB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbmJvZHkge1xuICBAaW5jbHVkZSBmb250LW1vbnRzZXJyYXQoKTtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyLCAkZm9udC1jb2xvdXIpO1xuICBsaW5lLWhlaWdodDogJGZvbnQtbGluZS1oZWlnaHQ7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250c2l6ZSgkZm9udC1zaXplLW1pbiwgJGZvbnQtc2l6ZS1tYXgpO1xufVxuXG5oMSB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDE7XG59XG5oMiB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDI7XG59XG5oMyB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDM7XG59XG5oNCB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDQ7XG59XG5oNSB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDU7XG59XG5oNiB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDY7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIEBpbmNsdWRlIGZvbnQtbGF0byhib2xkKTtcbiAgY29sb3I6IHZhcigtLWhlYWRpbmctY29sb3VyLCB2YXIoLS1mb250LWNvbG91cikpO1xuICB0ZXh0LXdyYXA6IHByZXR0eTtcblxuICAmLnN1Yi1oZWFkaW5nIHtcbiAgICBjb2xvcjogdmFyKC0tc3ViLWhlYWRpbmctY29sb3VyKTtcbiAgICBAaW5jbHVkZSBmb250LWxhdG8oc2VtaS1ib2xkKTtcbiAgfVxuXG4gIHNwYW4sXG4gIHN0cm9uZyxcbiAgcCB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIH1cbn1cblxucSxcbmJsb2NrcXVvdGUge1xuICBxdW90ZXM6ICfigJwnICfigJ0nICfigJgnICfigJknO1xuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IG9wZW4tcXVvdGU7XG4gIH1cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IGNsb3NlLXF1b3RlO1xuICB9XG59XG5cbmEge1xuICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXI7XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gICYuZXh0ZXJuYWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgc3ZnLmV4dGVybmFsLWxpbmsge1xuICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgd2lkdGg6IDAuOGVtO1xuICAgICAgaGVpZ2h0OiAwLjhlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgICB9XG4gIH1cbn1cblxub2wsXG51bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbn1cblxubGkge1xuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDJweDtcbiAgfVxufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogZm9udC1zaXplKDEwKTtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbn1cblxuaHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1oci1jb2xvdXIsICRncmV5NCk7XG4gIG1hcmdpbi10b3A6ICRzcGFjZXIwO1xuICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyMDtcbn1cblxuLm5vdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmNWJmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZlMTNjO1xuICBwYWRkaW5nOiAkZ3V0dGVyO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY29sb3I6ICM5NzgwMDI7XG4gIH1cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnUGxlYXNlIE5vdGUnO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogIzk3ODAwMjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2FwMDtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBGb250XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdjb2xvdXJzJyBhcyAqO1xuXG4kY29sb3VyICAgICAgOiAkZ3JleTI7XG4kc2l6ZSAgICAgICAgOiAxLjVyZW0gIWRlZmF1bHQ7XG4kc2l6ZS1taW4gICAgOiAxLjRyZW0gIWRlZmF1bHQ7IFxuJHNpemUtbWF4ICAgIDogMS42cmVtICFkZWZhdWx0OyBcbiRsaW5lLWhlaWdodCA6IDEuNiAhZGVmYXVsdDsgXG5cbiRzaXplLWgxICAgICA6IDYuMWVtICFkZWZhdWx0O1xuJHNpemUtaDEtbWluIDogNGVtICFkZWZhdWx0O1xuJHNpemUtaDIgICAgIDogMy4yZW0gIWRlZmF1bHQ7XG4kc2l6ZS1oMyAgICAgOiAyLjVlbSAhZGVmYXVsdDtcbiRzaXplLWg0ICAgICA6IDEuN2VtICFkZWZhdWx0O1xuJHNpemUtaDUgICAgIDogMS43ZW0gIWRlZmF1bHQ7XG4kc2l6ZS1oNiAgICAgOiAxLjdlbSAhZGVmYXVsdDtcbiAgXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIExhdG8gRm9udFxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBUaGlzIGZvbnQgaXQgcHJpbWFyaWx5IHVzZWQgZm9yIGhlYWRpbmdzICg8aCo+IHRhZ3MpXG4vLy8gQGV4YW1wbGUgQGluY2x1ZGUgZm9udC1sYXRvKGJvbGQpXG5cbkBtaXhpbiBsYXRvKCR3ZWlnaHQ6cmVndWxhcikge1xuXG4gIGZvbnQtZmFtaWx5OmxhdG8sIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcblxuICBAaWYgKCAkd2VpZ2h0ID09ICdyZWd1bGFyJykge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIH0gQGVsc2UgaWYgKCAkd2VpZ2h0ID09ICdzZW1pLWJvbGQnIG9yICR3ZWlnaHQgPT0gJ3NlbWlib2xkJykge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH0gQGVsc2UgaWYgKCAkd2VpZ2h0ID09ICdib2xkJykge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cblxuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIE1vbnRzZXJyYXQgRm9udFxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBUaGlzIGlzIHRoZSBiYXNlIGZvbnQgdXNlZCBmb3IgYWxsIHN0YW5kYXJkIGNvcHkgdGhyb3VnaG91dCB0aGUgc2l0ZS5cbi8vLyBAZXhhbXBsZSBAaW5jbHVkZSBmb250LW1vbnRzZXJyYXQoKVxuXG5AbWl4aW4gbW9udHNlcnJhdCgkd2VpZ2h0OnJlZ3VsYXIpIHtcblxuICBmb250LWZhbWlseTptb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICBcbiAgQGlmICggJHdlaWdodCA9PSAncmVndWxhcicpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfSBAZWxzZSBpZiAoICR3ZWlnaHQgPT0gJ2l0YWxpYycpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfSBAZWxzZSBpZiAoICR3ZWlnaHQgPT0gJ2JvbGQnKSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cblxuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBSZXNwb25zaXZlIEZvbnRzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNyZXNwb25zaXZlLWZvbnRzaXplXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICcuLi9oZWxwZXJzL2JyZWFrJztcbkB1c2UgXCJzYXNzOm1hcFwiO1xuXG5AbWl4aW4gcmVzcG9uc2l2ZS1mb250c2l6ZSgkbWluLCAkbWF4LCAkc2NhbGVyIDogMS41dncsICRicmVha3BvaW50cyA6IChtaW46OTUwcHgsIG1heDoxNjAwcHgpKSB7XG4gIFxuXHQvLyBSZXNwb25zaXZlIGZvbnRzaXplXG4gIEBzdXBwb3J0cyAoIHdpZHRoOmNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICAgIGZvbnQtc2l6ZTpjbGFtcCgjeyRtaW59LCAjeyRzY2FsZXJ9LCAjeyRtYXh9KTsgICBcblx0fVxuXG5cdC8vIFJlc3BvbnNpdmUgZm9udHNpemUgZmFsbGJhY2sgZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCAnY2xhbXAnXG5cdEBzdXBwb3J0cyBub3QgKHdpZHRoOmNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuXHRcdEBpbmNsdWRlIGJyZWFrLmluKG1hcC5nZXQoJGJyZWFrcG9pbnRzLCAnbWluJykpIHsgZm9udC1zaXplOiRtaW47IH1cblx0XHRAaW5jbHVkZSBicmVhay5vdXQobWFwLmdldCgkYnJlYWtwb2ludHMsICdtYXgnKSkgeyBmb250LXNpemU6JG1heDsgfVxuXHR9XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhlYWRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdzYXNzOnN0cmluZyc7XG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICdzYXNzOm1ldGEnO1xuQHVzZSAnc2FzczptYXRoJztcbkB1c2UgJy4vY29sbGVjdGlvbnMvZm9udCc7XG5AdXNlICcuL21vZHVsZXMvdW5pdCc7XG5cbi8vIERlZmF1bHQgSGVhZGluZyBWYWx1ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoMSA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDMuMHJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuMVxuKSAhZGVmYXVsdDtcblxuJGgyIDogKFxuICAnZm9udC1zaXplJyAgIDogMi41cmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS4zXG4pICFkZWZhdWx0O1xuXG4kaDMgOiAoXG4gICdmb250LXNpemUnICAgOiAyLjJyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRoNCA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDIuMHJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGg1IDogKFxuICAnZm9udC1zaXplJyAgIDogMS44cmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kaDYgOiAoXG4gICdmb250LXNpemUnICAgOiAxLjZyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRiYXNlIDogNjIuNSAhZGVmYXVsdDtcbiRzY2FsZXIgOiAxLjV2dyAhZGVmYXVsdDtcbiRlbmFibGUtY3JvcHBpbmcgOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRmFsbGJhY2sgTGluZS1oZWlnaHRzIHNob3VsZCB0aGV5IG5vdCBoYXZlIGJlZW4gcGFzc2VkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDEsIFwibGluZS1oZWlnaHRcIikgeyAkaDEgOiBtYXAuc2V0KCRoMSwgJ2xpbmUtaGVpZ2h0JywgMS4xKTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDIsIFwibGluZS1oZWlnaHRcIikgeyAkaDIgOiBtYXAuc2V0KCRoMiwgJ2xpbmUtaGVpZ2h0JywgMS4zKTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDMsIFwibGluZS1oZWlnaHRcIikgeyAkaDMgOiBtYXAuc2V0KCRoMywgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDQsIFwibGluZS1oZWlnaHRcIikgeyAkaDQgOiBtYXAuc2V0KCRoNCwgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDUsIFwibGluZS1oZWlnaHRcIikgeyAkaDUgOiBtYXAuc2V0KCRoNSwgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDYsIFwibGluZS1oZWlnaHRcIikgeyAkaDYgOiBtYXAuc2V0KCRoNiwgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuXG4vLyBEZWZpbmUgdGhlIHZhcmlhYmxlcyBzbyB0aGV5IGFyZSBzdGlsbCBhY2Nlc2libGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaDEtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGgxLCAnZm9udC1zaXplJyk7XG4kaDEtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGgxLCAnbGluZS1oZWlnaHQnKTtcbiRoMS1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGgxLCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGgxLCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoMS1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGgxLCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDEsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGgyLWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoMiwgJ2ZvbnQtc2l6ZScpO1xuJGgyLWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoMiwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDItZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoMiwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoMiwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDItc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoMiwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGgyLCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoMy1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDMsICdmb250LXNpemUnKTtcbiRoMy1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDMsICdsaW5lLWhlaWdodCcpO1xuJGgzLWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDMsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDMsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGgzLXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDMsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoMywgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDQtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGg0LCAnZm9udC1zaXplJyk7XG4kaDQtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGg0LCAnbGluZS1oZWlnaHQnKTtcbiRoNC1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGg0LCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGg0LCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoNC1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGg0LCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDQsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGg1LWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoNSwgJ2ZvbnQtc2l6ZScpO1xuJGg1LWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoNSwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDUtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoNSwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoNSwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDUtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoNSwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGg1LCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoNi1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDYsICdmb250LXNpemUnKTtcbiRoNi1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDYsICdsaW5lLWhlaWdodCcpO1xuJGg2LWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDYsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDYsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGg2LXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDYsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoNiwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4vLyBIYW5kbGVzIENyb3BzIHNob3VsZCB0aGV5IG5vdCBoYXZlIGJlZW4gcGFzc2VkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kX2gxLWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGgxLCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoMSwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oMi1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoMiwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDIsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDMtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDMsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGgzLCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2g0LWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGg0LCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoNCwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oNS1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoNSwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDUsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDYtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDYsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGg2LCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG5cbiRfaDEtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDEsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGgxLCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2gyLWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoMiwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oMy1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDMsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDQtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDQsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGg0LCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2g1LWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoNSwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oNi1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDYsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcblxuXG4vLyBNaXhpbnMgZm9yIGVhY2ggaGVhZGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gX3NldC1jcm9wKCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGNyb3ApIHtcblxuICBAaWYgKG1ldGEudHlwZS1vZigkY3JvcCkgPT0gJ21hcCcpIHtcblxuICAgICRmb250LXNpemUgICA6IHVuaXQuc3RyaXAoJGZvbnQtc2l6ZSkgKiAxMDtcbiAgICAkbGluZS1oZWlnaHQgOiB1bml0LnN0cmlwKCRsaW5lLWhlaWdodCk7XG4gICAgJHRvcCAgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGNyb3AsIFwidG9wXCIpLCB1bml0LnN0cmlwKG1hcC5nZXQoJGNyb3AsIFwidG9wXCIpKSwgMCk7XG4gICAgJGJvdHRvbSAgICAgIDogaWYobWFwLmhhcy1rZXkoJGNyb3AsIFwiYm90dG9tXCIpLCB1bml0LnN0cmlwKG1hcC5nZXQoJGNyb3AsIFwiYm90dG9tXCIpKSwgMCk7XG5cbiAgICBAaW5jbHVkZSBmb250LmNyb3AoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkdG9wLCAkYm90dG9tKTtcblxuICB9XG5cbn1cblxuQG1peGluIGgxKCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGgxLWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGgxLWZvbnQtc2l6ZS1taW4gYW5kICRoMS1mb250LXNpemUtbWluIDwgJGgxLWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDEtZm9udC1zaXplLW1pbil9LCAjeyRoMS1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDEtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDEtZm9udC1zaXplLCAkaDEtbGluZS1oZWlnaHQsICRfaDEtY3JvcC10b3AsICRfaDEtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoMS1saW5lLWhlaWdodDsgXG4gICAgfVxuXG4gIH1cblxufVxuXG5AbWl4aW4gaDIoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDItZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDItZm9udC1zaXplLW1pbiBhbmQgJGgyLWZvbnQtc2l6ZS1taW4gPCAkaDItZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoMi1mb250LXNpemUtbWluKX0sICN7JGgyLXNjYWxlcn0sICN7Zm9udC5zaXplKCRoMi1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoMi1mb250LXNpemUsICRoMi1saW5lLWhlaWdodCwgJF9oMi1jcm9wLXRvcCwgJF9oMi1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGgyLWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDMoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDMtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDMtZm9udC1zaXplLW1pbiBhbmQgJGgzLWZvbnQtc2l6ZS1taW4gPCAkaDMtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoMy1mb250LXNpemUtbWluKX0sICN7JGgzLXNjYWxlcn0sICN7Zm9udC5zaXplKCRoMy1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoMy1mb250LXNpemUsICRoMy1saW5lLWhlaWdodCwgJF9oMy1jcm9wLXRvcCwgJF9oMy1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGgzLWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDQoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDQtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDQtZm9udC1zaXplLW1pbiBhbmQgJGg0LWZvbnQtc2l6ZS1taW4gPCAkaDQtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoNC1mb250LXNpemUtbWluKX0sICN7JGg0LXNjYWxlcn0sICN7Zm9udC5zaXplKCRoNC1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoNC1mb250LXNpemUsICRoNC1saW5lLWhlaWdodCwgJF9oNC1jcm9wLXRvcCwgJF9oNC1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGg0LWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDUoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDUtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDUtZm9udC1zaXplLW1pbiBhbmQgJGg1LWZvbnQtc2l6ZS1taW4gPCAkaDUtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoNS1mb250LXNpemUtbWluKX0sICN7JGg1LXNjYWxlcn0sICN7Zm9udC5zaXplKCRoNS1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoNS1mb250LXNpemUsICRoNS1saW5lLWhlaWdodCwgJF9oNS1jcm9wLXRvcCwgJF9oNS1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGg1LWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDYoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDYtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDYtZm9udC1zaXplLW1pbiBhbmQgJGg2LWZvbnQtc2l6ZS1taW4gPCAkaDYtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoNi1mb250LXNpemUtbWluKX0sICN7JGg2LXNjYWxlcn0sICN7Zm9udC5zaXplKCRoNi1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wMigkaDYtZm9udC1zaXplLCAkaDYtbGluZS1oZWlnaHQsICRfaDYtY3JvcC10b3AsICRfaDYtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoNi1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVW5pdHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLyBAc2VlIGh0dHBzOi8vY29kZXBlbi5pby9tYXJrbm90dG9uL3Blbi9FeFBiTkdlXG4vLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWFya25vdHRvbi9kb2dnaXN0eWxlL2Jsb2IvbWFzdGVyL2xpYnJhcnkvc3JjL2NyZWF0ZS9fdW5pdHMuc2Nzc1xuXG4vLy8gVGhpcyB1bml0cyBjcmVhdG9yIHdpbGwgcmVuZGVyIHNpeCBwb3NpdGl2ZSBhbmQgc2l4IG5lZ2F0aXZlIHNhc3MgdmFyaWFibGVzIGZvciBcbi8vLyBnYXBzLCBzcGFjZXJzLCBhbmQgZ3V0dGVycyByZWxhdGl2ZSB0byB0aGUgYmFzZSB2YWx1ZXMgZGVmaW5lZCBiZWxvdy4gXG5cbkBmb3J3YXJkICdjcmVhdGUvdW5pdHMnIHdpdGggKFxuXG4gIC8vLyBHYXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLy8gR2FwcyBhcmUgYW4gYWJzb2x1dGUgdW5pdCAocHgpIGludGVuZGVkIHRvIGJlIHVzZWQgb24gaW5kaXZpZHVhbCBlbGVtZW50cyB3aXRoaW4gYSBjb21wb25lbnRlZC4gXG4gIC8vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHNwYWNpbmcgYW1vbmdzdCBibG9jaywgaW5saW5lLCB0YWJsZSBhbmQgZ3JvdXAgaHRtbCBlbGVtZW50cy5cbiAgLy8vIEdhcHMgbXVzdCB1c2UgYW4gYWJzb2x1dGUgYW5kIHN0YXRpYyAncHgnIHVuaXQuIEl0IHNob3VsZCBub3QgYmUgcmVsYXRpdmUgdG8gYW55XG4gIC8vLyBwYXJlbnQgY29udGFpbmVyIGFuZCBpcyBub3QgaW50ZW5kZWQgZm9yIGZvbnQgc2l6ZXMsIHNvIHlvdSBzaG91bGQgbm90IHVzZSAncmVtJyBvciAnZW0nLiBcbiAgLy8vIEByZXN1bHQgOiAkZ2FwMCwgJGdhcCwgJGdhcDIsICRnYXAzLCAkZ2FwNCwgJGdhcDUgLCAkZ2FwNiwgJGdhcDAtLCAkZ2FwLSwgJGdhcDItLCAkZ2FwMy0sICRnYXA0LSwgJGdhcDUtIGFuZCAkZ2FwNi1cbiAgXG4gICRnYXAgOiAxNnB4LFxuXG4gIC8vIFNwYWNlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFNwYWNlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgaGVpZ2h0ICh2aCkgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgY29tcG9uZW50ZWQgbGV2ZWwuXG4gIC8vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuICAvLy8gU3BhY2VycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkc3BhY2VyICogeCkgKyAkZ2FwYC4gXG4gIC8vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdmggc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuICAvLy8gU3BhY2VycyBtdXN0IHVzZSBhICd2aCcgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgaGVpZ2h0LXdpc2UuXG4gIC8vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMgb24gYSBjb21wb25lbnQgbGV2ZWwuXG4gIC8vLyBAcmVzdWx0IDogJHNwYWNlcjAsICRzcGFjZXIsICRzcGFjZXIsICRzcGFjZXIsICRzcGFjZXI0LCAkc3BhY2VyNSwgJHNwYWNlcjYsICRzcGFjZXIwLSwgJHNwYWNlci0sICRzcGFjZXItLCAkc3BhY2VyLSwgJHNwYWNlcjQtLCAkc3BhY2VyNS0gYW5kICRzcGFjZXI2LVxuICBcbiAgJHNwYWNlciA6IDR2aCwgXG5cbiAgLy8gR3V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gR3V0dGVycyBhcmUgYSByZWxhdGl2ZSB2aWV3cG9ydCB3aWR0aCAodncpIHVuaXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBhIHBhcmVudCBsZXZlbDtcbiAgLy8gZm9yIGV4YW1wbGUsIGEgd3JhcHBlciBjb250YWluZXIgb3IgYm9keSB3aXRoIG5lc3RlZCBjb21wb25lbnRzLiBcbiAgLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCBsZWZ0IGFuZCByaWdodCBzcGFjaW5nIGFtb25nc3QgJ3NlY3Rpb24nIGFuZCAnY3VzdG9tJyBlbGVtZW50cy5cbiAgLy8vIEd1dHRlcnMgd2lsbCBlcXVhdGUgdG8gc29tZXRoaW5nIGxpa2U6IGAoJGd1dHRlciAqIHgpICsgJGdhcGAuIFxuICAvLy8gVGhlICckZ2FwJyBpcyBhZGRlZCBzbyB0aGF0IHZ3IHNwYWNpbmcgd2lsbCBuZXZlciBzY2FsZSB0b28gY2xvc2UgdG8gMHB4LiBcbiAgLy8vIEd1dHRlcnMgbXVzdCB1c2UgYSAndncnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IHdpZHRoLXdpc2UuIFxuICAvLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSBsZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9yIG1hcmdpbiBvbiBhIHBhcmVudCBsZXZlbC5cbiAgLy8vIEFzIGEgc3VnZ2VzdGlvbiwgdGhpcyBndXR0ZXIgY29uc3RhbnQgc2hvdWxkIGJlIGhhbGYgdGhlIHNpemUgb2YgdGhlIHNwYWNlciB2YWx1ZS5cbiAgLy8vIEByZXN1bHQgOiAkZ3V0dGVyMCwgJGd1dHRlciwgJGd1dHRlcjIsICRndXR0ZXIzLCAkZ3V0dGVyNCwgJGd1dHRlcjUsICRndXR0ZXI2LCAkZ3V0dGVyMC0sICRndXR0ZXItLCAkZ3V0dGVyMi0sICRndXR0ZXIzLSwgJGd1dHRlcjQtLCAkZ3V0dGVyNS0gYW5kICRndXR0ZXI2LVxuICBcbiAgJGd1dHRlciA6IDN2dywgXG5cbik7XG5cbiRib3JkZXItcmFkaXVzIDogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiRzaWRlYmFyLXdpZHRoIDogNTAwcHg7IiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBMYXlvdXRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vIExheW91dCBzdHlsaW5nIHNob3VsZCBiZSB1c2VkIHRvIGFkanVzdCBsYXlvdXQgcHJvcGVydGllcyBvbmx5LlxuLy8gV2hlcmUgcG9zc2libGUsIGl0IHNob3VsZCBub3QgYmUgdXNlZCB0byBtYW5hZ2UgdGhlIGFlc3RldGljcyBvZiBhIHBhZ2UuXG4vLyBJbnN0ZWFkIG9ubHkgd2lkdGhzLCBoZWlnaHQsIGRpc3BsYXksIGdyaWQsIHBvc2l0aW9uLCBwYWRkaW5nLCBtYXJnaW5zLCBvcmRlciwgYW5kIGFsaWtlXG4vLyBzaG91bGQgYmUgdGhlIHByb3BlcnRpZXMgZGVmaW5lZCBpbiB0aGVzZSBmaWxlcy4gS2VlcCB0aGUgbGF5b3V0cyBoZXJlIGFuZFxuLy8gY29tcG5lbnQgc3R5bGluZyBpbiB0aGVpciByZXNwZWN0aXZlIGZpbGVzLlxuXG5AbWl4aW4gc2lkZWJhci1ibG93b3V0LW9mZnNldCgpIHtcbiAgLS10cmFuc2xhdGVYOiAwO1xuICB3aWR0aDogY2FsYygxMDB2dyArIHZhcigtLXNjcm9sbGJhci13aWR0aCwgMHB4KSk7XG4gIGxlZnQ6ICN7JGd1dHRlci19O1xuICBAaW5jbHVkZSBicmVhay1vdXQobWF4KSB7XG4gICAgbGVmdDogY2FsYygoLTEgKiB2YXIoLS1jb21wdXRlZC1ndXR0ZXIpKSAtICN7JGd1dHRlcn0pO1xuICB9XG59XG5cbiRjb21wb25lbnQtdGhlbWVzOiAoXG4gICdyZWQnOiAkcmVkLFxuICAnYmx1ZSc6ICRibHVlLFxuICAnZ3JleSc6ICRncmV5MyxcbiAgJ3doaXRlJzogJHdoaXRlLFxuKTtcblxuYm9keSB7XG4gIC8vIEdyaWQgUG9zaXRpb25zXG4gIC8vIEknbSB1c2luZyBudW1iZXJzIHJhdGhlciB0aGFuIGdyaWQgYXNyZWFzIGJlY2F1c2UgdGhlIHBvc2l0aW9uaW5nIGRvZXNuJ3RcbiAgLy8gbmVlZCB0byBiZSBhbnkgbW9yZSBjb21wbGV4IHRoYW4gYSBudW1iZXIgYmV0d2VlbiAxIGFuZCA0IGRlcGVuZGluZyBvblxuICAvLyB0aGUgbGF5b3V0IHJlcXVpcmVtZW50cy4gVGhpcyBpcyBlc3NlbnRpYWxseSBkb25lIHRvIGhhbmRsZSBjaXJjb21zdGFuY2VzXG4gIC8vIHdoZXJlIHNvbWUgcGFnZXMgZG9uJ3QgcmVxdWlyZSBhIGJyZWFkY3J1bWIgYmFyIG9yIGFuY2hvciBiYXIuXG5cbiAgLS1yb3ctbmF2aWdhdGlvbjogMTtcbiAgLS1yb3ctYnJlYWRjcnVtYnM6IDI7XG4gIC0tcm93LWFuY2hvcnM6IDM7XG4gIC0tcm93LWhlYWRlcjogNDtcbiAgLS1yb3ctbWFpbjogNTtcbiAgLS1yb3ctYmFja2dyb3VuZDogMTtcbiAgLS1yb3ctc2lkZWJhcjogNCAvIHNwYW4gMztcbiAgLS1yb3ctZm9vdGVyOiAxMDA7XG4gIC0tcm93czogYXV0bztcblxuICAtLWNvbHVtbi1sZWZ0OiAyO1xuICAtLWNvbHVtbi1tYWluOiAyIC8gc3BhbiAyO1xuICAtLWNvbHVtbi1yaWdodDogNDtcbiAgLS1jb2x1bW4tZnVsbDogMiAvIC0yO1xuICAtLWNvbHVtbi1ndXR0ZXI6IG1pbm1heCgwLCAxZnIpO1xuICAtLWNvbHVtbi1jb250ZW50OiBtaW5tYXgoMCwgY2FsYygjeyRtZWRpYS1tYXh9IC0gKHZhcigtLXNpZGViYXItd2lkdGgpICogMikgLSAjeyRndXR0ZXI0fSkpO1xuICAtLWNvbHVtbi1zaWRlYmFyOiB2YXIoLS1zaWRlYmFyLXdpZHRoKTtcbiAgLS1jb2x1bW5zOiB2YXIoLS1jb2x1bW4tZ3V0dGVyKSB2YXIoLS1jb2x1bW4tc2lkZWJhcikgdmFyKC0tY29sdW1uLWNvbnRlbnQpIHZhcigtLWNvbHVtbi1zaWRlYmFyKSB2YXIoLS1jb2x1bW4tZ3V0dGVyKTtcblxuICBkaXNwbGF5OiBncmlkO1xuICBtaW4td2lkdGg6ICRtZWRpYS1taW47XG4gIGdyaWQtZ2FwOiAwICRndXR0ZXI7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogdmFyKC0tcm93cyk7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0tY29sdW1ucyk7XG5cbiAgPiAqIHtcbiAgICBncmlkLWNvbHVtbjogdmFyKC0tY29sdW1uLWZ1bGwpO1xuICB9XG59XG5cbm5hdmlnYXRpb24tYmFyIHtcbiAgei1pbmRleDogOTk5O1xuICBncmlkLXJvdzogdmFyKC0tcm93LW5hdmlnYXRpb24pO1xuICAmOm5vdCguaW4tdmlldykge1xuICAgIH4gI2JyZWFkY3J1bWJzLWJhcixcbiAgICB+ICNhbmNob3JzLWJhciB7XG4gICAgICAtLWFuY2hvcnMtaGVpZ2h0OiA1MHB4O1xuICAgICAgLy8gLS1icmVhZGNydW1iLWhlaWdodDogNzBweDtcbiAgICB9XG4gIH1cbn1cblxuLy8gQnJlYWRjcnVtYnMgQmFyID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuI2JyZWFkY3J1bWJzLWJhciB7XG4gIHotaW5kZXg6IDI7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctYnJlYWRjcnVtYnMpO1xuICBoZWlnaHQ6IHZhcigtLWJyZWFkY3J1bWItaGVpZ2h0KTtcbiAgJi5zdGlja3kge1xuICAgIHRvcDogdmFyKC0tYnJlYWRjcnVtYi1hbmQtYW5jaG9ycy1zdGlja3ktdW5kZXJzZXQpO1xuICB9XG59XG5cbi8vIEFuY2hvciBCYXIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiNhbmNob3JzLWJhciB7XG4gIHotaW5kZXg6IDI7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctYW5jaG9ycyk7XG4gIGhlaWdodDogdmFyKC0tYW5jaG9ycy1oZWlnaHQpO1xuICAmLnN0aWNreSB7XG4gICAgdG9wOiBjYWxjKHZhcigtLWJyZWFkY3J1bWItaGVpZ2h0KSAtIDFweCArICh2YXIoLS1icmVhZGNydW1iLWFuZC1hbmNob3JzLXN0aWNreS11bmRlcnNldCkgKiAyKSk7XG4gICAgLy8gdG9wOmNhbGModmFyKC0tYnJlYWRjcnVtYi1oZWlnaHQpIC0gMXB4KTtcbiAgfVxufVxuXG4vLyBIZWFkZXIgQ29udGVudCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaGVhZGVyIHtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1oZWFkZXIpO1xuICBncmlkLWNvbHVtbjogdmFyKC0tY29sdW1uLW1haW4pO1xuICBtYXgtd2lkdGg6IHZhcigtLW1haW4tbWF4LXdpZHRoKTtcbn1cblxuI2Zvb3RlciB7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctZm9vdGVyKTtcbn1cblxuLy8gTWFpbiBDb250ZW50ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxubWFpbiB7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctbWFpbik7XG4gIGdyaWQtY29sdW1uOiB2YXIoLS1jb2x1bW4tbWFpbik7XG4gIG1heC13aWR0aDogdmFyKC0tbWFpbi1tYXgtd2lkdGgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC8vIEZpcnN0IGxldmVsIGVsZW1lbnRzIGZvciBtYWluIGNoaWxkZW4gYW5kIHNpYmxpbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyB0byB0aGUgbWFpbiBlbGVtZW50IChleGNsdWRpbmcgc2lkZS1iYXIgYW5kIGZvb3RlcilcblxuICA+ICosXG4gIH4gc2VjdGlvbixcbiAgfiBhc2lkZSxcbiAgfiBkaXYsXG4gIH4gc2VydmljZS1jZW50cmUtZmluZGVyLFxuICB+IG1hcmtldHMtc3VtbWFyeSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctdG9wOiAkc3BhY2VyO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2VyO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgfVxuXG4gIH4gZGl2OmhhcyhkaXYjdHJ1ZW5kb19jb250YWluZXIpIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgc2VydmljZS1jZW50cmUtZmluZGVyIHBpY3R1cmUge1xuICAgIEBpbmNsdWRlIHNpZGViYXItYmxvd291dC1vZmZzZXQoKTtcbiAgfVxufVxuXG4vLyBTaWRlYmFyIENvbnRlbnQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5zaWRlLWJhciB7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctc2lkZWJhcik7XG4gIGdyaWQtY29sdW1uOiB2YXIoLS1jb2x1bW4tcmlnaHQpO1xuICB3aWR0aDogdmFyKC0tc2lkZWJhci13aWR0aCk7XG4gIHBhZGRpbmctdG9wOiAkc3BhY2VyO1xuICBwYWRkaW5nLWJvdHRvbTogJHNwYWNlcjtcblxuICA+IGRpdiB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWdhcDogJGd1dHRlciAkZ3V0dGVyO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIG1pbm1heCh2YXIoLS1zaWRlYmFyLXdpZHRoKSwgMWZyKSk7XG4gICAgJi5zdGlja3kge1xuICAgICAgdG9wOiBjYWxjKHZhcigtLWJyZWFkY3J1bWItaGVpZ2h0KSArIHZhcigtLWFuY2hvcnMtaGVpZ2h0KSArICN7JGd1dHRlcn0pO1xuICAgIH1cbiAgICA+ICoge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgfVxuXG4gIEBlYWNoICR0aGVtZSwgJGNvbG91ciBpbiAkY29tcG9uZW50LXRoZW1lcyB7XG4gICAgPiBkaXYgPiAqLiN7JHRoZW1lfSB7XG4gICAgICAtLWJhY2tncm91bmQtY29sb3VyOiAjeyRjb2xvdXJ9O1xuICAgICAgQGlmICgkdGhlbWUgPT0gJ3doaXRlJykge1xuICAgICAgICAtLWJvcmRlci1jb2xvdXI6ICN7JGdyZXkzfTtcbiAgICAgIH1cbiAgICAgIEBpZiAoJHRoZW1lID09ICdncmV5Jykge1xuICAgICAgICAtLWJvcmRlci1jb2xvdXI6ICN7JGdyZXk0fTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuYXNpZGUjc3VwcG9ydC1pbmZvcm1hdGlvbiAuZ2xvc3NhcnktdGVybXMsXG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPScxJ10gPiBuYXYge1xuICB0b3A6IGNhbGModmFyKC0tYnJlYWRjcnVtYi1oZWlnaHQpICsgdmFyKC0tYW5jaG9ycy1oZWlnaHQpICsgI3skZ3V0dGVyfSk7XG59XG5cbkBpbmNsdWRlIGJyZWFrLWluKCdzbWFsbC1tZWRpdW0nKSB7XG4gIGJvZHkge1xuICAgID4gKiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLS1jb2x1bW5zOiB2YXIoLS1jb2x1bW4tZ3V0dGVyKSB2YXIoLS1jb2x1bW4tY29udGVudCkgdmFyKC0tY29sdW1uLWd1dHRlcik7XG4gICAgLS1jb2x1bW4tbWFpbjogdmFyKC0tY29sdW1uLWZ1bGwpO1xuICAgIC0tY29sdW1uLWxlZnQ6IHZhcigtLWNvbHVtbi1mdWxsKTtcbiAgICAtLWNvbHVtbi1yaWdodDogdmFyKC0tY29sdW1uLWZ1bGwpO1xuICAgIC0tcm93LXNpZGViYXI6IGF1dG87XG5cbiAgICBzaWRlLWJhciB7XG4gICAgICBwYWRkaW5nLXRvcDogJHNwYWNlcjtcbiAgICAgID4gZGl2IHtcbiAgICAgICAgZ3JpZC1nYXA6ICRzcGFjZXIgJGd1dHRlcjtcbiAgICAgICAgJi5zdGlja3kge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB0b3A6IGluaXRpYWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyB3aWxsIGZpeCBzaWRlYmFyIGNvbXBvbmVudHMgZnJvbSBibG93aW5nIG91dCBvZiB0aGUgdmlld3BvcnQgb24gZGV2aWNlc1xuLy8gd2hlcmUgdGhlIHNjcmVlbiBpcyBzbWFsbGVyIHRoYW4gdGhlIG1pbml1bSAoMzIwcHgpXG5AaW5jbHVkZSBicmVhay1pbigkbWVkaWEtbWluICsgKCRiYXNlLWdhcCAqIDIpKSB7XG4gIGJvZHkge1xuICAgIC0tc2lkZWJhci13aWR0aDogMTAwJTtcbiAgfVxufVxuXG4vLyBCbG93b3V0IEJhY2tncm91bmRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4udGhlbWVkIHtcbiAgQGVhY2ggJHRoZW1lLCAkY29sb3VyIGluICRjb21wb25lbnQtdGhlbWVzIHtcbiAgICAmLiN7JHRoZW1lfSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3VyO1xuICAgICAgJi5ibG93b3V0ICsgLnRoZW1lZC4jeyR0aGVtZX0ge1xuICAgICAgICBib3gtc2hhZG93OiAwcHggMXB4IHZhcigtLWJvcmRlci10b3AtY29sb3VyKTtcbiAgICAgICAgJi5saWdodCB7XG4gICAgICAgICAgLS1ib3JkZXItdG9wLWNvbG91cjogI3skZ3JleTR9O1xuICAgICAgICB9XG4gICAgICAgICYuZGFyayB7XG4gICAgICAgICAgLS1ib3JkZXItdG9wLWNvbG91cjogI3tyZ2JhKHdoaXRlLCAwLjIpfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAmOm5vdCguYmxvd291dCkge1xuICAgIHBhZGRpbmctbGVmdDogJGd1dHRlcjtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkZ3V0dGVyO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjZXI7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAmLndoaXRlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmV5MztcbiAgICAgICsgLmJsb3dvdXQud2hpdGUsXG4gICAgICArIDpub3QoLnRoZW1lZCkge1xuICAgICAgICBtYXJnaW4tdG9wOiAkc3BhY2VyLTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmJsb3dvdXQge1xuICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWJsb3dvdXQge1xuICAgIEBpbmNsdWRlIGJyZWFrLWluKCRtZWRpYS1taW4gKyAkYmFzZS1nYXApIHtcbiAgICAgIHRyYW5zZm9ybTogaW5pdGlhbDtcbiAgICAgIGxlZnQ6ICRnYXAtO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSB2YXIoLS1zY3JvbGxiYXItd2lkdGgsIDBweCkpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVhay1pbihzbWFsbC1tZWRpdW0pIHtcbiAgICAgIHRyYW5zZm9ybTogaW5pdGlhbDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogJGd1dHRlci07XG4gICAgICB3aWR0aDogY2FsYygxMDB2dyAtIHZhcigtLXNyb2xsYmFyLXdpZHRoLCAwcHgpKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICB9XG5cbiAgQGF0LXJvb3QgYm9keTpub3QobW9iaWxlKSBtYWluIC5ibG93b3V0OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgYnJlYWstb3V0KHNtYWxsLW1lZGl1bSkge1xuICAgICAgQGluY2x1ZGUgc2lkZWJhci1ibG93b3V0LW9mZnNldCgpO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwdncgKyAjeyRndXR0ZXJ9KTtcbiAgICB9XG4gIH1cbiAgQGF0LXJvb3QgYm9keS5tb2JpbGUgbWFpbiAuYmxvd291dDpiZWZvcmUge1xuICAgIEBpbmNsdWRlIHNpZGViYXItYmxvd291dC1vZmZzZXQoKTtcbiAgICB3aWR0aDogY2FsYygxMDB2dyArICN7JGd1dHRlcn0pO1xuICB9XG59XG5cbi8vIEJhY2tncm91bmQgSW1hZ2UgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmJhY2tncm91bmQtaW1hZ2UsXG5iYWNrZ3JvdW5kLXZpZGVvIHtcbiAgei1pbmRleDogLTE7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctYmFja2dyb3VuZCk7XG4gIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICYuYmVoaW5kLWhlYWRlciB7XG4gICAgLS1yb3ctYmFja2dyb3VuZDogNDtcbiAgfVxufVxuXG5pbWdbZGF0YS1zcmNdLFxudmlkZW9bZGF0YS1zcmNdIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW47XG4gIG9wYWNpdHk6IDA7XG5cbiAgJi5sb2FkZWQge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLy8gU3BlY2lhbCBSdWxlcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmNlbnRlci1hbGwge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nLWJsb2NrOiAkc3BhY2VyMjtcbiAgZ2FwOiAkc3BhY2VyICFpbXBvcnRhbnQ7XG4gID4gLnRleHQgOmlzKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBzcGFuIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnkpO1xuICAgIH1cbiAgfVxuICBhcnRpY2xlLWxpc3Qge1xuICAgIG1heC13aWR0aDogMTEwMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAtLWFydGljbGUtbWluLXdpZHRoOiA0MjBweCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vIEFkZHMgYSB0b3AgYm9yZGVyICh3aXRob3V0IHNoaWZ0aW5nIGVsZW1lbnRzIGFyb3VuZCBieSAxcHgpIHRvIG5vbmUgdGhlbWVkIHNpYmxpbmdzIG9mIHRoZSBtYWluIGVsZW1lbnRcbm1haW4gfiAqOm5vdCgudGhlbWVkKSArIDpub3QoLnRoZW1lZCk6bm90KCNmb290ZXIpOm5vdChzaWRlLWJhcikge1xuICBib3gtc2hhZG93OiAwcHggLTFweCB2YXIoLS1ib3JkZXItdG9wLWNvbG91ciwgI3skZ3JleTR9KTtcbn1cbi8vIG1haW4gPiAqLnRoZW1lZCArIDpub3QoLnRoZW1lZCkgeyBib3gtc2hhZG93OiBpbml0aWFsOyB9XG5tYWluID4gKi50aGVtZWQuY29udGVudC1ibG9jayB7XG4gIGJveC1zaGFkb3c6IGluaXRpYWw7XG59XG5tYWluID4gKi50aGVtZWQgKyA6bm90KC50aGVtZWQpOm5vdCgjZm9vdGVyKSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGJveC1zaGFkb3c6IGluaXRpYWw7XG59XG5tYWluIH4gKi50aGVtZWQgKyA6bm90KC50aGVtZWQpOm5vdCgjZm9vdGVyKSxcbmJvZHkuYmFja2dyb3VuZC1wb3NpdGlvbmVkLWJlaGluZC1oZWFkZXIgbWFpbiA+ICo6Zmlyc3QtY2hpbGQge1xuICBib3gtc2hhZG93OiBpbml0aWFsO1xufVxuXG4vLyBBZGRzIGEgYm9yZGVyIG9uIHRoZSBmaXJzdCBjaGlsZCBpZiBpdCdzIG5vdCB0aGVtZWQgb3IgaXMgd2hpdGVcbm1haW4gPiAqOmZpcnN0LWNoaWxkOm5vdCgudGhlbWVkKSxcbm1haW4gPiAqOmZpcnN0LWNoaWxkLndoaXRlIHtcbiAgYm94LXNoYWRvdzogMHB4IC0xcHggdmFyKC0tYm9yZGVyLXRvcC1jb2xvdXIsICN7JGdyZXk0fSk7XG59XG5cbi5jb250ZW50LWJsb2NrW3N0eWxlKj0nYmFja2dyb3VuZC1jb2xvciddLFxuLmNvbnRlbnQtYmxvY2tbc3R5bGUqPSdiYWNrZ3JvdW5kLWNvbG9yJ10gKyA6bm90KC50aGVtZWQpOm5vdCgjZm9vdGVyKSB7XG4gIGJveC1zaGFkb3c6IGluaXRpYWwgIWltcG9ydGFudDtcbn1cbi8vIG1haW4gfiBzZWN0aW9uLCBtYWluIH4gYXNpZGUsIG1haW4gfiBkaXYsIG1haW4gfiBsb2dvLXNjcm9sbGVyIHsgZ3JpZC1yb3c6IG5vbmU7IH1cbi8vIG1haW4gfiA6bm90KHNpZGUtYmFyKTpub3QoYmFja2dyb3VuZC1pbWFnZSk6bm90KCNmb290ZXIpIHsgZ3JpZC1yb3c6IG5vbmU7IH1cblxuLy8gUmVtb3ZlcyBtYXJnaW4gb24gbm9uZSB0aGVtZWQgc2libGluZ3Mgb2YgYW5kIGluIHRoZSBtYWluIGVsZW1lbnQgdGhhdCBhbHNvIGFyZSBub3QgYmxvd25vdXRcbm1haW4gfiAqOm5vdCgudGhlbWVkKSArIC50aGVtZWQ6bm90KC5ibG93b3V0KSxcbm1haW4gPiAqOm5vdCgudGhlbWVkKSArIC50aGVtZWQ6bm90KC5ibG93b3V0KSB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi8vIEFkZGRzIGEgbGFyZ2VyIHNwYWNlciB0byB0aGUgbGFzdCBpdGVtIGluIHRoZSBtYWluIGVsZW1lbnQgdGhhdCBhcmUgdGhlbWVkIGJ1dCBub3QgYmxvd24gb3V0XG4uaGVhZGVyIH4gbWFpbiA+IC50aGVtZWQ6bm90KC5ibG93b3V0KTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6ICRzcGFjZXI7XG59XG5tYWluID4gLnRoZW1lZDpub3QoLmJsb3dvdXQpOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyO1xufVxuXG4vLyBBZGRzIGEgbGFyZ2VyIHNwYWNlciB0byB0aGVtZWQgbm9uIGJsb3dub3V0IGVsZW1lbnRzXG5tYWluID4gLnRoZW1lZDpub3QoLmJsb3dvdXQpICsgLmJsb3dvdXQge1xuICBtYXJnaW4tdG9wOiAkc3BhY2VyO1xufVxuXG4uaGVhZGVyIH4gbWFpbiA+IC50aGVtZWQ6bm90KC5ibG93b3V0KSB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbm1haW4gfiBkaXY6aGFzKCNDb29raWVib3RXaWRnZXQpIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG5AaW5jbHVkZSBjb21wb25lbnQtZG9lc250LWV4aXN0cygnc2lkZS1iYXInKSB7XG4gIC0tbWFpbi1tYXgtd2lkdGg6IGF1dG87XG4gIC0tY29sdW1uLW1haW46IHZhcigtLWNvbHVtbi1mdWxsKTtcbn1cblxuQGluY2x1ZGUgY29tcG9uZW50LWRvZXNudC1leGlzdHMoJ2JyZWFkY3J1bWJzLWJhcicpIHtcbiAgLS1yb3ctbmF2aWdhdGlvbjogMTtcbiAgLS1yb3ctYW5jaG9yczogMjtcbiAgLS1yb3ctaGVhZGVyOiAzO1xuICAtLXJvdy1tYWluOiA0O1xuXG4gIGJhY2tncm91bmQtaW1hZ2UuZnVsbCxcbiAgYmFja2dyb3VuZC12aWRlby5mdWxsIHtcbiAgICAtLXJvdy1iYWNrZ3JvdW5kOiAxIC8gc3BhbiA0O1xuICB9XG4gIGJhY2tncm91bmQtaW1hZ2UuYmVoaW5kLWhlYWRlcixcbiAgYmFja2dyb3VuZC12aWRlby5mdWxsIHtcbiAgICAtLXJvdy1iYWNrZ3JvdW5kOiAzO1xuICB9XG5cbiAgI2FuY2hvcnMtYmFyLnN0aWNreSB7XG4gICAgdG9wOiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWstb3V0KCdzbWFsbC1tZWRpdW0nKSB7XG4gICAgLS1yb3ctc2lkZWJhcjogMyAvIHNwYW4gMztcbiAgICBzaWRlLWJhciBkaXYuc3RpY2t5LFxuICAgIGFzaWRlI3N1cHBvcnQtaW5mb3JtYXRpb24gLmdsb3NzYXJ5LXRlcm1zLFxuICAgIHRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9JzEnXSA+IG5hdiB7XG4gICAgICB0b3A6IGNhbGModmFyKC0tYW5jaG9ycy1oZWlnaHQpICsgI3skZ3V0dGVyfSk7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIGNvbXBvbmVudC1kb2VzbnQtZXhpc3RzKCdhbmNob3JzLWJhcicpIHtcbiAgLS1yb3ctbmF2aWdhdGlvbjogMTtcbiAgLS1yb3ctYnJlYWRjcnVtYnM6IDI7XG4gIC0tcm93LWhlYWRlcjogMztcbiAgLS1yb3ctbWFpbjogNDtcblxuICBiYWNrZ3JvdW5kLWltYWdlLmZ1bGwsXG4gIGJhY2tncm91bmQtdmlkZW8uZnVsbCB7XG4gICAgLS1yb3ctYmFja2dyb3VuZDogMSAvIHNwYW4gNDtcbiAgfVxuICBiYWNrZ3JvdW5kLWltYWdlLmJlaGluZC1oZWFkZXIsXG4gIGJhY2tncm91bmQtdmlkZW8uYmVoaW5kLWhlYWRlciB7XG4gICAgLS1yb3ctYmFja2dyb3VuZDogMztcbiAgfVxuXG4gICNicmVhZGNydW1icy1iYXIuc3RpY2t5IHtcbiAgICB0b3A6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBicmVhay1vdXQoJ3NtYWxsLW1lZGl1bScpIHtcbiAgICAtLXJvdy1zaWRlYmFyOiAzIC8gc3BhbiAzO1xuICAgIHNpZGUtYmFyIGRpdi5zdGlja3ksXG4gICAgYXNpZGUjc3VwcG9ydC1pbmZvcm1hdGlvbiAuZ2xvc3NhcnktdGVybXMsXG4gICAgdGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT0nMSddID4gbmF2IHtcbiAgICAgIHRvcDogY2FsYyh2YXIoLS1hbmNob3JzLWhlaWdodCkgKyAjeyRndXR0ZXJ9KTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgY29tcG9uZW50LWRvZXNudC1leGlzdHMoJ2JyZWFkY3J1bWJzLWJhcicsICdhbmNob3JzLWJhcicpIHtcbiAgLS1yb3ctbmF2aWdhdGlvbjogMTtcbiAgLS1yb3ctaGVhZGVyOiAyO1xuICAtLXJvdy1tYWluOiAzO1xuICAtLXJvdy1iYWNrZ3JvdW5kOiAxO1xuXG4gIGJhY2tncm91bmQtaW1hZ2UuZnVsbCxcbiAgYmFja2dyb3VuZC12aWRlby5mdWxsIHtcbiAgICAtLXJvdy1iYWNrZ3JvdW5kOiAxIC8gc3BhbiA1O1xuICB9XG4gIGJhY2tncm91bmQtaW1hZ2UuYmVoaW5kLWhlYWRlcixcbiAgYmFja2dyb3VuZC12aWRlby5iZWhpbmQtaGVhZGVyIHtcbiAgICAtLXJvdy1iYWNrZ3JvdW5kOiAyO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWstb3V0KCdzbWFsbC1tZWRpdW0nKSB7XG4gICAgc2lkZS1iYXIgZGl2LnN0aWNreSxcbiAgICBhc2lkZSNzdXBwb3J0LWluZm9ybWF0aW9uIC5nbG9zc2FyeS10ZXJtcyxcbiAgICB0YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPScxJ10gPiBuYXYge1xuICAgICAgdG9wOiAkZ3V0dGVyO1xuICAgIH1cbiAgICAtLXJvdy1zaWRlYmFyOiAyIC8gc3BhbiAzO1xuICB9XG59XG5cbmJvZHkucnVsZS1sYXN0LW1haW4tc2VjdGlvbi1pcy10aGVtZWQge1xuICBAaW5jbHVkZSBicmVhay1pbignc21hbGwtbWVkaXVtJykge1xuICAgIHNpZGUtYmFyIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cbiAgfVxufVxuXG4vLyBGYXV4IExheW91dHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ubGF5b3V0IHtcbiAgJi1jb250ZW50LXJpZ2h0LXNpZGViYXIsXG4gICYtY29udGVudC1sZWZ0LXNpZGViYXIge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC1nYXA6ICRndXR0ZXI7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgLmxlZnQsXG4gICAgLnJpZ2h0IHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmxheW91dCB7XG4gICAgICAmLWNvbnRlbnQtcmlnaHQtc2lkZWJhcixcbiAgICAgICYtY29udGVudC1sZWZ0LXNpZGViYXIge1xuICAgICAgICAtLWNvbHVtbi1jb250ZW50OiBtaW5tYXgoMCwgY2FsYygjeyRtZWRpYS1tYXh9IC0gKHZhcigtLXNpZGViYXItd2lkdGgpICogMikpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZhdXgtbGF5b3V0LWdyaWQoJHNlbGVjdG9yOiAnYm9keSA+IC5sYXlvdXQnLCAkYnJlYWtwb2ludDogJ3NtYWxsLW1lZGl1bScpIHtcbiAgQGluY2x1ZGUgYnJlYWstb3V0KCRicmVha3BvaW50KSB7XG4gICAgI3skc2VsZWN0b3J9IHtcbiAgICAgIC8vIENvbnRlbnQgb24gdGhlIHJpZ2h0LCBzaWRlYmFyIG9uIHRoZSBsZWZ0XG4gICAgICAmLWNvbnRlbnQtbGVmdC1zaWRlYmFyIHtcbiAgICAgICAgLmxlZnQge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICB9XG4gICAgICAgIC5yaWdodCB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyA0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBDb250ZW50IG9uIHRoZSBsZWZ0LCBzaWRlYmFyIG9uIHRoZSByaWdodFxuICAgICAgJi1jb250ZW50LXJpZ2h0LXNpZGViYXIge1xuICAgICAgICAubGVmdCB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAzO1xuICAgICAgICAgIG1heC13aWR0aDogdmFyKC0tbWFpbi1tYXgtd2lkdGgpO1xuICAgICAgICB9XG4gICAgICAgIC5yaWdodCB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDM7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAkZ3V0dGVyO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYtY29udGVudC1yaWdodC1zaWRlYmFyLFxuICAgICAgJi1jb250ZW50LWxlZnQtc2lkZWJhciB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0tY29sdW1uLXNpZGViYXIpIHZhcigtLWNvbHVtbi1jb250ZW50KSB2YXIoLS1jb2x1bW4tc2lkZWJhcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIGZhdXgtbGF5b3V0LWdyaWQoKTtcblxuLy8gVGhpcyBoYW5kbGVzIHdoZW4gdGhlcmUgaXMgbm90IHNpZGViYXIgYnV0IHRoZXJlIGlzIGEgY29udGVudCBibG9jayBjb21wb25lbnRcbi8vIHRoYXQgd291bGQgbm9ybWFsbHkgYmUgZnVsbCB3aWR0aC4gVGhpcyBrZWVwcyB0aGUgbGF5b3V0IHN0eWxpbmcgY29uc2lzdGVudFxuLy8gYWNjcm9zcyBmdWxsIHdpZHRoIGNvbXBvbmVudHMsIGNvbnRlbnQgYmxvY2sgY29tcG9uZW50cy4gYW5kIHNpZGViYXIgY29tcG9uZW50cy5cbkBpbmNsdWRlIGNvbXBvbmVudC1kb2VzbnQtZXhpc3RzKCdzaWRlLWJhcicpIHtcbiAgQGluY2x1ZGUgZmF1eC1sYXlvdXQtZ3JpZCgnbWFpbiAubGF5b3V0JywgJ21lZGl1bScpO1xufVxuXG4vLyBMaXR0bGUgTGF5b3V0IGZpZWxkIGNvbHVtbiBjb250cm9scyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uY29udGVudC1ibG9jayB7XG4gID4gKiB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrLW91dCg3MDApIHtcbiAgICAtLWNvbHVtbi1jb3VudDogNjtcblxuICAgIC8vIFRoZSBmaXJzdCBudW1iZXIgaW4gdGhlIC5jb2wtWC1YIGNsYXNzIG5hbWUgcmVmZXJlcyB0byB0aGUgY29sdW1uIHN0YXJ0aW5nIHBvaW50LFxuICAgIC8vIFRoZSBzZWNvbmQgbnVtYmVyIGlzIGhvdyBtYW55IGNvbHVtbnMgaXQgc3BhbnMgZm9yLlxuICAgIC8vIFlvdSBtYXkgYmUgd29uZGVyaW5nIHdoeSBJIGRpZG4ndCBqdXN0IHN0aWNrIHdpdGggdGhlIG9uZS1saW5lciB1c2luZyBjdXN0b20gcHJvcGVydGllcy5cbiAgICAvLyBUaGF0IG1ldGhvZCBvZiBjb2x1bW4gZ3JpZHMgaXMgdG9vIHN0cmljdCBhbmQgd291bGQgbmV2ZXIgcmVsaWFibGUgYnJlYWtkb3duXG4gICAgLy8gbmF0aXZlbHkgYmVjYXVzZSB0aGUgY29udGVudCB3b3VsZCBhbHdheXMgYmVjb21lIG92ZXJibG93bi5cbiAgICAvLyBXZSBoYWQgdG8gZ28gdGhlIG1hbnVhbCB3YXkgc28gdGhhdCB3ZSBjYW4gYWRkcmVzcyBzcGVjaWFsIHNpdHVhdGlvbnMgYXMgc3BlaWNmaWMgYnJlYWsgcG9pbnRzLlxuXG4gICAgLy8gT25lIENvbHVtbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAuY29sLTEtMSB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMTtcbiAgICB9XG4gICAgLmNvbC0xLTIge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDI7XG4gICAgfVxuICAgIC5jb2wtMS0zIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAzO1xuICAgIH1cbiAgICAuY29sLTEtNCB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gNDtcbiAgICB9XG4gICAgLmNvbC0xLTUge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDU7XG4gICAgfVxuICAgIC5jb2wtMS02IHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiA2O1xuICAgIH1cblxuICAgIC8vIFR3byBDb2x1bW5zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLmNvbC0yLTEge1xuICAgICAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDE7XG4gICAgfVxuICAgIC5jb2wtMi0yIHtcbiAgICAgIGdyaWQtY29sdW1uOiAyIC8gc3BhbiAyO1xuICAgIH1cbiAgICAuY29sLTItMyB7XG4gICAgICBncmlkLWNvbHVtbjogMiAvIHNwYW4gMztcbiAgICB9XG4gICAgLmNvbC0yLTQge1xuICAgICAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDQ7XG4gICAgfVxuICAgIC5jb2wtMi01IHtcbiAgICAgIGdyaWQtY29sdW1uOiAyIC8gc3BhbiA1O1xuICAgIH1cblxuICAgIC8vIFRocmVlIENvbHVtbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLmNvbC0zLTEge1xuICAgICAgZ3JpZC1jb2x1bW46IDMgLyBzcGFuIDE7XG4gICAgfVxuICAgIC5jb2wtMy0yIHtcbiAgICAgIGdyaWQtY29sdW1uOiAzIC8gc3BhbiAyO1xuICAgIH1cbiAgICAuY29sLTMtMyB7XG4gICAgICBncmlkLWNvbHVtbjogMyAvIHNwYW4gMztcbiAgICB9XG4gICAgLmNvbC0zLTQge1xuICAgICAgZ3JpZC1jb2x1bW46IDMgLyBzcGFuIDQ7XG4gICAgfVxuXG4gICAgLy8gRm91ciBDb2x1bW5zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAuY29sLTQtMSB7XG4gICAgICBncmlkLWNvbHVtbjogNCAvIHNwYW4gMTtcbiAgICB9XG4gICAgLmNvbC00LTIge1xuICAgICAgZ3JpZC1jb2x1bW46IDQgLyBzcGFuIDI7XG4gICAgfVxuICAgIC5jb2wtNC0zIHtcbiAgICAgIGdyaWQtY29sdW1uOiA0IC8gc3BhbiAzO1xuICAgIH1cblxuICAgIC8vIEZpdmUgQ29sdW1ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLmNvbC01LTEge1xuICAgICAgZ3JpZC1jb2x1bW46IDUgLyBzcGFuIDI7XG4gICAgfVxuICAgIC5jb2wtNS0yIHtcbiAgICAgIGdyaWQtY29sdW1uOiA1IC8gc3BhbiAyO1xuICAgIH1cblxuICAgIC8vIFNpeCBDb2x1bW5zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLmNvbC02LTEge1xuICAgICAgZ3JpZC1jb2x1bW46IDYgLyBzcGFuIDE7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWstYmV0d2Vlbig3MDAsIGxhcmdlKSB7XG4gICAgLS1jb2x1bW4tY291bnQ6IDQ7XG5cbiAgICAvLyBTcGVjaWFsIFJ1bGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC5jb2wtMS0zIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAyO1xuICAgIH1cbiAgICAuY29sLTEtNCB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMztcbiAgICB9XG4gICAgLmNvbC0xLTUge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDM7XG4gICAgfVxuICAgIC5jb2wtNC0zIHtcbiAgICAgIGdyaWQtY29sdW1uOiAzIC8gLTE7XG4gICAgfVxuXG4gICAgLy8gQnJlYWtkb3duIFJ1bGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAuY29sLTEtNiB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgIH1cbiAgICAuY29sLTItMyxcbiAgICAuY29sLTItNCxcbiAgICAuY29sLTItNSB7XG4gICAgICBncmlkLWNvbHVtbjogMiAvIC0xO1xuICAgIH1cbiAgICAuY29sLTMtMixcbiAgICAuY29sLTMtMyxcbiAgICAuY29sLTMtNCB7XG4gICAgICBncmlkLWNvbHVtbjogMyAvIC0xO1xuICAgIH1cbiAgICAuY29sLTQtMSxcbiAgICAuY29sLTQtMixcbiAgICAuY29sLTUtMSxcbiAgICAuY29sLTYtMSB7XG4gICAgICBncmlkLWNvbHVtbjogNCAvIC0xO1xuICAgIH1cbiAgICAuY29sLTUtMiB7XG4gICAgICBncmlkLWNvbHVtbjogMS8gLTE7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWstYmV0d2VlbihtaW4sIDY5OSkge1xuICAgIC0tY29sdW1uLWNvdW50OiAyO1xuXG4gICAgLmNvbC0xLTEsXG4gICAgLmNvbC0zLTEsXG4gICAgLmNvbC01LTEge1xuICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgfVxuICAgIC5jb2wtMi0xLFxuICAgIC5jb2wtNC0xLFxuICAgIC5jb2wtNi0xIHtcbiAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrLWluKDUwMCkge1xuICAgICAgLmNvbC0xLTEge1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgfVxuICAgICAgLmNvbC0xLTUgKyAuY29sLTYtMSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrLW91dCg1MDApIHtcbiAgICAgIC5jb2wtMi01IHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICB9XG4gICAgICAuY29sLTEtNSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRGV2IFN0eWxpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gbmF2aWdhdGlvbi1iYXIsIGhlYWRlciwgbWFpbiwgbWFpbiA+ICosIHNpZGUtYmFyLCAjZm9vdGVyLCBhc2lkZSB7XG4vLyAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuLy8gfVxuXG4vLyBuYXZpZ2F0aW9uLWJhciB7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6cmdiYSgkcmVkLCAwLjUpO1xuLy8gICBib3JkZXItY29sb3I6JHJlZDtcbi8vIH1cblxuLy8gLmhlYWRlciB7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6cmdiYSgkb3JhbmdlLCAwLjUpO1xuLy8gICBib3JkZXItY29sb3I6JG9yYW5nZTtcbi8vIH1cblxuLy8gI2JyZWFkY3J1bWJzLWJhciB7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6cmdiYSgkYmx1ZSwgMC41KTtcbi8vICAgYm9yZGVyLWNvbG9yOiRibHVlO1xuLy8gfVxuXG4vLyAjYW5jaG9ycy1iYXIge1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoJHB1cnBsZSwgMC41KTtcbi8vICAgYm9yZGVyLWNvbG9yOiRwdXJwbGU7XG4vLyB9XG5cbi8vIG1haW4ge1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoJGdyZWVuLCAwLjUpO1xuLy8gICBib3JkZXItY29sb3I6JGdyZWVuO1xuLy8gfVxuXG4vLyBzaWRlLWJhciB7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6cmdiYSgkcHVycGxlLCAwLjUpO1xuLy8gICBib3JkZXItY29sb3I6JHB1cnBsZTtcbi8vIH1cblxuLy8gI2Zvb3RlciB7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6cmdiYSgkYnJvd24sIDAuNSk7XG4vLyAgIGJvcmRlci1jb2xvcjokYnJvd247XG4vLyB9XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEJyZWFrcG9pbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYnJlYWtwb2ludHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5AdXNlICdzYXNzOnN0cmluZyc7XG5AdXNlICdzYXNzOm1hdGgnO1xuQHVzZSAnLi4vaGVscGVycy9icmVhayc7XG5cbi8vLyBXaGVuIE9OTFkgdXNpbmcgdGhlIGZvbGxvd2luZyBwcmVkZWZpbmUgYnJlYWtwb2ludCBuYW1lcyB5b3UgY2FuIHVzZSB0aGlzIGNyZWF0ZSBmaWxlIGxpa2UgdGhpczpcbi8vLyBAZXhhbXBsZSBcbi8vLyBAZm9yd2FyZCAnY3JlYXRlL2JyZWFrcG9pbnRzJyB3aXRoIChcbi8vLyAgICRtaW4gICAgICAgICAgOiAzMjAsXG4vLy8gICAkc21hbGwgICAgICAgIDogNDgwLFxuLy8vICAgJHNtYWxsLW1lZGl1bSA6IDcyMCxcbi8vLyAgICRtZWRpdW0gICAgICAgOiA5NTAsXG4vLy8gICAkbGFyZ2UgICAgICAgIDogMTEyMCxcbi8vLyAgICRtYXggICAgICAgICAgOiAxNjgwXG4vLy8gKTtcblxuJG1pbiAgICAgICAgICA6IG51bGwgIWRlZmF1bHQ7IC8vIDMyMHB4XG4kbWluLXNtYWxsICAgIDogbnVsbCAhZGVmYXVsdDsgXG4kc21hbGwgICAgICAgIDogbnVsbCAhZGVmYXVsdDsgLy8gNDgwcHhcbiRzbWFsbC1tZWRpdW0gOiBudWxsICFkZWZhdWx0OyAvLyA3MjBweFxuJG1lZGl1bSAgICAgICA6IG51bGwgIWRlZmF1bHQ7IC8vIDk1MHB4XG4kbWVkaXVtLWxhcmdlIDogbnVsbCAhZGVmYXVsdDsgXG4kbGFyZ2UgICAgICAgIDogbnVsbCAhZGVmYXVsdDsgLy8gMTEyMHB4XG4kbGFyZ2UtbWF4ICAgIDogbnVsbCAhZGVmYXVsdDsgXG4kbWF4ICAgICAgICAgIDogbnVsbCAhZGVmYXVsdDsgLy8gMTY4MHBcblxuLy8vIFdoZW4gdXNpbmcgYW55IG51bWJlciBvZiBicmVha3BvaW50cyB3aXRoIGFueSBuYW1lIHlvdSBjYW4gdXNlIHRoaXMgY3JlYXRlIGZpbGUgbGlrZSB0aGlzOlxuLy8vIEBleGFtcGxlIFxuLy8vIEBmb3J3YXJkICdjcmVhdGUvYnJlYWtwb2ludHMnIHdpdGggKFxuLy8vICAgJGJyZWFrcG9pbnRzIDogKFxuLy8vICAgICAnbWluJyAgICAgICAgICA6IDMyMCxcbi8vLyAgICAgJ3NtYWxsJyAgICAgICAgOiA0ODAsXG4vLy8gICAgICdzbWFsbC1tZWRpdW0nIDogNzIwLFxuLy8vICAgICAnbmF2JyAgICAgICAgICA6IDY2NiwgPC0tIHdvbid0IGJlIGV4cG9zZWQgYmVjdWFzZSBpdCdzIG5vdCBhIHByZWRlZmluZWQgbmFtZSAoJG1lZGlhLW5hdiB3aWxsIGVycm9yKVxuLy8vICAgICAnbWVkaXVtJyAgICAgICA6IDk1MCxcbi8vLyAgICAgJ2xhcmdlJyAgICAgICAgOiAxMTIwLFxuLy8vICAgICAnbWF4JyAgICAgICAgICA6IDE2ODBcbi8vLyAgIClcbi8vLyApO1xuXG4kYnJlYWtwb2ludHMgOiAoXG4gICdtaW4nICAgICAgICAgIDogJG1pbixcbiAgJ21pbi1zbWFsbCcgICAgOiAkbWluLXNtYWxsLFxuICAnc21hbGwnICAgICAgICA6ICRzbWFsbCxcbiAgJ3NtYWxsLW1lZGl1bScgOiAkc21hbGwtbWVkaXVtLFxuICAnbWVkaXVtJyAgICAgICA6ICRtZWRpdW0sXG4gICdtZWRpdW0tbGFyZ2UnIDogJG1lZGl1bS1sYXJnZSxcbiAgJ2xhcmdlJyAgICAgICAgOiAkbGFyZ2UsXG4gICdsYXJnZS1tYXgnICAgIDogJGxhcmdlLW1heCxcbiAgJ21heCcgICAgICAgICAgOiAkbWF4XG4pICFkZWZhdWx0O1xuXG4vLy8gUHJpdmF0ZSBhZGQtdW5pdCBmdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIEBzZWUgaHR0cHM6Ly9zYXNzLWxhbmcuY29tL2RvY3VtZW50YXRpb24vb3BlcmF0b3JzL251bWVyaWNcblxuQGZ1bmN0aW9uIF9hZGQtdW5pdCgkdmFsdWUpIHtcbiAgQGlmIChtZXRhLnR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyBhbmQgbWF0aC5pcy11bml0bGVzcygkdmFsdWUpKSB7XG4gICAgQHJldHVybiAkdmFsdWUgKiAxcHg7XG4gIH1cbiAgQHJldHVybiAkdmFsdWU7XG59IFxuXG4vLy8gVXBkYXRlIGFsbCB0aGUgcHJlZGVmaW5lZCBicmVha3BvaW50cyBmcm9tIHRoZSAkYnJlYWtwb2ludHMgbWFwIC0tLS0tLS0tLS0tLS1cbi8vLyBXZSBoYXZlIHRvIGRvIGl0IHRoaXMgd2F5IGJlY2F1c2Ugd2UgY2FuJ3QgZHluYW1pY2FsbHkgZGVmaW5lIHZhcmlhYmxlc1xuLy8vIG5hbWVzLiBUaGlzIGlzIHdoeSB3ZSBoYXZlIHRoZSBwcmVkZWZpbmVkIG5hbWVzLiBcblxuQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgXCJtaW5cIikgeyBcbiAgJG1pbiA6IF9hZGQtdW5pdChtYXAtZ2V0KCRicmVha3BvaW50cywgXCJtaW5cIikpOyBcbiAgQGlmIG1ldGEudHlwZS1vZihtYXAtZ2V0KCRicmVha3BvaW50cywgXCJtaW5cIikpID09ICdudWxsJyAge1xuICAgICRicmVha3BvaW50cyA6IG1hcC5yZW1vdmUoJGJyZWFrcG9pbnRzLCBcIm1pblwiKTsgXG4gIH1cbn1cblxuQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgXCJtaW4tc21hbGxcIikgeyBcbiAgJG1pbi1zbWFsbCA6IF9hZGQtdW5pdChtYXAtZ2V0KCRicmVha3BvaW50cywgXCJtaW4tc21hbGxcIikpOyBcbiAgQGlmIG1ldGEudHlwZS1vZihtYXAtZ2V0KCRicmVha3BvaW50cywgXCJtaW4tc21hbGxcIikpID09ICdudWxsJyAge1xuICAgICRicmVha3BvaW50cyA6IG1hcC5yZW1vdmUoJGJyZWFrcG9pbnRzLCBcIm1pbi1zbWFsbFwiKTsgXG4gIH1cbn1cblxuQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgXCJzbWFsbFwiKSB7IFxuICAkc21hbGwgOiBfYWRkLXVuaXQobWFwLWdldCgkYnJlYWtwb2ludHMsIFwic21hbGxcIikpOyBcbiAgQGlmIG1ldGEudHlwZS1vZihtYXAtZ2V0KCRicmVha3BvaW50cywgXCJzbWFsbFwiKSkgPT0gJ251bGwnICB7XG4gICAgJGJyZWFrcG9pbnRzIDogbWFwLnJlbW92ZSgkYnJlYWtwb2ludHMsIFwic21hbGxcIik7IFxuICB9XG59XG5cbkBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsIFwic21hbGwtbWVkaXVtXCIpIHsgXG4gICRzbWFsbC1tZWRpdW0gOiBfYWRkLXVuaXQobWFwLWdldCgkYnJlYWtwb2ludHMsIFwic21hbGwtbWVkaXVtXCIpKTsgXG4gIEBpZiBtZXRhLnR5cGUtb2YobWFwLWdldCgkYnJlYWtwb2ludHMsIFwic21hbGwtbWVkaXVtXCIpKSA9PSAnbnVsbCcgIHtcbiAgICAkYnJlYWtwb2ludHMgOiBtYXAucmVtb3ZlKCRicmVha3BvaW50cywgXCJzbWFsbC1tZWRpdW1cIik7IFxuICB9XG59XG5cbkBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsIFwibWVkaXVtXCIpIHsgXG4gICRtZWRpdW0gOiBfYWRkLXVuaXQobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibWVkaXVtXCIpKTsgXG4gIEBpZiBtZXRhLnR5cGUtb2YobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibWVkaXVtXCIpKSA9PSAnbnVsbCcgIHtcbiAgICAkYnJlYWtwb2ludHMgOiBtYXAucmVtb3ZlKCRicmVha3BvaW50cywgXCJtZWRpdW1cIik7IFxuICB9XG59XG5cbkBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsIFwibWVkaXVtLWxhcmdlXCIpIHsgXG4gICRtZWRpdW0tbGFyZ2UgOiBfYWRkLXVuaXQobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibWVkaXVtLWxhcmdlXCIpKTsgXG4gIEBpZiBtZXRhLnR5cGUtb2YobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibWVkaXVtLWxhcmdlXCIpKSA9PSAnbnVsbCcgIHtcbiAgICAkYnJlYWtwb2ludHMgOiBtYXAucmVtb3ZlKCRicmVha3BvaW50cywgXCJtZWRpdW0tbGFyZ2VcIik7IFxuICB9XG59XG5cbkBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsIFwibGFyZ2VcIikgeyBcbiAgJGxhcmdlIDogX2FkZC11bml0KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcImxhcmdlXCIpKTsgXG4gIEBpZiBtZXRhLnR5cGUtb2YobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibGFyZ2VcIikpID09ICdudWxsJyAge1xuICAgICRicmVha3BvaW50cyA6IG1hcC5yZW1vdmUoJGJyZWFrcG9pbnRzLCBcImxhcmdlXCIpOyBcbiAgfVxufVxuXG5AaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCBcImxhcmdlLW1heFwiKSB7IFxuICAkbGFyZ2UtbWF4IDogX2FkZC11bml0KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcImxhcmdlLW1heFwiKSk7IFxuICBAaWYgbWV0YS50eXBlLW9mKG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcImxhcmdlLW1heFwiKSkgPT0gJ251bGwnICB7XG4gICAgJGJyZWFrcG9pbnRzIDogbWFwLnJlbW92ZSgkYnJlYWtwb2ludHMsIFwibGFyZ2UtbWF4XCIpOyBcbiAgfVxufVxuXG5AaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCBcIm1heFwiKSB7IFxuICAkbWF4IDogX2FkZC11bml0KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcIm1heFwiKSk7IFxuICBAaWYgbWV0YS50eXBlLW9mKG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcIm1heFwiKSkgPT0gJ251bGwnICB7XG4gICAgJGJyZWFrcG9pbnRzIDogbWFwLnJlbW92ZSgkYnJlYWtwb2ludHMsIFwibWF4XCIpOyBcbiAgfVxufVxuXG4vLyBNYWtlIHN1cmUgYWxsIHRoZSB2YWx1ZXMgaW4gdGhlICRicmVha3BvaW50cyBtYXAgaGF2ZSB1bml0c1xuXG5AZWFjaCAka2V5LCAkdmFsdWUgaW4gJGJyZWFrcG9pbnRzIHtcbiAgJGJyZWFrcG9pbnRzIDogbWFwLnNldCgkYnJlYWtwb2ludHMsICRrZXksIF9hZGQtdW5pdCgkdmFsdWUpKTsgXG59XG5cbi8vLyBCcmVha3BvaW50IGZ1bmN0aW9uXG4vLy8gQWNjZXB0cyBhIHN0cmluZyB0byBwdWxsIGZyb20gdGhlICRicmVha3BvaW50cyBtYXAgaWYgaXQgZXhpc3RzXG5cbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWx1ZSkge1xuICBAaWYgbWV0YS50eXBlLW9mKCR2YWx1ZSkgPT0gJ3N0cmluZycge1xuICAgIEBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkgYW5kIG1ldGEudHlwZS1vZihtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKSAhPSBudWxsKSB7XG4gICAgICAkdmFsdWUgOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEB3YXJuICdcIicgKyAkdmFsdWUgKyAnXCIgYnJlYWtwb2ludCBoYXMgbm90IGJlZW4gZGVmaW5lZC4gQ2hlY2sgdGhlIHJ1bGVzIHdoZXJldmVyIHlvdSBhcmUgcmVnaXN0ZXJpbmcgeW91ciBcImNyZWF0ZS9icmVha3BvaW50c1wiIGhlbHBlcic7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gX2FkZC11bml0KCR2YWx1ZSk7XG59XG5cbi8vLyBCcmVhayBtaXhpbnNcbi8vLyBSZWRlZmluZSB0aGUgYnJlYWsgbWl4aW5zIHdpdGggb25lcyB0aGF0IHVzZSB0aGUgYnJlYWtwb2ludHMgZnVuY3Rpb24gZm9yIHZhbGlkYXRpb25cblxuQG1peGluIG91dCgkYnJlYWtwb2ludCkge1xuICBAaW5jbHVkZSBicmVhay5vdXQoYnJlYWtwb2ludCgkYnJlYWtwb2ludCkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gaW4oJGJyZWFrcG9pbnQpIHtcbiAgQGluY2x1ZGUgYnJlYWsuaW4oYnJlYWtwb2ludCgkYnJlYWtwb2ludCkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gYmV0d2VlbigkbWluLCAkbWF4KSB7XG4gIEBpbmNsdWRlIGJyZWFrLmJldHdlZW4oYnJlYWtwb2ludCgkbWluKSwgYnJlYWtwb2ludCgkbWF4KSkge1xuICAgIEBjb250ZW50O1xuICB9XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBCYWNrZ3JvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNiYWNrZ3JvdW5kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdwb3NpdGlvbic7XG5cbkBtaXhpbiBibG93b3V0KCRwc3VkbyA6IGJlZm9yZSkge1xuICAmOiN7JHBzdWRvfSB7XG4gICAgY29udGVudDpcIlwiO1xuXHRcdGJhY2tncm91bmQtY29sb3I6aW5oZXJpdDsgXG5cdFx0ei1pbmRleDotMTsgXG4gICAgQGluY2x1ZGUgcG9zaXRpb24uYmxvd291dDsgXG4gICAgQGNvbnRlbnQ7XG4gIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIFBvc2l0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjcG9zaXRpb25cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJy4uL2hlbHBlcnMvYnJlYWsnO1xuXG5AbWl4aW4gZXhwYW5kZWQge1xuXHRwb3NpdGlvbjphYnNvbHV0ZTsgXG5cdHRvcDowOyBcblx0bGVmdDowOyBcblx0d2lkdGg6MTAwJTtcblx0aGVpZ2h0OjEwMCU7IFxufVxuXG5AbWl4aW4gY2VudHJlIHtcbiAgcG9zaXRpb246YWJzb2x1dGU7IFxuXHR0b3A6NTAlOyBcblx0bGVmdDo1MCU7XG4gIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IFxufVxuXG5AbWl4aW4gYmxvd291dCgkaG9yaXpvbnRhbCA6IHRydWUsICR2ZXJ0aWNhbCA6IGZhbHNlKSB7XG4gIFxuICBwb3NpdGlvbjphYnNvbHV0ZTtcblxuICBAaWYgJGhvcml6b250YWwgYW5kICR2ZXJ0aWNhbCB7XG4gICAgdG9wICAgICAgIDogNTAlOyBcbiAgICBsZWZ0ICAgICAgOiA1MCU7IFxuICAgIHdpZHRoICAgICA6IDEwMHZ3O1xuICAgIGhlaWdodCAgICA6IDEwMHZoOyBcbiAgICB0cmFuc2Zvcm0gOiB0cmFuc2xhdGUodmFyKC0tdHJhbnNsYXRlWCwgLTUwJSksIHZhcigtLXRyYW5zbGF0ZVksIC01MCUpKTtcbiAgfSBAZWxzZSBpZiAkaG9yaXpvbnRhbCAge1xuICAgIHRvcCAgICAgICA6IDA7IFxuICAgIGxlZnQgICAgICA6IDUwJTsgXG4gICAgd2lkdGggICAgIDogMTAwdnc7XG4gICAgaGVpZ2h0ICAgIDogMTAwJTsgXG4gICAgdHJhbnNmb3JtIDogdHJhbnNsYXRlWCh2YXIoLS10cmFuc2xhdGVYLCAtNTAlKSk7XG4gIH0gQGVsc2UgaWYgJHZlcnRpY2FsICB7XG4gICAgdG9wICAgICAgIDogNTAlOyBcbiAgICBsZWZ0ICAgICAgOiAwOyBcbiAgICB3aWR0aCAgICAgOiAxMDAlO1xuICAgIGhlaWdodCAgICA6IDEwMHZoOyBcbiAgICB0cmFuc2Zvcm0gOiB0cmFuc2xhdGVZKHZhcigtLXRyYW5zbGF0ZVksIC01MCUpKTtcbiAgfVxuXG59IiwiQHVzZSBcInNhc3M6bGlzdFwiO1xuXG4vLy8gQGV4YW1wbGUgQGluY2x1ZGUgY29tcG9uZW50LWV4aXN0cygnYmFja2dyb3VuZC1pbWFnZScpIHsgb3BhY2l0eTowLjU7IH1cbi8vLyBQYXNzIGluIG11bHR1aXBsZSBjb21wZW5lbnQgbmFtZXMgaWYgeW91IHdhbnQgdG8gY2hlY2sgdGhleSBhbGwgZXhpc3RcblxuQG1peGluIGV4aXN0cygkbmFtZXMuLi4pIHtcblxuICAkc2VsZWN0b3IgOiAnYm9keSc7XG4gICRwYXJlbnQgOmlmKGxpc3QubnRoKGxpc3QubnRoKCYsIDEpLCAxKSA9PSAnOnJvb3QnLCAnJywgJik7XG5cbiAgQGVhY2ggJG5hbWUgaW4gJG5hbWVzIHtcbiAgICAkc2VsZWN0b3IgOiAkc2VsZWN0b3IgKyAnW2RhdGEtY29tcG9uZW50cyo9XCIjeyRuYW1lfVwiXSc7XG4gIH1cblxuICBAYXQtcm9vdCAjeyRzZWxlY3Rvcn0gI3skcGFyZW50fSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIEBleGFtcGxlIEBpbmNsdWRlIGNvbXBvbmVudC1kb2VzbnQtZXhpc3RzKCdiYWNrZ3JvdW5kLWltYWdlJykgeyBvcGFjaXR5OjAuNTsgfVxuLy8vIFBhc3MgaW4gbXVsdHVpcGxlIGNvbXBlbmVudCBuYW1lcyBpZiB5b3Ugd2FudCB0byBjaGVjayBub25lIGV4aXN0XG5cbkBtaXhpbiBkb2VzbnQtZXhpc3RzKCRuYW1lcy4uLikge1xuXG4gICRzZWxlY3RvciA6ICdib2R5JztcbiAgJHBhcmVudCA6aWYobGlzdC5udGgobGlzdC5udGgoJiwgMSksIDEpID09ICc6cm9vdCcsICcnLCAmKTtcbiAgXG4gIEBlYWNoICRuYW1lIGluICRuYW1lcyB7XG4gICAgJHNlbGVjdG9yIDogJHNlbGVjdG9yICsgJzpub3QoW2RhdGEtY29tcG9uZW50cyo9XCIjeyRuYW1lfVwiXSknO1xuICB9XG5cbiAgQGF0LXJvb3QgI3skc2VsZWN0b3J9ICN7JHBhcmVudH0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxubmF2aWdhdGlvbi1iYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IGNhbGMoI3skc3BhY2VyMH0gKyAjeyRnYXB9KSAwO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLy8gYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDJkZWcsICRibHVlMywgJGJsdWU0KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU0O1xuICB6LWluZGV4OiA1O1xuICBnYXA6ICRndXR0ZXI7XG4gIGhlaWdodDogbWluLWNvbnRlbnQ7XG5cbiAgLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzOiAjeyRnYXB9O1xuICAtLXRvcC1sZXZlbC1saW5rLWNvbG91cjogd2hpdGU7XG4gIC0tbWFya2VyLWxpbmUtdGhpY2tuZXNzOiAzcHg7XG4gIC0tc3BhY2VyLWxpbmUtdGhpY2tuZXNzOiAxcHg7XG5cbiAgLy8gQGF0LXJvb3QgYm9keTpub3QoW3N0eWxlKj1cIi0tbG9nby10YWdsaW5lLWhlaWdodFwiXSkgeyAtLWxvZ28tdGFnbGluZS1oZWlnaHQgOiAxMHB4OyB9XG5cbiAgQGluY2x1ZGUgYnJlYWstaW4oc21hbGwtbWVkaXVtKSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIEBpbmNsdWRlIGJhY2tncm91bmQtYmxvd291dCB7XG4gICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgfVxuXG4gID4gKjpub3QoLmltYWdlKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cblxuICBAaW5jbHVkZSBjb21wb25lbnQtZXhpc3RzKCdiYWNrZ3JvdW5kLWltYWdlJykge1xuICAgICYuaGlkZS1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gICAgICBiYWNrZ3JvdW5kOiBpbml0aWFsO1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgY29tcG9uZW50LWV4aXN0cygnYmFja2dyb3VuZC12aWRlbycpIHtcbiAgICAmLmhpZGUtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICAgICAgYmFja2dyb3VuZDogaW5pdGlhbDtcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5pbnZlcnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gICAgYmFja2dyb3VuZDogaW5pdGlhbDtcbiAgICAtLXRvcC1sZXZlbC1saW5rLWNvbG91cjogI3skYmx1ZX07XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIGEubG9nbyB7XG4gICAgICBpbWcge1xuICAgICAgICAmW3NyYyo9J3RhZ2xpbmUuc3ZnJ10ge1xuICAgICAgICAgIGZpbHRlcjogaW52ZXJ0KDAuOSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMb2dvID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBhLmxvZ28ge1xuICAgIG1heC13aWR0aDogMzIwcHg7XG4gICAgbWF4LXdpZHRoOiAyODBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgIGFzcGVjdC1yYXRpbzogMzcxIC8gOTc7XG4gICAgJjpoYXMoc3ZnLm5vLXRhZ2xpbmVzKSB7XG4gICAgICBhc3BlY3QtcmF0aW86IGluaXRpYWw7XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3QgOmhhcyhoZWFkZXIuZGFyaykgJjpub3QoLmludmVydCkge1xuICAgIGEubG9nbyB7XG4gICAgICAtLWxvZ28tdGV4dC1jb2xvdXI6IHdoaXRlO1xuICAgIH1cbiAgfVxuXG4gICY6bm90KC5pbnZlcnQpIHtcbiAgICAtLWxvZ28tdGV4dC1jb2xvdXI6IHdoaXRlO1xuICB9XG5cbiAgLy8gTmF2aWdhdGlvbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgbmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZ2FwOiA4cHg7XG5cbiAgICAvLyBEZXZpZGluZyBTcGFjZXIgTGluZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gV2UgbmVlZCB0byBoYW5kbGUgbm9uZSB0b3AtbGV2ZWwtbGluayBpdGVtcyBpbiBhIHNwZWNpYWwgd2F5LlxuICAgIC8vIElmIHlvdSBzaG91bGQgZW5kIHVwIGFkZGluZyBtb3JlIGJ1dHRvbnMgc2ltaWxhciB0byB0aGUgXCJzZWFyY2hcIiBpbiB0aGlzXG4gICAgLy8gYXJlYSwgeW91IHdpbGwgbmVlZCBhbWVuZCB0aGUgOm50aC1sYXN0LWNoaWxkIGluZGV4XG5cbiAgICBtYWluLW1lbnUgPiB1bCA+IGxpLnRvcC1sZXZlbC1saW5rOm5vdCg6bnRoLWxhc3QtY2hpbGQoMikpOm5vdCg6bnRoLWxhc3QtY2hpbGQoMykpOm5vdCg6bGFzdC1vZi10eXBlKTo6YmVmb3JlLFxuICAgIHNlY29uZGFyeS1tZW51ID4gdWwgPiBsaTpub3QoOmxhc3Qtb2YtdHlwZSk6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHdpZHRoOiB2YXIoLS1zcGFjZXItbGluZS10aGlja25lc3MpO1xuICAgICAgaGVpZ2h0OiA0MCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogY2FsYygtMSAqICh2YXIoLS1zcGFjZXItbGluZS10aGlja25lc3MpIC8gMikpO1xuICAgICAgdG9wOiA1MCUgLSAyMCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zcGFjZXItbGluZS1jb2xvdXIsICRyZWQpO1xuICAgIH1cblxuICAgIHBlcnNvbmFsaXNlLWV4cGVyaWVuY2Uge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAucGVyc29uYWxpc2VkIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiAkZ2FwO1xuXG4gICAgICAvLyBQZXJzb25hbGlzZWQgRXhwZXJpZW5jZSBCYXJcbiAgICAgIHBlcnNvbmFsaXNlLWV4cGVyaWVuY2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG5cbiAgICAgICAgYS5idXR0b24ucGVyc29uYWxpc2VkIHtcbiAgICAgICAgICAtLWZvbnQtc2l6ZTogMC44ZW07XG4gICAgICAgICAgLS1wYWRkaW5nOiA0cHggMTBweDtcblxuICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5NDBweCkge1xuICAgICAgICAgICAgLS1mb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICAtLXBhZGRpbmc6IDhweCAyMHB4O1xuICAgICAgICAgICAgLS1pY29uLXNpemU6IDIwcHg7XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDM2cHg7XG4gICAgICAgICAgICAtLWljb24tc2l6ZTogMS4xZW07XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJiArIHNlY29uZGFyeS1tZW51IHtcbiAgICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDQwcHgpIHtcbiAgICAgICAgdG9wOiB1bnNldDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIC5idXR0b24sXG4gICAgICAgIHBlcnNvbmFsaXNlLWV4cGVyaWVuY2UgYS5idXR0b24ucGVyc29uYWxpc2VkIHtcbiAgICAgICAgICAtLXBhZGRpbmc6IDhweDtcbiAgICAgICAgICAtLWljb24tc2l6ZTogMC44ZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBtYWluLW1lbnUgPiB1bCA+IGxpLnRvcC1sZXZlbC1saW5rICsgLnNlYXJjaCB7XG4gICAgICBtYXJnaW4tbGVmdDogLTJweDtcbiAgICB9XG5cbiAgICAvLyBHZW5lcmljIExpbmsgU3R5bGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICAubGluayB7XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSk7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tbGVmdDogMC40ZW07XG4gICAgICAgIGhlaWdodDogMC41ZW07XG4gICAgICAgIGZpbGw6ICR3aGl0ZTtcbiAgICAgICAgJjpub3QoLmFycm93LXJpZ2h0KTpub3QoLmFycm93LWxlZnQpIHtcbiAgICAgICAgICBoZWlnaHQ6IDAuOGVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLm92ZXJ2aWV3IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG4gICAgfVxuICAgIC5saW5rIHN2ZyxcbiAgICAuYnV0dG9uIHN2ZyB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBNYWluIE1lbnUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBtYWluLW1lbnUge1xuICAgICAgLS1mb250LXNpemU6IDAuOTVlbTtcbiAgICAgIG9yZGVyOiAyO1xuICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAudG9wLWxldmVsLWxpbmtzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbGkge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAmLnRvcC1sZXZlbC1saW5rIHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXRvcC1sZXZlbC1saW5rLWNvbG91cik7XG4gICAgICAgICAgICAgIHBhZGRpbmc6ICRnYXAwIHZhcigtLXRvcC1sZXZlbC1saW5rLWd1dHRlcnMpO1xuICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDNweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gKHZhcigtLXRvcC1sZXZlbC1saW5rLWd1dHRlcnMpICogMikpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRvcC1sZXZlbC1saW5rLWNvbG91ciwgJHJlZCk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiB2YXIoLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzKTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb247XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgJi5hY3RpdmU6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgJi5jdXJyZW50OjphZnRlciB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJltkYXRhLW5hdj0nbWVudSddIHtcbiAgICAgICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmW2RhdGEtbmF2PSdzdWJtZW51J10ge1xuICAgICAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gU2VhcmNoIEJ1dHRvblxuICAgICAgICAgICYuc2VhcmNoIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2FwMDtcbiAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICYuc2VhcmNoLFxuICAgICAgICAgICYubWVudSB7XG4gICAgICAgICAgICBvcmRlcjogMztcbiAgICAgICAgICB9XG4gICAgICAgICAgJi5jYXJ0IHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzKSAvIDIpO1xuICAgICAgICAgICAgbGVmdDogLTJweDtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAYXQtcm9vdCBsaS5jYXJ0IHtcbiAgICAgICAgICAgICAgYVtkYXRhLXRvdGFsXSB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXRvdGFsKTtcbiAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMmNoO1xuICAgICAgICAgICAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAwLjRlbTtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogMmNoO1xuICAgICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwLjI7XG4gICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICAgIG9yZGVyOiAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkcmVkO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBhOm5vdChbZGF0YS10b3RhbF0pIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRyZWQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNTUwcHgpIHtcbiAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAyMHB4O1xuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubG9hZGluZyB7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgQGluY2x1ZGUgbG9hZGVyKCRjb2xvdXI6IHdoaXRlKTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHtcbiAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgbG9hZGVyLWFuaW1hdGlvbiB7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNlY29uZGFyeSBNZW51IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHNlY29uZGFyeS1tZW51IHtcbiAgICAgIC0tZm9udC1zaXplOiAwLjhlbTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBvcmRlcjogMTtcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgei1pbmRleDogNjtcbiAgICAgID4gdWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHJpZ2h0OiAkZ2FwLTtcbiAgICAgICAgbGkge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10b3AtbGV2ZWwtbGluay1jb2xvdXIpO1xuICAgICAgICAgICAgcGFkZGluZzogJGdhcDAgJGdhcDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb247XG4gICAgICAgICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC5zdWItbWVudSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogY2FsYygxMDAlICsgI3skZ2FwMn0pO1xuICAgICAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAkZ2FwMC0pO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24sIHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEod2hpdGUsIDAuMSk7XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgxKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6ICRnYXAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGdhcDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IGNhbGMoI3skZ2FwMH0gLyAyKSAkZ2FwO1xuICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogaW5pdGlhbDtcbiAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAmLmFzc2V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC40ZW0gMCAwO1xuICAgICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNGVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBPdmVydmlldyA8bGk+IGxpbmsgZWxlbWVudFxuICAgICAgICAgICAgJltkYXRhLWxldmVsPScxJ10gbGk6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgIG9yZGVyOiAxMDA7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGJyb3dzZXItd2l0aG91dC1mZWF0dXJlKCd0b3VjaCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuc3ViLW1lbnUge1xuICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIDApO1xuICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICY6bGFzdC1vZi10eXBlIC5zdWItbWVudSB7XG4gICAgICAgICAgICByaWdodDogY2FsYygxMDAlICsgI3skZ2FwfSkgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUcmlhbmdsZSAvIFBvaW50ZXJcbiAgICAgICAgLy8gV2UgcmVuZGVyIHRoaXMgb24gdGhlIDxsaT4gcmF0aGVyIHRoYW4gdGhlIGRyb3Bkb3duLWdyb3VwIGVsZW1lbnQgYmVjYXVzZVxuICAgICAgICAvLyB3ZSB3YW50IHRoaXMgdG8gYmUgY2VudHJlZCB0byB0aGUgYnV0dG9uLiBUaGVyZSBhcmUgY2FzZXMgd2hlcmUgdGhlXG4gICAgICAgIC8vIGxhc3QgPGxpPiB3aWxsIGJlIGFsaWduZWQgdG8gdGhlIHJpZ2h0IG9mIHRoZSB2aWV3cG9ydCwgdGhhdCB3YXlcbiAgICAgICAgLy8gdGhlc2UgY2FuJ3QgZXZlciBiZSBwdXNoZWQgb3V0IG9mIHZpZXcgc2hvdWxkIHRoZSB1c2VycyBzY3JlZW4gc3RhcnRzXG4gICAgICAgIC8vIHRvIGJlY29tZSByZXNwb25zaXZlIGJlbG93IHRoZSBtYXggdmlldyB3aWR0aC5cbiAgICAgICAgPiBsaS5oYXMtY2hpbGRyZW4ge1xuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgdG9wOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCBjYWxjKC01MCUgKyAjeyRnYXAwLX0pKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSh3aGl0ZSwgMC4xKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgMTAwJSAwJSwgNTAlIDUwJSwgMCAxMDAlKTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uLCB0cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgU3R5bGluZyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIEBpbmNsdWRlIGJyZWFrLWluKDE0MDApIHtcbiAgICAtLXRvcC1sZXZlbC1saW5rLWd1dHRlcnM6ICN7JGdhcH07XG4gICAgbmF2IG1haW4tbWVudSA+IHVsIGxpLnNlYXJjaCBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWstaW4oOTgwKSB7XG4gICAgbmF2IG1haW4tbWVudSB7XG4gICAgICAtLWZvbnQtc2l6ZTogMC45ZW07XG4gICAgfVxuICB9XG5cbiAgLy8gTW9iaWxlIFN0eWxpbmcgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgbGkubWVudSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tdG9wLWxldmVsLWxpbmstZ3V0dGVycyk7XG4gIH1cblxuICBidXR0b24ubWVudSB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuXG4gICAgc3ZnIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGxpbmUge1xuICAgICAgICBzdHJva2Utd2lkdGg6IDNweDtcbiAgICAgICAgc3Ryb2tlOiB2YXIoLS10b3AtbGV2ZWwtbGluay1jb2xvdXIpO1xuICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMTUlIDMwJTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyAkZWFzZS1pbi1vdXQtcXVpbnQ7XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb247XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDE1JSA3MCU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgJGVhc2UtaW4tb3V0LXF1aW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYuYWN0aXZlIHtcbiAgICAgIHN2ZyB7XG4gICAgICAgIGxpbmUge1xuICAgICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAYXQtcm9vdCBib2R5Lm1vYmlsZSAmIHtcbiAgICBwYWRkaW5nOiAkZ3V0dGVyIDA7XG4gICAgbGkubWVudSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTgwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgIC5idXR0b24ge1xuICAgICAgICAmLnNlYXJjaCB7XG4gICAgICAgICAgLS1mb250LXNpemU6IDAuOGVtO1xuICAgICAgICAgIC0tcGFkZGluZzogNHB4IDEwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxpLm1lbnUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBidXR0b24ubWVudSB7XG4gICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgYS5sb2dvIHtcbiAgICAgIG1heC13aWR0aDogaW5pdGlhbDtcbiAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgIG1pbi13aWR0aDogaW5pdGlhbDtcbiAgICB9XG4gICAgbmF2IHtcbiAgICAgIG1haW4tbWVudSAudG9wLWxldmVsLWxpbmssXG4gICAgICBzZWNvbmRhcnktbWVudSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICBtYWluLW1lbnUgPiB1bCBsaS5zZWFyY2ggc3BhbixcbiAgICAgIG1haW4tbWVudSA+IHVsIGxpW2RhdGEtbmF2PSdzdWJtZW51J10ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWstaW4oOTgwKSB7XG4gICAgICBuYXYgbWFpbi1tZW51ID4gdWwgbGkuc2VhcmNoIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbG91ciBQYWxldHRlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlIFwiLi9tb2R1bGVzL2NvbG91clwiO1xuXG4vLyBBZGp1c3QgdGhlc2UgdG8gYW1lbmQgdGhlIGxpZ2h0bmVzcyBvciBkYXJrbmVzcyBhbW91bnRzIGZvciB0aGUgY29sb3VycyBsc2l0ZWQgYmVsb3cuLiBcblxuJF9saWdodG5lc3MgOiAxNSUgIWRlZmF1bHQ7XG4kX2RhcmtuZXNzICA6IDIwJSAhZGVmYXVsdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENvbW1vbiBDb2xvdXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kcmVkICAgICAgICAgIDogIzk3MDgwRSAhZGVmYXVsdDtcbiRyZWQtbGlnaHQgICAgOiBjb2xvdXIubGlnaHRlbigkcmVkLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kcmVkLWRhcmsgICAgIDogY29sb3VyLmRhcmtlbigkcmVkLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJG9yYW5nZSAgICAgICA6ICNEQTRCMEYgIWRlZmF1bHQ7XG4kb3JhbmdlLWxpZ2h0IDogY29sb3VyLmxpZ2h0ZW4oJG9yYW5nZSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJG9yYW5nZS1kYXJrICA6IGNvbG91ci5kYXJrZW4oJG9yYW5nZSwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiR5ZWxsb3cgICAgICAgOiAjRTlCMTA0ICFkZWZhdWx0O1xuJHllbGxvdy1saWdodCA6IGNvbG91ci5saWdodGVuKCR5ZWxsb3csICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiR5ZWxsb3ctZGFyayAgOiBjb2xvdXIuZGFya2VuKCR5ZWxsb3csICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kZ3JlZW4gICAgICAgIDogIzQ4OEMxMyAhZGVmYXVsdDtcbiRncmVlbi1saWdodCAgOiBjb2xvdXIubGlnaHRlbigkZ3JlZW4sICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRncmVlbi1kYXJrICAgOiBjb2xvdXIuZGFya2VuKCRncmVlbiwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRibHVlICAgICAgICAgOiAjMUI1NUMwICFkZWZhdWx0O1xuJGJsdWUtbGlnaHQgICA6IGNvbG91ci5saWdodGVuKCRibHVlLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kYmx1ZS1kYXJrICAgIDogY29sb3VyLmRhcmtlbigkYmx1ZSwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRwaW5rICAgICAgICAgOiAjRTA1RDZCICFkZWZhdWx0O1xuJHBpbmstbGlnaHQgICA6IGNvbG91ci5saWdodGVuKCRwaW5rLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kcGluay1kYXJrICAgIDogY29sb3VyLmRhcmtlbigkcGluaywgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRwdXJwbGUgICAgICAgOiAjNjEzRDVBICFkZWZhdWx0O1xuJHB1cnBsZS1saWdodCA6IGNvbG91ci5saWdodGVuKCRwdXJwbGUsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRwdXJwbGUtZGFyayAgOiBjb2xvdXIuZGFya2VuKCRwdXJwbGUsICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kZ3JleSAgICAgICAgIDogIzc4Nzg3OCAhZGVmYXVsdDtcbiRncmV5LWxpZ2h0ICAgOiBjb2xvdXIubGlnaHRlbigkZ3JleSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJGdyZXktZGFyayAgICA6IGNvbG91ci5kYXJrZW4oJGdyZXksICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kYnJvd24gICAgICAgIDogIzc3NEYzOCAhZGVmYXVsdDtcbiRicm93bi1saWdodCAgOiBjb2xvdXIubGlnaHRlbigkYnJvd24sICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRicm93bi1kYXJrICAgOiBjb2xvdXIuZGFya2VuKCRicm93biwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiR3aGl0ZSAgICAgICAgOiAjRkZGRkZGICFkZWZhdWx0IDtcbiR3aGl0ZS1kYXJrICAgOiBjb2xvdXIubGlnaHRlbigkd2hpdGUsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcblxuJGJsYWNrICAgICAgICA6ICMwMDAwMDAgIWRlZmF1bHQgO1xuJGJsYWNrLWxpZ2h0ICA6IGNvbG91ci5kYXJrZW4oJGJsYWNrLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNvY2lhbCBNZWRpYSBDb2xvdXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLy8gQHNlZSBodHRwczovL3d3dy5sb2NrZWRvd25zZW8uY29tL3NvY2lhbC1tZWRpYS1jb2xvcnMvXG5cbiRmYWNlYm9vazogICAgIzE4NzdmMiAhZGVmYXVsdDtcbiR0d2l0dGVyOiAgICAgIzFkYTFmMiAhZGVmYXVsdDtcbiRnb29nbGU6ICAgICAgIzQyODVmNCAhZGVmYXVsdDtcbiR5b3V0dWJlOiAgICAgI2ZmMDAwMCAhZGVmYXVsdDtcbiRsaW5rZWRpbjogICAgIzAwN2JiNSAhZGVmYXVsdDtcbiRpbnN0YWdyYW06ICAgI2MzMmFhMyAhZGVmYXVsdDtcbiRwaW50ZXJlc3Q6ICAgI2JkMDgxYyAhZGVmYXVsdDtcbiRkYWlseW1vdGlvbjogIzAwNjZEQyAhZGVmYXVsdDtcbiRzbmFwY2hhdDogICAgI2ZmZmMwMCAhZGVmYXVsdDtcbiRmbGlja3I6ICAgICAgI2Y0MDA4MyAhZGVmYXVsdDtcbiR2aW1lbzogICAgICAgIzFhYjdlYSAhZGVmYXVsdDtcbiR0aHVtYmxlcjogICAgIzM1NDY1ZCAhZGVmYXVsdDtcbiRyZWRkaXQ6ICAgICAgI2ZmNDUwMCAhZGVmYXVsdDtcbiR3aGF0c2FwcDogICAgIzI1ZDM2NiAhZGVmYXVsdDtcbiRza3lwZTogICAgICAgIzAwYWZmMCAhZGVmYXVsdDtcbiRkaXNjb3JkOiAgICAgIzcyODlkYSAhZGVmYXVsdDtcblxuJHNvY2lhbC1tZWRpYSA6IChcbiAgZmFjZWJvb2s6ICAgICAkZmFjZWJvb2ssXG4gIHR3aXR0ZXI6ICAgICAgJHR3aXR0ZXIsXG4gIGdvb2dsZTogICAgICAgJGdvb2dsZSxcbiAgeW91dHViZTogICAgICAkeW91dHViZSxcbiAgbGlua2VkaW46ICAgICAkbGlua2VkaW4sXG4gIGluc3RhZ3JhbTogICAgJGluc3RhZ3JhbSxcbiAgcGludGVyZXN0OiAgICAkcGludGVyZXN0LFxuICBkYWlseW1vdGlvbjogICRkYWlseW1vdGlvbixcbiAgc25hcGNoYXQ6ICAgICAkc25hcGNoYXQsXG4gIGZsaWNrcjogICAgICAgJGZsaWNrcixcbiAgdmltZW86ICAgICAgICAkdmltZW8sXG4gIHRodW1ibGVyOiAgICAgJHRodW1ibGVyLFxuICByZWRkaXQ6ICAgICAgICRyZWRkaXQsXG4gIHdoYXRzYXBwOiAgICAgJHdoYXRzYXBwLFxuICBza3lwZTogICAgICAgICRza3lwZSxcbiAgZGlzY29yZDogICAgICAkZGlzY29yZFxuKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE90aGVyIENvbG91cnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiR5ZWxsbzogI0ZGQ0IwOCAhZGVmYXVsdDtcblxuLy8vIEhhbmRsZXMgdGhlIGN1cnNvciBzZWxlY3Rpb24gY29sb3VyXG4vLy8gQHNlZSBodHRwczovL2Nzcy10cmlja3MuY29tL2FsbWFuYWMvc2VsZWN0b3JzL3Mvc2VsZWN0aW9uL1xuXG4kaGlnaGxpZ2h0OiAjQjJEM0ZBICFkZWZhdWx0OyBcbiIsIkB1c2UgJy4uL192YXJpYWJsZXMnIGFzICo7XG5AdXNlICdtb2R1bGVzL2NvbG91ci9lbmNvZGUnIGFzIGNvbG91cjtcblxuXG5AbWl4aW4gbG9hZGVyKCRzaXplIDogMTJweCwgJGNvbG91ciA6ICRncmV5KSB7XG4gIC0tc2l6ZSA6ICN7JHNpemV9OyBcbiAgY29udGVudDpcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDpjYWxjKDUwJSAtICh2YXIoLS1zaXplKSAvIDIpKTsgXG4gIGxlZnQ6Y2FsYyg1MCUgLSAodmFyKC0tc2l6ZSkgLyAyKSk7IFxuICBvcGFjaXR5OiAwO1xuICB3aWR0aDp2YXIoLS1zaXplKTsgXG4gIGhlaWdodDp2YXIoLS1zaXplKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6MnB4IHNvbGlkIHZhcigtLWxvYWRlci1jb2xvdXIsICRjb2xvdXIpO1xuICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBsb2FkZXItcm90YXRlO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgJGVhc2UtaW4tb3V0O1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xuICBAa2V5ZnJhbWVzIGxvYWRlci1yb3RhdGUge1xuICAgIGZyb20ge3RyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cbiAgICB0byB7dHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgfVxuICBAY29udGVudDtcbn1cblxuQG1peGluIGxvYWRlci1hbmltYXRpb24geyBcbiAgb3BhY2l0eToxOyBcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7XG4gIEBjb250ZW50O1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gQnJvd3NlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYnJvd3NlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIF9icm93c2VyKCRuYW1lLCAkdmVyc2lvbjpmYWxzZSkge1xuICBAYXQtcm9vdCA6cm9vdCB7XG4gICAgJltkYXRhLWJyb3dzZXIqPVwiI3skbmFtZX1cIl0ge1xuICAgICAgQGlmICR2ZXJzaW9uIHtcbiAgICAgICAgJltkYXRhLWJyb3dzZXIqPVwiI3skdmVyc2lvbn1cIl0ge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmZWF0dXJlKCRuYW1lKSB7XG4gIEBhdC1yb290IDpyb290W2RhdGEtYnJvd3Nlci1mZWF0dXJlKj1cIiN7JG5hbWV9XCJdICYge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiB3aXRob3V0LWZlYXR1cmUoJG5hbWUpIHtcbiAgQGF0LXJvb3QgOnJvb3Q6bm90KFtkYXRhLWJyb3dzZXItZmVhdHVyZSo9XCIjeyRuYW1lfVwiXSkgJiB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGZpcmVmb3goJHZlcnNpb246ZmFsc2UpIHtcbiAgQGluY2x1ZGUgX2Jyb3dzZXIoJ2ZpcmVmb3gnLCAkdmVyc2lvbikgeyBAY29udGVudDsgfTtcbn1cblxuQG1peGluIGllKCR2ZXJzaW9uOmZhbHNlKSB7XG4gIEBpbmNsdWRlIF9icm93c2VyKCdpZScsICR2ZXJzaW9uKSB7IEBjb250ZW50OyB9O1xufVxuXG5AbWl4aW4gY2hyb21lKCR2ZXJzaW9uOmZhbHNlKSB7XG4gIEBpbmNsdWRlIF9icm93c2VyKCdjaHJvbWUnLCAkdmVyc2lvbikgeyBAY29udGVudDsgfTtcbn1cblxuQG1peGluIGVkZ2UoJHZlcnNpb246ZmFsc2UpIHtcbiAgQGluY2x1ZGUgX2Jyb3dzZXIoJ2VkZ2UnLCAkdmVyc2lvbikgeyBAY29udGVudDsgfTtcbn1cblxuQG1peGluIG9wZXJhKCR2ZXJzaW9uOmZhbHNlKSB7XG4gIEBpbmNsdWRlIF9icm93c2VyKCdvcGVyYScsICR2ZXJzaW9uKSB7IEBjb250ZW50OyB9O1xufVxuXG5AbWl4aW4gc2FmYXJpKCR2ZXJzaW9uOmZhbHNlKSB7XG4gIEBpbmNsdWRlIF9icm93c2VyKCdzYWZhcmknLCAkdmVyc2lvbikgeyBAY29udGVudDsgfTtcbn1cblxuIiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbi8vIERyb3Bkb3duIE1lbnUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5kcm9wZG93bi1tZW51IHtcbiAgLS1taW4taGVpZ2h0OiA0MzBweDtcbiAgLS1tYXgtaGVpZ2h0OiA2MDBweDtcbiAgLS1kcm9wZG93bi1ncm91cC1uYXYtd2lkdGg6IDI3MHB4O1xuICAtLWRyb3Bkb3duLWltYWdlLXdpZHRoOiAzMDBweDtcbiAgLS1kcm9wZG93bi1pbWFnZS1oZWlnaHQ6IDgwcHg7XG4gIC0tZHJvcGRvd24tb3Blbi1vZmZzZXQ6IDZweDtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlIC0gdmFyKC0tbWFya2VyLWxpbmUtdGhpY2tuZXNzKSAtIDFweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggcmdiYShibGFjaywgMC4yKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1kcm9wZG93bi1ncm91cC1uYXYtd2lkdGgpIDFmcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyAkZWFzZS1pbi1vdXQsIG1hcmdpbi10b3AgMC4zcyAkZWFzZS1pbi1vdXQtc2luZTtcbiAgZm9udC1zaXplOiAxNnB4O1xuXG4gIEBhdC1yb290IG5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUuYWN0aXZlIHtcbiAgICAudG9wLWxldmVsLWxpbmtzIC50b3AtbGV2ZWwtbGluayAubGluay5jdXJyZW50OjphZnRlciB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICBkcm9wZG93bi1tZW51IHtcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLWRyb3Bkb3duLW9wZW4tb2Zmc2V0KTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tbWFya2VyLWxpbmUtdGhpY2tuZXNzKSk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwcHg7XG4gICAgei1pbmRleDogNTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgfVxuXG4gIEBhdC1yb290IGJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyICYge1xuICAgIC0tZHJvcGRvd24tb3Blbi1vZmZzZXQ6ICN7JGdhcH07XG4gICAgd2lkdGg6IHZhcigtLWRyb3Bkb3duLWdyb3VwLW5hdi13aWR0aCkgIWltcG9ydGFudDtcbiAgICByaWdodDogMDtcbiAgICBAaW5jbHVkZSBicmVhay1pbihzbWFsbCkge1xuICAgICAgLS1kcm9wZG93bi1ncm91cC1uYXYtd2lkdGg6IGNhbGMoMTAwdncgLSAjeyRndXR0ZXIzfSkgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBAYXQtcm9vdCBib2R5OjphZnRlciB7XG4gIC8vICAgY29udGVudDpcIlwiO1xuICAvLyAgIG9wYWNpdHk6MDtcbiAgLy8gICBwb2ludGVyLWV2ZW50czogbm9uZTs7XG4gIC8vICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG4gIC8vICAgaW5zZXQ6MDtcbiAgLy8gICB0b3A6dmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDApO1xuICAvLyAgIHdpZHRoOjEwMHZ3O1xuICAvLyAgIGhlaWdodDogMTAwdmg7XG4gIC8vICAgcG9zaXRpb246IGZpeGVkO1xuICAvLyAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHdoaXRlLCAwLjkwKTtcbiAgLy8gfVxuICAvLyBAYXQtcm9vdCBib2R5Lm1vYmlsZS5tZW51LXZpc2libGUge1xuICAvLyAgIEBpbmNsdWRlIGJyZWFrLWluKHNtYWxsKSB7XG4gIC8vICAgICAmOjphZnRlciB7XG4gIC8vICAgICAgIG9wYWNpdHk6MTtcbiAgLy8gICAgIH1cbiAgLy8gICB9XG4gIC8vIH1cbn1cblxuLy8gRHJvcGRvd24gR3JvdXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmRyb3Bkb3duLWdyb3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBncmlkLWNvbHVtbjogMTtcbiAgZ3JpZC1yb3c6IDE7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgLy8gb3ZlcmZsb3cteTogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMDtcbiAgaGVpZ2h0OiBpbmhlcml0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzICRlYXNlLWluLW91dCwgdHJhbnNmb3JtIDAuM3MgJGVhc2UtaW4tb3V0O1xuICAvLyB0cmFuc2l0aW9uLWRlbGF5OiAwLjNzLCAwLjNzO1xuXG4gICRtYXgtZGVwdGg6IDQ7XG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJG1heC1kZXB0aCB7XG4gICAgJltkYXRhLWxldmVsPScjeyRpfSddIHtcbiAgICAgIHotaW5kZXg6ICgkbWF4LWRlcHRoIC0gJGkpICsgMTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBzY3JvbGwtc3R5bGluZyB7XG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICB9XG4gIH1cblxuICAubGluayB7XG4gICAgLS1mb250LXNpemU6IDAuOWVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIHBhZGRpbmc6IDRweCAkZ2FwMjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbiwgYmFja2dyb3VuZC1jb2xvciAkdHJhbnNpdGlvbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAmLmN1cnJlbnQge1xuICAgICAgY29sb3I6ICRyZWQ7XG4gICAgfVxuXG4gICAgJi5hY3RpdmUge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgLy8gVGhpcyB3aWxsIGdpdmUgbGlua3Mgd2l0aCBjaGlsZHJlbiBhIGFuZ2xlZCBzaGFwZSB0byBhY3QgYXMgYSBoaXQgaGVscGVyLlxuICAgICAgLy8gSXQgcHJldmVudCB1c2VycyBmcm9tIGhhdmluZyB0byBtb3ZlIHRoZSBtb3VzZSBkaXJlY3RseSB0byB0aGUgcmlnaHQgYmVmb3JlXG4gICAgICAvLyBiZWluZyBhYmxlIHRvIG1vdmUgdXAgdGhlIG5ldyBzdWIgbWVudS4gU2V0IGEgdGVtcG9yYXJ5IGJhY2tncm91bmQtY29sb3IgdG8gc2VlIGl0IGluIGFjdGlvblxuICAgICAgQGluY2x1ZGUgYnJvd3Nlci13aXRob3V0LWZlYXR1cmUoJ3RvdWNoJykge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICBsZWZ0OiBjYWxjKDEwMCUgLSA1MHB4KTtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gVGhpcyBhZGp1c3QgdGhlIGhpdCBoZWxwZXIgb24gdGhlIGxhc3QgbGluayB0byBhY29pZCB1bndhbnRlZCBzY3JvbGxlcnNcbiAgICAgIEBhdC1yb290IDpub3QoW2RhdGEtYnJvd3Nlci1mZWF0dXJlKj0ndG91Y2gnXSkgZHJvcGRvd24tZ3JvdXAgLmxhc3QgLmxpbmsuYWN0aXZlOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSkgcm90YXRlKDBkZWcpIHNrZXcoLTQ1ZGVnLCAwKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5oYXMtY2hpbGRyZW4ge1xuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRnYXAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGhvdmVyKCkge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgbmVlZCB0byBoYW5kbGUgdGhlIHRvcCBhbmQgYm90dG9tIHBhZGRpbmcgc2xpZ2h0bHlcbiAgLy8gZGlmZmVyZW50bHkgYmVjYXVzZSBncmlkZGVkIGxpc3RzIGhhdmUgc29tZSBpc3N1ZXMgd2l0aCB0aGUgYm90dG9tXG4gIC8vIHBhZGRpbmcgd2hlbiBvdmVyZmxvdyBzY3JvbGwgaXMgYWN0aXZlXG4gIHVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcblxuICAgIGxpIHtcbiAgICAgICYuZmlyc3Qge1xuICAgICAgICBwYWRkaW5nLXRvcDogJGdhcDtcbiAgICAgIH1cbiAgICAgICYubGFzdCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkZ2FwO1xuICAgICAgfVxuICAgICAgJi5vdmVydmlldyB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRnYXA7XG4gICAgICAgICYgfiAuZmlyc3Qge1xuICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5saW5rIHtcbiAgICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgQGluY2x1ZGUgaG92ZXIoJy5hY3RpdmUnKSB7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyb3dzZXItd2l0aG91dC1mZWF0dXJlKCd0b3VjaCcpIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmJhY2sge1xuICAgICAgICBwYWRkaW5nLXRvcDogJGdhcDtcbiAgICAgICAgQGluY2x1ZGUgYnJvd3Nlci13aXRob3V0LWZlYXR1cmUoJ3RvdWNoJykge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgLmxpbmsge1xuICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNGVtO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWxldmVsPScxJ10ge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIGxpLmJhY2sge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtbGV2ZWw9JzInXSB7XG4gICAgd2lkdGg6IDk1JTtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01JSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZXkzO1xuICB9XG5cbiAgJltkYXRhLWxldmVsPSczJ10ge1xuICAgIHdpZHRoOiBjYWxjKDk1JSArIDJweCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICBsZWZ0OiBjYWxjKDE5NSUgLSAxcHgpO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01JSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjNzLCAwLjNzO1xuICB9XG5cbiAgJi5hbGxvdy1zY3JvbGwge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cblxuICAmLmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICZbZGF0YS1sZXZlbD0nMiddLFxuICAgICZbZGF0YS1sZXZlbD0nMyddIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gICAgfVxuICB9XG5cbiAgJjpub3QoLmFjdGl2ZSkge1xuICAgICZbZGF0YS1sZXZlbD0nMSddLFxuICAgICZbZGF0YS1sZXZlbD0nMiddLFxuICAgICZbZGF0YS1sZXZlbD0nMyddIHtcbiAgICAgIGxlZnQ6IDAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbiAgICB9XG4gIH1cblxuICBAYXQtcm9vdCBib2R5Om5vdCgubW9iaWxlKSBuYXZpZ2F0aW9uLWJhciAmOm5vdChbZGF0YS1sZXZlbD0nMSddKSB7XG4gICAgLmxpbmsge1xuICAgICAgLy8gLS1mb250LXNpemU6MC44ZW07XG4gICAgICBwYWRkaW5nLXRvcDogNnB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDZweDtcbiAgICB9XG4gIH1cblxuICBAYXQtcm9vdCBib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciAmIHtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cyAkYm9yZGVyLXJhZGl1cyAwIDAgIWltcG9ydGFudDtcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzLCAwLjVzO1xuICAgIHRyYW5zZm9ybTogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgIC8vIHBhZGRpbmctYm90dG9tIDogdmFyKC0tZHJvcGRvd24taW1hZ2UtaGVpZ2h0KTtcbiAgICAkbWF4LWRlcHRoOiA0O1xuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJG1heC1kZXB0aCB7XG4gICAgICAmW2RhdGEtbGV2ZWw9JyN7JGl9J10ge1xuICAgICAgICB6LWluZGV4OiAkaSArIDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmxpbmsge1xuICAgICAgLS1mb250LXNpemU6IDFlbTtcbiAgICAgIHBhZGRpbmctdG9wOiAkZ2FwMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAkZ2FwMDtcbiAgICB9XG4gICAgdWwge1xuICAgICAgbGkge1xuICAgICAgICAmLm92ZXJ2aWV3LFxuICAgICAgICAmLmJhY2sge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gRHJvcGRvd24gSW1hZ2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmRyb3Bkb3duLWltYWdlIHtcbiAgQGluY2x1ZGUgaW1hZ2Utc3Jjc2V0KCk7XG4gIC8vIGhlaWdodDppbmhlcml0O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGdyaWQtY29sdW1uOiAyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JleTM7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBkaXNwbGF5OiBncmlkO1xuICBqdXN0aWZ5LWl0ZW1zOiBmbGV4LWVuZDtcblxuICAuaW1hZ2Uge1xuICAgIC8vIGhlaWdodDp2YXIoLS1tYXgtaGVpZ2h0KTtcbiAgICB3aWR0aDogY2xhbXAodmFyKC0tZHJvcGRvd24taW1hZ2Utd2lkdGgpIC8gMiwgMzB2dywgdmFyKC0tZHJvcGRvd24taW1hZ2Utd2lkdGgpKTtcbiAgICBncmlkLXJvdzogMTtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgJGVhc2UtaW4tb3V0O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgJi5hY3RpdmUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgICBpbWcge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290IGJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyICYge1xuICAgIC8vIGRpc3BsYXk6bm9uZTtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgICAvLyBncmlkLXJvdzoxO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIHdpZHRoOiBpbmhlcml0O1xuICAgIGhlaWdodDogdmFyKC0tZHJvcGRvd24taW1hZ2UtaGVpZ2h0KTtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5pdGlhbDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAvLyBtYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1kcm9wZG93bi1pbWFnZS1oZWlnaHQpKTtcbiAgICAuaW1hZ2Uge1xuICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG4iLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuXG5AbWl4aW4gc3R5bGluZygpIHtcblxuICAvLyB0aGUgc2Nyb2xsYmFyLlxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6MC45ZW07XG4gICAgaGVpZ2h0OjAuOWVtO1xuICB9XG5cbiAgLy8gdGhlIGJ1dHRvbnMgb24gdGhlIHNjcm9sbGJhciAoYXJyb3dzIHBvaW50aW5nIHVwd2FyZHMgYW5kIGRvd253YXJkcykuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiB7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyB0aGUgZHJhZ2dhYmxlIHNjcm9sbGluZyBoYW5kbGUuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JleTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJvcmRlcjogNHB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMCk7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICB9XG5cbiAgLy8gdGhlIHRyYWNrIChwcm9ncmVzcyBiYXIpIG9mIHRoZSBzY3JvbGxiYXIuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC8vIHRoZSB0cmFjayAocHJvZ3Jlc3MgYmFyKSBOT1QgY292ZXJlZCBieSB0aGUgaGFuZGxlLlxuICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjay1waWVjZSB7XG5cbiAgfVxuXG4gIC8vIHRoZSBib3R0b20gY29ybmVyIG9mIHRoZSBzY3JvbGxiYXIsIHdoZXJlIGJvdGggaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgc2Nyb2xsYmFycyBtZWV0LlxuICAmOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLy8gdGhlIGRyYWdnYWJsZSByZXNpemluZyBoYW5kbGUgdGhhdCBhcHBlYXJzIGF0IHRoZSBib3R0b20gY29ybmVyIG9mIHNvbWUgZWxlbWVudHMuXG4gICY6Oi13ZWJraXQtcmVzaXplciB7XG5cbiAgfVxuXG4gIEBjb250ZW50O1xuXG59IiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cblxuXG4uaGVhZGVyIHtcblxuICBwYWRkaW5nLXRvcDokc3BhY2VyO1xuICBwYWRkaW5nLWJvdHRvbTokc3BhY2VyO1xuXG4gID4gaDEgc3VwIHtcbiAgICBmb250LXNpemU6MC42ZW07XG4gIH1cblxuICA+IGgxIHNwYW57XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOmZvbnQtc2l6ZSg2KTtcbiAgICBjb2xvcjogJGdyZXk7XG4gIH1cblxuICA+IGgxICsgKiwgPiBoMiArICoge1xuICAgIG1hcmdpbi10b3A6JGd1dHRlcjtcbiAgfVxuXG4gID4gaDEgKyBoMiB7IG1hcmdpbi10b3A6JGd1dHRlcjA7IH1cblxuICA+IGgyIHtcbiAgICBjb2xvcjp2YXIoLS1zdWItaGVhZGluZy1jb2xvdXIpOyBcbiAgICBAaW5jbHVkZSBmb250LWxhdG8oc2VtaS1ib2xkKTtcbiAgICBhIHsgXG4gICAgICAtLWZvbnQtY29sb3VyIDogdmFyKC0tc3ViLWhlYWRpbmctY29sb3VyKTsgXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIEBpbmNsdWRlIGhvdmVyIHsgLS1mb250LWNvbG91ciA6ICN7JHByaW1hcnl9OyB9XG4gICAgfVxuICB9XG5cbiAgdGltZSB7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgbWFyZ2luOiRndXR0ZXIgMDsgXG4gICAgcGFkZGluZzo0cHggOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6JGdyZXkzO1xuICAgIGJvcmRlcjoxcHggc29saWQgJGdyZXk0OyAgXG4gICAgZm9udC1zaXplOmZvbnQtc2l6ZSgxMik7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLWxlZnQ6NHB4IHNvbGlkIHZhcigtLXRhZy1jb2xvdXIsICRyZWQpO1xuICB9XG5cbiAgYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTokZ2FwLTsgXG4gICAgbWFyZ2luLXRvcDokc3BhY2VyMDtcbiAgICBAaW5jbHVkZSBicmVhay1pbihzbWFsbCkge1xuICAgICAgLmJ1dHRvbiBzcGFuIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBub3RpY2UtbWVzc2FnZXMgeyBtYXJnaW4tdG9wOiRzcGFjZXIwOyB9XG5cbiAgJi5kYXJrIHtcbiAgICAtLWhlYWRpbmctY29sb3VyOndoaXRlO1xuICAgIC0tc3ViLWhlYWRpbmctY29sb3VyOndoaXRlO1xuICAgIC5idXR0b24uYnJvY2h1cmUge1xuICAgICAgLS1mb250LWNvbG91cjp3aGl0ZTtcbiAgICAgIHN2ZyB7IGZpbGw6IHdoaXRlOyB9XG4gICAgfVxuICB9XG5cbiAgJi5uby1kZXZpZGVyLWxpbmUge1xuICAgIH4gbWFpbiB7XG4gICAgICAtLWJvcmRlci10b3AtY29sb3VyIDogI3tyZ2JhKHdoaXRlLCAwLjIpfTtcbiAgICAgID4gLmNvbnRlbnQtYmxvY2s6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOjA7IFxuICAgICAgICBib3gtc2hhZG93OiBpbml0aWFsO1xuICAgICAgfVxuICAgIH0gICAgXG4gIH1cblxufSIsIkB1c2UgJ3Nhc3M6bWF0aCc7XG5cbkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5mb290ZXIjZm9vdGVyIHtcbiAgLS1mb250LWNvbG91cjogd2hpdGU7XG5cbiAgZm9udC1zaXplOiBmb250LXNpemUoMTQpO1xuICBwYWRkaW5nLXRvcDogJHNwYWNlcjtcbiAgcGFkZGluZy1ib3R0b206ICRzcGFjZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5O1xuICBncmlkLWdhcDogJGd1dHRlcjtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMzAwcHg7XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAgIEBpbmNsdWRlIGhvdmVyKCcuY3VycmVudCcpIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktbGlnaHQsICRyZWQtbGlnaHQpO1xuICAgIH1cbiAgICAmLmN1cnJlbnQge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmJhY2stdG8tdG9wIHtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgbWFyZ2luOiAkZ2FwLSBhdXRvICRnYXAgYXV0bztcbiAgICBAaW5jbHVkZSBicmVhay1vdXQoc21hbGwpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLnRhZy1saW5lLXNpZ24tb2ZmIHtcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNlcjA7XG4gICAgQGluY2x1ZGUgaGVhZGluZy1oMjtcbiAgICB0YWctbGluZSB7XG4gICAgICBzcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250c2l6ZSgxMnB4LCAwLjRlbSk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVhay1pbig5MDApIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBAaW5jbHVkZSBicmVhay1pbig2MDApIHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGdhcDogJGdhcDA7XG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgPiBuYXYge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGdyaWQtZ2FwOiAkZ3V0dGVyO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXG4gICAgdWwge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsaSArIGxpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdhcDA7XG4gICAgICB9XG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzMzcHgsIDFmcikpO1xuICAgICAgICBncmlkLWdhcDogMCAkZ2FwO1xuICAgICAgICBsaTpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzdHlsaW5nXG5cbiAgLmhlYWRpbmcge1xuICAgIG1hcmdpbi1ib3R0b206ICRnYXA7XG4gICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgQGluY2x1ZGUgaGVhZGluZy1oNDtcbiAgICBAaW5jbHVkZSBmb250LWNyb3AtcmVtb3ZlO1xuICAgIGEge1xuICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgfVxuICB9XG5cbiAgY29tcGFueS1kZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bm07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ3JpZC1nYXA6ICRnYXAwICRnYXA7XG5cbiAgICBzbWFsbCxcbiAgICAuc21hbGwge1xuICAgICAgZm9udC1zaXplOiBmb250LXNpemUoMTApO1xuICAgICAgY29sb3I6IHJnYmEod2hpdGUsIDAuNyk7XG4gICAgICBiciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmJhc2Uge1xuICAgIG1hcmdpbi10b3A6ICRzcGFjZXI7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICBhLmxvZ28ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDI0MHB4O1xuICAgICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrLW91dChzbWFsbC1tZWRpdW0pIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICRiYXItaGVpZ2h0OiAzcHg7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZm9vdGVyLWJyLWNvbG91ciwgJHJlZCk7XG4gICAgICAgICAgaGVpZ2h0OiAkYmFyLWhlaWdodDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgYm90dG9tOiBtYXRoLmRpdigtJGJhci1oZWlnaHQsIDIpO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBhLnllbGxvIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IGNhbGMoMTAwJSArICN7JGdhcH0pO1xuICAgICAgZm9udC1zaXplOiBmb250LXNpemUoMTQpO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBjb2xvcjogcmdiYSh3aGl0ZSwgMC41KTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgc3BhbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb247XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgY29sb3I6ICR5ZWxsbztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGFkbWluLWxpbmtzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IGNhbGMoMTAwJSArICN7JGdhcH0pO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGEge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJGdhcDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpoYXMoLmNlcC1sb2dvKSB7XG4gICAgICAtLWxvZ28tc3BhY2VyOiAyMDBweDtcblxuICAgICAgLmNlcC1sb2dvIHtcbiAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMSkgaW52ZXJ0KDEpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWstb3V0KHNtYWxsLW1lZGl1bSkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWxvZ28tc3BhY2VyKTtcbiAgICAgICAgLmNlcC1sb2dvIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgKyAjeyRnYXAyfSk7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLWxvZ28tc3BhY2VyKSAqIC0xKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWstaW4oc21hbGwtbWVkaXVtKSB7XG4gICAgICAgIC5jZXAtbG9nbyB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGd1dHRlcjI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVhay1pbigxNDAwKSB7XG4gICAgPiBuYXYge1xuICAgICAgdWw6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wYW55LWRldGFpbHMgc21hbGwgYnIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBjb21wYW55LWRldGFpbHMsID4gbmF2IHVsIHtcbiAgICAvLyBcdHBhZGRpbmc6JGdhcDI7XG4gICAgLy8gXHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAvLyBcdGJhY2tncm91bmQtY29sb3I6cmdiYSgkYmx1ZS1kYXJrLCAwLjUpO1xuICAgIC8vIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrLWluKHNtYWxsLW1lZGl1bSkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgID4gKiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgPiBuYXYge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHVsIHtcbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdW5zZXQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmJhc2Uge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBhLmxvZ28ge1xuICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgd2lkdGg6IDE2MHB4O1xuICAgICAgICBpbWcge1xuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc29jaWFsLW1lZGlhIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJHNwYWNlcjAtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyMDtcbiAgICAgIH1cbiAgICAgIGFkbWluLWxpbmtzIHtcbiAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uY2wtY29uc2VudC1zZXR0aW5ncyB7XG4gIGxlZnQ6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgd2lkdGg6IDQycHg7XG4gIGhlaWdodDogNDJweDtcbiAgYm94LXNoYWRvdzogdW5zZXQgIWltcG9ydGFudDtcbiAgYm90dG9tOiBjYWxjKHZhcigtLWd1dHRlcjMpICogMi43NSkgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMDtcbiAgQGluY2x1ZGUgYnJlYWstaW4oc21hbGwtbWVkaXVtKSB7XG4gICAgYm90dG9tOiB2YXIoLS1ndXR0ZXI1KSAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIENyb3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2Nyb3Bcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ3Nhc3M6bWF0aCc7XG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICcuL21vZHVsZXMvdW5pdCc7XG5cblxuLy8vIEBzZWUgaHR0cDovL3RleHQtY3JvcC5laWdodHNoYXBlcy5jb20vP3R5cGVmYWNlLXNlbGVjdGlvbj1nb29nbGUtZm9udCZ0eXBlZmFjZT1MYXRvJmN1c3RvbS10eXBlZmFjZS1uYW1lPUhlbHZldGljYSZjdXN0b20tdHlwZWZhY2UtdXJsPSZjdXN0b20tdHlwZWZhY2Utd2VpZ2h0PTQwMCZjdXN0b20tdHlwZWZhY2Utc3R5bGU9bm9ybWFsJndlaWdodC1hbmQtc3R5bGU9MTAwJnNpemU9MzYmbGluZS1oZWlnaHQ9MS4yJnRvcC1jcm9wPTkmYm90dG9tLWNyb3A9OFxuXG5AZnVuY3Rpb24gb2Zmc2V0KCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGNyb3ApIHtcbiAgJGNyb3AgICAgICAgIDogdW5pdC5zdHJpcCgkY3JvcCk7XG4gICRmb250LXNpemUgICA6IHVuaXQuc3RyaXAoJGZvbnQtc2l6ZSkgKiAxMDtcbiAgJGxpbmUtaGVpZ2h0IDogdW5pdC5zdHJpcCgkbGluZS1oZWlnaHQpO1xuICBAcmV0dXJuIG1hdGguZGl2KG1hdGgucm91bmQobWF0aC5kaXYobWF0aC5tYXgoKCRjcm9wICsgKCRsaW5lLWhlaWdodCkgKiAoJGZvbnQtc2l6ZSAvIDIpKSwgMCksICRmb250LXNpemUpICogMTAwKSwgMTAwKTtcbn1cblxuQG1peGluIGNyb3AyKCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGNyb3AtdG9wLCAkY3JvcC1ib3R0b20gKSB7XG4gIFxuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuXG4gIEBpZiAkY3JvcC10b3Age1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBtYXJnaW4tdG9wOiAtICN7b2Zmc2V0KCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGNyb3AtdG9wKX1lbTtcblxuICAgIH1cbiAgfVxuXG4gIEBpZiAkY3JvcC1ib3R0b20ge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0gI3tvZmZzZXQoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkY3JvcC1ib3R0b20pfWVtO1xuICAgIH1cbiAgfVxuXG59XG5cbkBtaXhpbiBjcm9wKCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGNyb3AtdG9wLCAkY3JvcC1ib3R0b20gKSB7XG5cbiAgJGNyb3AtdG9wICAgIDogdW5pdC5zdHJpcCgkY3JvcC10b3ApO1xuICAkY3JvcC1ib3R0b20gOiB1bml0LnN0cmlwKCRjcm9wLWJvdHRvbSk7XG4gICRmb250LXNpemUgICA6IHVuaXQuc3RyaXAoJGZvbnQtc2l6ZSkgKiAxMDtcbiAgJGxpbmUtaGVpZ2h0IDogdW5pdC5zdHJpcCgkbGluZS1oZWlnaHQpO1xuXG4gICRjcm9wLWxpbmUtaGVpZ2h0OiAxLjI7XG5cbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcblxuXG4gIEBpZiAkY3JvcC10b3Age1xuICAgICRtYXJnaW4tdG9wOiBtYXRoLmRpdihtYXRoLnJvdW5kKG1hdGguZGl2KG1hdGgubWF4KCgkY3JvcC10b3AgKyAoJGxpbmUtaGVpZ2h0IC0gJGNyb3AtbGluZS1oZWlnaHQpICogKCRmb250LXNpemUgLyAyKSksIDApLCAkZm9udC1zaXplKSAqIDEwMCksIDEwMCk7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIG1hcmdpbi10b3A6IC0gI3skbWFyZ2luLXRvcH1lbTtcblxuICAgIH1cbiAgfVxuXG4gIEBpZiAkY3JvcC1ib3R0b20ge1xuICAgICRtYXJnaW4tYm90dG9tOiBtYXRoLmRpdihtYXRoLnJvdW5kKG1hdGguZGl2KG1hdGgubWF4KCgkY3JvcC1ib3R0b20gKyAoJGxpbmUtaGVpZ2h0IC0gJGNyb3AtbGluZS1oZWlnaHQpICogKCRmb250LXNpemUgLyAyKSksIDApLCAkZm9udC1zaXplKSAqIDEwMCksIDEwMCk7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLSAjeyRtYXJnaW4tYm90dG9tfWVtO1xuICAgIH1cbiAgfVxuXG59XG5cblxuQG1peGluIGNyb3AzKCRjcm9wLWZvbnQtc2l6ZTogNTEsICRjcm9wLWxpbmUtaGVpZ2h0OiAxLjIsICR0b3AtY3JvcDogMTMsICRib3R0b20tY3JvcDogMTEpIHtcbiAgLy8gQ29uZmlndXJlZCBpbiBTdGVwIDFcbiAgJGxpbmUtaGVpZ2h0OiAxLjM7XG4gICRjcm9wLWZvbnQtc2l6ZSAgIDogdW5pdC5zdHJpcCgkY3JvcC1mb250LXNpemUpICogMTA7XG5cblxuICAvLyBBcHBseSB2YWx1ZXMgdG8gY2FsY3VsYXRlIGVtLWJhc2VkIG1hcmdpbnMgdGhhdCB3b3JrIHdpdGggYW55IGZvbnQgc2l6ZVxuICAkZHluYW1pYy10b3AtY3JvcDogbWF0aC5kaXYobWF4KCgkdG9wLWNyb3AgKyAoJGxpbmUtaGVpZ2h0IC0gJGNyb3AtbGluZS1oZWlnaHQpICogKCRjcm9wLWZvbnQtc2l6ZSAvIDIpKSwgMCksICRjcm9wLWZvbnQtc2l6ZSk7XG4gICRkeW5hbWljLWJvdHRvbS1jcm9wOiBtYXRoLmRpdihtYXgoKCRib3R0b20tY3JvcCArICgkbGluZS1oZWlnaHQgLSAkY3JvcC1saW5lLWhlaWdodCkgKiAoJGNyb3AtZm9udC1zaXplIC8gMikpLCAwKSwgJGNyb3AtZm9udC1zaXplKTtcblxuICAvLyBNaXhpbiBvdXRwdXRcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcblxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICB3aWR0aDogMDtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtI3skZHluYW1pYy10b3AtY3JvcH0rZW07XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgICBtYXJnaW4tdG9wOiAtI3skZHluYW1pYy1ib3R0b20tY3JvcH0rZW07XG4gIH1cbn1cblxuQG1peGluIHJlbW92ZSB7XG4gICY6OmJlZm9yZSwgJjo6YWZ0ZXIgeyBkaXNwbGF5Om5vbmU7IH1cbn0iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuYm9keSA+IGJhY2tncm91bmQtaW1hZ2Uge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgQGluY2x1ZGUgaW1hZ2Utc3Jjc2V0KCk7XG5cbiAgLS1iYWNrZ3JvdW5kLXRoZW1lLW9uZSA6ICN7JGJsdWV9O1xuICAtLWJhY2tncm91bmQtdGhlbWUtdHdvIDogI3skYmx1ZTJ9O1xuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OlwiXCI7XG4gICAgcG9zaXRpb246YWJzb2x1dGU7IFxuICAgIHRvcDowOyBcbiAgICBsZWZ0OjA7IFxuICAgIHdpZHRoOjEwMCU7XG4gICAgaGVpZ2h0OjEwMCU7IFxuICAgIG9wYWNpdHk6MC43O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLWJhY2tncm91bmQtdGhlbWUtb25lKSwgdmFyKC0tYmFja2dyb3VuZC10aGVtZS10d28pKTtcbiAgfVxuXG4gICYubm9uZSB7XG4gICAgJjo6YWZ0ZXIgeyBjb250ZW50OmluaXRpYWw7IH1cbiAgfVxuXG4gICYucmVkIHtcbiAgICAtLWJhY2tncm91bmQtdGhlbWUtb25lIDogI3skcmVkfTtcbiAgICAtLWJhY2tncm91bmQtdGhlbWUtdHdvIDogI3skcmVkfTtcbiAgfVxuXG4gICYuYmxhY2sge1xuICAgIC0tYmFja2dyb3VuZC10aGVtZS1vbmUgOiAjeyRibGFja307XG4gICAgLS1iYWNrZ3JvdW5kLXRoZW1lLXR3byA6ICN7JGJsYWNrfTtcbiAgfVxuXG4gICYudGlsZSB7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGF1dG87XG4gICAgaW1nIHsgZGlzcGxheTpub25lOyB9XG4gIH1cblxuICAmOm5vdCgudGlsZSkge1xuICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuICB9XG5cbiAgJi5iZWhpbmQtaGVhZGVyIHtcbiAgICAvLyBmaWx0ZXI6IGdyYXlzY2FsZSgyMCUpO1xuICAgICY6OmFmdGVyIHtcbiAgICAgIG9wYWNpdHk6MTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoYmxhY2ssIDAuNSk7XG4gICAgICAvLyBiYWNrZ3JvdW5kOiBpbml0aWFsOztcbiAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICAgIG1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgYmxhY2sgMjAlLHRyYW5zcGFyZW50IDEwMCUpO1xuICAgIH1cbiAgfVxuIFxufVxuXG5ib2R5Lm1vYmlsZSA+IGJhY2tncm91bmQtaW1hZ2UsIGJvZHkubW9iaWxlID4gYmFja2dyb3VuZC12aWRlbyB7XG4gIG1heC1oZWlnaHQ6IGluaXRpYWw7XG59IiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbmJvZHkgPiBiYWNrZ3JvdW5kLXZpZGVvIHtcblxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgQGluY2x1ZGUgaW1hZ2Utc3Jjc2V0KCk7XG5cdFxuICB2aWRlbyB7XG4gICAgZGlzcGxheSAgICAgICAgIDogYmxvY2s7XG4gICAgcG9zaXRpb24gICAgICAgIDogYWJzb2x1dGU7XG4gICAgb2JqZWN0LWZpdCAgICAgIDogY292ZXI7XG4gICAgb2JqZWN0LXBvc2l0aW9uIDogdmFyKC0taW1hZ2UtcG9zaXRpb24sIGNlbnRlciAzMy4zMyUpO1xuXHRcdHdpZHRoICAgICAgICAgICA6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcblx0XHRoZWlnaHQgICAgICAgICAgOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpOyBcblx0XHRtYXgtd2lkdGggICAgICAgOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG5cdFx0bWF4LWhlaWdodCAgICAgIDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcblx0XHR0b3AgICAgICAgICAgICAgOiAwOyBcblx0XHRsZWZ0ICAgICAgICAgICAgOiAwO1xuXHR9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6XCJcIjtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTsgXG4gICAgdG9wOjA7IFxuICAgIGxlZnQ6MDsgXG4gICAgd2lkdGg6MTAwJTtcbiAgICBoZWlnaHQ6MTAwJTsgXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdmFyKC0tYmFja2dyb3VuZC10aGVtZS1vbmUsIHRyYW5zcGFyZW50KSwgdmFyKC0tYmFja2dyb3VuZC10aGVtZS10d28sIGJsYWNrKSk7XG4gIH1cblxufSIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG4jYnJlYWRjcnVtYnMtYmFyIHtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiRwcmltYXJ5O1xuICBkaXNwbGF5OmZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGhlaWdodCAkdHJhbnNpdGlvbiwgdG9wICR0cmFuc2l0aW9uO1xuXG4gIHVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgXG4gICAgbGVmdDokZ2FwLTtcbiAgICB3aWR0aDogMTAwJTs7XG4gICAgbGkge1xuICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgICsgbGkgeyBtYXJnaW4tbGVmdDokZ2FwLTsgfVxuICAgIH1cbiAgfVxuXG4gIC5saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OjEwMCU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDpib2xkOyBcbiAgICBmb250LXNpemUgOiBmb250LXNpemUoMTgpO1xuICAgIHBhZGRpbmc6JGdhcDsgXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOndoaXRlOyBcbiAgICBzdmcge1xuICAgICAgY29sb3I6cmdiYSh3aGl0ZSwgMC44KTsgXG4gICAgICB3aWR0aDowLjdlbTtcbiAgICAgIGhlaWdodDowLjdlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiRnYXA7XG4gICAgfVxuICAgIEBpbmNsdWRlIGhvdmVyKCcuY3VycmVudCcpIHtcbiAgICAgIGNvbG9yOiRzZWNvbmRhcnk7XG4gICAgfVxuICAgICYuY3VycmVudDo6YWZ0ZXIge1xuICAgICAgY29udGVudDpcIlwiO1xuICAgICAgYm90dG9tOjA7XG4gICAgICBsZWZ0OjA7IFxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6NHB4OyBcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICB9XG5cbiAgLy8gYSB7XG4gIC8vICAgZ3JpZC1yb3c6MTsgXG4gIC8vICAgZm9udC1zaXplIDogZm9udC1zaXplKDIyKTtcbiAgLy8gICBmb250LXdlaWdodDpib2xkOyBcbiAgLy8gICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAvLyAgIGRpc3BsYXk6YmxvY2s7IFxuICAvLyAgIC0tZm9udC1jb2xvdXIgOiB3aGl0ZTsgXG4gIC8vICAgQGluY2x1ZGUgaG92ZXIge1xuICAvLyAgICAgY29sb3I6JHNlY29uZGFyeTtcbiAgLy8gICB9XG4gIC8vIH1cblxuXG4gIC8vIEBpbmNsdWRlIGNvbXBvbmVudC1kb2VzbnQtZXhpc3RzKCdiYWNrZ3JvdW5kLWltYWdlJykge1xuXHRcdC8vICY6OmJlZm9yZSB7IGJvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEod2hpdGUsIDAuMik7IH1cblx0Ly8gfVxuXG59XG5cbmJvZHkubW9iaWxlID4gI2JyZWFkY3J1bWJzLWJhciB7XG4gIG1heC1oZWlnaHQ6IGluaXRpYWw7XG4gIFxuICAvLy8gSWYgeW91IHdhbnQgdGhpcyBiYWNrIGluLCB5b3UnbGwgaGF2ZSB0byBlZGl0IHRoZSB0b2dnbGUgbG9naWMgaW4gdGhlIGlzTW9iaWxlQnJlYWtQb2ludCBtZXRob2QgaGVyZTogXG4gIC8vLyAgQHNlZSBzcmMvc2NyaXB0cy9jb21wb25lbnRzL3NlY3Rpb25zL25hdmlnYXRpb24tYmFyLmpzXG4gIGRpc3BsYXk6bm9uZTsgXG59XG5cbiIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG4jYW5jaG9ycy1iYXIge1xuXG4gIGJhY2tncm91bmQtY29sb3I6JGdyZXkzO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgJHRyYW5zaXRpb24sIHRvcCAkdHJhbnNpdGlvbjtcbiAgZGlzcGxheTpmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXgtd2lkdGg6IDEwMHZ3O1xuXG4gIC5jb250YWluZXIge1xuICAgIGRpc3BsYXk6ZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG92ZXJmbG93OmhpZGRlbjsgXG4gICAgaGVpZ2h0OjEwMCU7IFxuICB9XG5cbiAgQGluY2x1ZGUgYnJvd3Nlci13aXRob3V0LWZlYXR1cmUoJ3RvdWNoJykgeyBcbiAgICBAaW5jbHVkZSBicmVhay1pbihtYXgpIHtcbiAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgIG1hcmdpbi1sZWZ0OiRndXR0ZXIyLTtcbiAgICAgIC5jb250YWluZXIge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiRndXR0ZXI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6JGd1dHRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicm93c2VyLWZlYXR1cmUoJ3RvdWNoJykgeyBcbiAgICB3aWR0aDogY2FsYygxMDAlICsgI3skZ3V0dGVyMn0gKyAjeyRnYXAwfSk7XG4gICAgbWFyZ2luLWxlZnQ6JGd1dHRlci07XG4gICAgJjo6YmVmb3JlIHsgY29udGVudDppbml0aWFsOyB9XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgcGFkZGluZy1sZWZ0OiRndXR0ZXI7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiRndXR0ZXI7XG4gICAgfVxuICB9XG5cbiAgJjo6YmVmb3JlIHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgJGdyZXk0OyB9XG5cbiAgYSB7XG4gICAgZ3JpZC1yb3c6MTsgXG4gICAgZm9udC1zaXplIDogZm9udC1zaXplKDE0KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OmJvbGQ7IFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZGlzcGxheTpmbGV4O1xuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7IFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY29sb3I6JGJsdWU7IFxuICAgICsgYSB7IG1hcmdpbi1sZWZ0OiRndXR0ZXI7IH1cbiAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICBjb2xvcjokc2Vjb25kYXJ5O1xuICAgIH1cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OlwiXCI7XG4gICAgICBib3R0b206MDtcbiAgICAgIGxlZnQ6MDsgXG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDo0cHg7IFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRyYW5zZm9ybTpzY2FsZVkoMCk7XG4gICAgICB0cmFuc2l0aW9uOnRyYW5zZm9ybSAkdHJhbnNpdGlvbi1kdXJhdGlvbiAkdHJhbnNpdGlvbi1lYXNlIDAuMnM7XG4gICAgfVxuXG4gICAgJi5jdXJyZW50IHtcbiAgICAgIGNvbG9yOiRzZWNvbmRhcnk7XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTpzY2FsZVkoMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTaWRlYmFyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdfbW9kdWxlcycgYXMgKjtcblxuc2lkZS1iYXIge1xuICA+IGRpdiB7XG4gICAgPiAqIHtcbiAgICAgICY6bm90KC53aGl0ZSkge1xuICAgICAgICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgICAgICAgLS1oZWFkaW5nLWNvbG91cjogd2hpdGU7XG4gICAgICB9XG4gICAgICAtLWJhY2tncm91bmQtY29sb3VyOiAjeyRwcmltYXJ5fTtcblxuICAgICAgb3JkZXI6IDM7XG4gICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgIHBhZGRpbmc6ICRndXR0ZXIyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgcmdiYSh3aGl0ZSwgMC4yKSk7XG4gICAgfVxuXG4gICAgc2VydmljZS1jZW50cmUtZmluZGVyIHtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgICBzZXJ2aWNlLWNlbnRyZS1maW5kZXIgfiAjZ3JhZGVzLXNpZGViYXItbGlzdCB7XG4gICAgICBvcmRlcjogMjtcbiAgICB9XG5cbiAgICAuaGVhZGluZyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZ3V0dGVyMDtcbiAgICAgIEBpbmNsdWRlIGhlYWRpbmctaDMoKTtcbiAgICB9XG5cbiAgICA+IGRpdi5zaWRlYmFyLWxvZ29zIHtcbiAgICAgIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogMnJlbTtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICB9XG4gICAgICBzdmcge1xuICAgICAgICBtYXgtd2lkdGg6IDE1MHB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjcG93ZGVyLXR1YnMsXG4gICNncmVlbmVyLWZ1dHVyZSxcbiAgI2xpYmVydHktcG93ZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBoMyB7XG4gICAgICBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICAgIGRpdiB7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgICAuYmFja2dyb3VuZCB7XG4gICAgICBvcGFjaXR5OiAwLjI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIG9iamVjdC1wb3NpdGlvbjogMTAwJSAwJTtcbiAgICB9XG4gICAgLmltYWdlIHtcbiAgICAgIGltZyB7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2xpYmVydHktcG93ZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTQ7XG4gICAgLmltYWdlIHtcbiAgICAgIGhlaWdodDogNjBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRnYXAyO1xuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI3Bvd2Rlci10dWJzIHtcbiAgICBiYWNrZ3JvdW5kOiAkZ3JleTY7XG4gICAgaDMge1xuICAgICAgcGFkZGluZy1ib3R0b206IDIyNXB4O1xuICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgc3BhbiB7XG4gICAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgfVxuICAgIH1cbiAgICAuYmFja2dyb3VuZCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICAuaW1hZ2Uge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGhlaWdodDogMjUwcHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrLW1lZGl1bSkge1xuICAgICAgaDMge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzAwcHg7XG4gICAgICB9XG4gICAgICAuaW1hZ2Uge1xuICAgICAgICBoZWlnaHQ6IDM1MHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNncmVlbmVyLWZ1dHVyZSB7XG4gICAgLS1ncmVlbmVyLWdyZWVuOiAjNGVjYjNkO1xuICAgIGgzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRnYXAyO1xuICAgICAgc3BhbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmVlbmVyLWdyZWVuKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmltYWdlIHtcbiAgICAgIGhlaWdodDogOTBweDtcbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRnYXA7XG4gICAgICBsaSB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkZ2FwMjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW5lci1ncmVlbik7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiA0cHg7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgd2hpdGU7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgd2hpdGU7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IDdweDtcbiAgICAgICAgICB0b3A6IDZweDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVhay1tZWRpdW0pIHtcbiAgICAgIHVsIHtcbiAgICAgICAgY29sdW1uLWNvdW50OiAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uc2lkZWJhci1ibG9ja1xcOmxvY2FsLWN0YSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NzY3Njc7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTFyZW0gYm90dG9tO1xuICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMjIwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tZ3V0dGVyMCk7XG4gIHAge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB0ZXh0LXdyYXA6IHByZXR0eTtcbiAgfVxuICBAbWVkaWEgKHdpZHRoID4gMTQwMHB4KSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL3VwbG9hZHMvaW1hZ2VzLzIwbXBoLXNpZ24ucG5nJyk7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDE2MHB4O1xuICB9XG59XG5cbi5zaWRlYmFyLWJsb2NrXFw6aXNvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc0YmYwMztcbiAgYm9yZGVyOiBpbml0aWFsO1xuICBwYWRkaW5nOiAwO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFNvY2lhbCBNZWRpYVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbnNvY2lhbC1tZWRpYSB7XG4gIFxuICAtLWljb24tY29sb3VyIDogI3skd2hpdGV9O1xuICAtLWljb24tc2l6ZSAgIDogMjBweDsgXG5cbiAgZGlzcGxheTpmbGV4OyBcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhIHtcblxuICAgIG1hcmdpbi1sZWZ0OiRnYXA7IFxuICAgIGRpc3BsYXk6ZmxleCAhaW1wb3J0YW50OyBcblxuICAgIHN2ZyB7XG4gICAgICB3aWR0aCAgOiB2YXIoLS1pY29uLXNpemUpO1xuICAgICAgaGVpZ2h0IDogdmFyKC0taWNvbi1zaXplKTtcbiAgICAgIGZpbGwgICA6IHZhcigtLWljb24tY29sb3VyKTtcbiAgICAgIHRyYW5zaXRpb24gOiAkdHJhbnNpdGlvbjsgXG4gICAgfVxuXG4gICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgQGVhY2ggJG5hbWUsICRjb2xvdXIgaW4gJGNvbG91cnMtc29jaWFsLW1lZGlhIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7IC0taWNvbi1jb2xvdXIgOiAjeyRjb2xvdXJ9OyB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3BhbiB7IGRpc3BsYXk6bm9uZTsgfVxuXG4gIH1cblxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFRyYW5zaXRpb25zXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlIFwiaGVscGVycy9lYXNlXCI7XG5cbiRkdXJhdGlvbiA6IDAuMnM7XG4kZWFzZSAgICAgOiBlYXNlLiRpbi1vdXQ7XG4kZGVsYXkgICAgOiBudWxsO1xuXG4kdHJhbnNpdGlvbiA6IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sICRkdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCAkZWFzZSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgJGRlbGF5KTsiLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuQHVzZSAnc2FzczpsaXN0JztcbkB1c2UgJ3Nhc3M6c3RyaW5nJztcblxuJHBhcmVudFNlbGVjdG9yOiAnLmFydGljbGUnO1xuXG4vLyBAaW5jbHVkZSBjb250YWlucygndGl0bGUnLCAnc3ViaGVhZGluZycsICdub3Q6aW50cm9kdWN0aW9uJykgeyAuLi4gfVxuXG5AbWl4aW4gY29udGFpbnMoJG5hbWVzLi4uKSB7XG4gICRwYXJlbnQ6IGlmKGxpc3QubnRoKGxpc3QubnRoKCYsIDEpLCAxKSA9PSAnOnJvb3QnLCAnJywgJik7XG5cbiAgJHNlbGVjdG9yOiAnJztcblxuICBAaWYgKHR5cGUtb2YoJHBhcmVudCkgPT0gJ2xpc3QnKSB7XG4gICAgQGVhY2ggJHNlZ21lbnQgaW4gbGlzdC5udGgoJHBhcmVudCwgMSkge1xuICAgICAgQGlmICgkc2VnbWVudCAhPSAkcGFyZW50U2VsZWN0b3IpIHtcbiAgICAgICAgJHNlbGVjdG9yOiAkc2VsZWN0b3IgKyAnICcgKyAkc2VnbWVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAkYXR0cmlidXRlczogJyc7XG5cbiAgQGVhY2ggJG5hbWUgaW4gJG5hbWVzIHtcbiAgICBAaWYgKHN0cmluZy5pbmRleCgkbmFtZSwgJ25vdDonKSkge1xuICAgICAgJG5hbWU6IHN0cmluZy5zbGljZSgkbmFtZSwgNSk7XG4gICAgICAkYXR0cmlidXRlczogJGF0dHJpYnV0ZXMgKyAnOm5vdChbZGF0YS1jb250YWlucyo9XCIjeyRuYW1lfVwiXSknO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGF0dHJpYnV0ZXM6ICRhdHRyaWJ1dGVzICsgJ1tkYXRhLWNvbnRhaW5zKj1cIiN7JG5hbWV9XCJdJztcbiAgICB9XG4gIH1cblxuICBAYXQtcm9vdCAjeyRwYXJlbnRTZWxlY3Rvcn0jeyRhdHRyaWJ1dGVzfSAjeyRzZWxlY3Rvcn0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbiN7JHBhcmVudFNlbGVjdG9yfSB7XG4gIGRpc3BsYXk6IGZsZXg7XG5cbiAgLmNvbnRhaW5lciB7XG4gICAgLy8gZGlzcGxheTpncmlkO1xuICAgIC8vIGdyaWQtYXV0by1jb2x1bW5zOiAxZnI7XG4gICAgLy8gZ3JpZC1nYXA6JGdhcDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogJGd1dHRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTM7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGdhcDogMS41cmVtO1xuXG4gICAgPiAqIHtcbiAgICAgIG9yZGVyOiAyO1xuICAgICAgLy8gbWFyZ2luLWJvdHRvbTogJGdhcDtcbiAgICB9XG5cbiAgICAuaGVhZGluZyB7XG4gICAgICBAaW5jbHVkZSBoZWFkaW5nLWgzO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuc3ViaGVhZGluZyB7XG4gICAgICBAaW5jbHVkZSBoZWFkaW5nLWg0O1xuICAgICAgLy8gY29sb3I6JHNlY29uZGFyeTtcbiAgICAgIGNvbG9yOiB2YXIoLS1hcnRpY2xlLXN1YmhlYWRpbmctZm9udC1jb2xvdXIsICRmb250LWNvbG91cik7XG5cbiAgICAgIG1heC13aWR0aDogNzVjaDtcblxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICsgLnRpbWVzdGFtcCB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRnYXA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmludHJvZHVjdGlvbiB7XG4gICAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxNCk7XG4gICAgICBtYXgtd2lkdGg6IDc1Y2g7XG4gICAgfVxuXG4gICAgLmJ1dHRvbiB7XG4gICAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICB9XG5cbiAgICAmOmhhcyguYXV0aG9yKSB7XG4gICAgICAuYXV0aG9yIHtcbiAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgYm9yZGVyLXRvcDogJGd1dHRlcjAgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgICAuYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogaW5pdGlhbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aW1lIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZm9udC1zaXplOiBmb250LXNpemUoMTQpO1xuICAgIH1cblxuICAgIC5hdXRob3Ige1xuICAgICAgLS1waG90by1zaXplOiA0MHB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIC5uYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgZm9udC1zaXplOiBmb250LXNpemUoMTQpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgZW0ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDEyKTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgfVxuICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1waG90by1zaXplKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIH1cbiAgICAgIC50aW1lc3RhbXAge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxNCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgICAgICAmLFxuICAgICAgICB+IC5uYW1lIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiBjYWxjKHZhcigtLXBob3RvLXNpemUpIC8gMik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5pbWFnZSB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1waG90by1zaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1waG90by1zaXplKTtcbiAgICAgICAgdG9wOiBjYWxjKDUwJSAtIHZhcigtLXBob3RvLXNpemUpIC8gMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTQ7XG4gICAgICAgIH4gKiB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLXBob3RvLXNpemUpICsgI3skZ2FwfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IC5pbWFnZSB7XG4gICAgICBvcmRlcjogMTtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRndXR0ZXI7XG4gICAgICBoZWlnaHQ6IHZhcigtLWltYWdlLWhlaWdodCwgMTgwcHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArICN7JGd1dHRlcjN9KTtcbiAgICAgIGluc2V0LWlubGluZS1zdGFydDogJGd1dHRlci07XG4gICAgICBtYXJnaW4tdG9wOiAkZ3V0dGVyLTtcbiAgICB9XG4gIH1cbiAgW2hyZWZePSd0ZWw6J10ge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbiAgJi5iZy0ge1xuICAgIEBlYWNoICRuYW1lLCAkY29sb3VyIGluICRjb2xvdXItbWFwIHtcbiAgICAgICYjeycnICsgJG5hbWV9Om5vdCguY2VudHJlLXN0YWNrZWQpIC5jb250YWluZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3VyO1xuICAgICAgICBAaWYgKCRuYW1lID09IHJlZCBvciAkbmFtZSA9PSBvcmFuZ2Ugb3IgJG5hbWUgPT0gZ3JlZW4gb3IgJG5hbWUgPT0gYmx1ZSkge1xuICAgICAgICAgIC0tYXJ0aWNsZS1zdWJoZWFkaW5nLWZvbnQtY29sb3VyOiAjeyR3aGl0ZX07XG4gICAgICAgICAgLS1oZWFkaW5nLWNvbG91cjogI3skd2hpdGV9O1xuXG4gICAgICAgICAgLnRleHQsXG4gICAgICAgICAgLm5hbWUge1xuICAgICAgICAgICAgY29sb3I6ICN7JHdoaXRlfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmICgkbmFtZSA9PSBncmV5KSB7XG4gICAgICAgICAgLS1oZWFkaW5nLWNvbG91cjogdmFyKC0tc2Vjb25kYXJ5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmcHJpbWFyeSAuY29udGFpbmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xuICAgICAgLS1hcnRpY2xlLXN1YmhlYWRpbmctZm9udC1jb2xvdXI6ICN7JHdoaXRlfTtcbiAgICAgIC0taGVhZGluZy1jb2xvdXI6ICN7JHdoaXRlfTtcbiAgICB9XG4gICAgJnNlY29uZGFyeSAuY29udGFpbmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeSk7XG4gICAgICAtLWFydGljbGUtc3ViaGVhZGluZy1mb250LWNvbG91cjogI3skd2hpdGV9O1xuICAgICAgLS1oZWFkaW5nLWNvbG91cjogI3skd2hpdGV9O1xuICAgIH1cbiAgICBAYXQtcm9vdCAuY29udGVudC1ibG9jay5ibGFjayBhcnRpY2xlLWxpc3Qge1xuICAgICAgLmFydGljbGUgLmNvbnRhaW5lciB7XG4gICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAtLWFydGljbGUtc3ViaGVhZGluZy1mb250LWNvbG91cjogI3skd2hpdGV9O1xuXG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICAgICAgICAgIC8vIC0tYmFja2dyb3VuZC1jb2xvdXI6ICN7JGJsYWNrfTtcbiAgICAgICAgICAtLWJhY2tncm91bmQtY29sb3VyOiAjeyRzZWNvbmRhcnl9O1xuICAgICAgICAgIC0tYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgLS1ob3Zlci1mb250LWNvbG91cjogI3skYmxhY2t9O1xuICAgICAgICAgIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAgICAgICAgIC0taG92ZXItYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuY29sdW1ucy0yIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWstb3V0KDEwMDBweCkge1xuICAgICAgICAgIG1heC13aWR0aDogMTAwMHB4O1xuICAgICAgICB9XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aGFzKGRpdi5jb250YWluZXIgYnV0dG9uLWNvbnRhaW5lciAuYnV0dG9uOm9ubHktY2hpbGQpIHtcbiAgICBkaXYuY29udGFpbmVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkdHJhbnNpdGlvbjtcbiAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeTtcbiAgICAgIH1cbiAgICB9XG4gICAgYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgIC5idXR0b246b25seS1jaGlsZCB7XG4gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBpbnNldDogMDtcbiAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYS5jb250YWluZXIge1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkdHJhbnNpdGlvbjtcbiAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5O1xuICAgIH1cbiAgfVxuXG4gIGJ1dHRvbi1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6ICRndXR0ZXI7XG4gICAgLmJ1dHRvbiB7XG4gICAgICAvLyBwYWRkaW5nLWJsb2NrOiAwLjJlbTtcbiAgICAgIC8vIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAgICAgZm9udC1zaXplOiBzbWFsbDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICAmLnVuY3JvcHBlZC1pbWFnZSB7XG4gICAgLmltYWdlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgaW1nIHtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgcGFkZGluZzogJGd1dHRlcjA7XG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAYXQtcm9vdCBhcnRpY2xlLWxpc3Q6aGFzKC5pbWFnZS10ZXh0LXNpZGUtYnktc2lkZSkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgJi5kaXItcnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAuY29udGVudCA+ICoge1xuICAgICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgfVxuICB9XG4gICY6bm90KFtjbGFzcyo9J2JnLSddKSB7XG4gICAgLS1kaXZpZGVyLWxpbmUtY29sb3VyOiAjeyRncmV5M307XG4gIH1cbiAgJi5pbWFnZS10ZXh0LXNpZGUtYnktc2lkZSB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIC5jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogJGd1dHRlcjtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICB9XG4gICAgICAuaW1hZ2Uge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMzMlO1xuICAgICAgICBtaW4td2lkdGg6IDEyMHB4O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBib3JkZXItaW5saW5lLWVuZDogMXB4IHNvbGlkIHZhcigtLWRpdmlkZXItbGluZS1jb2xvdXIsICRncmV5NCk7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgcGFkZGluZzogJGd1dHRlcjtcbiAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmNlbnRyZS1zdGFja2VkIHtcbiAgICAuY29udGFpbmVyIHtcbiAgICAgIC8vIHBhZGRpbmc6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAuY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgfVxuICAgICAgLnRleHQgKiB7XG4gICAgICAgIHRleHQtd3JhcDogYmFsYW5jZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmltYWdlIHtcbiAgICAgIG1heC13aWR0aDogMjQwcHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgb3JkZXI6IC0xO1xuICAgICAgbWluLWhlaWdodDogMTIwcHg7XG4gICAgICBtYXgtaGVpZ2h0OiAxNDBweDtcbiAgICAgIGltZyB7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgLy8gcGFkZGluZzogJGd1dHRlcjA7XG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICBwYWRkaW5nLXRvcDogJGd1dHRlcjA7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWstb3V0KDEzMDBweCkge1xuICAgICsgLmNlbnRyZS1zdGFja2VkOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBoZWlnaHQ6IDgwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHdpZHRoOiAxcHg7XG4gICAgICBvcGFjaXR5OiAwLjI7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAlKTtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgd2hpdGU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgY29udGFpbnMoJ3RpdGxlJywgJ3RpbWVzdGFtcCcsICdhdXRob3InLCAnYnV0dG9uJywgJ2ltYWdlJywgJ25vdDpzdWJoZWFkaW5nJywgJ25vdDppbnRyb2R1Y3Rpb24nKSB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICAudGltZXN0YW1wIHtcbiAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgY29udGFpbnMoJ3RpdGxlJywgJ2ltYWdlJywgJ25vdDp0aW1lc3RhbXAnLCAnbm90OmF1dGhvcicsICdub3Q6YnV0dG9uJywgJ25vdDpzdWJoZWFkaW5nJywgJ25vdDppbnRyb2R1Y3Rpb24nKSB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICAuaGVhZGluZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmctaDM7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICB9XG4gICAgICA+IC5pbWFnZSB7XG4gICAgICAgIC0taW1hZ2UtaGVpZ2h0OiAxMzBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBjb250YWlucygnc2VydmljZUNlbnRyZXMnKSB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICBkaXYge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xuICAgICAgfVxuICAgICAgaDQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubGF5b3V0IHtcbiAgICAmLXRleHQtaW1hZ2Utc2lkZS1ieS1zaWRlIHtcbiAgICAgICY6bm90KFtjbGFzcz0nYmctJ10pIHtcbiAgICAgICAgLmNvbnRhaW5lcixcbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG50YWctbGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6ICRnYXA7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDVweDtcbiAgQGluY2x1ZGUgaGVhZGluZy1oMztcbiAgc3BhbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMC41ZW07XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGdyaWQtcm93OiAxO1xuICAgIGxpbmUtaGVpZ2h0OiAyO1xuICB9XG4gIHN2ZyB7XG4gICAgY29sb3I6IHZhcigtLXRhZ2xpbmUtaWNvbi1jb2xvdXIsICRyZWQpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG4gIH1cbiAgLy8gQGluY2x1ZGUgYnJlYWstaW4oNDAwKSB7XG4gIC8vICAgZ2FwOiAkZ2FwMDtcbiAgLy8gICB3aWR0aDogMTAwJTtcbiAgLy8gICBtYXJnaW46ICRzcGFjZXIwIDA7XG4gIC8vICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLy8gICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgLy8gICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cbiAgLy8gICBzcGFuIHtcbiAgLy8gICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIC8vICAgfVxuICAvLyAgIHN2ZyB7XG4gIC8vICAgICBtYXJnaW4tcmlnaHQ6ICRnYXAwO1xuICAvLyAgIH1cbiAgLy8gfVxufVxuIiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbnNpZGUtYmFyIGZvcm0ge1xuICAuZnJlZWZvcm0tZm9ybS1zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAzMHB4KTtcbiAgICBwYWRkaW5nOiAkZ2FwMCAkZ2FwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIG1hcmdpbjogMCAtMTVweCAkZ2FwO1xuICB9XG4gIC5zdWJtaXQtcm93IHtcbiAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICB9XG59XG5cbmZvcm0ge1xuICBAaW5jbHVkZSBmb3JtLXNlbGVjdCgpO1xuICBAaW5jbHVkZSBmb3JtLWlucHV0KCk7XG4gIEBpbmNsdWRlIGZvcm0tdGV4dGFyZWEoKTtcblxuICBpbnB1dDotd2Via2l0LWF1dG9maWxsLFxuICBpbnB1dDotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICBpbnB1dDotd2Via2l0LWF1dG9maWxsOmZvY3VzLFxuICB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsLFxuICB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmZvY3VzIHtcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdmFyKC0tZm9udC1jb2xvdXIsIGluaGVyaXQpO1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDBweCAxMDAwcHggdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIsIHdoaXRlKSBpbnNldDtcbiAgfVxuXG4gICZbZGF0YS1mcmVlZm9ybV0ge1xuICAgIGxhYmVsICsgZGl2IHtcbiAgICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDEyKTtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRnYXAwO1xuICAgIH1cbiAgICAuZnJlZWZvcm0tcm93IHtcbiAgICAgICsgLmZyZWVmb3JtLXJvdyA+IGRpdiB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRnYXA7XG4gICAgICB9XG4gICAgfVxuICAgIC5mcmVlZm9ybS1jb2x1bW4ge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAuaW5wdXQtZ3JvdXAtb25lLWxpbmUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1jaGVja2JveCgpO1xuICAgIH1cbiAgfVxufVxuXG5zaWRlLWJhciBmb3JtIHtcbiAgbGFiZWwge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB+IGRpdiB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuICB9XG59XG5cbmZvcm0jbG9naW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICA+IGxhYmVsIH4gbGFiZWwge1xuICAgIG1hcmdpbi10b3A6ICRnYXA7XG4gIH1cbiAgZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDEyKTtcbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICB9XG59XG5cbmZvcm0jcmVzZXQtcGFzc3dvcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogJGd1dHRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICB9XG59XG5cbnJlcXVpcmVkLW5vdGljZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNXB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm90aWNlLWNvbG91ciwgJGdyZWVuKTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDZweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkdHJhbnNpdGlvbjtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDZweDtcbiAgc3BhbiB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxMik7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IGNhbGMoMTAwJSArICN7JGdhcDB9KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDRweCAkZ2FwMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMHB4LCAtNTAlKTtcbiAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgfVxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgc3BhbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC01MCUpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbn1cblxuZm9ybVtkYXRhLWhhbmRsZT0nY29udGFjdFVzJ10sXG5mb3JtW2RhdGEtaGFuZGxlPSdwb3dkZXJDb250YWN0J10ge1xuICAuZnJlZWZvcm0tZm9ybS1zdWNjZXNzLFxuICAuZnJlZWZvcm0tZm9ybS1lcnJvcnMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAkZ2FwMCAkZ2FwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIG1hcmdpbi1ib3R0b206ICRndXR0ZXI7XG4gIH1cbiAgLmZyZWVmb3JtLWZvcm0tZXJyb3JzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICB9XG5cbiAgLmZvcm0tZmllbGRzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtZ2FwOiAkZ3V0dGVyICRndXR0ZXI7XG5cbiAgICBAaW5jbHVkZSBicmVhay1vdXQoNjAwKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgzNDBweCwgMWZyKSk7XG5cbiAgICAgIC5mcmVlZm9ybS1yb3cge1xuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZmlyc3QtbmFtZSxcbiAgICAgICAgJi5sYXN0LW5hbWUsXG4gICAgICAgICYuZW1haWwsXG4gICAgICAgICYuY29tcGFueS1uYW1lLFxuICAgICAgICAmLmNvbnRhY3Qtbm8sXG4gICAgICAgICYueS1ycWcxODFrLWQge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICB9XG4gICAgICAgICYuZGV0YWlsc29mZW5xdWlyeSB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgICAgZ3JpZC1yb3c6IDIgLyBzcGFuIDU7XG4gICAgICAgIH1cbiAgICAgICAgJi5zdWJtaXQtcm93IHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBidXR0b25bdHlwZT0nc3VibWl0J10ge1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHN2Zy5lbWFpbCB7XG4gICAgICAgIHdpZHRoOiAxZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC41ZW07XG4gICAgICAgIGhlaWdodDogMWVtO1xuICAgICAgICBmaWxsOiAkcmVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5mcmVlZm9ybS1yb3cge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMjtcblxuICAgICAgJi5kZXRhaWxzb2ZlbnF1aXJ5IHtcbiAgICAgICAgLmZyZWVmb3JtLWluc3RydWN0aW9ucyB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICB0ZXh0YXJlYSB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIC5mcmVlZm9ybS1jb2x1bW4ge1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmZyZWVmb3JtLWNvbHVtbiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBsYWJlbDpub3QoLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwpIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuc2VydmljZS1jZW50cmUtY29udGFjdCxcbiAgICAgICYubGVhZC1zdGF0dXMsXG4gICAgICAmLmludGVybmFsLW5vdGVzLFxuICAgICAgJi5vcmRlci12YWx1ZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGFiZWwuZnJlZWZvcm0taW5wdXQtb25seS1sYWJlbCB7XG4gICAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxNCk7XG4gICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgIGlucHV0IHtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2FwMDtcbiAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3QsXG4gICAgdGV4dGFyZWEsXG4gICAgaW5wdXQ6bm90KFt0eXBlPSdzdWJtaXQnXSkge1xuICAgICAgLS1ib3JkZXItY29sb3VyOiBub25lO1xuICAgICAgLS1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gICAgfVxuICB9XG5cbiAgLmZyZWVmb3JtLWVycm9ycyB7XG4gICAgY29sb3I6ICRyZWQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiBmb250LXNpemUoMTApO1xuICAgIHBhZGRpbmc6IDJweCAkZ2FwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoMTAwJSAtIDRweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNnB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA2cHg7XG4gIH1cblxuICBidXR0b25bdHlwZT0nc3VibWl0J10ge1xuICAgIEBpbmNsdWRlIGJyZWFrLWluKDQwMCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmZyZWVmb3JtLWlucHV0W3JlcXVpcmVkXTpub3QoOnZhbGlkKSB+IHJlcXVpcmVkLW5vdGljZSB7XG4gICAgLS1ub3RpY2UtY29sb3VyOiAjeyRyZWR9O1xuICB9XG5cbiAgJjpub3QoOnZhbGlkKSB7XG4gICAgYnV0dG9uW3R5cGU9J3N1Ym1pdCddIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLW91dGxpbmUtdGhlbWUoJGdyZXkpO1xuICAgIH1cbiAgfVxuXG4gIC5zZXJ2aWNlLWNlbnRyZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbmZvcm1bZGF0YS1oYW5kbGU9J2NvbnRhY3RVcyddIHtcbiAgLmZvcm0tZmllbGRzIHtcbiAgICBAaW5jbHVkZSBicmVhay1vdXQoNjAwKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgzNDBweCwgMWZyKSk7XG5cbiAgICAgIC5mcmVlZm9ybS1yb3cge1xuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZmlyc3QtbmFtZSxcbiAgICAgICAgJi5sYXN0LW5hbWUsXG4gICAgICAgICYuZW1haWwsXG4gICAgICAgICYuY29tcGFueS1uYW1lLFxuICAgICAgICAmLmNvbnRhY3Qtbm8sXG4gICAgICAgICYueS1ycWcxODFrLWQsXG4gICAgICAgICYucHJvZHVjdCB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAyO1xuICAgICAgICB9XG4gICAgICAgICYuZGV0YWlsc29mZW5xdWlyeSB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyAtMTtcbiAgICAgICAgICBncmlkLXJvdzogMiAvIHNwYW4gNjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5ib2R5I2VkaXQge1xuICBmb3JtIHtcbiAgICB0ZXh0YXJlYSxcbiAgICBzZWxlY3QsXG4gICAgaW5wdXQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gICAgfVxuICAgIC5zdWJtaXQtcm93IHtcbiAgICAgIG9yZGVyOiAyMDtcbiAgICB9XG5cbiAgICAuZnJlZWZvcm0tcm93IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5maXJzdC1uYW1lLFxuICAgIC5sYXN0LW5hbWUsXG4gICAgLmVtYWlsLFxuICAgIC5wcm9kdWN0LFxuICAgIC5kZXRhaWxzb2ZlbnF1aXJ5LFxuICAgIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0LFxuICAgIC5sZWFkLXN0YXR1cyxcbiAgICAuaW50ZXJuYWwtbm90ZXMsXG4gICAgLm9yZGVyLXZhbHVlLFxuICAgIC5zdWJtaXQtcm93IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgLmZyZWVmb3JtLWNvbHVtbiB7XG4gICAgICAgIHNlbGVjdCxcbiAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5kZXRhaWxzb2ZlbnF1aXJ5IHtcbiAgICAgIGdyaWQtcm93OiAxIC8gc3BhbiA2O1xuICAgIH1cblxuICAgIC5maXJzdC1uYW1lLFxuICAgIC5sYXN0LW5hbWUsXG4gICAgLmVtYWlsLFxuICAgIC5wcm9kdWN0LFxuICAgIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0IHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgc2VsZWN0LFxuICAgICAgdGV4dGFyZWEsXG4gICAgICBpbnB1dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRldGFpbHNvZmVucXVpcnkge1xuICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VydmljZS1jZW50cmUtY29udGFjdCxcbiAgICAubGVhZC1zdGF0dXMsXG4gICAgLmludGVybmFsLW5vdGVzLFxuICAgIC5vcmRlci12YWx1ZSB7XG4gICAgICAuZnJlZWZvcm0tY29sdW1uIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnbW9kdWxlcy9jb2xvdXIvZW5jb2RlJyBhcyBjb2xvdXI7XG5AdXNlIFwiZm9udFwiO1xuXG5AbWl4aW4gX2Jhc2Utc3R5bGluZyB7XG4gIFxuICAtLWZvbnQtY29sb3VyIDogI3skZm9udC1jb2xvdXJ9O1xuICAtLWJhY2tncm91bmQtY29sb3VyIDogI3skd2hpdGV9O1xuICAtLWJvcmRlci1yYWRpdXMgOiAjeyRib3JkZXItcmFkaXVzfTtcbiAgLS1ib3JkZXItY29sb3VyIDogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtLWJvcmRlciA6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgLS1wYWRkaW5nIDogI3skZ2FwfSAjeyRnYXB9O1xuXG4gIGJvcmRlci1yYWRpdXM6JGJvcmRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXI6dmFyKC0tYm9yZGVyKTsgXG4gIHBhZGRpbmc6dmFyKC0tcGFkZGluZyk7IFxuICBmb250LXNpemU6Zm9udC5zaXplKDE0KTsgXG4gIGNvbG9yOnZhciggLS1mb250LWNvbG91cik7XG5cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uO1xuICB9XG4gICY6Zm9jdXMge1xuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOnRyYW5zcGFyZW50O1xuICAgIH1cbiAgICBvdXRsaW5lLWNvbG9yIDogJGJsdWU7IFxuICB9XG4gICYuYXV0b2NvbXBsZXRlOm5vdChbdmFsdWU9XCJcIl0pOmZvY3VzIHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICB9XG59XG5cbkBtaXhpbiBhbGwtaW5wdXRzKCkge1xuICBpbnB1dFt0eXBlPVwidGV4dFwiXSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLCBzZWxlY3QsIHRleHRhcmVhIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gaW5wdXQoJHR5cGU6bnVsbCkge1xuXG4gICRzZWxlY3RvciA6ICdpbnB1dDpub3QoW3R5cGU9XCJjaGVja2JveFwiXSk6bm90KFt0eXBlPVwicmFkaW9cIl0pJztcblxuICBAaWYgdHlwZS1vZigkdHlwZSkgIT0gJ251bGwnIHtcbiAgICAkc2VsZWN0b3IgOiAnaW5wdXRbdHlwZT1cIiN7JHR5cGV9XCJdJztcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgIF9iYXNlLXN0eWxpbmc7IFxuICAgIEBjb250ZW50O1xuICB9XG5cbn1cblxuQG1peGluIHNlbGVjdCgkc3Ryb2tlIDogJGJsYWNrKSB7XG5cbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSAgX2Jhc2Utc3R5bGluZzsgXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyBcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpjYWxjKDEwMCUgLSAjeyRnYXB9KSBjZW50ZXI7IFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTcuNCcgaGVpZ2h0PScxMC4xJyUzRSUzQ3BhdGggZD0nTTE2LjcuN2wtOCA4LTgtOCcgZmlsbD0nbm9uZScgc3Ryb2tlPSdcIitjb2xvdXIuZW5jb2RlKCRzdHJva2UpK1wiJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1taXRlcmxpbWl0PScxMCcvJTNFJTNDL3N2ZyUzRVwiKTsgICAgXG4gICAgQGNvbnRlbnQ7XG4gIH1cblxufVxuXG5AbWl4aW4gY2hlY2tib3goKSB7XG5cbn1cblxuQG1peGluIHRleHRhcmVhKCkge1xuXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSAgX2Jhc2Utc3R5bGluZzsgXG4gICAgQGNvbnRlbnQ7XG4gIH1cblxufSIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5tb2RhbC13cmFwcGVyIHtcblxuICAtLXdyYXBwZXItYmFja2dyb3VuZC1jb2xvdXIgOiAje3JnYmEoJHdoaXRlLCAwLjk1KX07XG4gIC0tY29udGFpbmVyLWJhY2tncm91bmQtY29sb3VyIDogd2hpdGU7XG5cbiAgLS1taW4td2lkdGg6MzAwcHg7XG4gIC0tbWF4LXdpZHRoOiN7JGJyZWFrLW1lZGl1bX07XG4gIC0td2lkdGg6Y2xhbXAodmFyKC0tbWluLXdpZHRoKSwgOTB2dywgZml0LWNvbnRlbnQpO1xuXG4gIC0tbWluLWhlaWdodDo2MDBweDtcbiAgLS1tYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSAjeyRndXR0ZXIyfSk7XG4gIFxuICAtLWhlaWdodDpjbGFtcCh2YXIoLS1taW4taGVpZ2h0KSwgOTB2dywgZml0LWNvbnRlbnQpO1xuXG4gIEBzdXBwb3J0cyAoIC0tdjotd2Via2l0LWZpbGwtYXZhaWxhYmxlICkge1xuICAgIC0tbWF4LWhlaWdodDotd2Via2l0LWZpbGwtYXZhaWxhYmxlO1xuICB9XG5cbiAgLS1jbG9zZS1idXR0b24tc2l6ZSA6IDMwcHg7IFxuICAtLW5hdi1idXR0b24tc2l6ZSA6IDQwcHg7IFxuXG4gIHBvc2l0aW9uOmZpeGVkO1xuICBpbnNldDowO1xuICBoZWlnaHQ6MTAwJTsgXG4gIHdpZHRoOjEwMCU7IFxuICBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdyYXBwZXItYmFja2dyb3VuZC1jb2xvdXIpO1xuICB6LWluZGV4OjEwO1xuICBkaXNwbGF5OmZsZXg7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzICRlYXNlLWluLW91dDtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcblxuICAmLmxvYWRpbmcgeyBcbiAgICBvcGFjaXR5OjA7IFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyAkZWFzZS1pbi1vdXQgMC4zcztcbiAgICBtb2RhbC1jb250YWluZXIge1xuICAgICAgb3BhY2l0eTowOyBcbiAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVZKDJ2aCk7IFxuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzICRlYXNlLWluLW91dCwgdHJhbnNmb3JtIDAuM3MgJGVhc2UtaW4tcXVhcnQ7XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uLmNsb3NlIHtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICB0b3A6JGd1dHRlcjsgXG4gICAgcmlnaHQ6JGd1dHRlcjsgXG4gICAgd2lkdGg6dmFyKC0tY2xvc2UtYnV0dG9uLXNpemUpOyBcbiAgICBoZWlnaHQ6dmFyKC0tY2xvc2UtYnV0dG9uLXNpemUpOyBcbiAgICBzdmcgeyBcbiAgICAgIGJvcmRlcjoycHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LCAjeyRyZWR9KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGNpcmNsZSwgcGF0aCB7IHRyYW5zaXRpb246MC4zcyAkZWFzZS1pbi1vdXQ7IH1cbiAgICAgIC0tZmlsbDp2YXIoLS1zZWNvbmRhcnksICN7JHJlZH0pO1xuICAgIH1cbiAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICBzdmcgeyBcbiAgICAgICAgLS1maWxsOndoaXRlO1xuICAgICAgICAtLXN0cm9rZTp2YXIoLS1zZWNvbmRhcnksICN7JHJlZH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGJ1dHRvbi5uYXZpZ2F0aW9uIHtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICB3aWR0aDp2YXIoLS1uYXYtYnV0dG9uLXNpemUpOyBcbiAgICBoZWlnaHQ6dmFyKC0tbmF2LWJ1dHRvbi1zaXplKTsgXG4gICAgdG9wOmNhbGMoNTAlIC0gKHZhcigtLW5hdi1idXR0b24tc2l6ZSkgLyAyKSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zZWNvbmRhcnksICN7JHJlZH0pO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6MnB4IHNvbGlkIHZhcigtLXNlY29uZGFyeSwgI3skcmVkfSk7XG4gICAgY29sb3I6d2hpdGU7IFxuICAgIGRpc3BsYXk6ZmxleDtcbiAgICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOmNvbG9yICR0cmFuc2l0aW9uLCBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLCB0cmFuc2Zvcm0gMC4ycyAkZWFzZS1vdXQtYmFjaztcbiAgICAmLnByZXZpb3VzIHsgbGVmdCA6ICRndXR0ZXI7IH1cbiAgICAmLm5leHQgeyByaWdodCA6ICRndXR0ZXI7IH1cbiAgICBzdmcgeyBcbiAgICAgIHdpZHRoOjUwJTtcbiAgICAgIGhlaWdodDo1MCU7IFxuICAgIH1cbiAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgICBjb2xvcjp2YXIoLS1zZWNvbmRhcnksICN7JHJlZH0pO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgfVxuICB9XG59XG5cbm1vZGFsLWNvbnRhaW5lciB7XG5cbiAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyAkZWFzZS1pbi1vdXQgMC4zcywgdHJhbnNmb3JtIDAuNXMgJGVhc2Utb3V0LXF1YXJ0IDAuM3M7XG4gIHdpZHRoOnZhcigtLXdpZHRoKTtcbiAgaGVpZ2h0OnZhcigtLWhlaWdodCk7XG4gIG1heC1oZWlnaHQ6dmFyKC0tbWF4LWhlaWdodCk7XG4gIG1heC13aWR0aDp2YXIoLS1tYXgtd2lkdGgpO1xuICBib3JkZXI6MXB4IHNvbGlkICRncmV5NDsgXG4gIGJvcmRlci1yYWRpdXM6JGJvcmRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6dmFyKC0tY29udGFpbmVyLWJhY2tncm91bmQtY29sb3VyKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW46JGd1dHRlcjtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcblxuICBAc3VwcG9ydHMgbm90ICggd2lkdGg6Y2xhbXAoMXB4LCA1dncsIDEwcHgpKSB7XG5cbiAgICAtLXdpZHRoIDogNjB2dztcbiAgICBtYXgtd2lkdGg6dmFyKC0tbWF4LXdpZHRoKTtcbiAgICBtaW4td2lkdGg6dmFyKC0tbWluLXdpZHRoKTtcblxuICAgIC0taGVpZ2h0IDogODB2dztcbiAgICBtYXgtaGVpZ2h0OnZhcigtLW1heC1oZWlnaHQpO1xuICAgIG1pbi1oZWlnaHQ6dmFyKC0tbWluLWhlaWdodCk7XG4gIH1cblxuICAmOmVtcHR5IHtcbiAgICB3aWR0aDpjYWxjKHZhcigtLW1heC13aWR0aCkgLyAyKTtcbiAgICBoZWlnaHQ6Y2FsYyh2YXIoLS1tYXgtaGVpZ2h0KSAvIDIpO1xuICAgICY6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgbG9hZGVyKDIwcHgpO1xuICAgICAgQGluY2x1ZGUgbG9hZGVyLWFuaW1hdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gID4gYnV0dG9uLmNsb3NlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3JkZXI6LTE7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgdG9wOmluaXRpYWw7XG4gICAgcmlnaHQ6aW5pdGlhbDtcbiAgICBtYXJnaW4tdG9wOmNhbGMoKC0xICogdmFyKC0tY2xvc2UtYnV0dG9uLXNpemUpKSAvIDIpO1xuICAgIG1hcmdpbi1ib3R0b206Y2FsYygoLTEgKiB2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSkpIC8gMik7XG4gICAgbWFyZ2luLXJpZ2h0OmNhbGMoKC0xICogdmFyKC0tY2xvc2UtYnV0dG9uLXNpemUpKSAvIDIpO1xuICB9XG5cbn1cblxubW9kYWwtY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICB3aWR0aDppbmhlcml0O1xuICBoZWlnaHQ6aW5oZXJpdDtcbiAgbWF4LWhlaWdodDppbmhlcml0O1xuICBtYXgtd2lkdGg6aW5oZXJpdDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBwYWRkaW5nOiRndXR0ZXI7XG4gID4gKiB7IG1heC13aWR0aDoxMDAlOyB9XG59XG5cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPVwiaW1hZ2VcIl0gLmltYWdlIHsgXG4gIG1heC1oZWlnaHQ6Y2FsYyh2YXIoLS1tYXgtaGVpZ2h0KSAtICN7JGd1dHRlcjZ9KTtcbiAgYm9yZGVyOm5vbmU7XG4gIGltZyB7XG4gICAgbWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gI3skZ3V0dGVyM30gLSAjeyRndXR0ZXI0fSk7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjphdXRvO1xuICB9XG59XG5cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPVwiZGVmYXVsdFwiXSB7XG4gIG1vZGFsLWNvbnRlbnQgPiBpbWcge1xuICAgICZbc3JjKj1cIi5zdmdcIl0geyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgfVxuICB9XG59XG5cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPVwidmlkZW9cIl0ge1xuICAtLXdyYXBwZXItYmFja2dyb3VuZC1jb2xvdXIgOiAje3JnYmEoYmxhY2ssIDAuOTUpfTtcbiAgbW9kYWwtY29udGFpbmVyIHsgXG4gICAgQGluY2x1ZGUgdmlkZW8tY29udGFpbmVyKCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcbiAgICBwYWRkaW5nOiRnYXA7IFxuICAgIG1vZGFsLWNvbnRlbnQge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgfVxuICB9XG59XG5cbi5vcGVuLWluLW1vZGFsIHtcbiAgY3Vyc29yOnBvaW50ZXI7XG4gIHRyYW5zaXRpb246b3BhY2l0eSAkdHJhbnNpdGlvbjtcbiAgJjphZnRlciB7IEBpbmNsdWRlIGxvYWRlcigyMHB4LCB3aGl0ZSk7IH1cbiAgJi5sb2FkaW5nIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAmOmFmdGVyIHsgQGluY2x1ZGUgbG9hZGVyLWFuaW1hdGlvbigpOyB9XG4gIH1cbn1cblxuaW1nLm9wZW4taW4tbW9kYWwsIC5vcGVuLWluLW1vZGFsIGltZyB7IFxuICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcbiAgLWtodG1sLXVzZXItZHJhZzogbm9uZTtcbiAgLW1vei11c2VyLWRyYWc6IG5vbmU7XG4gIC1vLXVzZXItZHJhZzogbm9uZTtcbiAgdXNlci1kcmFnOiBub25lO1xufVxuIiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbjpyb290IHtcbiAgLS1kaWFsb2ctdHJhbnNsYXRlLW9mZnNldDogMXJlbTtcbiAgLS1kaWFsb2ctdHJhbnNsYXRlLWVudGVyOiAwIHZhcigtLWRpYWxvZy10cmFuc2xhdGUtb2Zmc2V0KTtcbiAgLS1kaWFsb2ctdHJhbnNsYXRlLWxlYXZlOiAwIGNhbGMoLTEgKiB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLW9mZnNldCkpO1xuICAtLWRpYWxvZy10cmFuc2xhdGUtZHVyYXRpb246IDAuNHM7XG4gIC0tZGlhbG9nLWdhcDogI3skZ3V0dGVyMn07XG4gIC0tZGlhbG9nLWNvbnRlbnQtbWF4LXdpZHRoOiAxMDgwcHg7XG4gIC0tZGlhbG9nLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAtLWRpYWxvZy1iYWNrZHJvcC1jb2xvdXI6IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cblxuZGlhbG9nLm1vZGFsIHtcbiAgYm9yZGVyOiBub25lO1xuICBvdmVyZmxvdzogaW5pdGlhbDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNsYXRlOiB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLWVudGVyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG92ZXJsYXksIGRpc3BsYXksIHRyYW5zbGF0ZSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tZGlhbG9nLXRyYW5zbGF0ZS1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbi1iZWhhdmlvcjogYWxsb3ctZGlzY3JldGU7XG4gIG1hcmdpbjogMDtcbiAgei1pbmRleDogOTk5O1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMGR2aDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuXG4gICosXG4gICo6OmJlZm9yZSxcbiAgKjo6YWZ0ZXIsXG4gICYge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAmOjpiYWNrZHJvcCB7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3ZlcmxheSwgZGlzcGxheSwgb3BhY2l0eTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLWR1cmF0aW9uKTtcbiAgICB0cmFuc2l0aW9uLWJlaGF2aW9yOiBhbGxvdy1kaXNjcmV0ZTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMnB4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kaWFsb2ctYmFja2Ryb3AtY29sb3VyKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgLmRpYWxvZ1xcOmNvbnRlbnRzIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBkaXJlY3Rpb246IGx0cjtcbiAgICBib3JkZXItcmFkaXVzOiAwLjZlbTtcbiAgICBtYXgtaGVpZ2h0OiAxMDBkdmg7XG4gICAgcGFkZGluZzogdmFyKC0tZGlhbG9nLWdhcCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGlhbG9nLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvdXIpO1xuICAgIHdpZHRoOiBtaW4oMTAwJSwgdmFyKC0tZGlhbG9nLWNvbnRlbnQtbWF4LXdpZHRoKSk7XG4gICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgfVxuXG4gICZbb3Blbl0ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNsYXRlOiAwIDA7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIEBzdGFydGluZy1zdHlsZSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNsYXRlOiB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLWxlYXZlKTtcbiAgICB9XG5cbiAgICAmOjpiYWNrZHJvcCB7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICBAc3RhcnRpbmctc3R5bGUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGJ1dHRvbi5kaWFsb2dcXDpjbG9zZSB7XG4gICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiBjYWxjKDAuNSAqIHZhcigtLWRpYWxvZy1nYXApKTtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIH1cblxuICA6cm9vdDpoYXMoJltvcGVuXSkgW2RhdGEtbW9kYWxdIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxufVxuIiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbi8vIEB1c2UgJ2N1c3RvbS9leHBlcnRzLWluLXlvdXItYnVzaW5lc3MnO1xuXG4uY29udGVudC1ibG9jayB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiAkZ3V0dGVyO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb2x1bW4tY291bnQpLCAxZnIpO1xuXG4gICY6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmLnRoaW4ge1xuICAgIHBhZGRpbmctdG9wOiAkZ3V0dGVyMjtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGd1dHRlcjI7XG4gIH1cblxuICAmLmJsb3dvdXQudGhlbWVkIH4gJjpub3QoLmJsb3dvdXQpLnRoZW1lZCB7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNlcjA7XG4gIH1cbiAgJjpub3QoLmJsb3dvdXQpLnRoZW1lZCB7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgJjpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNlcjA7XG4gICAgfVxuICB9XG5cbiAgKyAuY29udGVudC1ibG9jayB7XG4gICAgYm94LXNoYWRvdzogMHB4IC0xcHggdmFyKC0tYm9yZGVyLXRvcC1jb2xvdXIsICN7JGdyZXk0fSk7XG4gIH1cblxuICAmLmhvcml6b250YWwtYmxvY2tzIHtcbiAgICBib3gtc2hhZG93OiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmctYmxvY2s6ICRzcGFjZXIwO1xuICAgICY6aGFzKC50ZXh0ICsgYnV0dG9uLWNvbnRhaW5lcikge1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBnYXA6ICRndXR0ZXIgJGd1dHRlcjA7XG4gICAgICAudGV4dCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC13cmFwOiBiYWxhbmNlO1xuICAgICAgfVxuICAgICAgYnV0dG9uLWNvbnRhaW5lciAuYnV0dG9uIHtcbiAgICAgICAgZm9udC1zaXplOiBzbWFsbDtcbiAgICAgIH1cbiAgICAgIC50ZXh0LFxuICAgICAgYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIDppcyhoMiwgaDMsIGg0LCBoNSwgaDYpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xuICB9XG5cbiAgJi5ncmV5IHtcbiAgICBiYWNrZ3JvdW5kOiAkZ3JleTM7XG4gIH1cbiAgJi5yZWQge1xuICAgIGJhY2tncm91bmQ6ICRyZWQ7XG4gIH1cbiAgJi5ibHVlIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmx1ZTtcbiAgfVxuICAmLmJsYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2s7XG4gICAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgICAtLWhlYWRpbmctY29sb3VyOiB3aGl0ZTtcbiAgICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgfVxuXG4gICYuc2lkZS1ieS1zaWRlLWNvbXBvbmVudHMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgZ2FwOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICA+ICoge1xuICAgICAgZ3JpZC1jb2x1bW46IGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICAgICYuY29udGFpbmVyLWlubGluZSB7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6ICRzcGFjZXI7XG4gICAgICB9XG4gICAgICAmLmVjb3Bvc3RlLWJhbm5lciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkc3BhY2VyO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgfVxuICAgIH1cblxuICAgIEBhdC1yb290IG1haW46aGFzKD4gLmNvbnRlbnQtYmxvY2suc2lkZS1ieS1zaWRlLWNvbXBvbmVudHMpIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgIC5zaWRlLWJ5LXNpZGUtY29tcG9uZW50cyB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgKHdpZHRoIDwgOTAwcHgpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cbiAgfVxufVxuIiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbi50ZXh0IHtcblxuICBhIHtcbiAgICAtLWZvbnQtY29sb3VyIDogI3skcHJpbWFyeX07IFxuICAgIEBpbmNsdWRlIGhvdmVyIHsgLS1mb250LWNvbG91ciA6ICN7JHNlY29uZGFyeX07IH1cbiAgICBhLmJ1dHRvbiB7IHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O31cbiAgfVxuXG4gIHVsIHsgQGluY2x1ZGUgbGlzdC11bCB9XG4gIG9sIHsgQGluY2x1ZGUgbGlzdC1vbCB9XG5cbiAgcDplbXB0eSwgcCA+IGJyIHsgZGlzcGxheTpub25lOyB9XG5cbiAgPiAqIHtcbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkgeyBtYXJnaW4tYm90dG9tOiRnYXA7IH1cbiAgICAvLyAmOmZpcnN0LWNoaWxkIHtcbiAgICAvLyAgIH4gaDIsIH4gaDMsIH4gaDQsIH4gaDUsIH4gaDYge1xuICAgIC8vICAgICBtYXJnaW4tdG9wOiRzcGFjZXIwOyBcbiAgICAvLyAgIH1cbiAgICAvLyB9XG4gICAgdWwsIG9sIHsgbWFyZ2luLXRvcDokZ2FwOyB9XG4gIH1cblxuICBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgIG1hcmdpbi1ib3R0b206JGdhcDsgXG4gIH1cblxuICAuaGVhZGluZy1oMyB7IGNvbG9yOiRzZWNvbmRhcnk7IH1cbiAgW3N0eWxlKj1cInRleHQtYWxpZ246IGNlbnRlclwiXSB7XG4gICAgd2lkdGg6MTAwJTsgXG4gICAgbWF4LXdpZHRoOjgwMHB4OyBcbiAgICBtYXJnaW4tbGVmdDphdXRvO1xuICAgIG1hcmdpbi1yaWdodDphdXRvO1xuICB9XG5cbiAgLnF1b3RlcyB7XG4gICAgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkICRncmV5NDsgXG4gICAgcGFkZGluZy1sZWZ0OiRnYXA7IFxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gIGZpZ3VyZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcbiAgICBwYWRkaW5nOiRnYXA7IFxuICAgIGltZyB7IFxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIGhyIHsgbWFyZ2luLXRvcDokc3BhY2VyMCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOiRzcGFjZXIwICFpbXBvcnRhbnQ7IH1cblxuICAubm90ZSB7XG4gICAgbWFyZ2luOiRnYXAyIDA7IFxuICB9XG5cbn1cblxuLy8gRGFyayBUaGVtZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmRhcmsge1xuXG4gIC50ZXh0IHtcblxuICAgIGNvbG9yOndoaXRlOyBcbiAgICAtLWhlYWRpbmctY29sb3VyOndoaXRlOyBcblxuICAgIGEgeyBcbiAgICAgICYuYnV0dG9uIHsgLS1mb250LWNvbG91ciA6IHdoaXRlOyB9XG4gICAgICAmOm5vdCguYnV0dG9uKSB7IFxuICAgICAgICAtLWZvbnQtY29sb3VyIDogI3tyZ2JhKHdoaXRlLCAwLjcpfTsgXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IFxuICAgICAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6MnB4OyBcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIgeyAtLWZvbnQtY29sb3VyIDogd2hpdGU7IH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAtLWhyLWNvbG91ciA6ICN7cmdiYSh3aGl0ZSwgMC4zKX07IFxuICAtLWxpc3Qtc3R5bGUtY29sb3VyIDogd2hpdGU7IFxuXG4gICYucmVkIHtcbiAgICAudGV4dCB1bCB7IEBpbmNsdWRlIGxpc3Qtc3R5bGUoJHdoaXRlLCAkcmVkKSB9XG4gIH1cblxuICAmLmJsdWUge1xuICAgIC50ZXh0IHVsIHsgQGluY2x1ZGUgbGlzdC1zdHlsZSgkd2hpdGUsICRibHVlKSB9XG4gIH1cblxufVxuXG4uY29udGFpbnMtc3Znc3tcblxuICAudGV4dHtcbiAgICBmaWd1cmV7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgcGFkZGluZzogMCB2YXIoLS1nYXApO1xuICAgICAgaW1ne1xuICAgICAgICBoZWlnaHQ6IDEyMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIkB1c2UgJy4uL192YXJpYWJsZXMnIGFzICo7XG5AdXNlICdjb2xsZWN0aW9ucy9mb250L2Nyb3AnIGFzIGZvbnQ7XG5AdXNlICdtb2R1bGVzL2NvbG91ci9lbmNvZGUnIGFzIGNvbG91cjtcblxuQG1peGluIHN0eWxlKCRmaWxsLCAkc3Ryb2tlOiB3aGl0ZSwgJGltcDogZmFsc2UpIHtcbiAgPiBsaTo6YmVmb3JlIHtcbiAgICBAaWYgKCRpbXApIHtcbiAgICAgIGNvbnRlbnQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnJTNFJTNDY2lyY2xlIGZpbGw9J1wiICsgY29sb3VyLmVuY29kZShcbiAgICAgICAgICAkZmlsbFxuICAgICAgICApICsgXCInIGN4PSc4JyBjeT0nOCcgcj0nOCcvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBzdHJva2U9J1wiICsgY29sb3VyLmVuY29kZShcbiAgICAgICAgICAkc3Ryb2tlXG4gICAgICAgICkgKyBcIicgc3Ryb2tlLXdpZHRoPScxLjQnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJyBkPSdNMy41IDguNGwyLjcgMi43IDYuMy02LjMnLyUzRSUzQy9zdmclM0VcIikgIWltcG9ydGFudDtcbiAgICB9IEBlbHNlIHtcbiAgICAgIGNvbnRlbnQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnJTNFJTNDY2lyY2xlIGZpbGw9J1wiICsgY29sb3VyLmVuY29kZShcbiAgICAgICAgICAkZmlsbFxuICAgICAgICApICsgXCInIGN4PSc4JyBjeT0nOCcgcj0nOCcvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBzdHJva2U9J1wiICsgY29sb3VyLmVuY29kZShcbiAgICAgICAgICAkc3Ryb2tlXG4gICAgICAgICkgKyBcIicgc3Ryb2tlLXdpZHRoPScxLjQnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJyBkPSdNMy41IDguNGwyLjcgMi43IDYuMy02LjMnLyUzRSUzQy9zdmclM0VcIik7XG4gICAgfVxuICB9XG59XG5cbi8vIFVub3JkZXJkIExpc3RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiB1bCgkbGlzdC1zdHlsZS1jb2xvdXI6ICRyZWQsICRsaXN0LXN0eWxlLWFjY2VudC1jb2xvdXI6IHdoaXRlKSB7XG4gIEBpbmNsdWRlIHN0eWxlKCRsaXN0LXN0eWxlLWNvbG91ciwgJGxpc3Qtc3R5bGUtYWNjZW50LWNvbG91cik7XG5cbiAgPiBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1saXN0LXN0eWxlLXNpemUsIDFlbSkgKiAxLjgpO1xuXG4gICAgJiArIGxpIHtcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLWxpbmUtc3R5bGUtc3BhY2luZywgI3skZ2FwfSk7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHRvcDogMC4xZW07XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IHZhcigtLWxpc3Qtc3R5bGUtc2l6ZSwgMWVtKTtcbiAgICAgIGhlaWdodDogdmFyKC0tbGlzdC1zdHlsZS1zaXplLCAxZW0pO1xuICAgIH1cbiAgfVxuXG4gIEBjb250ZW50O1xufVxuXG4vLyBPcmRlcmVkIExpc3RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gb2woKSB7XG4gIGNvdW50ZXItcmVzZXQ6IGNvdW50ZXI7XG5cbiAgPiBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogMjJweDtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tbGlzdC1zdHlsZS1vZmZzZXQsIDApO1xuXG4gICAgJiArIGxpIHtcbiAgICAgIG1hcmdpbi10b3A6ICRnYXAwO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBjb3VudGVyKGNvdW50ZXIpICcuJztcbiAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBjb3VudGVyO1xuICAgICAgY29sb3I6IHZhcigtLWxpc3Qtc3R5bGUtY29sb3VyLCB2YXIoLS1wcmltYXJ5KSk7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICAgIH1cbiAgfVxuXG4gIEBjb250ZW50O1xufVxuIiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbnRhYmxlLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiRnYXA7IFxuICAvLyB3aWR0aDogZml0LWNvbnRlbnQ7XG5cbiAgPiBkaXYge1xuICAgIC8vIEBhdC1yb290IHRhYmJlZC1jb250ZW50ICYgeyBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gdmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDIwMHB4KSk7IH1cbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBkaXNwbGF5OmdyaWQ7ICAgICBcbiAgICAmOm5vdCg6aG92ZXIpIHtzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgfVxuXG4gICAgQGluY2x1ZGUgc2Nyb2xsLXN0eWxpbmdcbiAgfVxuICBoMyB7IG1hcmdpbi1ib3R0b206MCAhaW1wb3J0YW50OyB9XG5cbiAgdGFibGUudGFibGUge1xuICAgIHdpZHRoOmF1dG87IFxuICAgIGdyaWQtcm93OiAxO1xuICAgIGdyaWQtY29sdW1uOiAxO1xuXG4gICAgJi5mYWtlIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgXG4gICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWCh2YXIoLS14KSk7XG4gICAgICB3aWR0aDpjYWxjKDEwMCUgLSB2YXIoLS14KSk7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgICAgIHRib2R5IHRyIHsgXG4gICAgICAgIFxuICAgICAgICB0ZCB7IGJhY2tncm91bmQ6d2hpdGU7IGJvcmRlci1yaWdodDoxcHggJGdyZXk0IGRhc2hlZDsgfVxuICAgICAgICAmOm50aC1vZi10eXBlKG9kZCkgdGQgeyBiYWNrZ3JvdW5kIDogJGdyZXkzOyB9XG4gICAgICB9XG4gICAgICB0aGVhZCB0ciB0aDpmaXJzdC1vZi10eXBlIHsgYm9yZGVyLXJpZ2h0OjFweCByZ2JhKHdoaXRlLCAwLjEpIGRhc2hlZDsgfVxuICAgICAgdGhlYWQgdHIgdGg6bm90KDpmaXJzdC1vZi10eXBlKSwgdGJvZHkgdHIgdGQ6bm90KDpmaXJzdC1vZi10eXBlKSB7IHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgIH1cbiAgfVxuICBAc3VwcG9ydHMgKHdyaXRpbmctbW9kZTogdmVydGljYWwtbHIpIHtcbiAgICAmLmVuYWJsZS12ZXJ0aWNhbC1oZWFkaW5ncyB0YWJsZS50YWJsZSB0aGVhZCB0ciB0aDpub3QoOmZpcnN0LW9mLXR5cGUpIHNwYW4ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjtcbiAgICAgIG1heC13aWR0aDo1MHB4OyBcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICB9XG4gIH1cblxuICAkYnV0dG9uLXNpemUgOiA0MHB4OyBcblxuICBuYXYge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGdyaWQtcm93OjE7IFxuICAgIGdyaWQtY29sdW1uOjI7IFxuICAgIGRpc3BsYXk6bm9uZTtcbiAgICBidXR0b24ubmF2aWdhdGlvbiB7XG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgICsgYnV0dG9uIHsgbWFyZ2luLWxlZnQ6JGdhcDA7IH1cbiAgICB9XG4gICAgKyBkaXYge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDI7XG4gICAgfVxuICB9XG5cbiAgJi5zY3JvbGxlZC1yaWdodCBidXR0b24ubmV4dCwgJi5zY3JvbGxlZC1sZWZ0IGJ1dHRvbi5wcmV2aW91cyB7IFxuICAgIHBvaW50ZXItZXZlbnRzOm5vbmU7XG4gIH1cblxuICAmLmVuYWJsZS1zY3JvbGwtYnV0dG9ucyBuYXYgeyBcbiAgICBkaXNwbGF5OmZsZXg7XG4gIH1cblxuICBidXR0b24ubmF2aWdhdGlvbiB7XG4gICAgLS1idXR0b24tc2l6ZSA6ICN7JGJ1dHRvbi1zaXplfTsgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyOjFweCBzb2xpZCAkZ3JleTQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHotaW5kZXg6MTtcbiAgICB3aWR0aDogdmFyKC0tYnV0dG9uLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tYnV0dG9uLXNpemUpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OmZsZXg7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICBwbGFjZS1jb250ZW50OiBjZW50ZXI7IFxuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBjb2xvcjokZ3JleTI7XG4gICAgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLCBjb2xvciAkdHJhbnNpdGlvbiwgb3BhY2l0eSAkdHJhbnNpdGlvbiwgdHJhbnNmb3JtIDAuM3MgJGVhc2Utb3V0LWJhY2s7XG4gICAgJi5wcmV2aW91cyBzdmcgeyBtYXJnaW4tbGVmdDotMnB4OyB9XG4gICAgJi5uZXh0IHN2ZyB7IG1hcmdpbi1sZWZ0OjJweDsgfVxuICAgIHN2ZyB7XG4gICAgICB3aWR0aDpjYWxjKHZhcigtLWJ1dHRvbi1zaXplKSAvIDIuNSk7XG4gICAgICBoZWlnaHQ6Y2FsYyh2YXIoLS1idXR0b24tc2l6ZSkgLyAyLjUpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiRibHVlO1xuICAgICAgY29sb3I6d2hpdGU7IFxuICAgICAgb3BhY2l0eToxICFpbXBvcnRhbnQ7XG4gICAgICBib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG5cbn1cblxudGFibGUudGFibGUge1xuXG4gIHdpZHRoOjEwMCU7IFxuICBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBcbiAgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB0aGVhZCB7XG4gICAgdHIge1xuICAgICAgdGgge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiRwcmltYXJ5O1xuICAgICAgICBwYWRkaW5nOiRnYXA7XG4gICAgICAgIGNvbG9yOndoaXRlOyBcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgdGJvZHkge1xuICAgIHRyIHsgICAgIFxuICAgICAgdGQge1xuICAgICAgICBwYWRkaW5nOiRnYXAwICRnYXA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgJjpmaXJzdC1vZi10eXBlIHsgbWluLXdpZHRoOjIwMHB4O31cbiAgICAgICAgc3Ryb25nIHsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6JGdyZXkyOyB9XG4gICAgICAgIGEgeyBcbiAgICAgICAgICBjb2xvcjokYmx1ZTsgXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IFxuICAgICAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiRyZWQ7IFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdmcgeyBcbiAgICAgICAgICAtLWZpbGwgOiAjeyRwcmltYXJ5fTtcbiAgICAgICAgICAmLmNyb3NzIHsgLS1maWxsIDogI3skcmVkfTsgfVxuICAgICAgICAgICYudGljayB7IC0tZmlsbCA6ICN7JGdyZWVufTsgfVxuICAgICAgICAgIHdpZHRoOjFlbTsgaGVpZ2h0OjFlbTsgXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0ciB7IFxuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgICY6bm90KDpsYXN0LW9mLXR5cGUpIHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgJGdyZXk0OyB9XG4gICAgLy8gJjpudGgtb2YtdHlwZShvZGQpOmJlZm9yZSB7XG4gICAgLy8gICBjb250ZW50OlwiXCI7XG4gICAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gICBsZWZ0OjA7IHJpZ2h0OjA7IFxuICAgIC8vICAgaGVpZ2h0OjEwMCU7IFxuICAgIC8vICAgd2lkdGg6MTAwJTsgXG4gICAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiRncmV5MzsgXG4gICAgLy8gfVxuICAgICY6bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiRncmV5MzsgXG4gICAgfVxuICB9XG5cblxuICAmLmFsdGVybmF0aW5nLXJvdy1jb2xvdXJzIHRib2R5IHRyOm50aC1jaGlsZChvZGQpIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYShibGFjaywgMC4xKTsgfVxuICAmLmxhc3QtY29sdW1uLWlzLWdyZWVuIHRib2R5IHRyIHRkOmxhc3Qtb2YtdHlwZSB7IFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlOyBcbiAgICBjb2xvcjp3aGl0ZTsgXG4gIH1cbiAgLy8gJi5sYXN0LWNvbHVtbi1pcy1ncmVlbiB0aGVhZCB0ciB0aDpsYXN0LW9mLXR5cGUgeyBcbiAgLy8gfVxuICAvLyAmLmFsdGVybmF0aW5nLXJvdy1jb2xvdXJzLmxhc3QtY29sdW1uLWlzLWdyZWVuIHRib2R5IHRyOm50aC1jaGlsZChvZGQpIHRkOmxhc3Qtb2YtdHlwZSB7IGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZ3JlZW4zLCAzKTsgfVxuXG59XG5cbi5kYXJrIHRhYmxlLWNvbnRhaW5lciwgLmRhcmsuY29udGVudC1ibG9jayAudGFiLWNvbnRlbnQge1xuICA+IGgzIHsgY29sb3I6d2hpdGU7IH1cbiAgPiBkaXYgeyBib3JkZXItcmFkaXVzOiBpbml0aWFsOyB9XG4gIHRhYmxlLnRhYmxlIHtcbiAgICBjb2xvcjp3aGl0ZTsgXG4gICAgYmFja2dyb3VuZC1jb2xvcjppbml0aWFsO1xuICAgIHRyIHRoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6cmdiYSh3aGl0ZSwgMC4xNSk7XG4gICAgfVxuICAgIHRyIHtcbiAgICAgIGJvcmRlcjpub25lICFpbXBvcnRhbnQ7XG4gICAgICAmOm50aC1vZi10eXBlKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEod2hpdGUsIDAuMTUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbmZpZ3VyZS5pbWFnZS5zdGF0aWMge1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgIFxuICBib3JkZXI6MXB4IHNvbGlkICRncmV5MztcbiAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgaW1nIHsgXG4gICAgLS1pbWFnZS1oZWlnaHQtc2l6ZSA6IGF1dG87IFxuICAgIHBvc2l0aW9uOnJlbGF0aXZlOyBcbiAgfVxuICBmaWdjYXB0aW9uIHtcbiAgICBmb250LXNpemU6Zm9udC1zaXplKDEyKTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgcGFkZGluZzokZ2FwMCAkZ2FwO1xuICB9XG4gICYubm8tY2FwdGlvbiB7XG4gICAgYm9yZGVyOm5vbmU7IFxuICB9XG4gICYuY3JvcC1pbWFnZSB7XG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICBib3R0b206MDsgXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OjA7IFxuICAgICAgd2lkdGg6MTAwJTsgXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYXNwZWN0LXJhdGlvO1xuICAgIC0tYXNwZWN0LXJhdGlvIDogaW5oZXJpdDsgXG4gICAgaW1nIHsgLS1pbWFnZS1oZWlnaHQtc2l6ZSA6IDEwMCU7IH1cbiAgfVxufVxuXG4uaW1hZ2UubG9hZC1pbi12aWV3IGltZyB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyAkZWFzZS1pbi1vdXQ7XG4gICY6bm90KFtzcmNdKSB7IG9wYWNpdHk6MDsgfVxufVxuXG5pbWFnZXMtY29udGFpbmVyIHtcbiAgd2lkdGg6MTAwJTsgXG4gIGRpc3BsYXk6Z3JpZDsgXG4gIGdyaWQtZ2FwOiRndXR0ZXIwOyBcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoY2FsYyh2YXIoLS1tYWluLW1heC13aWR0aCkgLyAodmFyKC0taW1hZ2VzLXBlci1yb3cpICsgMSkpLCAxZnIpKTtcbiAgJi5jcm9wLWltYWdlcyB7XG4gICAgLmltYWdlIHsgXG4gICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8oJzQvMycpO1xuICAgICAgLS1hc3BlY3QtcmF0aW8gOiBpbmhlcml0OyBcbiAgICAgIGltZyB7XG4gICAgICAgIC0taW1hZ2UtaGVpZ2h0LXNpemUgOiAxMDAlO1xuICAgICAgICBAc3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86IDEvMSkgeyBwb3NpdGlvbjphYnNvbHV0ZTsgfVxuICAgICAgfVxuICAgICAgZmlnY2FwdGlvbiB7XG4gICAgICAgIGJvdHRvbTowOyBcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OjA7IFxuICAgICAgICB3aWR0aDoxMDAlOyBcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbkBtaXhpbiBhY2NvcmRpb24oKSB7XG5cbiAgJi5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyB7XG5cbiAgICBncmlkLWdhcDokZ2FwICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTpncmlkO1xuXG4gICAgPiBuYXYgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICBkZXRhaWxzIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICAmW2hpZGRlbl0geyBkaXNwbGF5OmJsb2NrOyB9XG4gICAgICBzdW1tYXJ5IHtcbiAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgfVxuICAgICAgLnRhYi1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzokc3BhY2VyMCAkZ3V0dGVyICFpbXBvcnRhbnQ7IFxuICAgICAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCAkZ3JleTQ7XG4gICAgICAgIGJvcmRlci1sZWZ0OjFweCBzb2xpZCAkZ3JleTQ7XG4gICAgICAgIGJvcmRlci1yaWdodDoxcHggc29saWQgJGdyZXk0O1xuICAgICAgICBvdmVyZmxvdzpoaWRkZW47IFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgPiAqIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOm9wYWNpdHkgJHRyYW5zaXRpb247XG4gICAgICAgICAgb3BhY2l0eTowOyBcbiAgICAgICAgfVxuICAgICAgICBmaWd1cmUuaW1hZ2Uge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICZbb3Blbl0ge1xuICAgICAgICBzdW1tYXJ5IHtcbiAgICAgICAgICAtLWJhY2tncm91bmQtY29sb3VyOiN7JGJsdWUtZGFya307XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAudGFiLWNvbnRlbnQgPiAqIHtcbiAgICAgICAgICAvLyAtLXRyYW5zaXRpb24tZGVsYXkgOiAxczsgXG4gICAgICAgICAgb3BhY2l0eToxOyBcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG50YWJiZWQtY29udGVudCB7XG5cbiAgZGlzcGxheTpmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogMTAwJTsgLy8gVEhJUyBNSUdIVCBCUkVBSyBUSElOR1MuIE5FRURTIENIRUNLSU5HIVxuXG4gID4gbmF2IHtcbiAgICBidXR0b24ge1xuICAgICAgdHJhbnNpdGlvbjokdHJhbnNpdGlvbjtcbiAgICAgICZbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0geyBwb2ludGVyLWV2ZW50czogbm9uZTt9XG4gICAgICBzdmcgeyB3aWR0aDoxMHB4OyBoZWlnaHQ6MTBweDsgfVxuXG4gICAgfVxuICB9XG4gIHN1bW1hcnkge1xuICAgIGRpc3BsYXk6bm9uZTsgXG5cbiAgICAmOjptYXJrZXIgeyBkaXNwbGF5Om5vbmU7IH1cbiAgICAtLWZvbnQtY29sb3VyIDogI3t3aGl0ZX07XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG91ciA6ICN7JHByaW1hcnl9O1xuXG4gICAgJiwgLmhlYWRpbmcge1xuICAgICAgY29sb3I6dmFyKC0tZm9udC1jb2xvdXIpO1xuICAgICAgQGluY2x1ZGUgZm9udC1sYXRvKGJvbGQpO1xuICAgICAgQGluY2x1ZGUgaGVhZGluZy1oNCgpO1xuICAgIH1cblxuICAgIC5oZWFkaW5nIHsgbWFyZ2luLWJvdHRvbTowOyB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcblxuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nLXRvcDokZ2FwOyBcbiAgICBwYWRkaW5nLWJvdHRvbTokZ2FwOyAgIFxuICAgIHBhZGRpbmctbGVmdDokZ3V0dGVyOyBcbiAgICBwYWRkaW5nLXJpZ2h0OiRndXR0ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7ICBcbiAgICBhbGlnbi1pdGVtczpjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLCBib3JkZXItcmFkaXVzICR0cmFuc2l0aW9uO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgc3ZnIHtcbiAgICAgIGhlaWdodDo4cHg7IFxuICAgICAgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDokZ3V0dGVyO1xuICAgICAgdG9wOmNhbGMoNTAlIC0gNHB4KTtcbiAgICB9XG5cbiAgfVxuXG4gIHN1bW1hcnk6aG92ZXIsIGRldGFpbHNbb3Blbl0gc3VtbWFyeTpob3ZlciB7XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG91cjojeyRibHVlLWxpZ2h0fTtcbiAgfVxuXG4gIC50YWItY29udGVudCB7XG4gICAgLy8gZGlzcGxheTpub25lOyBcbiAgICBncmlkLWdhcDokc3BhY2VyMCAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7IFxuICAgIGdyaWQtYXV0by1yb3dzOiBtaW4tY29udGVudDtcbiAgICAmOm5vdChbaGlkZGVuXSkge1xuICAgICAgZGlzcGxheTpncmlkO1xuICAgIH1cbiAgICAuaGVhZGluZy1oNCB7IEBpbmNsdWRlIGhlYWRpbmctaDMoKTsgY29sb3I6JHJlZDsgfVxuICAgIC5oZWFkaW5nLWg1IHsgQGluY2x1ZGUgaGVhZGluZy1oNCgpOyB9XG4gICAgLnRhYmxlLWNvbnRhaW5lcntcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICYuaGFsdmVze1xuICAgICAgICBtYXgtd2lkdGg6IDQwJTtcbiAgICAgICAgbWFyZ2luOiAwIDUlIDAgMDtcbiAgICAgICAgJjpudGgtb2YtdHlwZSgybil7XG4gICAgICAgICAgbWFyZ2luOiAwIDAgMCA1JTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi50aGlyZHN7XG4gICAgICAgIG1heC13aWR0aDogMzAlO1xuICAgICAgICAmOm50aC1vZi10eXBlKDNuIC0gMSl7XG4gICAgICAgICAgbWFyZ2luOiAwIDUlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGFibGUtY29udGFpbmVyIHtcbiAgICB3aWR0aDoxMDAlO1xuICB9XG5cbiAgJjpub3QoW2RhdGEtc3R5bGU9XCIzXCJdKS5pbi12aWV3ID4gbmF2IGJ1dHRvblthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgY29sb3I6JHNlY29uZGFyeTtcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiA5ODBweCkgYW5kIChtYXgtd2lkdGg6IDEzMDBweCksIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICAgJjpub3QoLm1hcmtldHMpIHtcbiAgICAgIEBpbmNsdWRlIGFjY29yZGlvbigpXG4gICAgfVxuICB9XG4gICZbZGF0YS1zdHlsZT1cIjRcIl0ge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbigpXG4gIH1cbiAgQGluY2x1ZGUgYnJlYWstaW4oMTAwMHB4KSB7XG4gICAgJi5tYXJrZXRzIHsgQGluY2x1ZGUgYWNjb3JkaW9uKCkgfVxuICB9XG5cbn1cblxuLy8gVGFiIFN0eWxlIE9uZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIExlZnQgaGFuZCBzaWRlYmFyIHdpdGggdmVydGljYWxseSBhbGlnbmVkIGJ1dHRvbnMgYW5kIHRoZSBjb250ZW50IG9uIHRoZSByaWdodFxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjFcIl0ge1xuICAtLXNpZGUtbmF2LXdpZHRoIDogMjAwcHg7XG4gIGRpc3BsYXk6Z3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1zaWRlLW5hdi13aWR0aCkgMWZyO1xuICBncmlkLWdhcDokZ3V0dGVyO1xuICA+IG5hdiB7XG4gICAgZGlzcGxheTpmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgIHRvcDpjYWxjKHZhcigtLWJyZWFkY3J1bWItaGVpZ2h0KSArIHZhcigtLWFuY2hvcnMtaGVpZ2h0KSAtICN7JGd1dHRlcn0pO1xuXG4gICAgYnV0dG9uIHtcbiAgICAgIHBhZGRpbmc6JGdhcCAwO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgc3ZnIHsgbWFyZ2luLWxlZnQ6JGdhcDsgfVxuICAgICAgKyBidXR0b24geyBcbiAgICAgICAgYm9yZGVyLXRvcDoxcHggc29saWQgJGdyZXk0OyBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4vLyBUYWIgU3R5bGUgVHdvIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3R5bGlzZWQgYW5kIGNlbnRyZWQgdGFicyBvbiB0aGUgdG9wIHdpdGggdGhlIGNvbnRlbnQgdW5kZXJuZWF0aFxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjJcIl0ge1xuICA+IG5hdiB7XG4gICAgZGlzcGxheTpmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJ1dHRvbiB7XG4gICAgICBwYWRkaW5nOiRnYXAyICRndXR0ZXIyOyBcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlcjoxcHggc29saWQgJGdyZXk0O1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgbWFyZ2luLWxlZnQ6JGdhcDA7IFxuICAgICAgbWFyZ2luLXJpZ2h0OiRnYXAwOyBcbiAgICAgIGZvbnQtc2l6ZTpmb250LXNpemUoMTQpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBjb2xvcjokcHJpbWFyeTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uLCBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLCBib3JkZXItY29sb3IgJHRyYW5zaXRpb247XG4gICAgICBzdmcgeyBkaXNwbGF5Om5vbmU7IH1cbiAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgY29sb3I6JHNlY29uZGFyeTtcbiAgICAgIH1cbiAgICAgICZbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JleTM7XG4gICAgICAgIGJvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnRhYi1jb250ZW50IHsgXG4gICAgcGFkZGluZzokc3BhY2VyICRndXR0ZXI7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCRncmV5Mywgd2hpdGUpO1xuICB9XG4gICYuaW52aWV3IG5hdiBidXR0b25bYXJpYS1zZWxlY3RlZD1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmV5MztcbiAgICBjb2xvcjokc2Vjb25kYXJ5O1xuICB9XG4gICY6bm90KC5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZylbZGF0YS1jb3VudD1cIjJcIl0ge1xuICAgIEBpbmNsdWRlIGJyZWFrLWluKCdzbWFsbCcpIHtcbiAgICAgIFtyb2xlPVwidGFiXCJdIHsgd2lkdGg6NTAlOyBwYWRkaW5nOiRnYXA7IH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVGFiIFN0eWxlIFRocmVlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUGlsbC1saWtlIGJ1dHRvbnMgYmFyIGF0IHRoZSB0b3Agd2l0aCB0aGUgY29udGVudCB1bmRlcm5lYXRoXG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSB7XG4gID4gbmF2IHtcbiAgICBkaXNwbGF5OmZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTokZ2FwOyBcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgIGJvcmRlcjoxcHggc29saWQgJGdyZXk0O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYnV0dG9uIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlcjpub25lICFpbXBvcnRhbnQ7IFxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTpmb250LXNpemUoMTQpO1xuICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgIHotaW5kZXg6MTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uLCBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgc3ZnIHsgZGlzcGxheTpub25lOyB9XG4gICAgICBwYWRkaW5nOiRnYXAgJGd1dHRlcjsgXG4gICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgY29sb3I6d2hpdGU7IFxuICAgICAgfVxuXG4gICAgICAmOm5vdChbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0pIHtcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAgIGNvbG9yOiRyZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJjpub3QoLmhhcy1tYXJrZXIpIGJ1dHRvblthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiRibHVlOyBcbiAgICB9XG4gICAgbWFyayB7XG4gICAgICBAaW5jbHVkZSBtYXJrLXJlc2V0KCk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6MDsgbGVmdDowOyBcbiAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb247XG4gICAgICAmLmFjdGl2ZSB7IFxuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAudGFiLWNvbnRlbnQgeyBcbiAgICBwYWRkaW5nOiRndXR0ZXIgMDtcbiAgfSBcbn0iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuLmV4cGVydHMtaW4teW91ci1idXNpbmVzcyB7XG4gIC0tc2Vjb25kYXJ5OiAjeyRyZWR9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cbiAgQGF0LXJvb3Qgc2lkZS1iYXIgJiB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgLmNvbnRhaW5lci1pbmxpbmUge1xuICAgICAgcGFkZGluZzogJGd1dHRlcjIgIWltcG9ydGFudDtcbiAgICAgID4gLnRleHQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLnRoZW1lZCAuY29udGFpbmVyLWlubGluZSB7XG4gICAgcGFkZGluZzogJGd1dHRlciAkZ3V0dGVyICRndXR0ZXIgJGd1dHRlcjI7XG4gIH1cbiAgLnRleHQge1xuICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6ICRndXR0ZXI7XG4gICAgdWwge1xuICAgICAgQGluY2x1ZGUgbGlzdC1zdHlsZSgkcmVkLCB3aGl0ZSwgdHJ1ZSk7XG4gICAgfVxuICAgID4gaDIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGd1dHRlcjtcbiAgICB9XG4gIH1cbiAgYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgZ2FwOiAkZ2FwO1xuICAgIC5idXR0b24ge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuXG4gIGZpZ3VyZS5pbWFnZS5zdGF0aWMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGdyaWQtY29sdW1uOiAyO1xuICAgIGdyaWQtcm93OiAxIC8gc3BhbiAyO1xuICAgIG1heC13aWR0aDogMjYwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gICAganVzdGlmeS1zZWxmOiBmbGV4LWVuZDtcbiAgICBtYXJnaW4tYm90dG9tOiAkZ3V0dGVyMi07XG4gIH1cbiAgLmNvbnRhaW5lci1pbmxpbmUge1xuICAgIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogJGd1dHRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICA+ICo6bm90KGZpZ3VyZSkge1xuICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgfVxuICAgIEBjb250YWluZXIgKHdpZHRoIDwgNTAwcHgpIHtcbiAgICAgIGZpZ3VyZS5pbWFnZS5zdGF0aWMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG9wYWNpdHk6IDAuMTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0= */