/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/***
 * Hide native browser's scrollbar
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-slider-navigation {
  display: none; }
  @media (hover: hover) and (pointer: fine) {
    .cs-slider-navigation {
      position: absolute;
      z-index: 11;
      top: 50%;
      transform: translate3d(0, -50%, 0);
      display: flex;
      align-items: center;
      justify-content: center;
      width: 4.4rem;
      height: 5.2rem;
      border: 0;
      border-radius: 7px;
      background: #fff;
      box-shadow: 1px 1px 2px 0 rgba(0, 0, 0, 0.25);
      padding: 0;
      color: #7e57c2;
      cursor: pointer;
      transition: all 0.3s; }
      .cs-slider-navigation--prev {
        left: 1.5rem; }
      .cs-slider-navigation--next {
        right: 1.5rem; }
      .cs-slider-navigation[disabled] {
        opacity: 0.25;
        cursor: not-allowed; }
        .cs-slider-navigation[disabled] svg {
          filter: grayscale(1); }
      .cs-slider-navigation:not([disabled]):hover {
        box-shadow: 1px 1px 10px 0 rgba(0, 0, 0, 0.25); }
      .cs-slider-navigation__icon {
        width: 1.4rem;
        height: 2.7rem;
        fill: currentColor; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-slider-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
  min-height: 3rem; }
  .cs-slider-pagination--fraction {
    gap: 0;
    white-space: pre-wrap;
    color: inherit;
    font-weight: 600; }
    .cs-slider-pagination--fraction span {
      color: #11a099; }
  .cs-slider-pagination__bullet {
    position: relative;
    border-radius: 2px;
    background: #fff;
    border: 0;
    inline-size: 2.2rem;
    block-size: 0.9rem;
    transition: all 0.15s;
    overflow: hidden;
    text-indent: -99rem; }
    .cs-slider-pagination__bullet.current {
      background-color: #11a099; }
    .cs-slider-pagination__bullet:only-child {
      display: none; }

/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * This components is sort of unique because it's items-per-row configuration is only available for tablet+
 * This map adds possibility to 'force' provied columns configuration up to laptop resolutions.
 */
.cs-image-teaser {
  --slogan-font-size: 3.8rem;
  --description-font-size: 1.5rem;
  --gap: 0.8rem;
  /*
     * Keep CTA separated from text-content for all scenarios
     * "!important" added due to fallback from --scheme-* with button() mixin that resets margins
     */
  /**
     * Contrast Optimizers
     */ }
  .cs-image-teaser:not(.cs-container--use-whole-width) .cs-image-teaser.cs-image-teaser--container-width .cs-image-teaser__slides-wrapper {
    max-width: 128rem;
    margin-left: auto;
    margin-right: auto; }
  .cs-image-teaser__slides {
    --columns: 1;
    display: grid;
    gap: var(--gap);
    grid-template-columns: repeat(var(--columns), minmax(0, 1fr));
    margin: 0;
    padding: 0; }
    .cs-image-teaser--items-in-row-mobile-2 .cs-image-teaser__slides {
      --columns: 2; }
  .cs-image-teaser__slide {
    display: inline-block;
    margin: 0; }
  .cs-image-teaser__link {
    outline-offset: calc(var(--gap) / 2 + 2); }
    .cs-image-teaser__link:focus {
      outline-offset: 0.4rem; }
    @media (prefers-reduced-motion: no-preference) {
      .cs-image-teaser__link {
        transition: outline-offset 0.25s ease; } }
  .cs-image-teaser__picture {
    display: block;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    overflow: hidden;
    width: 100%;
    height: auto;
    /* stylelint-disable -- stylelint doesn't know this media query yet. */
    /* stylelint-enable */ }
    @media (prefers-reduced-data: reduce) {
      .cs-image-teaser__picture {
        display: none; } }
  .cs-image-teaser__image {
    display: block;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    background-color: #f0f0f0; }
  @media (min-width: 48em) {
    .cs-image-teaser {
      --gap: 0.8rem; }
      .cs-image-teaser--items-in-row-2 .cs-image-teaser__slides {
        --columns: 2; }
      .cs-image-teaser--items-in-row-3 .cs-image-teaser__slides {
        --columns: 3; }
      .cs-image-teaser--items-in-row-4 .cs-image-teaser__slides {
        --columns: 4; }
      .cs-image-teaser--items-in-row-5 .cs-image-teaser__slides {
        --columns: 5; }
      .cs-image-teaser--items-in-row-6 .cs-image-teaser__slides {
        --columns: 6; }
      .cs-image-teaser--items-in-row-7 .cs-image-teaser__slides {
        --columns: 7; }
      .cs-image-teaser--items-in-row-8 .cs-image-teaser__slides {
        --columns: 8; } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--items-in-row-4:not(.cs-image-teaser--icon) .cs-image-teaser__slides {
    --columns: 2; } }
  .cs-image-teaser--slider {
    --gap: 0.8rem;
    --base-size: calc(100% - 0px);
    --size: var(--base-size);
    /**
     * class-based columns config relates to classnames, like '--items-in-row-4'
     * which are added to elements, depending on the CC Components configuration.
     */
    /*  container padding fix  */ }
    @media (min-width: 81.875em) {
      .cs-image-teaser--slider.cs-image-teaser--container-width {
        --base-size: calc(128rem - 0px); }
      .cs-image-teaser--slider.cs-image-teaser--use-whole-screen:not(.cs-image-teaser--full-width-slider) {
        --base-size: 100%;
        max-width: 100%; }
        .cs-image-teaser--slider.cs-image-teaser--use-whole-screen:not(.cs-image-teaser--full-width-slider) .cs-image-teaser__slides {
          scroll-snap-type: x proximity;
          padding-left: calc((100% - 128rem) / 2);
          padding-right: calc((100% - 128rem) / 2);
          scroll-padding-left: calc((100% - 128rem) / 2);
          scroll-padding-right: calc((100% - 128rem) / 2);
          scroll-margin-left: calc((100vw - 128rem) / 2);
          scroll-margin-right: calc((100vw - 128rem) / 2); } }
    @media (hover: hover) and (pointer: fine) and (min-width: 81.875em) {
      .cs-image-teaser--slider.cs-image-teaser--container-width {
        --base-size: 128rem; } }
    @media (min-width: 48em) {
      .cs-image-teaser--slider {
        --gap: 0.8rem; } }
    @media (min-width: 48em) {
      .cs-image-teaser--slider.cs-image-teaser--items-in-row-2 {
        --size: calc(
                        var(--base-size) /
                            2 -
                            ((1 * var(--gap)) / 2)
                    ); }
      .cs-image-teaser--slider.cs-image-teaser--items-in-row-3 {
        --size: calc(
                        var(--base-size) /
                            3 -
                            ((2 * var(--gap)) / 3)
                    ); }
      .cs-image-teaser--slider.cs-image-teaser--items-in-row-4 {
        --size: calc(
                        var(--base-size) /
                            4 -
                            ((3 * var(--gap)) / 4)
                    ); }
      .cs-image-teaser--slider.cs-image-teaser--items-in-row-5 {
        --size: calc(
                        var(--base-size) /
                            5 -
                            ((4 * var(--gap)) / 5)
                    ); }
      .cs-image-teaser--slider.cs-image-teaser--items-in-row-6 {
        --size: calc(
                        var(--base-size) /
                            6 -
                            ((5 * var(--gap)) / 6)
                    ); }
      .cs-image-teaser--slider.cs-image-teaser--items-in-row-7 {
        --size: calc(
                        var(--base-size) /
                            7 -
                            ((6 * var(--gap)) / 7)
                    ); }
      .cs-image-teaser--slider.cs-image-teaser--items-in-row-8 {
        --size: calc(
                        var(--base-size) /
                            8 -
                            ((7 * var(--gap)) / 8)
                    ); } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--slider.cs-image-teaser--items-in-row-4:not(.cs-image-teaser--icon) {
    --size: calc(var(--base-size) / 2 - (1 * var(--gap) / 2)); } }
    @media (max-width: 81.8125em) {
      .cs-image-teaser--slider.cs-image-teaser--container-width .cs-image-teaser__slides {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
        scroll-padding-left: 1.5rem;
        scroll-padding-right: 1.5rem; } }
    @media (prefers-reduced-motion: no-preference) {
      .cs-image-teaser--slider .cs-image-teaser__slides {
        scroll-behavior: smooth; } }
    .cs-image-teaser--slider .cs-image-teaser__slides-wrapper {
      position: relative; }
    .cs-image-teaser--slider .cs-image-teaser__slides {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex: 0 0 100%;
      gap: 0;
      flex-wrap: nowrap;
      padding: var(--gap) 0;
      overflow-x: auto;
      overscroll-behavior-inline: contain;
      scrollbar-width: thin; }
      @supports (scroll-behavior: smooth) {
        .cs-image-teaser--slider .cs-image-teaser__slides {
          scroll-snap-type: x mandatory; } }
      @media (min-width: 48em) {
        .cs-image-teaser--slider .cs-image-teaser__slides {
          overflow: -moz-scrollbars-none;
          scrollbar-width: none; }
          .cs-image-teaser--slider .cs-image-teaser__slides::-webkit-scrollbar {
            display: none;
            width: 0;
            height: 0;
            background: transparent; }
          .cs-image-teaser--slider .cs-image-teaser__slides::-webkit-scrollbar-thumb {
            background: transparent;
            width: 0;
            height: 0; } }
    .cs-image-teaser--slider .cs-image-teaser__slide {
      margin: 0;
      padding: 0;
      list-style: none;
      display: inline-block;
      flex: 0 0 var(--size);
      margin-right: var(--gap);
      scroll-snap-align: start;
      min-width: 0; }
      .cs-image-teaser--slider .cs-image-teaser__slide:last-of-type {
        margin-right: 0; }
    .cs-image-teaser--slider .cs-image-teaser__image {
      display: block; }
  @media (max-width: 47.99em) {
    .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) {
      --gap: 0.8rem;
      --base-size: calc(100% - 0px);
      --size: var(--base-size); }
      .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider).cs-image-teaser--container-width {
        margin-left: -1.5rem;
        margin-right: -1.5rem; }
        .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider).cs-image-teaser--container-width .cs-image-teaser__slides {
          padding-left: 1.5rem;
          padding-right: 1.5rem;
          scroll-padding-left: 1.5rem;
          scroll-padding-right: 1.5rem; } }
  @media (max-width: 47.99em) and (prefers-reduced-motion: no-preference) {
    .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides {
      scroll-behavior: smooth; } }
  @media (max-width: 47.99em) {
      .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides-wrapper {
        position: relative; }
      .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides {
        margin: 0;
        padding: 0;
        list-style: none;
        display: flex;
        flex: 0 0 100%;
        gap: 0;
        flex-wrap: nowrap;
        padding: var(--gap) 0;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scrollbar-width: thin; }
        @supports (scroll-behavior: smooth) {
          .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides {
            scroll-snap-type: x mandatory; } } }
    @media (max-width: 47.99em) and (min-width: 48em) {
      .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides {
        overflow: -moz-scrollbars-none;
        scrollbar-width: none; }
        .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides::-webkit-scrollbar {
          display: none;
          width: 0;
          height: 0;
          background: transparent; }
        .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides::-webkit-scrollbar-thumb {
          background: transparent;
          width: 0;
          height: 0; } }
  @media (max-width: 47.99em) {
      .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slide {
        margin: 0;
        padding: 0;
        list-style: none;
        display: inline-block;
        flex: 0 0 var(--size);
        margin-right: var(--gap);
        scroll-snap-align: start;
        min-width: 0; }
        .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slide:last-of-type {
          margin-right: 0; }
      .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__image {
        display: block; } }
  @media (min-width: 48em) {
    .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__nav,
    .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__pagination {
      display: none; } }
  .cs-image-teaser__slide--scheme-light {
    --scheme-color: #fff;
    --scheme-background: #212121; }
  .cs-image-teaser__slide--scheme-dark {
    --scheme-color: #455a64;
    --scheme-background: #fff; }
  .cs-image-teaser__slide:not(.cs-image-teaser__slide--image-uploaded) {
    background: var(--scheme-background); }
  @media (max-width: 47.99em) {
    .cs-image-teaser__slides--mobile_text-image .cs-image-teaser__slide--image-uploaded {
      order: 1; }
    .cs-image-teaser__slides--mobile_image-text .cs-image-teaser__slide--image-uploaded {
      order: -1; } }
  @media (max-width: 47.99em) {
    .cs-image-teaser--as-list-mobile .cs-image-teaser__slides {
      flex-wrap: wrap; }
    .cs-image-teaser--as-list-mobile .cs-image-teaser__slide {
      margin: 0 0 0.8rem; }
    .cs-image-teaser--as-list-mobile .cs-image-teaser__pagination,
    .cs-image-teaser--as-list-mobile .cs-image-teaser__nav {
      display: none; } }
  .cs-image-teaser__link {
    display: block;
    height: 100%; }
    .cs-image-teaser__link, .cs-image-teaser__link:hover, .cs-image-teaser__link:visited, .cs-image-teaser__link:active, .cs-image-teaser__link:focus {
      text-decoration: none; }
  .cs-image-teaser__figure {
    height: 100%;
    position: relative; }
  .cs-image-teaser__content-wrapper {
    color: var(--scheme-color); }
    .cs-image-teaser__content-wrapper--under {
      position: relative;
      z-index: 1;
      margin: -2rem 2rem 0;
      padding: 2rem;
      background-color: var(--scheme-background);
      text-align: center; }
    .cs-image-teaser__content-wrapper--over {
      width: 100%;
      height: 100%;
      display: flex;
      padding: 2rem;
      overflow: hidden;
      align-items: flex-start; }
      .cs-image-teaser__picture + .cs-image-teaser__content-wrapper--over,
      .cs-image-teaser--teaser-and-text .cs-image-teaser__slide--image-uploaded .cs-image-teaser__content-wrapper--over {
        position: absolute;
        top: 0;
        left: 0; }
    .cs-image-teaser__content-wrapper--content-align-x-2 {
      justify-content: center;
      text-align: center; }
    .cs-image-teaser__content-wrapper--content-align-x-3 {
      justify-content: flex-end;
      text-align: right; }
    .cs-image-teaser__content-wrapper--content-align-y-2 {
      align-items: center; }
    .cs-image-teaser__content-wrapper--content-align-y-3 {
      align-items: flex-end; }
  .cs-image-teaser__content {
    position: relative; }
  .cs-image-teaser__text-content + .cs-image-teaser__cta {
    margin-top: 1em !important; }
  .cs-image-teaser__slogan {
    margin: 0;
    line-height: 1.1;
    font-size: var(--slogan-font-size);
    font-weight: 900;
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-word;
    -webkit-hyphens: auto;
            hyphens: auto; }
  .cs-image-teaser__description {
    margin: 1em 0 0;
    line-height: 1.1;
    font-size: var(--description-font-size); }
  .cs-image-teaser__cta {
    display: none; }
    .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta {
      display: inline-block;
      font-size: 1.8rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 1.275em;
      margin: 0;
      text-transform: none;
      padding: 0.75em 1em;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5; }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:hover, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:focus, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:active {
        background-color: #7e57c2 !important; }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:before, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:after {
        content: '';
        position: absolute;
        top: -1px;
        bottom: -1px;
        right: -1px; }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:before {
        width: 3.4em;
        border-radius: 0 200px 200px 0;
        z-index: -1;
        background: linear-gradient(0deg, transparent 0%, transparent 0%, #4d2c91 0%, #4d2c91 100%); }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:after {
        width: 3em;
        min-width: auto;
        background-color: #4d2c91;
        transition: width 0.25s linear;
        z-index: -2;
        border-radius: 200px; }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:hover:after {
        width: calc(100% + 2px); }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta::-moz-focus-inner {
        border: 0;
        padding: 0;
        margin: 0; }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:visited {
        cursor: pointer;
        border-radius: 200px;
        outline-offset: 1px;
        text-decoration: none;
        box-shadow: none;
        border: 1px solid transparent;
        color: #fff;
        background-color: #7e57c2; }
        .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta *, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:visited * {
          color: #fff;
          fill: #fff; }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:hover:not([disabled]), .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:focus:not([disabled]), .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid transparent;
        color: #fff;
        background-color: #4d2c91; }
        .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:hover:not([disabled]) *, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:focus:not([disabled]) *, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:active:not([disabled]) * {
          color: #fff;
          fill: #fff; }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta[disabled] {
        opacity: 0.65;
        cursor: auto; }
    .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta {
      display: inline-block;
      font-size: 1.8rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 1.275em;
      margin: 0;
      text-transform: none;
      padding: 0.75em 1em;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5; }
      .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta::before, .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta::after {
        content: none; }
      .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta::-moz-focus-inner {
        border: 0;
        padding: 0;
        margin: 0; }
      .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta, .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:visited {
        cursor: pointer;
        border-radius: 200px;
        outline-offset: 1px;
        text-decoration: none;
        box-shadow: none;
        border: 1px solid #7e57c2;
        color: #7e57c2;
        background-color: #fff; }
        .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta *, .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:visited * {
          color: #7e57c2;
          fill: #7e57c2; }
      .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:hover:not([disabled]), .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:focus:not([disabled]), .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #4d2c91;
        color: #fff;
        background-color: #4d2c91; }
        .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:hover:not([disabled]) *, .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:focus:not([disabled]) *, .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:active:not([disabled]) * {
          color: #fff;
          fill: #fff; }
      .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta[disabled] {
        opacity: 0.65;
        cursor: auto; }
    .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta-span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal;
      padding-left: 0;
      padding-right: 4em; }
    .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta-span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal;
      padding-left: 0;
      padding-right: 4em; }
    .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta-icon {
      max-width: 1em;
      max-height: 1.8rem;
      z-index: 2;
      height: auto;
      width: 100%;
      position: absolute;
      top: 50%;
      transform: translate3d(0, -50%, 0);
      margin-right: 0;
      right: 1em; }
    .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta-icon {
      max-width: 1em;
      max-height: 1.8rem;
      z-index: 2;
      height: auto;
      width: 100%;
      position: absolute;
      top: 50%;
      transform: translate3d(0, -50%, 0);
      margin-right: 0;
      right: 1em; }
    @media (min-width: 30em) {
      .cs-image-teaser__cta {
        display: inline-flex;
        z-index: 1;
        margin: 1.2em 0 0;
        align-items: center;
        font-size: 1.2rem; }
        .cs-image-teaser__cta-icon {
          width: 1.2rem;
          height: 1.4rem; } }
  .cs-image-teaser__overlay, .cs-image-teaser__gradient {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__overlay, .cs-image-teaser__slide--scheme-light .cs-image-teaser__optimizer-container {
    background-color: #212121; }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__overlay, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__optimizer-container {
    background-color: #fff; }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-1 {
    background: linear-gradient(135deg, #212121 0%, rgba(33, 33, 33, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-1 {
    background: linear-gradient(135deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-2 {
    background: linear-gradient(90deg, #212121 0%, rgba(33, 33, 33, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-2 {
    background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-3 {
    background: linear-gradient(45deg, #212121 0%, rgba(33, 33, 33, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-3 {
    background: linear-gradient(45deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-1 {
    background: linear-gradient(180deg, #212121 0%, rgba(33, 33, 33, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-1 {
    background: linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-2 {
    background: linear-gradient(90deg, #212121 0%, rgba(33, 33, 33, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-2 {
    background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-3 {
    background: linear-gradient(0deg, #212121 0%, rgba(33, 33, 33, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-3 {
    background: linear-gradient(0deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-1 {
    background: linear-gradient(-135deg, #212121 0%, rgba(33, 33, 33, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-1 {
    background: linear-gradient(-135deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-2 {
    background: linear-gradient(-90deg, #212121 0%, rgba(33, 33, 33, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-2 {
    background: linear-gradient(-90deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-3 {
    background: linear-gradient(-45deg, #212121 0%, rgba(33, 33, 33, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-3 {
    background: linear-gradient(-45deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__image--mirror {
    transform: scaleX(-1); }
  .cs-image-teaser__content--container {
    position: relative;
    z-index: 1;
    padding: 2em; }
  .cs-image-teaser__optimizer-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1; }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-0 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-5 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.05); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-10 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.1); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-15 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.15); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-20 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.2); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-25 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.25); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-30 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.3); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-35 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.35); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-40 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.4); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-45 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.45); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-50 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.5); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-55 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.55); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-60 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.6); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-65 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.65); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-70 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.7); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-75 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.75); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-80 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.8); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-85 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.85); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-90 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.9); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-95 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.95); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-100 {
    text-shadow: 0 0 2.5rem white; }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-0 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-5 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.05); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-10 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.1); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-15 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.15); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-20 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.2); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-25 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.25); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-30 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.3); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-35 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.35); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-40 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.4); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-45 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.45); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-50 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.5); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-55 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.55); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-60 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.6); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-65 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.65); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-70 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.7); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-75 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.75); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-80 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.8); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-85 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.85); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-90 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.9); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-95 {
    text-shadow: 0 0 2.5rem rgba(33, 33, 33, 0.95); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-100 {
    text-shadow: 0 0 2.5rem #212121; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--icon {
    --gap: 0.8rem;
    --base-size: calc(100% - 0px);
    --size: var(--base-size); }
    .cs-image-teaser--icon.cs-image-teaser--container-width {
      margin-left: -1.5rem;
      margin-right: -1.5rem; }
      .cs-image-teaser--icon.cs-image-teaser--container-width .cs-image-teaser__slides {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
        scroll-padding-left: 1.5rem;
        scroll-padding-right: 1.5rem; } }
  @media (min-width: 48em) and (max-width: 63.99em) and (prefers-reduced-motion: no-preference) {
    .cs-image-teaser--icon .cs-image-teaser__slides {
      scroll-behavior: smooth; } }

@media (min-width: 48em) and (max-width: 63.99em) {
    .cs-image-teaser--icon .cs-image-teaser__slides-wrapper {
      position: relative; }
    .cs-image-teaser--icon .cs-image-teaser__slides {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex: 0 0 100%;
      gap: 0;
      flex-wrap: nowrap;
      padding: var(--gap) 0;
      overflow-x: auto;
      overscroll-behavior-inline: contain;
      scrollbar-width: thin; }
      @supports (scroll-behavior: smooth) {
        .cs-image-teaser--icon .cs-image-teaser__slides {
          scroll-snap-type: x mandatory; } } }
    @media (min-width: 48em) and (max-width: 63.99em) and (min-width: 48em) {
      .cs-image-teaser--icon .cs-image-teaser__slides {
        overflow: -moz-scrollbars-none;
        scrollbar-width: none; }
        .cs-image-teaser--icon .cs-image-teaser__slides::-webkit-scrollbar {
          display: none;
          width: 0;
          height: 0;
          background: transparent; }
        .cs-image-teaser--icon .cs-image-teaser__slides::-webkit-scrollbar-thumb {
          background: transparent;
          width: 0;
          height: 0; } }

@media (min-width: 48em) and (max-width: 63.99em) {
    .cs-image-teaser--icon .cs-image-teaser__slide {
      margin: 0;
      padding: 0;
      list-style: none;
      display: inline-block;
      flex: 0 0 var(--size);
      margin-right: var(--gap);
      scroll-snap-align: start;
      min-width: 0; }
      .cs-image-teaser--icon .cs-image-teaser__slide:last-of-type {
        margin-right: 0; }
    .cs-image-teaser--icon .cs-image-teaser__image {
      display: block; } }

@media (min-width: 0px) and (max-width: 63.99em) {
  .cs-image-teaser--icon {
    --size: calc(
                    var(--base-size) / 2 - ((
                                    1 * var(--gap)
                                ) / 2)
                ) !important; } }

@media (min-width: 23.125em) and (max-width: 63.99em) {
  .cs-image-teaser--icon {
    --size: calc(
                    var(--base-size) / 2 - ((
                                    1 * var(--gap)
                                ) / 2)
                ) !important; } }

@media (min-width: 30em) and (max-width: 63.99em) {
  .cs-image-teaser--icon {
    --size: calc(
                    var(--base-size) / 2 - ((
                                    1 * var(--gap)
                                ) / 2)
                ) !important; } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--icon {
    --size: calc(
                    var(--base-size) / 3 - ((
                                    2 * var(--gap)
                                ) / 3)
                ) !important; } }

@media (min-width: 48em) and (max-width: 63.99em) and (hover: hover) and (pointer: fine) {
  .cs-image-teaser--icon.cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__nav {
    display: block; } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--icon.cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__pagination {
    display: flex; } }
  .cs-image-teaser--icon .cs-image-teaser__slogan {
    --slogan-font-size: 1.6rem; }
  .cs-image-teaser--icon .cs-image-teaser__description {
    margin-top: 0.5em; }
  .cs-image-teaser--icon .cs-image-teaser__cta {
    display: none; }
  .cs-image-teaser--icon .cs-image-teaser__content-wrapper--under {
    margin-top: 0;
    padding: 1rem; }
  .cs-image-teaser--icon .cs-image-teaser__content-wrapper--cta-only {
    display: none; }
  @media (min-width: 48em) {
    .cs-image-teaser--mosaic .cs-image-teaser__slides--mosaic-scenario-1 {
      grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
    .cs-image-teaser--mosaic .cs-image-teaser__slides--mosaic-scenario-2 {
      grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); } }
  @media (max-width: 47.99em) {
    .cs-image-teaser--teaser-and-text .cs-image-teaser__slides {
      display: flex;
      flex-wrap: wrap; }
    .cs-image-teaser--teaser-and-text .cs-image-teaser__slide {
      flex: 0 0 100%; } }

.cs-container--image-teaser {
  margin: 0 0 3rem; }
  @media (min-width: 48em) {
    .cs-container--image-teaser {
      margin: 0 0 4rem; } }
  .cs-container--image-teaser--skip-spacing {
    margin: 0; }

.cs-container--grid-teaser {
  margin: 0; }

.cs-container--image-teaser-window-width {
  padding-left: 0;
  padding-right: 0; }
  .cs-container--image-teaser-window-width .cs-container__inner {
    max-width: 100%; }

.cs-container--image-teaser-slider {
  padding-left: 0;
  padding-right: 0; }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzL2ltYWdlLXRlYXNlci5jc3MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29uZmlnL2JyZWFrcG9pbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2ltYWdlLXRlYXNlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvcmVzZXQtbGlzdC1zdHlsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL2hpZGUtc2Nyb2xsYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9fc2xpZGVyL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvX3NsaWRlci9uYXZpZ2F0aW9uL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9fc2xpZGVyL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL19zbGlkZXIvcGFnaW5hdGlvbi9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL2dldC12YWx1ZS1mcm9tLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2J1dHRvbi9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9pbWFnZS10ZWFzZXIvaW1hZ2UtdGVhc2VyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9fc2xpZGVyL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2luY2x1ZGUtbWVkaWEvZGlzdC9faW5jbHVkZS1tZWRpYS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2J1dHRvbi9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvYnV0dG9uL2FuaW1hdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvaW1hZ2UtdGVhc2VyL21peGlucy9jb250cmFzdC1vcHRpbWl6ZXJzL2dyYWRpZW50LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9pbWFnZS10ZWFzZXIvbWl4aW5zL2NvbnRyYXN0LW9wdGltaXplcnMvdGV4dC1zaGFkb3cuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy91dGlscy9jb21wb25lbnQtc3BhY2luZy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG5AaW1wb3J0ICdldGMvdmlldy5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuXG4vLyBCcmVha3BvaW50cyBpbXBvcnQgZnJvbSB2aWV3LnhtbCBbcHhdXG4kYnJlYWtwb2ludHNfcHg6IGRlZXAtZ2V0KCR2aWV3LXhtbCwgdmFycywgTWFnZW50b19UaGVtZSwgYnJlYWtwb2ludHMpO1xuJGJyZWFrcG9pbnRzX2VtOiAoKTtcblxuQGZ1bmN0aW9uIGNhbGN1bGF0ZS1icmVha3BvaW50cygkYnJlYWtwb2ludHNfZW0sICRicmVha3BvaW50c19weCkge1xuICAgICRyZXN1bHQ6ICRicmVha3BvaW50c19lbTtcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJGJyZWFrcG9pbnRzX3B4IHtcbiAgICAgICAgJHJlc3VsdDogbWFwLW1lcmdlKFxuICAgICAgICAgICAgJHJlc3VsdCxcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICB1bnF1b3RlKCRrZXkpOiAkdmFsdWUgLyAxNiAqIDFlbSxcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuXG4kYnJlYWtwb2ludHM6IGNhbGN1bGF0ZS1icmVha3BvaW50cygkYnJlYWtwb2ludHNfZW0sICRicmVha3BvaW50c19weCkgIWRlZmF1bHQ7XG5cbi8vIHBob25lOiAyMy4xMjVlbSAtIDM3MHB4XG4vLyBwaG9uZUxnOiAzMGVtIC0gNDgwcHgsXG4vLyB0YWJsZXQ6IDQ4ZW0gLSA3NjhweCxcbi8vIGxhcHRvcDogNjRlbSAtIDEwMjRweCxcbi8vIGxhcHRvcExnOiA4MGVtIC0gMTI4MHB4LFxuLy8gZGVza3RvcDogOTBlbSAtIDE0NDBweCxcbi8vIHR2OiAxMjBlbSAtIDE5MjBweCxcbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyoqKlxuICogSGlkZSBuYXRpdmUgYnJvd3NlcidzIHNjcm9sbGJhclxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3Mtc2xpZGVyLW5hdmlnYXRpb24ge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAuY3Mtc2xpZGVyLW5hdmlnYXRpb24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgei1pbmRleDogMTE7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgd2lkdGg6IDQuNHJlbTtcbiAgICAgIGhlaWdodDogNS4ycmVtO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGJveC1zaGFkb3c6IDFweCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOyB9XG4gICAgICAuY3Mtc2xpZGVyLW5hdmlnYXRpb24tLXByZXYge1xuICAgICAgICBsZWZ0OiAxLjVyZW07IH1cbiAgICAgIC5jcy1zbGlkZXItbmF2aWdhdGlvbi0tbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAxLjVyZW07IH1cbiAgICAgIC5jcy1zbGlkZXItbmF2aWdhdGlvbltkaXNhYmxlZF0ge1xuICAgICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAgIC5jcy1zbGlkZXItbmF2aWdhdGlvbltkaXNhYmxlZF0gc3ZnIHtcbiAgICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxKTsgfVxuICAgICAgLmNzLXNsaWRlci1uYXZpZ2F0aW9uOm5vdChbZGlzYWJsZWRdKTpob3ZlciB7XG4gICAgICAgIGJveC1zaGFkb3c6IDFweCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cbiAgICAgIC5jcy1zbGlkZXItbmF2aWdhdGlvbl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiAxLjRyZW07XG4gICAgICAgIGhlaWdodDogMi43cmVtO1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7IH0gfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3Mtc2xpZGVyLXBhZ2luYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuOHJlbTtcbiAgbWluLWhlaWdodDogM3JlbTsgfVxuICAuY3Mtc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uIHtcbiAgICBnYXA6IDA7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAuY3Mtc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uIHNwYW4ge1xuICAgICAgY29sb3I6ICMxMWEwOTk7IH1cbiAgLmNzLXNsaWRlci1wYWdpbmF0aW9uX19idWxsZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDA7XG4gICAgaW5saW5lLXNpemU6IDIuMnJlbTtcbiAgICBibG9jay1zaXplOiAwLjlyZW07XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1pbmRlbnQ6IC05OXJlbTsgfVxuICAgIC5jcy1zbGlkZXItcGFnaW5hdGlvbl9fYnVsbGV0LmN1cnJlbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzExYTA5OTsgfVxuICAgIC5jcy1zbGlkZXItcGFnaW5hdGlvbl9fYnVsbGV0Om9ubHktY2hpbGQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIFRoaXMgY29tcG9uZW50cyBpcyBzb3J0IG9mIHVuaXF1ZSBiZWNhdXNlIGl0J3MgaXRlbXMtcGVyLXJvdyBjb25maWd1cmF0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIGZvciB0YWJsZXQrXG4gKiBUaGlzIG1hcCBhZGRzIHBvc3NpYmlsaXR5IHRvICdmb3JjZScgcHJvdmllZCBjb2x1bW5zIGNvbmZpZ3VyYXRpb24gdXAgdG8gbGFwdG9wIHJlc29sdXRpb25zLlxuICovXG4uY3MtaW1hZ2UtdGVhc2VyIHtcbiAgLS1zbG9nYW4tZm9udC1zaXplOiAzLjhyZW07XG4gIC0tZGVzY3JpcHRpb24tZm9udC1zaXplOiAxLjVyZW07XG4gIC0tZ2FwOiAwLjhyZW07XG4gIC8qXG4gICAgICogS2VlcCBDVEEgc2VwYXJhdGVkIGZyb20gdGV4dC1jb250ZW50IGZvciBhbGwgc2NlbmFyaW9zXG4gICAgICogXCIhaW1wb3J0YW50XCIgYWRkZWQgZHVlIHRvIGZhbGxiYWNrIGZyb20gLS1zY2hlbWUtKiB3aXRoIGJ1dHRvbigpIG1peGluIHRoYXQgcmVzZXRzIG1hcmdpbnNcbiAgICAgKi9cbiAgLyoqXG4gICAgICogQ29udHJhc3QgT3B0aW1pemVyc1xuICAgICAqLyB9XG4gIC5jcy1pbWFnZS10ZWFzZXI6bm90KC5jcy1jb250YWluZXItLXVzZS13aG9sZS13aWR0aCkgLmNzLWltYWdlLXRlYXNlci5jcy1pbWFnZS10ZWFzZXItLWNvbnRhaW5lci13aWR0aCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMtd3JhcHBlciB7XG4gICAgbWF4LXdpZHRoOiAxMjhyZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgLS1jb2x1bW5zOiAxO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1nYXApO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbHVtbnMpLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyLS1pdGVtcy1pbi1yb3ctbW9iaWxlLTIgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICAgIC0tY29sdW1uczogMjsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19saW5rIHtcbiAgICBvdXRsaW5lLW9mZnNldDogY2FsYyh2YXIoLS1nYXApIC8gMiArIDIpOyB9XG4gICAgLmNzLWltYWdlLXRlYXNlcl9fbGluazpmb2N1cyB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMC40cmVtOyB9XG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gICAgICAuY3MtaW1hZ2UtdGVhc2VyX19saW5rIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3V0bGluZS1vZmZzZXQgMC4yNXMgZWFzZTsgfSB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIC0tIHN0eWxlbGludCBkb2Vzbid0IGtub3cgdGhpcyBtZWRpYSBxdWVyeSB5ZXQuICovXG4gICAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtZGF0YTogcmVkdWNlKSB7XG4gICAgICAuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX2ltYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1pbWFnZS10ZWFzZXIge1xuICAgICAgLS1nYXA6IDAuOHJlbTsgfVxuICAgICAgLmNzLWltYWdlLXRlYXNlci0taXRlbXMtaW4tcm93LTIgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICAgICAgLS1jb2x1bW5zOiAyOyB9XG4gICAgICAuY3MtaW1hZ2UtdGVhc2VyLS1pdGVtcy1pbi1yb3ctMyAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICAgICAgICAtLWNvbHVtbnM6IDM7IH1cbiAgICAgIC5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy00IC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgICAgIC0tY29sdW1uczogNDsgfVxuICAgICAgLmNzLWltYWdlLXRlYXNlci0taXRlbXMtaW4tcm93LTUgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICAgICAgLS1jb2x1bW5zOiA1OyB9XG4gICAgICAuY3MtaW1hZ2UtdGVhc2VyLS1pdGVtcy1pbi1yb3ctNiAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICAgICAgICAtLWNvbHVtbnM6IDY7IH1cbiAgICAgIC5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy03IC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgICAgIC0tY29sdW1uczogNzsgfVxuICAgICAgLmNzLWltYWdlLXRlYXNlci0taXRlbXMtaW4tcm93LTggLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICAgICAgLS1jb2x1bW5zOiA4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy00Om5vdCguY3MtaW1hZ2UtdGVhc2VyLS1pY29uKSAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICAgIC0tY29sdW1uczogMjsgfSB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlciB7XG4gICAgLS1nYXA6IDAuOHJlbTtcbiAgICAtLWJhc2Utc2l6ZTogY2FsYygxMDAlIC0gMHB4KTtcbiAgICAtLXNpemU6IHZhcigtLWJhc2Utc2l6ZSk7XG4gICAgLyoqXG4gICAgICogY2xhc3MtYmFzZWQgY29sdW1ucyBjb25maWcgcmVsYXRlcyB0byBjbGFzc25hbWVzLCBsaWtlICctLWl0ZW1zLWluLXJvdy00J1xuICAgICAqIHdoaWNoIGFyZSBhZGRlZCB0byBlbGVtZW50cywgZGVwZW5kaW5nIG9uIHRoZSBDQyBDb21wb25lbnRzIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgLyogIGNvbnRhaW5lciBwYWRkaW5nIGZpeCAgKi8gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA4MS44NzVlbSkge1xuICAgICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgICAgLS1iYXNlLXNpemU6IGNhbGMoMTI4cmVtIC0gMHB4KTsgfVxuICAgICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0tdXNlLXdob2xlLXNjcmVlbjpub3QoLmNzLWltYWdlLXRlYXNlci0tZnVsbC13aWR0aC1zbGlkZXIpIHtcbiAgICAgICAgLS1iYXNlLXNpemU6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgICAgICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyLS11c2Utd2hvbGUtc2NyZWVuOm5vdCguY3MtaW1hZ2UtdGVhc2VyLS1mdWxsLXdpZHRoLXNsaWRlcikgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICAgICAgICBzY3JvbGwtc25hcC10eXBlOiB4IHByb3hpbWl0eTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoKDEwMCUgLSAxMjhyZW0pIC8gMik7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygoMTAwJSAtIDEyOHJlbSkgLyAyKTtcbiAgICAgICAgICBzY3JvbGwtcGFkZGluZy1sZWZ0OiBjYWxjKCgxMDAlIC0gMTI4cmVtKSAvIDIpO1xuICAgICAgICAgIHNjcm9sbC1wYWRkaW5nLXJpZ2h0OiBjYWxjKCgxMDAlIC0gMTI4cmVtKSAvIDIpO1xuICAgICAgICAgIHNjcm9sbC1tYXJnaW4tbGVmdDogY2FsYygoMTAwdncgLSAxMjhyZW0pIC8gMik7XG4gICAgICAgICAgc2Nyb2xsLW1hcmdpbi1yaWdodDogY2FsYygoMTAwdncgLSAxMjhyZW0pIC8gMik7IH0gfVxuICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIGFuZCAobWluLXdpZHRoOiA4MS44NzVlbSkge1xuICAgICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgICAgLS1iYXNlLXNpemU6IDEyOHJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlciB7XG4gICAgICAgIC0tZ2FwOiAwLjhyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyLS1pdGVtcy1pbi1yb3ctMiB7XG4gICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoMSAqIHZhcigtLWdhcCkpIC8gMilcbiAgICAgICAgICAgICAgICAgICAgKTsgfVxuICAgICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0taXRlbXMtaW4tcm93LTMge1xuICAgICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAzIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDIgKiB2YXIoLS1nYXApKSAvIDMpXG4gICAgICAgICAgICAgICAgICAgICk7IH1cbiAgICAgIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy00IHtcbiAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgNCAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgzICogdmFyKC0tZ2FwKSkgLyA0KVxuICAgICAgICAgICAgICAgICAgICApOyB9XG4gICAgICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyLS1pdGVtcy1pbi1yb3ctNSB7XG4gICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUgLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoNCAqIHZhcigtLWdhcCkpIC8gNSlcbiAgICAgICAgICAgICAgICAgICAgKTsgfVxuICAgICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0taXRlbXMtaW4tcm93LTYge1xuICAgICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA2IC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDUgKiB2YXIoLS1nYXApKSAvIDYpXG4gICAgICAgICAgICAgICAgICAgICk7IH1cbiAgICAgIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy03IHtcbiAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgNyAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCg2ICogdmFyKC0tZ2FwKSkgLyA3KVxuICAgICAgICAgICAgICAgICAgICApOyB9XG4gICAgICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyLS1pdGVtcy1pbi1yb3ctOCB7XG4gICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDggLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoNyAqIHZhcigtLWdhcCkpIC8gOClcbiAgICAgICAgICAgICAgICAgICAgKTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyLS1pdGVtcy1pbi1yb3ctNDpub3QoLmNzLWltYWdlLXRlYXNlci0taWNvbikge1xuICAgIC0tc2l6ZTogY2FsYyh2YXIoLS1iYXNlLXNpemUpIC8gMiAtICgxICogdmFyKC0tZ2FwKSAvIDIpKTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDgxLjgxMjVlbSkge1xuICAgICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0tY29udGFpbmVyLXdpZHRoIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIHNjcm9sbC1wYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgc2Nyb2xsLXBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfSB9XG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gICAgICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7IH0gfVxuICAgIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlciAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMtd3JhcHBlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgZ2FwOiAwO1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBwYWRkaW5nOiB2YXIoLS1nYXApIDA7XG4gICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvci1pbmxpbmU6IGNvbnRhaW47XG4gICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47IH1cbiAgICAgIEBzdXBwb3J0cyAoc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGgpIHtcbiAgICAgICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBtYW5kYXRvcnk7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgICAgICAgb3ZlcmZsb3c6IC1tb3otc2Nyb2xsYmFycy1ub25lO1xuICAgICAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsgfVxuICAgICAgICAgIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlciAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXM6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgICAgICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMDsgfSB9XG4gICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZmxleDogMCAwIHZhcigtLXNpemUpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXApO1xuICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0O1xuICAgICAgbWluLXdpZHRoOiAwOyB9XG4gICAgICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGU6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyIC5jcy1pbWFnZS10ZWFzZXJfX2ltYWdlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLW1vYmlsZTpub3QoLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyKSB7XG4gICAgICAtLWdhcDogMC44cmVtO1xuICAgICAgLS1iYXNlLXNpemU6IGNhbGMoMTAwJSAtIDBweCk7XG4gICAgICAtLXNpemU6IHZhcigtLWJhc2Utc2l6ZSk7IH1cbiAgICAgIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci1tb2JpbGU6bm90KC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlcikuY3MtaW1hZ2UtdGVhc2VyLS1jb250YWluZXItd2lkdGgge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTEuNXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMS41cmVtOyB9XG4gICAgICAgIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci1tb2JpbGU6bm90KC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlcikuY3MtaW1hZ2UtdGVhc2VyLS1jb250YWluZXItd2lkdGggLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgc2Nyb2xsLXBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgICAgIHNjcm9sbC1wYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkgYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLW1vYmlsZTpub3QoLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyKSAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLW1vYmlsZTpub3QoLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyKSAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMtd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLW1vYmlsZTpub3QoLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyKSAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBnYXA6IDA7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXApIDA7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3ItaW5saW5lOiBjb250YWluO1xuICAgICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47IH1cbiAgICAgICAgQHN1cHBvcnRzIChzY3JvbGwtYmVoYXZpb3I6IHNtb290aCkge1xuICAgICAgICAgIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci1tb2JpbGU6bm90KC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlcikgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHggbWFuZGF0b3J5OyB9IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLW1vYmlsZTpub3QoLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyKSAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICAgICAgICBvdmVyZmxvdzogLW1vei1zY3JvbGxiYXJzLW5vbmU7XG4gICAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsgfVxuICAgICAgICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXItbW9iaWxlOm5vdCguY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIpIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlczo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgICAgIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci1tb2JpbGU6bm90KC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlcikgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAwOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci1tb2JpbGU6bm90KC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlcikgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZmxleDogMCAwIHZhcigtLXNpemUpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcCk7XG4gICAgICAgIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDtcbiAgICAgICAgbWluLXdpZHRoOiAwOyB9XG4gICAgICAgIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci1tb2JpbGU6bm90KC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlcikgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGU6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAgIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci1tb2JpbGU6bm90KC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlcikgLmNzLWltYWdlLXRlYXNlcl9faW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLW1vYmlsZTpub3QoLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyKSAuY3MtaW1hZ2UtdGVhc2VyX19uYXYsXG4gICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLW1vYmlsZTpub3QoLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyKSAuY3MtaW1hZ2UtdGVhc2VyX19wYWdpbmF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IHtcbiAgICAtLXNjaGVtZS1jb2xvcjogI2ZmZjtcbiAgICAtLXNjaGVtZS1iYWNrZ3JvdW5kOiAjMjEyMTIxOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayB7XG4gICAgLS1zY2hlbWUtY29sb3I6ICM0NTVhNjQ7XG4gICAgLS1zY2hlbWUtYmFja2dyb3VuZDogI2ZmZjsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZTpub3QoLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLWltYWdlLXVwbG9hZGVkKSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tc2NoZW1lLWJhY2tncm91bmQpOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLS1tb2JpbGVfdGV4dC1pbWFnZSAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0taW1hZ2UtdXBsb2FkZWQge1xuICAgICAgb3JkZXI6IDE7IH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMtLW1vYmlsZV9pbWFnZS10ZXh0IC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1pbWFnZS11cGxvYWRlZCB7XG4gICAgICBvcmRlcjogLTE7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jcy1pbWFnZS10ZWFzZXItLWFzLWxpc3QtbW9iaWxlIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyLS1hcy1saXN0LW1vYmlsZSAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZSB7XG4gICAgICBtYXJnaW46IDAgMCAwLjhyZW07IH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyLS1hcy1saXN0LW1vYmlsZSAuY3MtaW1hZ2UtdGVhc2VyX19wYWdpbmF0aW9uLFxuICAgIC5jcy1pbWFnZS10ZWFzZXItLWFzLWxpc3QtbW9iaWxlIC5jcy1pbWFnZS10ZWFzZXJfX25hdiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fbGluayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLmNzLWltYWdlLXRlYXNlcl9fbGluaywgLmNzLWltYWdlLXRlYXNlcl9fbGluazpob3ZlciwgLmNzLWltYWdlLXRlYXNlcl9fbGluazp2aXNpdGVkLCAuY3MtaW1hZ2UtdGVhc2VyX19saW5rOmFjdGl2ZSwgLmNzLWltYWdlLXRlYXNlcl9fbGluazpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fZmlndXJlIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlciB7XG4gICAgY29sb3I6IHZhcigtLXNjaGVtZS1jb2xvcik7IH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50LXdyYXBwZXItLXVuZGVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBtYXJnaW46IC0ycmVtIDJyZW0gMDtcbiAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zY2hlbWUtYmFja2dyb3VuZCk7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50LXdyYXBwZXItLW92ZXIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAgICAgLmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZSArIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlci0tb3ZlcixcbiAgICAgIC5jcy1pbWFnZS10ZWFzZXItLXRlYXNlci1hbmQtdGV4dCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0taW1hZ2UtdXBsb2FkZWQgLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyLS1vdmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7IH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50LXdyYXBwZXItLWNvbnRlbnQtYWxpZ24teC0yIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyLS1jb250ZW50LWFsaWduLXgtMyB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50LXdyYXBwZXItLWNvbnRlbnQtYWxpZ24teS0yIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50LXdyYXBwZXItLWNvbnRlbnQtYWxpZ24teS0zIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50ICsgLmNzLWltYWdlLXRlYXNlcl9fY3RhIHtcbiAgICBtYXJnaW4tdG9wOiAxZW0gIWltcG9ydGFudDsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbG9nYW4ge1xuICAgIG1hcmdpbjogMDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2xvZ2FuLWZvbnQtc2l6ZSk7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIGh5cGhlbnM6IGF1dG87IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbjogMWVtIDAgMDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZGVzY3JpcHRpb24tZm9udC1zaXplKTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19jdGEge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fY3RhIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1OyB9XG4gICAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fY3RhOmhvdmVyLCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fY3RhOmZvY3VzLCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fY3RhOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzIgIWltcG9ydGFudDsgfVxuICAgICAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YTpiZWZvcmUsIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC0xcHg7XG4gICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgcmlnaHQ6IC0xcHg7IH1cbiAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6YmVmb3JlIHtcbiAgICAgICAgd2lkdGg6IDMuNGVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDIwMHB4IDIwMHB4IDA7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDAlLCAjNGQyYzkxIDAlLCAjNGQyYzkxIDEwMCUpOyB9XG4gICAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fY3RhOmFmdGVyIHtcbiAgICAgICAgd2lkdGg6IDNlbTtcbiAgICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxO1xuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBsaW5lYXI7XG4gICAgICAgIHotaW5kZXg6IC0yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDsgfVxuICAgICAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YTpob3ZlcjphZnRlciB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpOyB9XG4gICAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fY3RhOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19jdGEsIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6dmlzaXRlZCB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19jdGEgKiwgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YTp2aXNpdGVkICoge1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fY3RhOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YTphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAgICAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19jdGFbZGlzYWJsZWRdIHtcbiAgICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGEge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIHotaW5kZXg6IDU7IH1cbiAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhOjpiZWZvcmUsIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhLCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YTp2aXNpdGVkIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YSAqLCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YTp2aXNpdGVkICoge1xuICAgICAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YTphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjNGQyYzkxO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgICAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGFbZGlzYWJsZWRdIHtcbiAgICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YS1zcGFuIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDRlbTsgfVxuICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhLXNwYW4ge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogNGVtOyB9XG4gICAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2N0YS1pY29uIHtcbiAgICAgIG1heC13aWR0aDogMWVtO1xuICAgICAgbWF4LWhlaWdodDogMS44cmVtO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgcmlnaHQ6IDFlbTsgfVxuICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhLWljb24ge1xuICAgICAgbWF4LXdpZHRoOiAxZW07XG4gICAgICBtYXgtaGVpZ2h0OiAxLjhyZW07XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICByaWdodDogMWVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX2N0YSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBtYXJnaW46IDEuMmVtIDAgMDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxLjJyZW07IH1cbiAgICAgICAgLmNzLWltYWdlLXRlYXNlcl9fY3RhLWljb24ge1xuICAgICAgICAgIHdpZHRoOiAxLjJyZW07XG4gICAgICAgICAgaGVpZ2h0OiAxLjRyZW07IH0gfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19vdmVybGF5LCAuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX292ZXJsYXksIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fb3B0aW1pemVyLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjEyMTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fb3ZlcmxheSwgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX29wdGltaXplci1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXgtMS5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teS0xIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMjEyMTIxIDAlLCByZ2JhKDMzLCAzMywgMzMsIDApIDg1JSk7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teC0xLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi15LTEge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZmYgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgODUlKTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teC0xLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi15LTIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzIxMjEyMSAwJSwgcmdiYSgzMywgMzMsIDMzLCAwKSA4NSUpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXgtMS5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teS0yIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNmZmYgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgODUlKTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teC0xLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi15LTMge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgIzIxMjEyMSAwJSwgcmdiYSgzMywgMzMsIDMzLCAwKSA4NSUpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXgtMS5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teS0zIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNmZmYgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgODUlKTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teC0yLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi15LTEge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMyMTIxMjEgMCUsIHJnYmEoMzMsIDMzLCAzMywgMCkgODUlKTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi14LTIuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXktMSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2ZmZiAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA4NSUpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi14LTIuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXktMiB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjMjEyMTIxIDAlLCByZ2JhKDMzLCAzMywgMzMsIDApIDg1JSk7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teC0yLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi15LTIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2ZmZiAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA4NSUpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi14LTIuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXktMyB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsICMyMTIxMjEgMCUsIHJnYmEoMzMsIDMzLCAzMywgMCkgODUlKTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi14LTIuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXktMyB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsICNmZmYgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgODUlKTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teC0zLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi15LTEge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgtMTM1ZGVnLCAjMjEyMTIxIDAlLCByZ2JhKDMzLCAzMywgMzMsIDApIDg1JSk7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teC0zLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi15LTEge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgtMTM1ZGVnLCAjZmZmIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDg1JSk7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXgtMy5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teS0yIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoLTkwZGVnLCAjMjEyMTIxIDAlLCByZ2JhKDMzLCAzMywgMzMsIDApIDg1JSk7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teC0zLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi15LTIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgtOTBkZWcsICNmZmYgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgODUlKTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LS1kaXJlY3Rpb24teC0zLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi15LTMge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgtNDVkZWcsICMyMTIxMjEgMCUsIHJnYmEoMzMsIDMzLCAzMywgMCkgODUlKTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQtLWRpcmVjdGlvbi14LTMuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudC0tZGlyZWN0aW9uLXktMyB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KC00NWRlZywgI2ZmZiAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA4NSUpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX2ltYWdlLS1taXJyb3Ige1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50LS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHBhZGRpbmc6IDJlbTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19vcHRpbWl6ZXItY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IC0xOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTAge1xuICAgIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctNSB7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy0xMCB7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTE1IHtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTIwIHtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctMjUge1xuICAgIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctMzAge1xuICAgIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy0zNSB7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy00MCB7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTQ1IHtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDUpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTUwIHtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctNTUge1xuICAgIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSk7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctNjAge1xuICAgIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy02NSB7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy03MCB7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTc1IHtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTgwIHtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctODUge1xuICAgIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1kYXJrIC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctOTAge1xuICAgIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy05NSB7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy0xMDAge1xuICAgIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHdoaXRlOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy0wIHtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDMzLCAzMywgMzMsIDApOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy01IHtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDMzLCAzMywgMzMsIDAuMDUpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy0xMCB7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgzMywgMzMsIDMzLCAwLjEpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy0xNSB7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgzMywgMzMsIDMzLCAwLjE1KTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctMjAge1xuICAgIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMzMsIDMzLCAzMywgMC4yKTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctMjUge1xuICAgIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMzMsIDMzLCAzMywgMC4yNSk7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTMwIHtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDMzLCAzMywgMzMsIDAuMyk7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTM1IHtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDMzLCAzMywgMzMsIDAuMzUpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy00MCB7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgzMywgMzMsIDMzLCAwLjQpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy00NSB7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgzMywgMzMsIDMzLCAwLjQ1KTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctNTAge1xuICAgIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMzMsIDMzLCAzMywgMC41KTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctNTUge1xuICAgIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMzMsIDMzLCAzMywgMC41NSk7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTYwIHtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDMzLCAzMywgMzMsIDAuNik7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTY1IHtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDMzLCAzMywgMzMsIDAuNjUpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy03MCB7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgzMywgMzMsIDMzLCAwLjcpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy03NSB7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAyLjVyZW0gcmdiYSgzMywgMzMsIDMzLCAwLjc1KTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctODAge1xuICAgIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMzMsIDMzLCAzMywgMC44KTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3ctODUge1xuICAgIHRleHQtc2hhZG93OiAwIDAgMi41cmVtIHJnYmEoMzMsIDMzLCAzMywgMC44NSk7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTkwIHtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDMzLCAzMywgMzMsIDAuOSk7IH1cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX190ZXh0LWNvbnRlbnQtLXRleHQtc2hhZG93LTk1IHtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDIuNXJlbSByZ2JhKDMzLCAzMywgMzMsIDAuOTUpOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50LS10ZXh0LXNoYWRvdy0xMDAge1xuICAgIHRleHQtc2hhZG93OiAwIDAgMi41cmVtICMyMTIxMjE7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy1pbWFnZS10ZWFzZXItLWljb24ge1xuICAgIC0tZ2FwOiAwLjhyZW07XG4gICAgLS1iYXNlLXNpemU6IGNhbGMoMTAwJSAtIDBweCk7XG4gICAgLS1zaXplOiB2YXIoLS1iYXNlLXNpemUpOyB9XG4gICAgLmNzLWltYWdlLXRlYXNlci0taWNvbi5jcy1pbWFnZS10ZWFzZXItLWNvbnRhaW5lci13aWR0aCB7XG4gICAgICBtYXJnaW4tbGVmdDogLTEuNXJlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogLTEuNXJlbTsgfVxuICAgICAgLmNzLWltYWdlLXRlYXNlci0taWNvbi5jcy1pbWFnZS10ZWFzZXItLWNvbnRhaW5lci13aWR0aCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICBzY3JvbGwtcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgICAgIHNjcm9sbC1wYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8tcHJlZmVyZW5jZSkge1xuICAgIC5jcy1pbWFnZS10ZWFzZXItLWljb24gLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmNzLWltYWdlLXRlYXNlci0taWNvbiAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMtd3JhcHBlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyLS1pY29uIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIGdhcDogMDtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgcGFkZGluZzogdmFyKC0tZ2FwKSAwO1xuICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3ItaW5saW5lOiBjb250YWluO1xuICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOyB9XG4gICAgICBAc3VwcG9ydHMgKHNjcm9sbC1iZWhhdmlvcjogc21vb3RoKSB7XG4gICAgICAgIC5jcy1pbWFnZS10ZWFzZXItLWljb24gLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICAgICAgICBzY3JvbGwtc25hcC10eXBlOiB4IG1hbmRhdG9yeTsgfSB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaW1hZ2UtdGVhc2VyLS1pY29uIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgICAgIG92ZXJmbG93OiAtbW96LXNjcm9sbGJhcnMtbm9uZTtcbiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOyB9XG4gICAgICAgIC5jcy1pbWFnZS10ZWFzZXItLWljb24gLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAgICAgLmNzLWltYWdlLXRlYXNlci0taWNvbiAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDA7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuY3MtaW1hZ2UtdGVhc2VyLS1pY29uIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZmxleDogMCAwIHZhcigtLXNpemUpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXApO1xuICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0O1xuICAgICAgbWluLXdpZHRoOiAwOyB9XG4gICAgICAuY3MtaW1hZ2UtdGVhc2VyLS1pY29uIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC5jcy1pbWFnZS10ZWFzZXItLWljb24gLmNzLWltYWdlLXRlYXNlcl9faW1hZ2Uge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMHB4KSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtaW1hZ2UtdGVhc2VyLS1pY29uIHtcbiAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyAyIC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyAyKVxuICAgICAgICAgICAgICAgICkgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLWltYWdlLXRlYXNlci0taWNvbiB7XG4gICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC8gMiAtICgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICogdmFyKC0tZ2FwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gMilcbiAgICAgICAgICAgICAgICApICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLWltYWdlLXRlYXNlci0taWNvbiB7XG4gICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC8gMiAtICgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICogdmFyKC0tZ2FwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gMilcbiAgICAgICAgICAgICAgICApICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLWltYWdlLXRlYXNlci0taWNvbiB7XG4gICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC8gMyAtICgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyICogdmFyKC0tZ2FwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gMylcbiAgICAgICAgICAgICAgICApICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIGFuZCAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgLmNzLWltYWdlLXRlYXNlci0taWNvbi5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci1tb2JpbGU6bm90KC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlcikgLmNzLWltYWdlLXRlYXNlcl9fbmF2IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtaW1hZ2UtdGVhc2VyLS1pY29uLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLW1vYmlsZTpub3QoLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyKSAuY3MtaW1hZ2UtdGVhc2VyX19wYWdpbmF0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9IH1cbiAgLmNzLWltYWdlLXRlYXNlci0taWNvbiAuY3MtaW1hZ2UtdGVhc2VyX19zbG9nYW4ge1xuICAgIC0tc2xvZ2FuLWZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLWljb24gLmNzLWltYWdlLXRlYXNlcl9fZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbi10b3A6IDAuNWVtOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLWljb24gLmNzLWltYWdlLXRlYXNlcl9fY3RhIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLWljb24gLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyLS11bmRlciB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBwYWRkaW5nOiAxcmVtOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXItLWljb24gLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyLS1jdGEtb25seSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1pbWFnZS10ZWFzZXItLW1vc2FpYyAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMtLW1vc2FpYy1zY2VuYXJpby0xIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDJmcikgbWlubWF4KDAsIDFmcik7IH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyLS1tb3NhaWMgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLS1tb3NhaWMtc2NlbmFyaW8tMiB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIG1pbm1heCgwLCAyZnIpOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuY3MtaW1hZ2UtdGVhc2VyLS10ZWFzZXItYW5kLXRleHQgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyLS10ZWFzZXItYW5kLXRleHQgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUge1xuICAgICAgZmxleDogMCAwIDEwMCU7IH0gfVxuXG4uY3MtY29udGFpbmVyLS1pbWFnZS10ZWFzZXIge1xuICBtYXJnaW46IDAgMCAzcmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWNvbnRhaW5lci0taW1hZ2UtdGVhc2VyIHtcbiAgICAgIG1hcmdpbjogMCAwIDRyZW07IH0gfVxuICAuY3MtY29udGFpbmVyLS1pbWFnZS10ZWFzZXItLXNraXAtc3BhY2luZyB7XG4gICAgbWFyZ2luOiAwOyB9XG5cbi5jcy1jb250YWluZXItLWdyaWQtdGVhc2VyIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5jcy1jb250YWluZXItLWltYWdlLXRlYXNlci13aW5kb3ctd2lkdGgge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgLmNzLWNvbnRhaW5lci0taW1hZ2UtdGVhc2VyLXdpbmRvdy13aWR0aCAuY3MtY29udGFpbmVyX19pbm5lciB7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5jcy1jb250YWluZXItLWltYWdlLXRlYXNlci1zbGlkZXIge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiIsIi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkBmdW5jdGlvbiBkZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuICAgIEBlYWNoICRrZXkgaW4gJGtleXMge1xuICAgICAgICAkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICAgIH1cbiAgICBAcmV0dXJuICRtYXA7XG59XG4iLCIvKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cblxuQG1peGluIHJlc2V0LWxpc3Qtc3R5bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4iLCIvKioqXG4gKiBIaWRlIG5hdGl2ZSBicm93c2VyJ3Mgc2Nyb2xsYmFyXG4gKi9cblxuQG1peGluIGhpZGUtc2Nyb2xsYmFyIHtcbiAgICBvdmVyZmxvdzogLW1vei1zY3JvbGxiYXJzLW5vbmU7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL25hdmlnYXRpb24vbWl4aW4nO1xuXG4uI3skbnN9c2xpZGVyLW5hdmlnYXRpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBAbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSB7XG4gICAgICAgIEBpbmNsdWRlIHNsaWRlci1uYXZpZ2F0aW9uKCk7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL19zbGlkZXIvaG9va3MnO1xuXG4kdHJpZ2dlcl93aWR0aDogNC40cmVtICFkZWZhdWx0O1xuJHRyaWdnZXJfaGVpZ2h0OiA1LjJyZW0gIWRlZmF1bHQ7XG4kdHJpZ2dlcl9lZGdlLW9mZnNldDogMS41cmVtICFkZWZhdWx0O1xuJHRyaWdnZXJfYm9yZGVyOiAwICFkZWZhdWx0O1xuJHRyaWdnZXJfcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJHRyaWdnZXJfYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJHRyaWdnZXJfc2hhZG93OiAxcHggMXB4IDJweCAwIHJnYmEoJGNvbG9yX2JsYWNrLCAwLjI1KSAhZGVmYXVsdDtcbiR0cmlnZ2VyX3NoYWRvdy0taG92ZXI6IDFweCAxcHggMTBweCAwIHJnYmEoJGNvbG9yX2JsYWNrLCAwLjI1KSAhZGVmYXVsdDtcbiR0cmlnZ2VyX2NvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7IC8vIGljb24gY29sb3IgaW5oZXJpdHNcbiR0cmlnZ2VyLS1kaXNhYmxlZC1vcGFjaXR5OiAwLjI1ICFkZWZhdWx0O1xuJHRyaWdnZXItLWRpc2FibGVkLWdyYXlvdXQ6IHRydWUgIWRlZmF1bHQ7XG5cbiR0cmlnZ2VyLWljb25fd2lkdGg6IDEuNHJlbSAhZGVmYXVsdDtcbiR0cmlnZ2VyLWljb25faGVpZ2h0OiAyLjdyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBzbGlkZXItbmF2aWdhdGlvbigpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTE7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6ICR0cmlnZ2VyX3dpZHRoO1xuICAgIGhlaWdodDogJHRyaWdnZXJfaGVpZ2h0O1xuICAgIGJvcmRlcjogJHRyaWdnZXJfYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICR0cmlnZ2VyX3JhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiAkdHJpZ2dlcl9iYWNrZ3JvdW5kO1xuICAgIGJveC1zaGFkb3c6ICR0cmlnZ2VyX3NoYWRvdztcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiAkdHJpZ2dlcl9jb2xvcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZTtcblxuICAgICYtLXByZXYge1xuICAgICAgICBsZWZ0OiAkdHJpZ2dlcl9lZGdlLW9mZnNldDtcbiAgICB9XG5cbiAgICAmLS1uZXh0IHtcbiAgICAgICAgcmlnaHQ6ICR0cmlnZ2VyX2VkZ2Utb2Zmc2V0O1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgb3BhY2l0eTogJHRyaWdnZXItLWRpc2FibGVkLW9wYWNpdHk7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgQGlmICgkdHJpZ2dlci0tZGlzYWJsZWQtZ3JheW91dCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoW2Rpc2FibGVkXSk6aG92ZXIge1xuICAgICAgICBib3gtc2hhZG93OiAkdHJpZ2dlcl9zaGFkb3ctLWhvdmVyO1xuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICB3aWR0aDogJHRyaWdnZXItaWNvbl93aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkdHJpZ2dlci1pY29uX2hlaWdodDtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHNsaWRlci1uYXZpZ2F0aW9uLWhvb2soKTtcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL3BhZ2luYXRpb24vbWl4aW4nO1xuXG4uI3skbnN9c2xpZGVyLXBhZ2luYXRpb24ge1xuICAgIEBpbmNsdWRlIHNsaWRlci1wYWdpbmF0aW9uKCk7XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvX3NsaWRlci9ob29rcyc7XG5cbiRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXRzLWdhcDogMC44cmVtICFkZWZhdWx0O1xuJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1ib3JkZXI6IDAgIWRlZmF1bHQ7XG4kc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LXJhZGl1czogMnB4ICFkZWZhdWx0O1xuJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1iZzogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1iZy0tY3VycmVudDogJGNvbG9yX3NlY29uZGFyeS01MDAgIWRlZmF1bHQ7XG5cbiRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtd2lkdGg6IDIuMnJlbSAhZGVmYXVsdDtcbiRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtaGVpZ2h0OiAwLjlyZW0gIWRlZmF1bHQ7XG5cbiRzbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb25fY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG4kc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uX2ZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG4kc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uX2N1cnJlbnQtY29sb3I6ICRjb2xvcl9zZWNvbmRhcnktNTAwICFkZWZhdWx0O1xuXG5AbWl4aW4gc2xpZGVyLXBhZ2luYXRpb24oKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6ICRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXRzLWdhcDtcbiAgICBtaW4taGVpZ2h0OiAzcmVtO1xuXG4gICAgJi0tZnJhY3Rpb24ge1xuICAgICAgICBnYXA6IDA7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgY29sb3I6ICRzbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb25fY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uX2ZvbnQtd2VpZ2h0O1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICRzbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb25fY3VycmVudC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1bGxldCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1yYWRpdXM7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtYmc7XG4gICAgICAgIGJvcmRlcjogJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1ib3JkZXI7XG4gICAgICAgIGlubGluZS1zaXplOiAkc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LXdpZHRoO1xuICAgICAgICBibG9jay1zaXplOiAkc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LWhlaWdodDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LWluZGVudDogLTk5cmVtO1xuXG4gICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LWJnLS1jdXJyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpvbmx5LWNoaWxkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBzbGlkZXItcGFnaW5hdGlvbi1ob29rKCk7XG59IiwiLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG5cbkBmdW5jdGlvbiBnZXQtdmFsdWUtZnJvbS1saXN0KCR2YXJpYWJsZSwgJHNpZGUpIHtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHZhcmlhYmxlKTtcblxuICAgIEBpZiAoJGxlbmd0aCA9PSAxKSB7XG4gICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMSk7XG4gICAgfSBAZWxzZSBpZiAoJGxlbmd0aCA9PSAyKSB7XG4gICAgICAgIEBpZiAoJHNpZGUgPT0gJ3VwJykgT1IgKCRzaWRlID09ICdkb3duJykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAxKTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gJ2xlZnQnKSBPUiAoJHNpZGUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAyKTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgKCRsZW5ndGggPT0gMykge1xuICAgICAgICBAaWYgKCRzaWRlID09ICdsZWZ0JykgT1IgKCRzaWRlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMik7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICd1cCcpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMSk7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICdkb3duJykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAzKTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgKCRsZW5ndGggPT0gNCkge1xuICAgICAgICBAaWYgKCRzaWRlID09ICd1cCcpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMSk7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMik7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICdkb3duJykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAzKTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbkBtaXhpbiBidXR0b24taG9vaygkdHlwZSwgJGljb25fcG9zKSB7XG59XG5cbkBtaXhpbiBidXR0b25fc3Bhbi1ob29rKCR0eXBlLCAkaWNvbl9wb3MpIHtcbn1cblxuQG1peGluIGJ1dHRvbl9pY29uLWhvb2soJHR5cGUsICRpY29uX3Bvcykge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL2NvbXBvbmVudC1zcGFjaW5nJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvaW1hZ2UtdGVhc2VyL21peGlucy9jb250cmFzdC1vcHRpbWl6ZXJzL2dyYWRpZW50JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaW1hZ2UtdGVhc2VyL21peGlucy9jb250cmFzdC1vcHRpbWl6ZXJzL3RleHQtc2hhZG93JztcblxuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvX3NsaWRlci9uYXZpZ2F0aW9uL25hdmlnYXRpb24uc2Nzcyc7IC8vIFRNUFxuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5zY3NzJzsgLy8gVE1QXG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcblxuJGl0X21vYmlsZS1nYXA6IDAuOHJlbSAhZGVmYXVsdDtcbiRpdF9kZXNrdG9wLWdhcDogMC44cmVtICFkZWZhdWx0O1xuXG4kaXQtLXNsaWRlcl9tb2JpbGUtZ2FwOiAkaXRfbW9iaWxlLWdhcCAhZGVmYXVsdDtcbiRpdC0tc2xpZGVyX2Rlc2t0b3AtZ2FwOiAkaXRfZGVza3RvcC1nYXAgIWRlZmF1bHQ7XG5cbi8vIFwibmV4dC1zbGlkZS12aXNpYmxlXCIgd2lsbCB3b3JrIG9uIG1vYmlsZXMgYW5kIGJyb3dzZXItd2lkdGggZGVza3RvcFxuLy8gRm9yIGNvbnRhaW5lci13aWR0aCBkZXNrdG9wIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZS5cbi8vIFBsZWFzZSB1c2UgJ3VzZV93aG9sZV9zY3JlZW4nIG9wdGlvbiBpbiBldGMvdmlldyB0byBoYXZlIG5leHQgc2xpZGVzIHZpc2libGUgZm9yIGNvbnRlbnQtd2lkdGhcbiRpdC0tc2xpZGVyX25leHQtc2xpZGUtdmlzaWJsZTogMHB4ICFkZWZhdWx0OyAvLyBtdXN0IGJlIHdpdGggdW5pdCAoYW55IGtpbmQpXG5cbiRpdF9jdGEtdHlwZS0tbGlnaHQ6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJGl0X2N0YS10eXBlLS1kYXJrOiAncHJpbWFyeScgIWRlZmF1bHQ7XG4kaXRfY3RhLWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJGl0X2N0YS1pY29uLXBvc2l0aW9uOiAncmlnaHQnICFkZWZhdWx0O1xuJGl0X2N0YS1pY29uLXdpZHRoOiAxLjJyZW0gIWRlZmF1bHQ7XG4kaXRfY3RhLWljb24taGVpZ2h0OiAxLjRyZW0gIWRlZmF1bHQ7XG5cbi8vIGNvbnRyYXN0IG9wdGltaXplcnNcbiRpdF9jb250YWluZXItYmFja2dyb3VuZC0tbGlnaHQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTcwMCAhZGVmYXVsdDtcbiRpdF9jb250YWluZXItYmFja2dyb3VuZC0tZGFyazogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJGl0X2dyYWRpZW50LWNvbG9yLS1saWdodDogJGNvbG9yX2JhY2tncm91bmQtNzAwICFkZWZhdWx0O1xuJGl0X2dyYWRpZW50LWNvbG9yLS1kYXJrOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kaXRfdGV4dC1zaGFkb3ctY29sb3ItLWxpZ2h0OiAkY29sb3JfYmFja2dyb3VuZC03MDAgIWRlZmF1bHQ7XG4kaXRfdGV4dC1zaGFkb3ctY29sb3ItLWRhcms6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRpdF90ZXh0LXNoYWRvdy1vZmZzZXQtLWxpZ2h0OiAwIDAgMi41cmVtICFkZWZhdWx0O1xuJGl0X3RleHQtc2hhZG93LW9mZnNldC0tZGFyazogMCAwIDIuNXJlbSAhZGVmYXVsdDtcbiRpdF90ZXh0LXNoYWRvdy1zdGVwLS1saWdodDogNSAhZGVmYXVsdDtcbiRpdF90ZXh0LXNoYWRvdy1zdGVwLS1kYXJrOiA1ICFkZWZhdWx0O1xuXG4vLyBpY29uIGNvbXBvbmVudFxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudHMgaXMgc29ydCBvZiB1bmlxdWUgYmVjYXVzZSBpdCdzIGl0ZW1zLXBlci1yb3cgY29uZmlndXJhdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgdGFibGV0K1xuICogVGhpcyBtYXAgYWRkcyBwb3NzaWJpbGl0eSB0byAnZm9yY2UnIHByb3ZpZWQgY29sdW1ucyBjb25maWd1cmF0aW9uIHVwIHRvIGxhcHRvcCByZXNvbHV0aW9ucy5cbiAqL1xuJGl0LS1pY29uX2l0ZW1zLWluLXZpZXctdGlsbC1sYXB0b3A6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VTdWl0ZV9Db250ZW50Q29uc3RydWN0b3JGcm9udGVuZCxcbiAgICBpY29uLFxuICAgIGpzLFxuICAgIGNvbHVtbnNDb25maWdcbikgIWRlZmF1bHQ7XG5cbi4jeyRuc31pbWFnZS10ZWFzZXIge1xuICAgICRyb290OiAmO1xuXG4gICAgLS1zbG9nYW4tZm9udC1zaXplOiAzLjhyZW07XG4gICAgLS1kZXNjcmlwdGlvbi1mb250LXNpemU6IDEuNXJlbTtcblxuICAgIEBpbmNsdWRlIGl0LWdyaWQoJG0tZ2FwOiAkaXRfbW9iaWxlLWdhcCwgJGQtZ2FwOiAkaXRfZGVza3RvcC1nYXApO1xuXG4gICAgJi0tc2xpZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgc2xpZGVyKFxuICAgICAgICAgICAgJG0tZ2FwOiAkaXQtLXNsaWRlcl9tb2JpbGUtZ2FwLFxuICAgICAgICAgICAgJGQtZ2FwOiAkaXQtLXNsaWRlcl9kZXNrdG9wLWdhcCxcbiAgICAgICAgICAgICRuZXh0LXZpc2libGU6ICRpdC0tc2xpZGVyX25leHQtc2xpZGUtdmlzaWJsZSxcbiAgICAgICAgICAgICRyb290OiAkcm9vdFxuICAgICAgICApO1xuICAgIH1cblxuICAgICYtLXNsaWRlci1tb2JpbGU6bm90KCN7JHJvb3R9LS1zbGlkZXIpIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzbGlkZXItbW9iaWxlKFxuICAgICAgICAgICAgICAgICRtLWdhcDogJGl0LS1zbGlkZXJfbW9iaWxlLWdhcCxcbiAgICAgICAgICAgICAgICAkbmV4dC12aXNpYmxlOiAkaXQtLXNsaWRlcl9uZXh0LXNsaWRlLXZpc2libGUsXG4gICAgICAgICAgICAgICAgJHJvb3Q6ICRyb290XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgI3skcm9vdH1fX25hdixcbiAgICAgICAgICAgICN7JHJvb3R9X19wYWdpbmF0aW9uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2xpZGUge1xuICAgICAgICAmLS1zY2hlbWUtbGlnaHQge1xuICAgICAgICAgICAgLS1zY2hlbWUtY29sb3I6ICN7JHNjaGVtZS0tbGlnaHRfdGV4dHMtY29sb3J9O1xuICAgICAgICAgICAgLS1zY2hlbWUtYmFja2dyb3VuZDogI3skc2NoZW1lLS1saWdodF9iYWNrZ3JvdW5kfTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNjaGVtZS1kYXJrIHtcbiAgICAgICAgICAgIC0tc2NoZW1lLWNvbG9yOiAjeyRzY2hlbWUtLWRhcmtfdGV4dHMtY29sb3J9O1xuICAgICAgICAgICAgLS1zY2hlbWUtYmFja2dyb3VuZDogI3skc2NoZW1lLS1kYXJrX2JhY2tncm91bmR9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdGVhc2VyICYgdGV4dFxuICAgICAgICAmOm5vdCgjeyRyb290fV9fc2xpZGUtLWltYWdlLXVwbG9hZGVkKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zY2hlbWUtYmFja2dyb3VuZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICYtLWltYWdlLXVwbG9hZGVkIHtcbiAgICAgICAgICAgICAgICAjeyRyb290fV9fc2xpZGVzLS1tb2JpbGVfdGV4dC1pbWFnZSAmIHtcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX3NsaWRlcy0tbW9iaWxlX2ltYWdlLXRleHQgJiB7XG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIZXJvIGluIG1vYmlsZSBhcyAnTGFyZ2UgVGVhc2VyJyBzY2VuYXJpb1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAmLS1hcy1saXN0LW1vYmlsZSB7XG4gICAgICAgICAgICAjeyRyb290fV9fc2xpZGVzIHtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19zbGlkZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgI3skaXQtLXNsaWRlcl9tb2JpbGUtZ2FwfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX3BhZ2luYXRpb24sXG4gICAgICAgICAgICAjeyRyb290fV9fbmF2IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjp2aXNpdGVkLFxuICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19maWd1cmUge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAmX19jb250ZW50LXdyYXBwZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tc2NoZW1lLWNvbG9yKTtcblxuICAgICAgICAmLS11bmRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgbWFyZ2luOiAtMnJlbSAycmVtIDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2NoZW1lLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3ZlciB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgICAgICAgICAjeyRyb290fV9fcGljdHVyZSArICYsXG4gICAgICAgICAgICAjeyRyb290fS0tdGVhc2VyLWFuZC10ZXh0ICN7JHJvb3R9X19zbGlkZS0taW1hZ2UtdXBsb2FkZWQgJiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY29udGVudC1hbGlnbi14IHtcbiAgICAgICAgICAgICYtMiB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLTMge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jb250ZW50LWFsaWduLXkge1xuICAgICAgICAgICAgJi0yIHtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLTMge1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBLZWVwIENUQSBzZXBhcmF0ZWQgZnJvbSB0ZXh0LWNvbnRlbnQgZm9yIGFsbCBzY2VuYXJpb3NcbiAgICAgKiBcIiFpbXBvcnRhbnRcIiBhZGRlZCBkdWUgdG8gZmFsbGJhY2sgZnJvbSAtLXNjaGVtZS0qIHdpdGggYnV0dG9uKCkgbWl4aW4gdGhhdCByZXNldHMgbWFyZ2luc1xuICAgICAqL1xuICAgICZfX3RleHQtY29udGVudCArICN7JHJvb3R9X19jdGEge1xuICAgICAgICBtYXJnaW4tdG9wOiAxZW0gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmX19zbG9nYW4ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc2xvZ2FuLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgICAgaHlwaGVuczogYXV0bztcbiAgICB9XG5cbiAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIG1hcmdpbjogMWVtIDAgMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1kZXNjcmlwdGlvbi1mb250LXNpemUpO1xuICAgIH1cblxuICAgICZfX2N0YSB7XG4gICAgICAgICN7JHJvb3R9X19zbGlkZS0tc2NoZW1lLWRhcmsgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRpdF9jdGEtdHlwZS0tZGFyayxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpdF9jdGEtaWNvbi1wb3NpdGlvblxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19zbGlkZS0tc2NoZW1lLWxpZ2h0ICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkaXRfY3RhLXR5cGUtLWxpZ2h0LFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJGl0X2N0YS1pY29uLXBvc2l0aW9uXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19zbGlkZS0tc2NoZW1lLWRhcmsgJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkaXRfY3RhLXR5cGUtLWRhcmssXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJGl0X2N0YS1pY29uLXBvc2l0aW9uXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX3NsaWRlLS1zY2hlbWUtbGlnaHQgJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkaXRfY3RhLXR5cGUtLWxpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpdF9jdGEtaWNvbi1wb3NpdGlvblxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgI3skcm9vdH1fX3NsaWRlLS1zY2hlbWUtZGFyayAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRpdF9jdGEtdHlwZS0tZGFyayxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkaXRfY3RhLWljb24tcG9zaXRpb25cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fc2xpZGUtLXNjaGVtZS1saWdodCAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRpdF9jdGEtdHlwZS0tbGlnaHQsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJGl0X2N0YS1pY29uLXBvc2l0aW9uXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgIG1hcmdpbjogMS4yZW0gMCAwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGl0X2N0YS1mb250LXNpemU7XG5cbiAgICAgICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRpdF9jdGEtaWNvbi13aWR0aDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRpdF9jdGEtaWNvbi1oZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb250cmFzdCBPcHRpbWl6ZXJzXG4gICAgICovXG4gICAgLy8gY29tbW9uIGZvciBvdmVybGF5IGFtbmQgZ3JhZGllbnRcbiAgICAmX19vdmVybGF5LFxuICAgICZfX2dyYWRpZW50IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gb3ZlcmxheSwgY29udGFpbmVyXG4gICAgJl9fb3ZlcmxheSxcbiAgICAmX19vcHRpbWl6ZXItY29udGFpbmVyIHtcbiAgICAgICAgI3skcm9vdH1fX3NsaWRlLS1zY2hlbWUtbGlnaHQgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaXRfY29udGFpbmVyLWJhY2tncm91bmQtLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX3NsaWRlLS1zY2hlbWUtZGFyayAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpdF9jb250YWluZXItYmFja2dyb3VuZC0tZGFyaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGdyYWRpZW50XG4gICAgJl9fZ3JhZGllbnQge1xuICAgICAgICBAZm9yICR4IGZyb20gMSB0aHJvdWdoIDMge1xuICAgICAgICAgICAgJi0tZGlyZWN0aW9uLXgtI3skeH0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJHkgZnJvbSAxIHRocm91Z2ggMyB7XG4gICAgICAgICAgICAgICAgICAgICYjeyRyb290fV9fZ3JhZGllbnQtLWRpcmVjdGlvbi15LSN7JHl9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICN7JHJvb3R9X19zbGlkZS0tc2NoZW1lLWxpZ2h0ICYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRlYXNlci1ncmFkaWVudC1vdmVybGF5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdF9ncmFkaWVudC1jb2xvci0tbGlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDg1JVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICN7JHJvb3R9X19zbGlkZS0tc2NoZW1lLWRhcmsgJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdGVhc2VyLWdyYWRpZW50LW92ZXJsYXkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGl0X2dyYWRpZW50LWNvbG9yLS1kYXJrLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4NSVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gbWlycm9yIGltYWdlXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICAmLS1taXJyb3Ige1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gY29udGFpbmVyXG4gICAgJl9fY29udGVudC0tY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBwYWRkaW5nOiAyZW07XG4gICAgfVxuXG4gICAgJl9fb3B0aW1pemVyLWNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICB9XG5cbiAgICAvLyB0ZXh0IHNoYWRvd1xuICAgICZfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3cge1xuICAgICAgICAjeyRyb290fV9fc2xpZGUtLXNjaGVtZS1kYXJrICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgb3B0aW1pemVyLXRleHQtc2hhZG93KFxuICAgICAgICAgICAgICAgICRjb2xvcjogJGl0X3RleHQtc2hhZG93LWNvbG9yLS1kYXJrLFxuICAgICAgICAgICAgICAgICR0ZXh0LXNoYWRvdy1vZmZzZXQ6ICRpdF90ZXh0LXNoYWRvdy1vZmZzZXQtLWRhcmssXG4gICAgICAgICAgICAgICAgJHN0ZXA6ICRpdF90ZXh0LXNoYWRvdy1zdGVwLS1kYXJrXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX3NsaWRlLS1zY2hlbWUtbGlnaHQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBvcHRpbWl6ZXItdGV4dC1zaGFkb3coXG4gICAgICAgICAgICAgICAgJGNvbG9yOiAkaXRfdGV4dC1zaGFkb3ctY29sb3ItLWxpZ2h0LFxuICAgICAgICAgICAgICAgICR0ZXh0LXNoYWRvdy1vZmZzZXQ6ICRpdF90ZXh0LXNoYWRvdy1vZmZzZXQtLWxpZ2h0LFxuICAgICAgICAgICAgICAgICRzdGVwOiAkaXRfdGV4dC1zaGFkb3ctc3RlcC0tbGlnaHRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJY29uIGNvbXBvbmVudFxuICAgICYtLWljb24ge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNsaWRlci1tb2JpbGUoXG4gICAgICAgICAgICAgICAgJG0tZ2FwOiAkaXQtLXNsaWRlcl9tb2JpbGUtZ2FwLFxuICAgICAgICAgICAgICAgICRuZXh0LXZpc2libGU6ICRpdC0tc2xpZGVyX25leHQtc2xpZGUtdmlzaWJsZSxcbiAgICAgICAgICAgICAgICAkcm9vdDogJHJvb3RcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJGl0ZW1zUGVyUm93IGluICRpdC0taWNvbl9pdGVtcy1pbi12aWV3LXRpbGwtbGFwdG9wIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGJyZWFrcG9pbnR9JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC8gI3skaXRlbXNQZXJSb3d9IC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN7JGl0ZW1zUGVyUm93IC0gMX0gKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyAjeyRpdGVtc1BlclJvd30pXG4gICAgICAgICAgICAgICAgKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAmI3skcm9vdH0tLXNsaWRlci1tb2JpbGU6bm90KCN7JHJvb3R9LS1zbGlkZXIpIHtcbiAgICAgICAgICAgICAgICBAbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSB7XG4gICAgICAgICAgICAgICAgICAgICN7JHJvb3R9X19uYXYge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fV9fcGFnaW5hdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX3Nsb2dhbiB7XG4gICAgICAgICAgICAtLXNsb2dhbi1mb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19jdGEge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19jb250ZW50LXdyYXBwZXIge1xuICAgICAgICAgICAgJi0tdW5kZXIge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY3RhLW9ubHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNb3NhaWMgY29tcG9uZW50XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAmLS1tb3NhaWMge1xuICAgICAgICAgICAgI3skcm9vdH1fX3NsaWRlcy0tbW9zYWljLXNjZW5hcmlvIHtcbiAgICAgICAgICAgICAgICAmLTEge1xuICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAyZnIpIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtMiB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWlubWF4KDAsIDJmcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGVhc2VyICYgVGV4dCBjb21wb25lbnRcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgJi0tdGVhc2VyLWFuZC10ZXh0IHtcbiAgICAgICAgICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fc2xpZGUge1xuICAgICAgICAgICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyLS1pbWFnZS10ZWFzZXIge1xuICAgIEBpbmNsdWRlIGNvbXBvbmVudC1zcGFjaW5nKCk7XG59XG5cbi4jeyRuc31jb250YWluZXItLWdyaWQtdGVhc2VyIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi4jeyRuc31jb250YWluZXItLWltYWdlLXRlYXNlci13aW5kb3ctd2lkdGgge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgLiN7JG5zfWNvbnRhaW5lcl9faW5uZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyLS1pbWFnZS10ZWFzZXItc2xpZGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICd1dGlscy9zdHJpcC11bml0JztcbkBpbXBvcnQgJ3V0aWxzL2hpZGUtc2Nyb2xsYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvX3NsaWRlci9ob29rcyc7XG5cbi8vIENhbGN1bGF0ZSBjb250YWluZXIgYnJlYWtwb2ludCArIDIgKiBlZGdlIGd1dHRlciBhbmQgdHJhbnNmb3JtIHRvICdlbScgdW5pdCBmb3IgbWVkaWEgcXVlcnlcbiRjb250YWluZXJCcmVha3BvaW50UHg6IChcbiAgICAgICAgc3RyaXAtdW5pdCgkcGFnZV9tYXgtd2lkdGgpICsgMiAqIHN0cmlwLXVuaXQoJHBhZ2VfZWRnZS1ndXR0ZXIpXG4gICAgKSAqIDEwO1xuJGNvbnRhaW5lckJyZWFrcG9pbnRFbTogJGNvbnRhaW5lckJyZWFrcG9pbnRQeCAvIDE2ICogMWVtO1xuJHRvQ29udGFpbmVyQnJlYWtwb2ludEVtOiAoJGNvbnRhaW5lckJyZWFrcG9pbnRQeCAtIDEpIC8gMTYgKiAxZW07XG5cbkBtaXhpbiBpdC1ncmlkKCRtLWdhcDogMC44cmVtLCAkZC1nYXA6IDAuOHJlbSkge1xuICAgICRyb290OiAmO1xuICAgIC0tZ2FwOiAjeyRtLWdhcH07XG5cbiAgICAmOm5vdCguI3skbnN9Y29udGFpbmVyLS11c2Utd2hvbGUtd2lkdGgpICYge1xuICAgICAgICAmI3skcm9vdH0tLWNvbnRhaW5lci13aWR0aCB7XG4gICAgICAgICAgICAjeyRyb290fV9fc2xpZGVzLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogJHBhZ2VfbWF4LXdpZHRoO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NsaWRlcyB7XG4gICAgICAgIC0tY29sdW1uczogMTtcblxuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IHZhcigtLWdhcCk7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbHVtbnMpLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAjeyRyb290fS0taXRlbXMtaW4tcm93LW1vYmlsZS0yICYge1xuICAgICAgICAgICAgLS1jb2x1bW5zOiAyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2xpZGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IGNhbGModmFyKC0tZ2FwKSAvIDIgKyAyKTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjRyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG91dGxpbmUtb2Zmc2V0IDAuMjVzIGVhc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19waWN0dXJlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIC0tIHN0eWxlbGludCBkb2Vzbid0IGtub3cgdGhpcyBtZWRpYSBxdWVyeSB5ZXQuICovXG4gICAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLWRhdGE6IHJlZHVjZSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIC0tZ2FwOiAjeyRkLWdhcH07XG5cbiAgICAgICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCA4IHtcbiAgICAgICAgICAgICYtLWl0ZW1zLWluLXJvdy0jeyRpfSAjeyRyb290fV9fc2xpZGVzIHtcbiAgICAgICAgICAgICAgICAtLWNvbHVtbnM6ICN7JGl9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICYtLWl0ZW1zLWluLXJvdy00Om5vdCgjeyRyb290fS0taWNvbikgI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgICAgICAtLWNvbHVtbnM6IDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBpdC1ncmlkLWhvb2soJG0tZ2FwLCAkZC1nYXApO1xufVxuXG5AbWl4aW4gc2xpZGVyLWVzc2VudGlhbHMoJHJvb3Q6ICRyb290KSB7XG4gICAgI3skcm9vdH1fX3NsaWRlcy13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIGdhcDogMDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWdhcCkgMDtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvci1pbmxpbmU6IGNvbnRhaW47XG4gICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcblxuICAgICAgICBAc3VwcG9ydHMgKHNjcm9sbC1iZWhhdmlvcjogc21vb3RoKSB7XG4gICAgICAgICAgICBzY3JvbGwtc25hcC10eXBlOiB4IG1hbmRhdG9yeTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhpZGUtc2Nyb2xsYmFyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjeyRyb290fV9fc2xpZGUge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG5cbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmbGV4OiAwIDAgdmFyKC0tc2l6ZSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwKTtcbiAgICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX2ltYWdlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc2xpZGVyLWVzc2VudGlhbHMtaG9vaygkcm9vdCk7XG59XG5cbkBtaXhpbiBzbGlkZXIoXG4gICAgJGNvbHVtbnMtY29uZmlnOiAnY2xhc3MtYmFzZWQnLFxuICAgICRtLWdhcDogMC44cmVtLFxuICAgICRkLWdhcDogMC44cmVtLFxuICAgICRuZXh0LXZpc2libGU6IDMuMnJlbSxcbiAgICAkcm9vdDogJyYnXG4pIHtcbiAgICAtLWdhcDogI3skbS1nYXB9O1xuICAgIC0tYmFzZS1zaXplOiBjYWxjKDEwMCUgLSAjeyRuZXh0LXZpc2libGV9KTtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAjeyRjb250YWluZXJCcmVha3BvaW50RW19KSB7XG4gICAgICAgICYjeyRyb290fS0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgICAgICAgIC0tYmFzZS1zaXplOiBjYWxjKCN7JHBhZ2VfbWF4LXdpZHRofSAtICN7JG5leHQtdmlzaWJsZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJiN7JHJvb3R9LS11c2Utd2hvbGUtc2NyZWVuOm5vdCgjeyRyb290fS0tZnVsbC13aWR0aC1zbGlkZXIpIHtcbiAgICAgICAgICAgIC0tYmFzZS1zaXplOiAxMDAlO1xuXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHggcHJveGltaXR5O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYygoMTAwJSAtICN7JHBhZ2VfbWF4LXdpZHRofSkgLyAyKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCgxMDAlIC0gI3skcGFnZV9tYXgtd2lkdGh9KSAvIDIpO1xuICAgICAgICAgICAgICAgIHNjcm9sbC1wYWRkaW5nLWxlZnQ6IGNhbGMoKDEwMCUgLSAjeyRwYWdlX21heC13aWR0aH0pIC8gMik7XG4gICAgICAgICAgICAgICAgc2Nyb2xsLXBhZGRpbmctcmlnaHQ6IGNhbGMoKDEwMCUgLSAjeyRwYWdlX21heC13aWR0aH0pIC8gMik7XG4gICAgICAgICAgICAgICAgc2Nyb2xsLW1hcmdpbi1sZWZ0OiBjYWxjKCgxMDB2dyAtICN7JHBhZ2VfbWF4LXdpZHRofSkgLyAyKTtcbiAgICAgICAgICAgICAgICBzY3JvbGwtbWFyZ2luLXJpZ2h0OiBjYWxjKCgxMDB2dyAtICN7JHBhZ2VfbWF4LXdpZHRofSkgLyAyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIGFuZCAobWluLXdpZHRoOiAjeyRjb250YWluZXJCcmVha3BvaW50RW19KSB7XG4gICAgICAgICYjeyRyb290fS0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgICAgICAgIC0tYmFzZS1zaXplOiAjeyRwYWdlX21heC13aWR0aH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAtLXNpemU6IHZhcigtLWJhc2Utc2l6ZSk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIC0tZ2FwOiAjeyRkLWdhcH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2xhc3MtYmFzZWQgY29sdW1ucyBjb25maWcgcmVsYXRlcyB0byBjbGFzc25hbWVzLCBsaWtlICctLWl0ZW1zLWluLXJvdy00J1xuICAgICAqIHdoaWNoIGFyZSBhZGRlZCB0byBlbGVtZW50cywgZGVwZW5kaW5nIG9uIHRoZSBDQyBDb21wb25lbnRzIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgQGlmICRjb2x1bW5zLWNvbmZpZyA9PSAnY2xhc3MtYmFzZWQnIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCA4IHtcbiAgICAgICAgICAgICAgICAmI3skcm9vdH0tLWl0ZW1zLWluLXJvdy0jeyRpfSB7XG4gICAgICAgICAgICAgICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICN7JGl9IC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKCN7JGkgLSAxfSAqIHZhcigtLWdhcCkpIC8gI3skaX0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAmI3skcm9vdH0tLWl0ZW1zLWluLXJvdy00Om5vdCgjeyRyb290fS0taWNvbikge1xuICAgICAgICAgICAgICAgIC0tc2l6ZTogY2FsYyh2YXIoLS1iYXNlLXNpemUpIC8gMiAtICgxICogdmFyKC0tZ2FwKSAvIDIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICAkYmFzZUl0ZW1zUGVyUm93OiBtYXAtZ2V0KCRjb2x1bW5zLWNvbmZpZywgJ3Bob25lJyk7XG4gICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgL1xuICAgICAgICAgICAgICAgICN7JGJhc2VJdGVtc1BlclJvd30gLVxuICAgICAgICAgICAgICAgICN7JGJhc2VJdGVtc1BlclJvdyAtXG4gICAgICAgICAgICAgICAgMX0gKlxuICAgICAgICAgICAgICAgIHZhcigtLWdhcCkgL1xuICAgICAgICAgICAgICAgICN7JGJhc2VJdGVtc1BlclJvd31cbiAgICAgICAgKTtcblxuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJGl0ZW1zUGVyUm93IGluICRjb2x1bW5zLWNvbmZpZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj0jeyRicmVha3BvaW50fScpIHtcbiAgICAgICAgICAgICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyAjeyRpdGVtc1BlclJvd30gLSAoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3skaXRlbXNQZXJSb3cgLSAxfSAqIHZhcigtLWdhcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAvICN7JGl0ZW1zUGVyUm93fSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogIGNvbnRhaW5lciBwYWRkaW5nIGZpeCAgKi9cbiAgICBAbWVkaWEgKG1heC13aWR0aDogI3skdG9Db250YWluZXJCcmVha3BvaW50RW19KSB7XG4gICAgICAgICYjeyRyb290fS0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgICAgICAgICAgc2Nyb2xsLXBhZGRpbmctbGVmdDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgICAgICAgICAgc2Nyb2xsLXBhZGRpbmctcmlnaHQ6ICRwYWdlX2VkZ2UtZ3V0dGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gICAgICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBzbGlkZXItZXNzZW50aWFscygkcm9vdCk7XG5cbiAgICBAaW5jbHVkZSBzbGlkZXItaG9vaygkY29sdW1ucy1jb25maWcsICRtLWdhcCwgJGQtZ2FwLCAkbmV4dC12aXNpYmxlLCAkcm9vdCk7XG59XG5cbkBtaXhpbiBzbGlkZXItbW9iaWxlKCRtLWdhcDogMC44cmVtLCAkbmV4dC12aXNpYmxlOiAzLjJyZW0sICRyb290OiAnJicpIHtcbiAgICAtLWdhcDogI3skbS1nYXB9O1xuICAgIC0tYmFzZS1zaXplOiBjYWxjKDEwMCUgLSAjeyRuZXh0LXZpc2libGV9KTtcbiAgICAtLXNpemU6IHZhcigtLWJhc2Utc2l6ZSk7XG5cbiAgICAmI3skcm9vdH0tLWNvbnRhaW5lci13aWR0aCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtI3skcGFnZV9lZGdlLWd1dHRlcn07XG4gICAgICAgIG1hcmdpbi1yaWdodDogLSN7JHBhZ2VfZWRnZS1ndXR0ZXJ9O1xuXG4gICAgICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFnZV9lZGdlLWd1dHRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWdlX2VkZ2UtZ3V0dGVyO1xuICAgICAgICAgICAgc2Nyb2xsLXBhZGRpbmctbGVmdDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgICAgICBzY3JvbGwtcGFkZGluZy1yaWdodDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIHtcbiAgICAgICAgI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHNsaWRlci1lc3NlbnRpYWxzKCRyb290KTtcblxuICAgIEBpbmNsdWRlIHNsaWRlci1tb2JpbGUtaG9vaygkbS1nYXAsICRuZXh0LXZpc2libGUsICRyb290KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxuLy9cbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuOVxuLy9cbi8vICAgICAgICBodHRwczovL2VkdWFyZG9ib3VjYXMuZ2l0aHViLmlvL2luY2x1ZGUtbWVkaWFcbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgS2l0dHkgR2lyYXVkZWwgKEBraXR0eWdpcmF1ZGVsKVxuLy9cbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2Vcbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuICAncGhvbmUnOiAzMjBweCxcbiAgJ3RhYmxldCc6IDc2OHB4LFxuICAnZGVza3RvcCc6IDEwMjRweFxuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuICAnc2NyZWVuJzogJ3NjcmVlbicsXG4gICdwcmludCc6ICdwcmludCcsXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcbiAgJ3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcbiAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcbiAgJ3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcbiAgJ3B4JzogMSxcbiAgJ2VtJzogMC4wMSxcbiAgJ3JlbSc6IDAuMSxcbiAgJyc6IDBcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XG4gICAgQGVycm9yICRtZXNzYWdlO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAkbWVzc2FnZTtcbiAgICAkXzogbm9vcCgpO1xuICB9XG5cbiAgQHJldHVybiAkbWVzc2FnZTtcbn1cblxuXG4vLy9cbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBpbS1sb2coJG1lc3NhZ2UpIHt9XG59XG5cblxuLy8vXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXG4vLy9cbkBmdW5jdGlvbiBub29wKCkge31cblxuLy8vXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy9cbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XG4gICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xuXG4gIEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xuICAgIEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7fVxuICB9XG5cbiAgQGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XG4gICAgICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgICAgICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcblxuICAgICAgQGlmICgkcHJlZml4ID09ICdtYXgnIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXG4gICAgICAgICAgKCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XG4gICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vL1xuLy8vIFBhcnNpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xuICBAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcbiAgICBAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgICAgIEByZXR1cm4gJG9wZXJhdG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgJF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xuICAkZGltZW5zaW9uOiAnd2lkdGgnO1xuXG4gIEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xuICAgICRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xuICB9XG5cbiAgQHJldHVybiAkZGltZW5zaW9uO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3Jcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xuICBAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICAkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xuICB9IEBlbHNlIHtcbiAgICAkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xuICB9XG5cbiAgJGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcblxuICBAaWYgbm90ICRpbnRlcnZhbCB7XG4gICAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAgIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gICAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gICAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICAgJF86IGltLWxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xuICB9XG5cbiAgQGlmICRvcGVyYXRvciA9PSAnPicge1xuICAgICR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xuICAgICR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cblxuLy8vXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcbi8vL1xuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcbiAgLy8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxuICAvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICBAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcbiAgfVxuXG4gICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xuICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXG4gIEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xufVxuXG4vLy9cbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3Rcbi8vL1xuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcbiAgQGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xuICAgIEByZXR1cm4gKCk7XG4gIH1cblxuICAkcmVzdWx0OiAoKTtcblxuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG4gICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vL1xuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICB9XG5cbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XG4gICRyZXN1bHQ6IDA7XG4gICRkaWdpdHM6IDA7XG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcbiAgJG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xuXG4gIC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxuICBAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XG4gICAgJHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgQGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcbiAgICB9XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuICAgICAgJGRpZ2l0czogMTtcbiAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cbiAgQGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuICAgICRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xufVxuXG4vLy9cbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2Zcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLy8gZm9yIGluc3RhbmNlLlxuLy8vXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcbn1cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXG4gICAgICAobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xuICAgIEBjb250ZW50O1xuICB9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcbiAgICBAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG4gICAgICAvLyBSZWN1cnNpdmUgY2FsbFxuICAgICAgQGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCAndXRpbHMvZ2V0LXZhbHVlLWZyb20tbGlzdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9hbmltYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vaG9vayc7XG5cbi8vIERlZmluZSBkZWZhdWx0IHR5cGUgZm9yIGJ1dHRvbnMuIFlvdSBjYW4gb3ZlcnJpZGUgaXQgaW5kaXZpZHVhbGx5IHBlciBidXR0b24gaW4gZWFjaCBjb21wb25lbnRcbi8vIFZhcmlhbnRzOiBwcmltYXJ5IHwgc2Vjb25kYXJ5IHwgbGluayB8IHN1Y2Nlc3MgfCBlcnJvclxuJGJ1dHRvbl9kZWZhdWx0LXR5cGU6ICdwcmltYXJ5JyAhZGVmYXVsdDtcblxuLy8gRGVmaW5lIGRlZmF1bHQgcG9zaXRpb24gZm9yIGljb25zIGluIGJ1dHRvbi4gWW91IGNhbiBvdmVycmlkZSBpdCBpbmRpdmlkdWFsbHkgcGVyIGJ1dHRvbiBpbiBlYWNoIGNvbXBvbmVudFxuLy8gVmFyaWFudHM6IGxlZnQgfCByaWdodCB8IG5vLWljb24gfCBvbmx5LWljb25cbiRidXR0b25fZGVmYXVsdC1pY29uLXBvczogJ3JpZ2h0JyAhZGVmYXVsdDtcblxuLy8gR2VuZXJhbCBzdHlsZXMgZm9yIGJ1dHRvbnNcbiRidXR0b25fZm9udC1zaXplOiAxLjhyZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX2ZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2JvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kYnV0dG9uX3BhZGRpbmc6IDAuNzVlbSAxZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX3BhZGRpbmctd2hlbi1pY29uOiAzZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX2xpbmUtaGVpZ2h0OiAxLjI3NWVtICFkZWZhdWx0O1xuJGJ1dHRvbl9ib3JkZXItcmFkaXVzOiAyMDBweCAhZGVmYXVsdDtcbiRidXR0b25fYW5pbWF0aW9uLXRpbWU6IDAuNXMgIWRlZmF1bHQ7XG4kYnV0dG9uX2FuaW1hdGlvbi1iZWZvcmUtd2lkdGg6IDMuNGVtICFkZWZhdWx0O1xuJGJ1dHRvbl9hbmltYXRpb24tYWZ0ZXItd2lkdGg6IDNlbSAhZGVmYXVsdDtcbiRidXR0b25fdGV4dC10cmFuc2Zvcm06IG5vbmUgIWRlZmF1bHQ7XG4kYnV0dG9uX3RleHQtbGV0dGVyLXNwYWNpbmc6IG5vcm1hbCAhZGVmYXVsdDtcbiRidXR0b25fdGV4dC1hbGlnbjogY2VudGVyICFkZWZhdWx0O1xuXG4vLyBTdHlsZXMgZm9yIGBwcmltYXJ5YCBidXR0b24gdHlwZVxuJGJ1dHRvbl9wcmltYXJ5LWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS0taG92ZXItYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktLWhvdmVyLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktZW5hYmxlLWFuaW1hdGlvbjogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gU3R5bGVzIGZvciBgc2Vjb25kYXJ5YCBidXR0b24gdHlwZVxuJGJ1dHRvbl9zZWNvbmRhcnktYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktYmFja2dyb3VuZDogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS0taG92ZXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LWZpbGw6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS1lbmFibGUtYW5pbWF0aW9uOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gU3R5bGUgZm9yIGBsaW5rYCBidXR0b24gdHlwZVxuJGJ1dHRvbl9saW5rLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2xpbmstLWhvdmVyLWNvbG9yOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2xpbmstaWNvbi1wYWRkaW5nOiAycmVtICFkZWZhdWx0O1xuXG4vLyBTdHlsZXMgZm9yIGBzdWNjZXNzYCBidXR0b24gdHlwZVxuJGJ1dHRvbl9zdWNjZXNzLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy0taG92ZXItYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLWJhY2tncm91bmQ6ICRjb2xvcl9zdWNjZXNzLTUwMCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtZW5hYmxlLWFuaW1hdGlvbjogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFN0eWxlcyBmb3IgYGVycm9yYCBidXR0b24gdHlwZVxuJGJ1dHRvbl9lcnJvci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLS1ob3Zlci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLWJhY2tncm91bmQ6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLS1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfZXJyb3ItNjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci0taG92ZXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci0taG92ZXItZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci1lbmFibGUtYW5pbWF0aW9uOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRGVmaW5lcyBob3cgbXVjaCBidXR0b24gaWNvbiBzaG91bGQgYmUgcHVsbGVkIHZlcnRpY2FsbHkgdG8gY2VudGVyIGl0LlxuLy8gU2hvdWxkIGJlIGRlZmluZWQgaW4gZW0gdG8gbWFrZSBpdCByZWxhdGl2ZSB0byBidXR0b24ncyBmb250IHNpemUuXG4kYnV0dG9uX3NwYW4tZm9udC1vZmZzZXQ6IDAgIWRlZmF1bHQ7XG5cbi8vIERlZmluZXMgaG93IG11Y2ggYnV0dG9uIGljb24gc2hvdWxkIGJlIHB1bGxlZCB2ZXJ0aWNhbGx5IHRvIGNlbnRlciBpdCBvbiBpY29uIGJ1dHRvbi5cbi8vIFNob3VsZCBiZSBkZWZpbmVkIGluIGVtIHRvIG1ha2UgaXQgcmVsYXRpdmUgdG8gYnV0dG9uJ3MgZm9udCBzaXplLlxuJGJ1dHRvbl9pY29uLW9mZnNldDogMC4xZW0gIWRlZmF1bHQ7XG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNhbGMtbm8tdW5zcGFjZWQtb3BlcmF0b3JcblxuQG1peGluIGJ1dHRvbigkdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUsXG4gICAgJGljb25fcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAkYnV0dG9uX2ZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJGJ1dHRvbl9mb250LXdlaWdodDtcbiAgICB0ZXh0LWFsaWduOiAkYnV0dG9uX3RleHQtYWxpZ247XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAkYnV0dG9uX2xpbmUtaGVpZ2h0O1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJGJ1dHRvbl90ZXh0LXRyYW5zZm9ybTtcblxuICAgIEBpZiAoJHR5cGUgIT0nbGluaycpIHtcbiAgICAgICAgcGFkZGluZzogJGJ1dHRvbl9wYWRkaW5nO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRidXR0b25fYW5pbWF0aW9uLXRpbWUsXG4gICAgICAgICAgICBib3JkZXItY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSwgZmlsbCAkYnV0dG9uX2FuaW1hdGlvbi10aW1lLFxuICAgICAgICAgICAgY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgei1pbmRleDogNTtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09J3ByaW1hcnknKSB7XG4gICAgICAgIEBpZiAoJGJ1dHRvbl9wcmltYXJ5LWVuYWJsZS1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9hbmltYXRpb24oJHR5cGU6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICAkY29sb3Jfc3RhcnQ6ICRidXR0b25fcHJpbWFyeS1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQ6ICRidXR0b25fcHJpbWFyeS0taG92ZXItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpY29uX3BvcyApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0ncmlnaHQnKSBvciAoJGljb25fcG9zID09J2xlZnQnKSB7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0nc2Vjb25kYXJ5Jykge1xuICAgICAgICBAaWYgKCRidXR0b25fc2Vjb25kYXJ5LWVuYWJsZS1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9hbmltYXRpb24oJHR5cGU6ICdzZWNvbmRhcnknLFxuICAgICAgICAgICAgICAgICRjb2xvcl9zdGFydDogJGJ1dHRvbl9zZWNvbmRhcnktYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kOiAkYnV0dG9uX3NlY29uZGFyeS0taG92ZXItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpY29uX3BvcyApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0ncmlnaHQnKSBvciAoJGljb25fcG9zID09J2xlZnQnKSB7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0nbGluaycpIHtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSwgZmlsbCAkYnV0dG9uX2FuaW1hdGlvbi10aW1lO1xuXG4gICAgICAgICoge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSxcbiAgICAgICAgICAgICAgICBmaWxsICRidXR0b25fYW5pbWF0aW9uLXRpbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09J3N1Y2Nlc3MnKSB7XG4gICAgICAgIEBpZiAoJGJ1dHRvbl9zdWNjZXNzLWVuYWJsZS1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9hbmltYXRpb24oJHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgICAkY29sb3Jfc3RhcnQ6ICRidXR0b25fc3VjY2Vzcy1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQ6ICRidXR0b25fc3VjY2Vzcy0taG92ZXItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpY29uX3BvcyApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSdlcnJvcicpIHtcbiAgICAgICAgQGlmICgkYnV0dG9uX2Vycm9yLWVuYWJsZS1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9hbmltYXRpb24oJHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgJGNvbG9yX3N0YXJ0OiAkYnV0dG9uX2Vycm9yLWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZDogJGJ1dHRvbl9lcnJvci0taG92ZXItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpY29uX3BvcyApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmLFxuICAgICY6dmlzaXRlZCB7XG4gICAgICAgIEBpZiAoJHR5cGUgIT0nbGluaycpIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRidXR0b25fYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSdwcmltYXJ5Jykge1xuICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3ByaW1hcnktYm9yZGVyO1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fcHJpbWFyeS1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9wcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fcHJpbWFyeS1maWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSdzZWNvbmRhcnknKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRidXR0b25fc2Vjb25kYXJ5LWJvcmRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX3NlY29uZGFyeS1maWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSdsaW5rJykge1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fbGluay1jb2xvcjtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fbGluay1jb2xvcjtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX2xpbmstY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09J3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRidXR0b25fc3VjY2Vzcy1ib3JkZXI7XG4gICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zdWNjZXNzLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9zdWNjZXNzLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3N1Y2Nlc3MtY29sb3I7XG4gICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9zdWNjZXNzLWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09J2Vycm9yJykge1xuICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX2Vycm9yLWJvcmRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2Vycm9yLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9lcnJvci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9lcnJvci1jb2xvcjtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX2Vycm9yLWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgIEBpZiAoJHR5cGUgIT0nbGluaycpIHtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCR0eXBlID09J3ByaW1hcnknKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3ByaW1hcnktLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX3ByaW1hcnktLWhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fcHJpbWFyeS0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fcHJpbWFyeS0taG92ZXItZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHR5cGUgPT0nc2Vjb25kYXJ5Jykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSdsaW5rJykge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2xpbmstLWhvdmVyLWNvbG9yO1xuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2xpbmstLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX2xpbmstLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1ib3JkZXI7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc3VjY2Vzcy0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWZpbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCR0eXBlID09J2Vycm9yJykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9lcnJvci0taG92ZXItYm9yZGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9lcnJvci0taG92ZXItZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b24taG9vaygkdHlwZSwgJGljb25fcG9zKTtcbn1cblxuQG1peGluIGJ1dHRvbl9zcGFuKCR0eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSxcbiAgICAkaWNvbl9wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcykge1xuICAgIG1hcmdpbi10b3A6ICRidXR0b25fc3Bhbi1mb250LW9mZnNldDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiAkYnV0dG9uX2ZvbnQtd2VpZ2h0O1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6ICRidXR0b25fbGluZS1oZWlnaHQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6ICRidXR0b25fdGV4dC1sZXR0ZXItc3BhY2luZztcblxuICAgIEBpZiAoJGljb25fcG9zID09J3JpZ2h0Jykge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSdsaW5rJykge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGJ1dHRvbl9saW5rLWljb24tcGFkZGluZztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIHtcblxuICAgICAgICAgICAgQGlmICh1bml0KCRidXR0b25fcGFkZGluZy13aGVuLWljb24pPT11bml0KGdldC12YWx1ZS1mcm9tLWxpc3QoJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zICkpKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbiArIGdldC12YWx1ZS1mcm9tLWxpc3QoJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbn0gKyAje2dldC12YWx1ZS1mcm9tLWxpc3QoXG4gJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3MgKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBlbHNlIGlmICgkaWNvbl9wb3MgPT0nbGVmdCcpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgQGlmICgkdHlwZSA9PSdsaW5rJykge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRidXR0b25fbGluay1pY29uLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuXG4gICAgICAgIEBpZiAodW5pdCgkYnV0dG9uX3BhZGRpbmctd2hlbi1pY29uKT09dW5pdChnZXQtdmFsdWUtZnJvbS1saXN0KCR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zICkpKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRidXR0b25fcGFkZGluZy13aGVuLWljb24gKyBnZXQtdmFsdWUtZnJvbS1saXN0KCR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zICk7XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoI3skYnV0dG9uX3BhZGRpbmctd2hlbi1pY29ufSArICN7Z2V0LXZhbHVlLWZyb20tbGlzdChcbiAkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zIClcbiAgICAgICAgfSk7XG4gICAgfVxufVxufVxuXG5AZWxzZSBpZiAoJGljb25fcG9zID09J29ubHktaWNvbicpIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5AaW5jbHVkZSBidXR0b25fc3Bhbi1ob29rKCR0eXBlLCAkaWNvbl9wb3MpO1xufVxuXG5AbWl4aW4gYnV0dG9uX2ljb24oJHR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlLFxuICAgICRpY29uX3BvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zKSB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogJGJ1dHRvbl9mb250LXNpemU7XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaWYgKCRpY29uX3BvcyA9PSdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0nbGVmdCcpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICB9XG5cbiAgICBAaWYgKCRpY29uX3BvcyA9PSdvbmx5LWljb24nKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAkYnV0dG9uX2ljb24tb2Zmc2V0O1xuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0nbGluaycpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkYnV0dG9uX2xpbmstaWNvbi1wYWRkaW5nIC8gMjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGJ1dHRvbl9saW5rLWljb24tcGFkZGluZyAvIDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSBpZiAoJGljb25fcG9zID09J3JpZ2h0Jykge1xuICAgICAgICBAaWYgKCR0eXBlID09J2xpbmsnKSB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiBnZXQtdmFsdWUtZnJvbS1saXN0KCR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSBpZiAoJGljb25fcG9zID09J2xlZnQnKSB7XG4gICAgICAgIEBpZiAoJHR5cGUgPT0nbGluaycpIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIGxlZnQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3MgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25faWNvbi1ob29rKCR0eXBlLCAkaWNvbl9wb3MpO1xufSIsIi8vIEluIHRoaXMgbWl4aW4geW91IGNhbiBkZWZpbmUgeW91ciBjdXN0b20gYW5pbWF0aW9uIGZvciBidXR0b25zXG4vLyBZb3UgY2FuIGNoZWNrIGV4YW1wbGVzIG9mIGFuaW1hdGlvbnMgaW4gaHR0cDovL2lhbmx1bm4uZ2l0aHViLmlvL0hvdmVyLyBsaWJyYXJ5XG5cbkBtaXhpbiBidXR0b25fYW5pbWF0aW9uKFxuICAgICR0eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSxcbiAgICAkY29sb3Jfc3RhcnQ6ICRidXR0b25fcHJpbWFyeS1iYWNrZ3JvdW5kLFxuICAgICRjb2xvcl9lbmQ6ICRidXR0b25fcHJpbWFyeS0taG92ZXItYmFja2dyb3VuZCxcbiAgICAkaWNvbl9wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvc1xuKSB7XG4gICAgQGlmICgkdHlwZSA9PSAncHJpbWFyeScpIGFuZFxuICAgICAgICAoKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0JykpXG4gICAge1xuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfc3RhcnQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IC0jeyRidXR0b25fYm9yZGVyLXNpemV9O1xuICAgICAgICAgICAgYm90dG9tOiAtI3skYnV0dG9uX2JvcmRlci1zaXplfTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIHJpZ2h0OiAtI3skYnV0dG9uX2JvcmRlci1zaXplfTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgbGVmdDogLSN7JGJ1dHRvbl9ib3JkZXItc2l6ZX07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICB3aWR0aDogJGJ1dHRvbl9hbmltYXRpb24tYmVmb3JlLXdpZHRoO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAkYnV0dG9uX2JvcmRlci1yYWRpdXMgJGJ1dHRvbl9ib3JkZXItcmFkaXVzIDA7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAwZGVnLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50IDAlLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50IDAlLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQgMCUsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZCAxMDAlXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgMGRlZyxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kIDAlLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQgODUlLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50IDEwMCUsXG4gICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgMTAwJVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgd2lkdGg6ICRidXR0b25fYW5pbWF0aW9uLWFmdGVyLXdpZHRoO1xuICAgICAgICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2VuZDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGxpbmVhcjtcbiAgICAgICAgICAgIHotaW5kZXg6IC0yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbl9ib3JkZXItcmFkaXVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaWYgKCRidXR0b25fYm9yZGVyLXNpemUgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAjezIgKiAkYnV0dG9uX2JvcmRlci1zaXplfSk7XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9pbWFnZS10ZWFzZXIvZnVuY3Rpb25zL2dldC1ncmFkaWVudC1hbmdsZSc7XG5cbkBtaXhpbiB0ZWFzZXItZ3JhZGllbnQtb3ZlcmxheShcbiAgICAkeDogMSxcbiAgICAkeTogMSxcbiAgICAkY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTcwMCxcbiAgICAkZ3JhZGllbnQtcmFuZ2U6IDg1JVxuKSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICBnZXQtZ3JhZGllbnQtYW5nbGUoJHgsICR5KSxcbiAgICAgICAgJGNvbG9yIDAlLFxuICAgICAgICByZ2JhKCRjb2xvciwgMCkgJGdyYWRpZW50LXJhbmdlXG4gICAgKTtcbn1cbiIsIkBtaXhpbiBvcHRpbWl6ZXItdGV4dC1zaGFkb3coXG4gICAgJGNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC0yMDAsXG4gICAgJHRleHQtc2hhZG93LW9mZnNldDogMCAwIDI1cHgsXG4gICAgJHN0ZXA6IDVcbikge1xuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggY2VpbCgxMDAgLyAkc3RlcCkge1xuICAgICAgICAkdmFsdWU6ICRpICogJHN0ZXA7XG5cbiAgICAgICAgJi0jeyR2YWx1ZX0ge1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6ICN7JHRleHQtc2hhZG93LW9mZnNldH0gcmdiYSgkY29sb3IsICgkdmFsdWUgLyAxMDApKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbkBtaXhpbiBjb21wb25lbnQtc3BhY2luZygkbWFyZ2lucy1jb25maWc6ICRjb21wb25lbnQtc3BhY2luZy1jb25maWd1cmF0aW9uKSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRtYXJnaW5zLWNvbmZpZywgZGVmYXVsdCkge1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJG1hcmdpbnMtY29uZmlnLCBkZWZhdWx0KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gRGVmYXVsdCBjb21wb25lbnQgbWFyZ2luIHZhbHVlXG4gICAgICAgIG1hcmdpbjogMCAwIDNyZW07XG4gICAgfVxuXG4gICAgQGlmIG1hcC1oYXMta2V5KCRtYXJnaW5zLWNvbmZpZywgcmVzcG9uc2l2ZSkge1xuICAgICAgICAvLyBBZGRpbmcgbWFyZ2luIHJ1bGVzIGZvciBlYWNoIHBhc3NlZCBicmVha3BvaW50XG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkbWFyZ2luIGluIG1hcC1nZXQoJG1hcmdpbnMtY29uZmlnLCByZXNwb25zaXZlKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgjeyRicmVha3BvaW50fSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogJG1hcmdpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXNraXAtc3BhY2luZyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBOztBQ0VBO0FEQ0E7QUVIQTs7O0FET0E7QURrQkE7O0FDZkE7QURWQTs7QUNhQTtBRFZBO0FFSEE7OztBRGtCQTtBRE9BOztBQ0pBO0FEckJBOztBQ3dCQTtBRHJCQTtBRUhBOzs7QUQ2QkE7QURKQTs7QUNPQTtBRGhDQTs7QUNtQ0E7QURoQ0E7QUVIQTs7O0FEd0NBO0FEZkE7O0FDa0JBO0FEM0NBOztBQzhDQTtBRDNDQTtBRUhBOzs7QURtREE7QUQxQkE7O0FDNkJBO0FEdERBOztBQ3lEQTtBRHREQTtBRUhBOzs7QUQ4REE7QURyQ0E7O0FDd0NBO0FDakVBOzs7QURxRUE7QURyRUE7O0FDd0VBO0FEckVBO0FFSEE7OztBRDZFQTtBRHBEQTs7QUN1REE7QURoRkE7O0FDbUZBO0FEaEZBO0FFSEE7OztBRHdGQTtBRC9EQTs7QUNrRUE7QUUzRkE7O0FGOEZBO0FHOUZBOztBSGlHQTtBRGpHQTs7QUNvR0E7QURqR0E7QUVIQTs7O0FEeUdBO0FEaEZBOztBQ21GQTtBRDVHQTs7QUMrR0E7QUQ1R0E7QUVIQTs7O0FEb0hBO0FEM0ZBOztBQzhGQTtBSXBIQTtBQUNBO0FBRUE7QUFIQTtBQ2dCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUR2Q0E7QUMyQ0E7QUFDQTtBRDVDQTtBQ2dEQTtBRGhEQTtBQ3NEQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QU5oRUE7O0FDK0pBO0FENUpBO0FFSEE7OztBRG9LQTtBRDNJQTs7QUM4SUE7QUR2S0E7O0FDMEtBO0FEdktBO0FFSEE7OztBRCtLQTtBRHRKQTs7QUN5SkE7QU0vS0E7QUNjQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVEE7QUFZQTtBQVpBO0FBZ0JBO0FBQ0E7QUNwREE7Ozs7Ozs7O0FSd05BO0FTeE5BO0FBU0E7QUNzQ0E7OztBVitLQTtBVWxLQTtBQUdBO0FBQ0E7QUNqREE7QUR1TUE7OztBVmdCQTtBVXdFQTs7QVZyRUE7QVU3S0E7QUN4Q0E7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQURBO0FBSUE7QUFHQTtBQVBBO0FBUUE7QUFJQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFJQTtBQUhBO0FBUkE7QUFTQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FDZ2VBO0FGamZBO0FDcUJBO0FBR0E7QUFDQTtBQURBO0FBQ0E7QUFEQTtBQUNBO0FBREE7QUFDQTtBQURBO0FBQ0E7QUFEQTtBQUNBO0FBREE7QUFDQTtBQUNBO0FDdWRBO0FEbGRBO0FBQ0E7QUR4QkE7QUNxRkE7QUFDQTtBQThCQTtBQU1BOzs7QVhnSEE7QVdwRUE7QUE5RUE7QUR4RkE7QUMwRkE7QUQxRkE7QUM4RkE7QUFFQTtBRGhHQTtBQ21HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FEOUdBO0FDZ0hBO0FDeVhBO0FGemVBO0FDdUhBO0FDa1hBO0FGemVBO0FDa0lBOzs7O0FBQUE7QURsSUE7QUNrSUE7Ozs7QUFBQTtBRGxJQTtBQ2tJQTs7OztBQUFBO0FEbElBO0FDa0lBOzs7O0FBQUE7QURsSUE7QUNrSUE7Ozs7QUFBQTtBRGxJQTtBQ2tJQTs7OztBQUFBO0FEbElBO0FDa0lBOzs7O0FBQUE7QUFDQTtBQ3NXQTtBRnplQTtBQzZJQTtBQTBCQTtBRHZLQTtBQzBLQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FEbExBO0FDb0xBO0FEcExBO0FDaUNBO0FEakNBO0FSL0RBO0FBQ0E7QUFDQTtBU29HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QURoREE7QUNpREE7QUN3YkE7QUZ6ZUE7QVAvREE7QUFDQTtBTzhEQTtBUDNEQTtBQUNBO0FBQ0E7QUFDQTtBT3dEQTtBUHBEQTtBQUNBO0FBQ0E7QU9rREE7QVIvREE7QUFDQTtBQUNBO0FTeUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QURoRUE7QUNtRUE7QURuRUE7QUN3RUE7QUNpYUE7QUZoZUE7QUNxTEE7QUFDQTtBQUNBO0FEdkxBO0FDMExBO0FBQ0E7QUQzTEE7QUM4TEE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBRHJNQTtBQ3VNQTtBQ3lSQTtBRmhlQTtBQ3dCQTtBRHhCQTtBUnhFQTtBQUNBO0FBQ0E7QVNvR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FEdkNBO0FDd0NBO0FDd2JBO0FGaGVBO0FQeEVBO0FBQ0E7QU91RUE7QVBwRUE7QUFDQTtBQUNBO0FBQ0E7QU9pRUE7QVA3REE7QUFDQTtBQUNBO0FTMmhCQTtBRmhlQTtBUnhFQTtBQUNBO0FBQ0E7QVN5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRHZEQTtBQzBEQTtBRDFEQTtBQytEQTtBQ2lhQTtBRmhlQTs7QUFZQTtBQU1BO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQVJBO0FBYUE7QUVrY0E7QUY3YkE7QUFDQTtBQUdBO0FBQ0E7QUV3YkE7QUZoYkE7QUFFQTtBQUZBO0FBTUE7QUFOQTs7QUFXQTtBQUtBO0FBQ0E7QUFDQTtBQUZBO0FBU0E7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFHQTtBQUNBO0FBS0E7QUFDQTtBQU9BO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUErQ0E7QUE5Q0E7QUd4SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUh3SUE7QUlqT0E7QUppT0E7QUkxTkE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBSm1OQTtBSXpNQTtBQUNBO0FBQ0E7QUFJQTtBSm1NQTtBSTdLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUp3S0E7QUloS0E7QUpnS0E7QUdsRUE7QUFDQTtBQUNBO0FIZ0VBO0FHMURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUhnREE7QUc3Q0E7QUFDQTtBSDRDQTtBR1VBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBSGxCQTtBR3FCQTtBQUNBO0FIdEJBO0FHdUVBO0FBQ0E7QUhqRUE7QUcvSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUgrSUE7QUc1R0E7QUg0R0E7QUd6RUE7QUFDQTtBQUNBO0FIdUVBO0FHakVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QUg0Q0E7QUd6Q0E7QUFDQTtBSHdDQTtBR0dBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBSHRCQTtBR3lCQTtBQUNBO0FIMUJBO0FHZ0VBO0FBQ0E7QUh6REE7QUdpRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQVVBO0FIN0VBO0FHMERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFVQTtBSHBFQTtBR2tIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBbUJBO0FBQ0E7QUh4SUE7QUcyR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQW1CQTtBQUNBO0FEK0lBO0FGOVRBO0FBa0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFTQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBQUNBO0FBR0E7QUFDQTtBQVVBO0FLcFVBO0FMNlVBO0FLN1VBO0FMb1VBO0FLcFVBO0FMNlVBO0FLN1VBO0FMb1VBO0FLcFVBO0FMNlVBO0FLN1VBO0FMb1VBO0FLcFVBO0FMNlVBO0FLN1VBO0FMb1VBO0FLcFVBO0FMNlVBO0FLN1VBO0FMb1VBO0FLcFVBO0FMNlVBO0FLN1VBO0FMb1VBO0FLcFVBO0FMNlVBO0FLN1VBO0FMb1VBO0FLcFVBO0FMNlVBO0FLN1VBO0FMb1VBO0FLcFVBO0FMNlVBO0FLN1VBO0FMNlZBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU5vWEE7QU1wWEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QU40WEE7QU01WEE7QUFDQTtBSm1pQkE7QUY5SkE7QUM3SUE7QUFDQTtBQUNBO0FEMklBO0FDeElBO0FBQ0E7QUR1SUE7QUNwSUE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBRDZIQTtBQzNIQTtBQUNBO0FDd1JBO0FGOUpBO0FDMVNBO0FEMFNBO0FSMVlBO0FBQ0E7QUFDQTtBU29HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUQyUkE7QUMxUkE7QUN3YkE7QUY5SkE7QVAxWUE7QUFDQTtBT3lZQTtBUHRZQTtBQUNBO0FBQ0E7QUFDQTtBT21ZQTtBUC9YQTtBQUNBO0FBQ0E7QUFDQTtBUzBoQkE7QUY5SkE7QVIxWUE7QUFDQTtBQUNBO0FTeUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUQyUUE7QUN4UUE7QUR3UUE7QUNuUUE7QUFDQTtBQ2dhQTtBRjlKQTtBQVdBOzs7O0FBQUE7QUFDQTtBRWtKQTtBRjlKQTtBQVdBOzs7O0FBQUE7QUFDQTtBRWtKQTtBRjlKQTtBQVdBOzs7O0FBQUE7QUFDQTtBRWtKQTtBRjlKQTtBQVdBOzs7O0FBQUE7QUFDQTtBQVNBO0FBckJBO0FBdUJBO0FBQ0E7QUVzSUE7QUY5SkE7QUE0QkE7QUE1QkE7QUFrQ0E7QUFsQ0E7QUFzQ0E7QUF0Q0E7QUEwQ0E7QUExQ0E7QUErQ0E7QUFDQTtBQWhEQTtBQW9EQTtBRTBHQTtBRm5HQTtBQUdBO0FBSEE7QUFPQTtBRTRGQTtBRnBGQTtBQUVBO0FBQ0E7QUFIQTtBQU9BO0FBQ0E7QUFLQTtBT2hlQTtBTHVpQkE7QUZ2RUE7QU90ZEE7QUFLQTtBQUNBO0FBQ0E7QVBtZEE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBR0E7QUFDQTtBQUNBOzsiLCJzb3VyY2VSb290IjoiIn0=*/